mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-05-10 19:13:52 +00:00
feat(editor): add WSRG (Spell Range Index) open catalog format
Open replacement for Blizzard's SpellRange.dbc plus the per-spell range-bucket fields in Spell.dbc. Defines the categorical range buckets that spells reference instead of carrying their own min/max yards (every Frostbolt shares one 30y bucket; every Heal shares one 40y friendly bucket). Each entry carries separate min/max for hostile vs friendly targets so heals can reach further on allies than nukes do on enemies, plus an icon color for HUD range indicators. Three preset emitters: --gen-srg (3 baseline buckets: Self/Melee/Spell), --gen-srg-ranged (5 ranged spell buckets: Short/Medium/Long/VeryLong/Unlimited), --gen-srg-friendly (3 friendly-only buckets where hostile range is 0). --info-wsrg and --validate-wsrg round out the per-format surface; validation catches negative ranges, min>max, duplicate ids, out-of-range rangeKind, and warns on Self+nonzero range or Melee>8y. Wired through the cross-format table so WSRG appears automatically in --list-formats, --info-magic, --diff-headers, --summary-dir, --rename-by-magic, --catalog-grep, --tree-summary-md, and --touch-tree. Format count 67 -> 68; CLI flag count 885 -> 890.
This commit is contained in:
parent
99a952299b
commit
ede2d9918a
10 changed files with 620 additions and 0 deletions
|
|
@ -1687,6 +1687,16 @@ void printUsage(const char* argv0) {
|
|||
std::printf(" Export binary .wqso to a human-editable JSON sidecar (defaults to <base>.wqso.json)\n");
|
||||
std::printf(" --import-wqso-json <json-path> [out-base]\n");
|
||||
std::printf(" Import a .wqso.json sidecar back into binary .wqso (accepts sortKind int OR name string)\n");
|
||||
std::printf(" --gen-srg <wsrg-base> [name]\n");
|
||||
std::printf(" Emit .wsrg starter: 3 baseline range buckets (Self 0-0 / Melee 0-5 / Spell 0-30)\n");
|
||||
std::printf(" --gen-srg-ranged <wsrg-base> [name]\n");
|
||||
std::printf(" Emit .wsrg 5 ranged spell buckets (Short 20y / Medium 30y / Long 40y / VeryLong 100y / Unlimited)\n");
|
||||
std::printf(" --gen-srg-friendly <wsrg-base> [name]\n");
|
||||
std::printf(" Emit .wsrg 3 friendly-only buckets (Heal 40y / Cleanse 30y / Buff 30y) where hostile range = 0\n");
|
||||
std::printf(" --info-wsrg <wsrg-base> [--json]\n");
|
||||
std::printf(" Print WSRG entries (id / kind / hostile + friendly min-max yards / icon color / name)\n");
|
||||
std::printf(" --validate-wsrg <wsrg-base> [--json]\n");
|
||||
std::printf(" Static checks: id+name required, rangeKind 0..6, min<=max, no negatives, no duplicate ids; warns on Self+nonzero range and Melee>8y\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