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

Closes the JSON round-trip gap on the game tips catalog format
shipped this batch. --export-wgtp-json emits all 11 scalar
fields plus a dual int + name form for displayKind so
hand-edits can use either representation. --import-wgtp-json
defaults audienceFilter to kAudienceAll when omitted (so a
sidecar without that field doesn't accidentally produce a tip
that is never shown). Verified byte-identical round-trip on
all three preset emitters (starter / new-player / advanced).
777 documented CLI flags.
This commit is contained in:
Kelsi 2026-05-09 20:02:02 -07:00
parent 383d8d730a
commit 71905867fa
3 changed files with 141 additions and 0 deletions

View file

@ -1467,6 +1467,10 @@ void printUsage(const char* argv0) {
std::printf(" Print WGTP entries (id / kind / audience mask / level range / weight / condition / classMask / name)\n");
std::printf(" --validate-wgtp <wgtp-base> [--json]\n");
std::printf(" Static checks: id+name+text required, kind 0..3, audienceFilter>0, valid level range, brevity check on tutorial/hint kinds\n");
std::printf(" --export-wgtp-json <wgtp-base> [out.json]\n");
std::printf(" Export binary .wgtp to a human-editable JSON sidecar (defaults to <base>.wgtp.json)\n");
std::printf(" --import-wgtp-json <json-path> [out-base]\n");
std::printf(" Import a .wgtp.json sidecar back into binary .wgtp (accepts displayKind int OR name string)\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");