mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-05-10 19:13:52 +00:00
feat(pipeline): add WQSO (Wowee Quest Sort) catalog
67th open format — replaces QuestSort.dbc plus the quest-log categorization fields in QuestInfo.dbc. Defines the categories that quests fall into for the quest-log UI: class quests (Warrior trial, etc), profession quests, daily quests, holiday events, reputation grinds, dungeon / heroic / raid quests, repeatables, PvP, tournament. 12 sort kinds (General / ClassQuest / Profession / Daily / Holiday / Reputation / Dungeon / Raid / Heroic / Repeatable / PvP / Tournament). Each WQT (quest) entry can reference a sortId here to be grouped under the right header in the quest log. Sorts can be class-restricted (Warrior quests only show for warriors), profession-restricted, or faction-reputation-gated. Cross-references with prior formats — targetClassMask uses WCHC.classId bit positions (matches WGLY/WSET/WGTP convention), targetProfessionId points at WTSK.profession enum, targetFactionId points at WFAC.factionId. CLI: --gen-qso (3 generic sorts — General catch-all, Daily reset, Repeatable non-daily), --gen-qso-class (10 class- specific sorts with proper bit masks for Warrior 0x02 through Druid 0x800), --gen-qso-profession (8 profession sorts with WTSK profession enum cross-refs), --info-wqso, --validate-wqso with --json variants. Validator catches id+name+displayName required, kind 0..11, ClassQuest with classMask=0 (not actually class-restricted), Profession with profId=0 + non-Blacksmithing-name (likely typo since 0=Blacksmithing in WTSK), and Reputation with factionId=0 (no faction to grind). Format graph: 66 → 67 binary formats. CLI flag count: 877 → 882.
This commit is contained in:
parent
50050285af
commit
23ba7ed6a0
10 changed files with 634 additions and 0 deletions
|
|
@ -1671,6 +1671,16 @@ void printUsage(const char* argv0) {
|
|||
std::printf(" Export binary .wumv to a human-editable JSON sidecar (defaults to <base>.wumv.json)\n");
|
||||
std::printf(" --import-wumv-json <json-path> [out-base]\n");
|
||||
std::printf(" Import a .wumv.json sidecar back into binary .wumv (accepts movementCategory int OR name string; multipliers default to 1.0/1.4)\n");
|
||||
std::printf(" --gen-qso <wqso-base> [name]\n");
|
||||
std::printf(" Emit .wqso starter: 3 generic sorts (General catch-all / Daily reset / Repeatable non-daily)\n");
|
||||
std::printf(" --gen-qso-class <wqso-base> [name]\n");
|
||||
std::printf(" Emit .wqso 10 class-specific sorts (Warrior / Paladin / Hunter / Rogue / Priest / DK / Shaman / Mage / Warlock / Druid)\n");
|
||||
std::printf(" --gen-qso-profession <wqso-base> [name]\n");
|
||||
std::printf(" Emit .wqso 8 profession sorts (Blacksmithing / Tailoring / Engineering / Alchemy / Enchanting / Leatherworking / Jewelcrafting / Inscription)\n");
|
||||
std::printf(" --info-wqso <wqso-base> [--json]\n");
|
||||
std::printf(" Print WQSO entries (id / kind / display priority / classMask / profession / faction / displayName)\n");
|
||||
std::printf(" --validate-wqso <wqso-base> [--json]\n");
|
||||
std::printf(" Static checks: id+name+displayName required, kind 0..11, ClassQuest needs classMask>0, Reputation needs factionId>0\n");
|
||||
std::printf(" --gen-weather-temperate <wow-base> [zoneName]\n");
|
||||
std::printf(" Emit .wow weather schedule: clear-dominant + occasional rain + fog (forest / grassland)\n");
|
||||
std::printf(" --gen-weather-arctic <wow-base> [zoneName]\n");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue