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

Closes the WCRT open-format loop with --export-wcrt-json /
--import-wcrt-json, mirroring the WOL/WOW/WOMX/WSND/WSPN/
WIT/WLOT JSON pairs. All 8 binary formats added since WOL
now have full JSON round-trip authoring.

Each creature template round-trips all 22 scalar fields.
Three enum-typed fields emit dual int + name forms so a
hand-author can use either:
  • typeId    (humanoid / beast / dragon / ...)
  • familyId  (wolf / cat / bear / ... — for beasts)
  • npcFlags  (vendor / quest / trainer / innkeeper / ...)
  • aiFlags   (passive / aggressive / flee / call-help / no-leash)

Both flag bitsets emit string-array forms so a hand-author
can write ["vendor", "innkeeper", "repair"] instead of
having to remember that those bits combine to 0x91.

Verified byte-identical round-trip on the merchants preset
(3 NPCs covering innkeeper / smith / alchemist with mixed
flag combinations). Adds 2 flags (502 documented total now).
This commit is contained in:
Kelsi 2026-05-09 15:27:12 -07:00
parent 02ae17740e
commit 2df4e75c71
3 changed files with 234 additions and 0 deletions

View file

@ -40,6 +40,7 @@ const char* const kArgRequired[] = {
"--export-wlot-json", "--import-wlot-json",
"--gen-creatures", "--gen-creatures-bandit", "--gen-creatures-merchants",
"--info-wcrt", "--validate-wcrt",
"--export-wcrt-json", "--import-wcrt-json",
"--gen-quests", "--gen-quests-chain", "--gen-quests-daily",
"--info-wqt", "--validate-wqt",
"--gen-weather-temperate", "--gen-weather-arctic",