Enrich zone music from AreaTable/ZoneMusic/SoundEntries DBC chain

Add ZoneManager::enrichFromDBC() which walks AreaTable.dbc (field 8 = ZoneMusicId)
→ ZoneMusic.dbc (fields 6/7 = day/night SoundEntryIds) → SoundEntries.dbc
(fields 3-12 = files, field 23 = DirectoryBase) and appends MPQ music paths for
all zones in the DBC, covering ~2300+ areas vs the previous ~15 hardcoded entries.

Existing hardcoded paths are preserved as the primary pool; DBC paths are added
only if not already present. Called from Renderer::init() after initialize().
This commit is contained in:
Kelsi 2026-03-09 16:04:52 -07:00
parent 46f2c0df85
commit 43b9ecd857
3 changed files with 93 additions and 1 deletions

View file

@ -706,9 +706,12 @@ bool Renderer::initialize(core::Window* win) {
lightingManager = std::make_unique<LightingManager>();
[[maybe_unused]] auto* assetManager = core::Application::getInstance().getAssetManager();
// Create zone manager
// Create zone manager; enrich music paths from DBC if available
zoneManager = std::make_unique<game::ZoneManager>();
zoneManager->initialize();
if (assetManager) {
zoneManager->enrichFromDBC(assetManager);
}
// Initialize AudioEngine (singleton)
if (!audio::AudioEngine::instance().initialize()) {