mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-05-11 03:23:51 +00:00
feat(editor): add WSEF JSON round-trip (--export/--import-wsef-json)
Closes the editing loop on the spell-effect-type catalog: dump a
.wsef to JSON, hand-edit effectKind / behaviorFlags / baseAmount
(e.g. tag a server-custom effect ID as Damage kind, add
IgnoresImmunities to a custom dispel, retune ScriptedHeal's
default baseAmount), re-import to a byte-identical binary.
Two dual-encoded fields:
- effectKind: int 0..9 OR "damage" / "heal" / "aura" /
"energize" / "trigger" / "movement" / "summon" / "dispel"
/ "dummy" / "misc"
- behaviorFlags: int bitfield OR pipe-separated label string
("RequiresTarget|IsHostileEffect|TriggersGCD"). Importer
prefers int form when both present so unknown bits round-
trip losslessly.
Verified byte-identical round-trip on all three presets
(damage / healing / aura). CLI flag count 994 -> 996.
This commit is contained in:
parent
24e9a55a10
commit
9f5678f67e
3 changed files with 180 additions and 0 deletions
|
|
@ -1905,6 +1905,10 @@ void printUsage(const char* argv0) {
|
|||
std::printf(" Print WSEF entries (id / kind / baseAmount / behavior flags / name) — flags decoded as label list\n");
|
||||
std::printf(" --validate-wsef <wsef-base> [--json]\n");
|
||||
std::printf(" Static checks: name required, effectKind 0..9, no duplicate ids; warns on Hostile+Beneficial conflict, Damage without TriggersGCD, Heal without IsBeneficialEffect\n");
|
||||
std::printf(" --export-wsef-json <wsef-base> [out.json]\n");
|
||||
std::printf(" Export binary .wsef to a human-editable JSON sidecar (defaults to <base>.wsef.json)\n");
|
||||
std::printf(" --import-wsef-json <json-path> [out-base]\n");
|
||||
std::printf(" Import a .wsef.json sidecar back into binary .wsef (accepts effectKind int OR effectKindName string; behaviorFlags int OR pipe-separated label string)\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