feat(pipeline): add WWUI (Wowee World-State UI) catalog

48th open format — replaces WorldStateUI.dbc plus the
AzerothCore-style world_state SQL data. Defines on-screen UI
elements that surface server-side world-state variables: BG
scoreboards (flag captures, base controls), Wintergrasp tank
counters, Eye of the Storm flag-carrier indicator, dungeon
boss progress, world-event collection trackers.

Each entry binds a server-side variableIndex to a UI panel
kind (counter / timer / flag-icon / progress-bar / two-sided
score / custom) gated by mapId+areaId, with optional
alwaysVisible and hideWhenZero flags and a chosen panel
position (top / bottom / top-left / top-right / center).

Cross-references with prior formats — mapId points at
WMS.mapId and areaId points at WMS.areaId.

CLI: --gen-wsui (3-entry BG scoreboard starter for WSG/AB/
EotS), --gen-wsui-wintergrasp (4-entry full Wintergrasp UI),
--gen-wsui-dungeon (3-entry boss/keys/treasure hunt UI),
--info-wwui, --validate-wwui with --json variants. Validator
catches id=0/duplicates, kind/position out of range,
variableIndex=0 warning, alwaysVisible+hideWhenZero conflict
warning, and (mapId, variableIndex) collision warning when
two entries would read the same server slot on the same map.

Also extends --list-formats and --info-magic with WWUI.
This commit is contained in:
Kelsi 2026-05-09 19:32:15 -07:00
parent 4b928274b8
commit d332229a79
10 changed files with 679 additions and 0 deletions

View file

@ -79,6 +79,7 @@
#include "cli_spell_visuals_catalog.hpp"
#include "cli_summary_dir.hpp"
#include "cli_rename_magic.hpp"
#include "cli_world_state_ui_catalog.hpp"
#include "cli_quest_objective.hpp"
#include "cli_quest_reward.hpp"
#include "cli_clone.hpp"
@ -199,6 +200,7 @@ constexpr DispatchFn kDispatchTable[] = {
handleSpellVisualsCatalog,
handleSummaryDir,
handleRenameMagic,
handleWorldStateUICatalog,
handleQuestObjective,
handleQuestReward,
handleClone,