feat(pipeline): add WLFG (Wowee Looking-for-Group) catalog

57th open format — replaces LFGDungeons.dbc plus the
AzerothCore-style dungeon-finder reward tables. Defines the
dungeons / raids that the Dungeon Finder / Raid Browser
presents to players, with their level brackets, group-size
requirements, role requirements (tank / heal / DPS), and
queue-completion rewards.

4 difficulty levels (Normal / Heroic / Mythic / Hardmode —
the latter for Ulduar-style toggleable boss difficulty),
4 expansion gates (Classic / TBC / WotLK / TurtleWoW), and
3 role-requirement bits (Tank / Heal / DPS — typically all
three for queue-formed groups).

Cross-references with prior formats — mapId points at
WMS.mapId (the instance map), queueRewardItemId points at
WIT.itemId (the random reward bag), firstClearAchievement
points at WACH.achievementId.

CLI: --gen-lfg (3 classic 5-mans Ragefire/Wailing/Deadmines
with real WoW mapIds + level brackets), --gen-lfg-heroic
(5 WotLK 80-level heroic 5-mans with emblem rewards +
real first-clear achievement IDs from Halls of Lightning
through Old Kingdom), --gen-lfg-raid (3 raid entries —
Naxx-25, Ulduar-25 Hardmode, ToC-25 Mythic), --info-wlfg,
--validate-wlfg with --json variants. Validator catches
id+name+mapId required, difficulty 0..3, expansion 0..3,
minLevel<=maxLevel, recommended-level outside range
warning, unusual groupSize warning (5/10/25/40 are
canonical), and zero role mask (queue can't form a
balanced group).

Format graph: 56 → 57 binary formats. CLI flag count: 804
→ 811.
This commit is contained in:
Kelsi 2026-05-09 20:24:21 -07:00
parent 8a4276338c
commit 385cdd7dc9
10 changed files with 664 additions and 0 deletions

View file

@ -91,6 +91,7 @@
#include "cli_keybindings_catalog.hpp"
#include "cli_tree_summary_md.hpp"
#include "cli_spell_schools_catalog.hpp"
#include "cli_lfg_catalog.hpp"
#include "cli_quest_objective.hpp"
#include "cli_quest_reward.hpp"
#include "cli_clone.hpp"
@ -223,6 +224,7 @@ constexpr DispatchFn kDispatchTable[] = {
handleKeybindingsCatalog,
handleTreeSummaryMd,
handleSpellSchoolsCatalog,
handleLFGCatalog,
handleQuestObjective,
handleQuestReward,
handleClone,