mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-05-10 11:03:51 +00:00
feat(editor): add WBOS JSON round-trip (--export/--import-wbos-json)
Closes the editing loop on the boss-encounter catalog: dump a .wbos to JSON, hand-edit phaseCount / enrageTimerMs / berserk spell / recommended item level / required party size (e.g. shorten Lich King's enrage from 15 to 12 minutes for a sweatier server, raise Marrowgar's recommended ilvl from 232 to 245 for a Heroic-equivalent variant, swap a 5-phase encounter to 6 phases for a custom server fight), re-import to a byte-identical binary. All fields are scalar uint32/uint16/uint8 so no dual encoding needed — the JSON exporter emits each field directly. The catalog is the highest fan-out so far among raid-content catalogs, cross-referencing five other catalogs (WCRT for boss creature, WMS for map, WCDF for difficulty routing, WSPL for berserk spell, WACR back-references via achievement targetId). Verified byte-identical round-trip on all three presets (5man / raid / world). CLI flag count 1060 -> 1062.
This commit is contained in:
parent
acaef78696
commit
b16ee9886b
3 changed files with 125 additions and 0 deletions
|
|
@ -2037,6 +2037,10 @@ void printUsage(const char* argv0) {
|
|||
std::printf(" Print WBOS entries (id / boss creature / map / difficulty / phases / size / ilvl / soft-enrage minutes / berserk spell / name)\n");
|
||||
std::printf(" --validate-wbos <wbos-base> [--json]\n");
|
||||
std::printf(" Static checks: id+name+boss+map+phases+size required, no duplicate ids; warns on non-standard party size, berserkSpellId set without enrageTimerMs, enrage > 30 min\n");
|
||||
std::printf(" --export-wbos-json <wbos-base> [out.json]\n");
|
||||
std::printf(" Export binary .wbos to a human-editable JSON sidecar (defaults to <base>.wbos.json)\n");
|
||||
std::printf(" --import-wbos-json <json-path> [out-base]\n");
|
||||
std::printf(" Import a .wbos.json sidecar back into binary .wbos (all per-entry fields preserved verbatim)\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");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue