mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-05-11 03:23:51 +00:00
feat(editor): add WCMG (Combat Maneuver Group) open catalog format
Novel replacement for the hardcoded class-mutex tables the WoW client uses to grey out incompatible action-bar buttons. Each entry is one mutually-exclusive spell group: Warrior stances (Battle/Defensive/Berserker), Druid shapeshift forms (Bear/Cat/Travel/Tree/Moonkin), Hunter aspects (Hawk/Cheetah/Pack/Viper/Dragonhawk/Beast/ Wild), DK presences (Frost/Unholy/Blood). The action-bar update path uses the catalog to know which spells share a mutex bucket and clear "currently active" outlines when a sibling is cast. Six categoryKind enum values (Stance / Form / Aspect / Presence / Posture / Sigil) and variable-length members[] array of spell IDs (refs WSPL). Three presets: makeWarrior (Warrior 3-stance), makeDruid (5 shapeshift + 2 flight, separate buckets so flying isn't broken by Cat Form), makeAllMutex (cross-class catalog with one representative group per mutex-having class). Validator catches several authoring bugs: empty members[] (group has nothing to switch between), spellId 0, duplicate spellId within a group, and — most usefully — the same spellId appearing in two different exclusive groups (which would make the action-bar mutex undecidable: which group's outline does the bar use?). Warns on single-member groups (mutex with one element has no exclusion to enforce). Format count 98 -> 99 (one short of triple-digit milestone). CLI flag count 1112 -> 1117.
This commit is contained in:
parent
16454c57c4
commit
d62ac954da
10 changed files with 760 additions and 0 deletions
|
|
@ -143,6 +143,7 @@
|
|||
#include "cli_group_compositions_catalog.hpp"
|
||||
#include "cli_hearth_binds_catalog.hpp"
|
||||
#include "cli_server_broadcasts_catalog.hpp"
|
||||
#include "cli_combat_maneuvers_catalog.hpp"
|
||||
#include "cli_catalog_pluck.hpp"
|
||||
#include "cli_quest_objective.hpp"
|
||||
#include "cli_quest_reward.hpp"
|
||||
|
|
@ -328,6 +329,7 @@ constexpr DispatchFn kDispatchTable[] = {
|
|||
handleGroupCompositionsCatalog,
|
||||
handleHearthBindsCatalog,
|
||||
handleServerBroadcastsCatalog,
|
||||
handleCombatManeuversCatalog,
|
||||
handleCatalogPluck,
|
||||
handleQuestObjective,
|
||||
handleQuestReward,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue