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

Closes the WMS open-format loop with --export-wms-json /
--import-wms-json, mirroring the JSON pairs added for
every other novel binary format. All 20 binary formats
added since WOL now have full JSON round-trip authoring.

Two top-level arrays mirror the binary layout:
  • maps[]  — mapId / name / shortName / mapType (dual int +
              name) / expansionId (dual int + name) / maxPlayers
  • areas[] — areaId / mapId / parentAreaId / name /
              minLevel..maxLevel / factionGroup (dual int +
              name) / explorationXP / ambienceSoundId

Three enum-typed fields (mapType, expansionId, factionGroup)
emit dual int + name forms — a hand-author can write
"continent" / "wotlk" / "alliance" instead of remembering
the integer values.

Verified byte-identical round-trip on the classic preset
(3 maps including Deadmines instance, 6 areas with full
parent-chain hierarchy + WSND ambient cross-refs preserved).

Adds 2 flags (587 documented total now).
This commit is contained in:
Kelsi 2026-05-09 16:48:34 -07:00
parent e66601c208
commit 68812b6c41
3 changed files with 183 additions and 0 deletions

View file

@ -76,6 +76,7 @@ const char* const kArgRequired[] = {
"--export-wtal-json", "--import-wtal-json",
"--gen-maps", "--gen-maps-classic", "--gen-maps-bgarena",
"--info-wms", "--validate-wms",
"--export-wms-json", "--import-wms-json",
"--gen-chars", "--gen-chars-alliance", "--gen-chars-allraces",
"--info-wchc", "--validate-wchc",
"--gen-weather-temperate", "--gen-weather-arctic",