Kelsidavis-WoWee/include
Kelsi a50d83f6c9 feat(pipeline): add WGEM (Wowee Gem / Enchantment) format
Novel open replacement for Blizzard's ItemEnchantment.dbc +
GemProperties.dbc + SpellItemEnchantment.dbc. The 35th
open format added to the editor.

Defines two related kinds of item enhancement in one
catalog:
  • Gems         — socketable jewelry pieces with color
                    (red / blue / yellow / meta) that fit
                    into gear sockets, granting stats or
                    triggering passive spells when socketed
  • Enchantments — persistent buffs applied to weapon /
                    armor pieces, either by an enchanter
                    spell or by an item proc (Mongoose,
                    Crusader, Berserking)

Cross-references with previously-added formats:
  WGEM.gem.itemIdToInsert  -> WIT.entry.itemId
  WGEM.gem.spellId         -> WSPL.entry.spellId
  WGEM.enchantment.spellId -> WSPL.entry.spellId

Format:
  • magic "WGEM", version 1, little-endian
  • gems[]: gemId / itemIdToInsert / name / color /
    statType + statValue / requiredItemQuality / spellId
  • enchantments[]: enchantId / name / description /
    iconPath / enchantSlot / statType + statValue /
    spellId / durationSeconds / chargeCount

Enums:
  • Color (8):       Meta / Red / Yellow / Blue / Purple /
                      Green / Orange / Prismatic
  • EnchantSlot (5): Permanent / Temporary / SocketColor /
                      Ring / Cloak

API: WoweeGemLoader::save / load / exists +
WoweeGem::findGem / findEnchant.

Three preset emitters showcase common shapes:
  • makeStarter  — 3 gems (one per primary color) +
                    2 enchantments (proc + stat)
  • makeGemSet   — 6-gem full color palette covering
                    primary + secondary combinations
  • makeEnchants — 5 enchant variants spanning slots
                    (Mongoose / Deadly Poison / stats ring /
                    cloak / Berserking)

CLI added (5 flags, 642 documented total now):
  --gen-gems / --gen-gems-set / --gen-gems-enchants
  --info-wgem / --validate-wgem

Validator catches: ids=0 + duplicates, empty name, color /
slot out of range, stat-only entries with statValue=0 (gem
provides nothing), chargeCount > 0 on non-Temporary
enchant slots (charges silently ignored at runtime).

The validator caught a real preset issue on first run —
the proc enchants (Mongoose / Deadly Poison / Berserking)
had spellId=0 and statValue=0, providing nothing. Fixed by
adding placeholder spellIds in the 28000-29000 range, with
a comment noting they resolve to real WSPL proc spells
when the spell catalog is extended.
2026-05-09 18:01:48 -07:00
..
addons chore(lua): refactor addon Lua engine API + progress docs 2026-04-03 07:31:06 +03:00
audio fix(render): code quality cleanup 2026-04-06 22:43:13 +03:00
auth fix(render): code quality cleanup 2026-04-06 22:43:13 +03:00
core refactor: decompose world map into modular component architecture 2026-04-12 09:52:51 +03:00
game fix(movement): reject server teleports to corrupted near-origin positions 2026-04-24 17:48:49 -07:00
math refactor: extract spline math, consolidate packet parsing, decompose TransportManager 2026-04-11 08:30:28 +03:00
network memory, threading, network hardening 2026-04-06 21:19:37 +03:00
pipeline feat(pipeline): add WGEM (Wowee Gem / Enchantment) format 2026-05-09 18:01:48 -07:00
platform Fix all remaining build warnings and eliminate UB in binary parsers 2026-02-23 19:58:38 -08:00
rendering fix(camera): NaN/range guards on Camera setters 2026-05-06 08:57:31 -07:00
third_party Fix cross-platform FSR3 compile path and Path-A runtime wiring 2026-03-09 04:24:24 -07:00
ui refactor(chat): extract ItemTooltipRenderer, slim render(), consolidate utils 2026-04-12 15:46:03 +03:00