mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-05-10 19:13:52 +00:00
feat(pipeline): add WKBD (Wowee Keybinding) catalog
55th open format — replaces KeyBinding.dbc plus the AzerothCore-style default-keybind SQL data. Defines the key bindings shipped with the game: movement (W/A/S/D), targeting (Tab), action bars (1-9, 0, -, =), UI panels (C/I/B/P/N/L), chat (Enter), camera (Insert/Delete). Each binding has an internal action name (SCREAMING_SNAKE convention — "MOVE_FORWARD"), a primary key, an optional alternate key, a category for the keybindings UI grouping, and a flag indicating whether the user can override it. Hardcoded engine bindings (alt-F4, ESC) set isUserOverridable=0 so the rebind dialog can't accidentally break them. 9 categories (Movement / Combat / Targeting / Camera / UIPanels / Chat / Macro / Bar / Other) for the rebind dialog grouping. CLI: --gen-kbd (3 essential WASD/Tab/C bindings), --gen-kbd- movement (8 movement: WASD + arrow alternates + jump + autorun), --gen-kbd-ui (10 UI panel bindings covering all the standard interface windows), --info-wkbd, --validate-wkbd with --json variants. Validator catches id+actionName+ defaultKey required, category 0..8, alternateKey == defaultKey (no point in alt), action-name lowercase warning (should be SCREAMING_SNAKE), duplicate primary keys (would silently shadow earlier binding), and duplicate action names. Format graph: 54 → 55 binary formats. CLI flag count: 791 → 796.
This commit is contained in:
parent
c41db0e0be
commit
1c6faa2891
10 changed files with 626 additions and 0 deletions
|
|
@ -1499,6 +1499,16 @@ void printUsage(const char* argv0) {
|
|||
std::printf(" Export binary .wsmc to a human-editable JSON sidecar (defaults to <base>.wsmc.json)\n");
|
||||
std::printf(" --import-wsmc-json <json-path> [out-base]\n");
|
||||
std::printf(" Import a .wsmc.json sidecar back into binary .wsmc (accepts drCategory/dispelType int OR name string)\n");
|
||||
std::printf(" --gen-kbd <wkbd-base> [name]\n");
|
||||
std::printf(" Emit .wkbd starter: 3 essential bindings (MOVE_FORWARD / TARGET_NEAREST_ENEMY / TOGGLE_CHARACTER)\n");
|
||||
std::printf(" --gen-kbd-movement <wkbd-base> [name]\n");
|
||||
std::printf(" Emit .wkbd 8 movement bindings (WASD / arrow keys / jump / autorun) with primary+alternate keys\n");
|
||||
std::printf(" --gen-kbd-ui <wkbd-base> [name]\n");
|
||||
std::printf(" Emit .wkbd 10 UI panel bindings (Character C / Inventory I / Bags B / Spellbook P / Talents N / etc)\n");
|
||||
std::printf(" --info-wkbd <wkbd-base> [--json]\n");
|
||||
std::printf(" Print WKBD entries (id / category / user-overridable / sort / default key + alt / actionName)\n");
|
||||
std::printf(" --validate-wkbd <wkbd-base> [--json]\n");
|
||||
std::printf(" Static checks: id+actionName+defaultKey required, category 0..8, alt!=default, unique action names + primary keys\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