Commit graph

1 commit

Author SHA1 Message Date
Kelsi
8ab049ff9d feat(pipeline): add WMOU (Wowee Mount catalog) format
Novel open replacement for Blizzard's Mount.dbc +
MountCapability.dbc + MountType.dbc + the mount-related
subsets of Spell.dbc / Item.dbc. The 32nd open format added
to the editor.

Defines all summonable steeds: ground mounts, flying mounts,
swimming mounts, racial mounts (Tauren Plainsrunner for
druids), and class mounts (Warlock dreadsteed, Paladin
charger). Each mount has a summon spell, optional teach
item, riding skill prerequisite, speed bonus, and faction
/ race availability mask.

Cross-references with previously-added formats:
  WMOU.entry.summonSpellId   -> WSPL.entry.spellId
  WMOU.entry.itemIdToLearn   -> WIT.entry.itemId
  WMOU.entry.requiredSkillId -> WSKL.entry.skillId
                                 (Riding skill ID 762)
  WCHC.race.mountSpellId     ~= WMOU.entry.summonSpellId
                                 (loose match by spellId)

Format:
  • magic "WMOU", version 1, little-endian
  • per mount: mountId / name / description / icon /
    displayId / summonSpellId / itemIdToLearn /
    requiredSkillId+Rank / speedPercent / mountKind /
    factionId / categoryId / raceMask

Enums:
  • Kind (5):     Ground / Flying / Swimming / Hybrid /
                   Aquatic
  • Faction (3):  Both / Alliance / Horde
  • Category (8): Common / Epic / Racial / Event /
                   Achievement / Pvp / Quest / ClassMount

API: WoweeMountLoader::save / load / exists / findById.

Three preset emitters showcase typical mount catalogs:
  • makeStarter — 3 mounts (ground horse + epic flying
                   gryphon + aquatic riding turtle)
  • makeRacial  — 6 racial mounts (4 Alliance: Pinto / Ram /
                   Frostsaber / Mechanostrider; 2 Horde:
                   Dire Wolf / Skeletal Horse) with raceMask
                   gating per WCHC race bit positions
  • makeFlying  — 4 flying mounts spanning Common (60%) ->
                   Epic (100%) -> Achievement (280%) -> Pvp
                   (310%) speed tiers

CLI added (5 flags, 621 documented total now):
  --gen-mounts / --gen-mounts-racial / --gen-mounts-flying
  --info-wmou / --validate-wmou

Validator catches: mountId=0 + duplicates, empty name,
summonSpellId=0 (mount cannot be cast), unknown enum values,
speedPercent=0 (no speed bonus), flying mount with
requiredSkillRank<150 (player can't fly), Racial category
without raceMask (any race could use — usually a typo).
2026-05-09 17:23:00 -07:00