mirror of
https://github.com/isledecomp/isle-portable.git
synced 2026-05-02 02:23:56 +00:00
Extract generic SI file reading and audio extraction from Multiplayer::Animation::Loader into a new Multiplayer::SIReader class. This eliminates the coupling where NetworkManager reached into the Animation namespace to extract horn WAV data, and removes the wasteful intermediate horn cache (LegoCacheSound::Create copies PCM data, so the cache served no purpose after template creation). - New Multiplayer::SIReader owns SI file handle, header-only reading, lazy object loading, and audio track extraction - New Multiplayer::AudioTrack struct (moved from SceneAnimData::AudioTrack) - Animation::Loader delegates SI access via SetSIReader() pointer - NetworkManager owns SIReader, passes it to Loader, uses it directly for horn sound extraction via ExtractFirstAudio() - Consolidate duplicate horn vehicle arrays into single g_hornVehicles[] - Move HornMsg next to EmoteMsg in protocol (both one-shot broadcasts) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| docs/multiplayer | ||
| include/extensions | ||
| src | ||