feat(pipeline): WLOC world locations catalog (134th open format)

Novel unified replacement for the half-dozen proprietary
location tables vanilla WoW scattered across AreaPOI.dbc
(zone-discovery landmarks), gameobject_template.spawn rows
(herb/mineral/fishing nodes), creature_template rare-spawn
entries, and AreaTrigger.dbc (zone boundary teleports). Each
WLOC entry binds one world coord (mapId, x, y, z) to its kind
(POI / RareSpawn / HerbNode / MineralVein / FishingSpot /
AreaTrigger / PortalLanding), respawn timer, gathering-skill
gate, and on-discovery XP.

Three presets covering the major location flavors:
  --gen-loc-poi   4 Alliance POIs (Stormwind/Ironforge/
                  Goldshire/Sentinel Hill) with discoverable
                  XP (50..100) and POI-kind iconry
  --gen-loc-herb  5 Elwynn/Westfall herb nodes (Peacebloom
                  skill 1 to Stranglekelp skill 85) with 600s
                  respawn and Herbalism (skillId 182) gating
  --gen-loc-rare  4 vanilla rare-elites with realistic
                  respawn timers (Mor'Ladim 1hr, Princess
                  Tempestria 2hr, Foreman Rigger 30min, Lord
                  Sakrasis 1hr)

Validator catches: id+name required, locKind 0..6,
factionAccess 0..3, no duplicate locationIds, spawnable kinds
(Rare/Herb/Mineral/Fishing) MUST have respawnSec > 0 (else
entity spawns once and never returns — common typo when
adding new spawns). Warns on discoverableXp set with non-POI
kind (XP would never award), requiredSkillId set with non-
gather kind (skill check would never fire), and gather kind
with skill > 0 but level = 0 (every player satisfies — almost
certainly a typo).

Format count 133 -> 134. CLI flag count 1400 -> 1407.
This commit is contained in:
Kelsi 2026-05-10 04:37:08 -07:00
parent 6c77419633
commit fd6039973a
10 changed files with 808 additions and 0 deletions

View file

@ -410,6 +410,8 @@ const char* const kArgRequired[] = {
"--gen-cra-alchemy", "--gen-cra-engineering", "--gen-cra-blacksmithing",
"--info-wcra", "--validate-wcra",
"--export-wcra-json", "--import-wcra-json",
"--gen-loc-poi", "--gen-loc-herb", "--gen-loc-rare",
"--info-wloc", "--validate-wloc",
"--gen-weather-temperate", "--gen-weather-arctic",
"--gen-weather-desert", "--gen-weather-stormy",
"--gen-zone-atmosphere",