feat(editor): add WACT JSON round-trip (--export/--import-wact-json)

Closes the editing loop on the action-bar-layout catalog: dump
a .wact to JSON, hand-edit barMode / classMask / spellId /
itemId / buttonSlot (e.g. swap a Warrior's button 1 from Heroic
Strike to Mortal Strike, move Polymorph from slot 3 to slot 8,
add a Hearthstone item-macro to slot 12, share Mark of the Wild
across Druid+Priest classMask), re-import to a byte-identical
binary.

barMode dual-encoded: int 0..6 OR human-readable name ("main" /
"pet" / "vehicle" / "stance1" / "stance2" / "stance3" /
"custom"). All other fields are scalar so no special handling
needed.

Verified byte-identical round-trip on all three presets
(warrior / mage / pet). CLI flag count 1088 -> 1090.
This commit is contained in:
Kelsi 2026-05-10 00:14:21 -07:00
parent 48dbf72f11
commit 54353e03e6
3 changed files with 147 additions and 0 deletions

View file

@ -293,6 +293,7 @@ const char* const kArgRequired[] = {
"--export-wstm-json", "--import-wstm-json",
"--gen-act", "--gen-act-mage", "--gen-act-pet",
"--info-wact", "--validate-wact",
"--export-wact-json", "--import-wact-json",
"--gen-weather-temperate", "--gen-weather-arctic",
"--gen-weather-desert", "--gen-weather-stormy",
"--gen-zone-atmosphere",