feat(pipeline): add WHOL (Wowee Holiday) catalog

44th open format — replaces Holidays.dbc + HolidayDescriptions.dbc
+ HolidayNames.dbc plus the AzerothCore-style game_event SQL
tables. Defines time-gated world events: seasonal holidays
(Hallow's End / Brewfest / Winter Veil), weekly call-to-arms BG
bonuses, world-PvP windows (Wintergrasp), one-shot specials, and
recurring daily / weekly resets. Each holiday has a recurrence
rule (Annual / Monthly / WeeklyRecur / OneTime), a calendar
window (startMonth + startDay + durationHours), and optional
cross-refs to a feature creature, an intro quest, and a token /
item reward issued during the window.

Cross-references with prior formats — holidayQuestId points at
WQT.questId, bossCreatureId points at WCRT.creatureId,
itemRewardId points at WIT.itemId, and areaIdGate / mapIdGate
point at WMS.areaId / WMS.mapId.

CLI: --gen-holidays (3 seasonal starter), --gen-holidays-weekly
(3 weekly BG call-to-arms windows), --gen-holidays-special (3
world-PvP / lunar / children events), --info-whol, --validate-whol
with --json variants. Validator catches id=0/duplicates, kind /
recurrence out of range, durationHours=0, invalid month/day for
non-weekly recurrence, and calendar-only events (no quest +
boss + reward) as a warning.
This commit is contained in:
Kelsi 2026-05-09 19:05:33 -07:00
parent be96775dc6
commit 2666b976c9
8 changed files with 690 additions and 0 deletions

View file

@ -71,6 +71,7 @@
#include "cli_cinematics_catalog.hpp"
#include "cli_glyphs_catalog.hpp"
#include "cli_vehicles_catalog.hpp"
#include "cli_holidays_catalog.hpp"
#include "cli_quest_objective.hpp"
#include "cli_quest_reward.hpp"
#include "cli_clone.hpp"
@ -183,6 +184,7 @@ constexpr DispatchFn kDispatchTable[] = {
handleCinematicsCatalog,
handleGlyphsCatalog,
handleVehiclesCatalog,
handleHolidaysCatalog,
handleQuestObjective,
handleQuestReward,
handleClone,