Add configurable fade-in support to MusicManager playback paths and use it for auth/login intro tracks to avoid abrupt starts. Apply a login-only 20% music attenuation while the auth screen is active, then restore the previous music volume when leaving login so in-game volume remains unchanged.
11 original tracks in assets/Original Music/ now play on the login
screen and in thematically matched zones across Eastern Kingdoms and
Kalimdor. Added crossfadeToFile to MusicManager for local file
playback during zone transitions. New zones: Tirisfal, Undercity,
Barrens, STV, Duskwood, Burning Steppes, Searing Gorge, Ironforge,
Loch Modan, Orgrimmar, Durotar, Mulgore, Thunder Bluff, Darkshore,
Teldrassil, Darnassus.
Replace POSIX-specific socket and process APIs with portable
abstractions so the project builds on both Windows and Linux.
- Add include/network/net_platform.hpp: Winsock2/POSIX socket
abstraction (socket types, non-blocking, error handling,
WSAStartup lifecycle)
- Add include/platform/process.hpp: CreateProcess/fork+exec
abstraction for spawning ffplay subprocesses
- Update network module (tcp_socket, world_socket) to use
portable socket helpers instead of raw POSIX calls
- Update audio module (music_manager, footstep_manager,
activity_sound_manager) to use portable process helpers
instead of fork/exec/kill/waitpid
- Replace hardcoded /tmp/ paths with std::filesystem::temp_directory_path()
- Link ws2_32 and SDL2main on Windows in CMakeLists.txt