feat(editor): add WOW JSON round-trip authoring workflow

Mirrors the WOL JSON pair from the previous batch — same
hand-edit authoring loop for the binary .wow weather format:

  • --export-wow-json <wow-base> [out.json]
        Dumps a .wow to a human-readable JSON sidecar
        (defaults to <base>.wow.json). Each entry includes
        BOTH the raw typeId (0..6) and the human-friendly
        type name ("clear" / "rain" / "snow" / "storm" /
        "sandstorm" / "fog" / "blizzard").

  • --import-wow-json <json-path> [out-base]
        Reads a JSON sidecar and writes back binary .wow.
        Accepts either typeId int OR type-name string
        (typeId wins if both present). Schema mismatches
        fail with a clear message.

Workflow: --gen-weather-* → --export-wow-json → hand-edit
weights / durations / intensities → --import-wow-json →
use in runtime.

Round-trip verified: elwynn.wow → elwynn.wow.json →
elwynn_rt.wow shows byte-identical entries via --info-wow.

Both atmosphere formats now have full JSON authoring support:
  WOL: --export-wol-json / --import-wol-json
  WOW: --export-wow-json / --import-wow-json
This commit is contained in:
Kelsi 2026-05-09 14:25:41 -07:00
parent e7695d6e3b
commit d9761046f9
3 changed files with 133 additions and 0 deletions

View file

@ -18,6 +18,7 @@ const char* const kArgRequired[] = {
"--info-wol", "--info-wol-at", "--validate-wol", "--gen-light",
"--gen-light-cave", "--gen-light-dungeon", "--gen-light-night",
"--export-wol-json", "--import-wol-json",
"--export-wow-json", "--import-wow-json",
"--info-wow", "--validate-wow",
"--gen-weather-temperate", "--gen-weather-arctic",
"--gen-weather-desert", "--gen-weather-stormy",