Add per-expansion asset overlay system and fix CharSections DBC layout

Expansion overlays allow each expansion to supplement the base asset data
via an assetManifest field in expansion.json, loaded at priority 50 (below
HD packs). The asset extractor gains --reference-manifest for delta-only
extraction. Also fixes CharSections field indices (VariationIndex=4,
ColorIndex=5, Texture1=6) across all DBC layout references.
This commit is contained in:
Kelsi 2026-02-14 00:00:26 -08:00
parent a618827925
commit 7d115aaa70
13 changed files with 151 additions and 46 deletions

View file

@ -216,6 +216,8 @@ private:
bool wasAutoAttacking_ = false;
void processPendingMount();
bool creatureLookupsBuilt_ = false;
bool mapNameCacheLoaded_ = false;
std::unordered_map<uint32_t, std::string> mapNameById_;
// Deferred creature spawn queue (throttles spawning to avoid hangs)
struct PendingCreatureSpawn {

View file

@ -30,6 +30,7 @@ struct ExpansionProfile {
std::string locale = "enUS";
uint32_t timezone = 0;
std::string dataPath; // Absolute path to expansion data dir
std::string assetManifest; // Path to expansion-specific asset manifest (absolute, resolved from dataPath)
uint32_t maxLevel = 60;
std::vector<uint32_t> races;
std::vector<uint32_t> classes;