feat(editor): add WSET JSON round-trip (export/import sidecar)

Closes the JSON round-trip gap on the item set catalog format
shipped this batch. --export-wset-json emits all 8 scalar
fields plus two nested arrays — itemIds[] (only the populated
slots) and bonuses[{threshold, spellId}] (only the populated
bonus pairs). --import-wset-json derives pieceCount and
bonusCount from the array sizes (the explicit count fields
in the binary header are recomputed on import) and clears any
trailing slots so a 5-piece PvP set imported from JSON
correctly leaves slots 5-7 zero. requiredClassMask is dumped
as a raw uint32 — users hand-edit using WCHC bit positions
(Druid=0x800, Mage=0x100, Paladin=0x04 etc).

Verified byte-identical round-trip on all three preset
emitters (starter / tier / PvP — including the 5-piece PvP
variant with 2/4-piece bonuses). 769 documented CLI flags.
This commit is contained in:
Kelsi 2026-05-09 19:55:50 -07:00
parent 42bc024bd3
commit 104de8ffe6
3 changed files with 141 additions and 0 deletions

View file

@ -156,6 +156,7 @@ const char* const kArgRequired[] = {
"--export-wceq-json", "--import-wceq-json",
"--gen-itset", "--gen-itset-tier", "--gen-itset-pvp",
"--info-wset", "--validate-wset",
"--export-wset-json", "--import-wset-json",
"--gen-weather-temperate", "--gen-weather-arctic",
"--gen-weather-desert", "--gen-weather-stormy",
"--gen-zone-atmosphere",