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

Closes the JSON round-trip gap on the spell visual kit catalog
format shipped this batch. --export-wsvk-json emits all 12
scalar fields and 4 model-path strings. WSVK has no enum
fields, so the JSON mapping is a straight-through dump with
no name-form widening. --import-wsvk-json parses it back,
defaulting unset fields to 0/empty. Verified byte-identical
round-trip on all three preset emitters (starter / combat /
utility). 731 documented CLI flags.
This commit is contained in:
Kelsi 2026-05-09 19:24:37 -07:00
parent beca69352a
commit c3121be011
3 changed files with 130 additions and 0 deletions

View file

@ -1375,6 +1375,10 @@ void printUsage(const char* argv0) {
std::printf(" Print WSVK entries (id / cast+impact anim IDs / projectile speed+gravity / cast duration / AoE radius / sounds / name)\n");
std::printf(" --validate-wsvk <wsvk-base> [--json]\n");
std::printf(" Static checks: id>0+unique, name not empty, no negative speeds/radii, projectile-model + speed coherence, no-effect warning\n");
std::printf(" --export-wsvk-json <wsvk-base> [out.json]\n");
std::printf(" Export binary .wsvk to a human-editable JSON sidecar (defaults to <base>.wsvk.json)\n");
std::printf(" --import-wsvk-json <json-path> [out-base]\n");
std::printf(" Import a .wsvk.json sidecar back into binary .wsvk\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");