Kelsidavis-WoWee/include/pipeline
Kelsi abf264abfe feat(editor): add WBAB (Buff & Aura Book) — 102nd open format
Novel replacement for the implicit rank-chain
relationships that vanilla WoW encoded by burying
nextRank/prevRank pointers inside Spell.dbc with no
explicit graph structure. Each WBAB entry is one long-
duration class buff at one specific rank, with explicit
edges to adjacent ranks via previousRankId and
nextRankId fields. The graph-shaped data is novel among
the 100+ catalog set: most catalogs have flat rows; WBAB
is genuinely a graph where rows are nodes and the rank
fields are edges.

Both directions are stored explicitly so the spellbook
UI's "upgrade to next rank" button can traverse without
scanning the full table. Helper methods walkChainBack-
ToRoot() returns the full chain root->tip for the rank-
picker widget; findChainTip() returns the highest rank
for auto-cast logic.

Three preset emitters demonstrating the pattern:
makeMage (Arcane Intellect ranks 1-4 with chain edges),
makeDruid (Mark of the Wild ranks 1-5 with chain edges),
makeRaidMax (6 max-rank standalone raid buffs — one per
buffing class — with no chain edges to show the
standalone case).

Validator catches several rank-chain-specific bugs:
self-referencing edges (entry.next == entry.id would
create a 1-element cycle), missing referenced entries
(next/prev pointing to non-existent ids), and most
importantly back-edge symmetry — if A.nextRankId=B then
B.previousRankId MUST equal A.buffId or the spellbook
upgrade traversal will derail. Symmetric back-edge check
is unique to graph-shaped catalogs.

Also fixed a crash in --catalog-find where the recursive
directory iterator threw on permission-denied subdirs
(common when walking /tmp). Now uses the
skip_permission_denied directory_options + per-step
error_code clearing for defensive resumption.

Format count 101 -> 102. CLI flag count 1134 -> 1139.
2026-05-10 01:13:42 -07:00
..
adt_loader.hpp feat(adt): preserve MODF nameSet + scale fields across load/save round-trip 2026-05-06 03:37:13 -07:00
asset_manager.hpp feat(runtime): pick up WHM/WOT/WOC sidecars from asset tree 2026-05-06 10:48:40 -07:00
asset_manifest.hpp feat(editor): add standalone world editor (rough/WIP) 2026-05-05 03:47:03 -07:00
blp_loader.hpp Add attribution and source citations for open source release 2026-02-02 22:09:33 -08:00
custom_zone_discovery.hpp feat: custom zone discovery system for client auto-detection 2026-05-05 10:01:05 -07:00
dbc_layout.hpp fix: auto-detect CharSections.dbc layout and add Blood Elf/Draenei NPC voices 2026-03-23 11:00:49 -07:00
dbc_loader.hpp feat: complete client integration for all 6 open formats 2026-05-05 12:41:19 -07:00
loose_file_reader.hpp Replace MPQ runtime with loose file asset system 2026-02-12 20:32:14 -08:00
m2_loader.hpp feat: implement M2 ribbon emitter rendering for spell trail effects 2026-03-13 01:17:30 -07:00
terrain_mesh.hpp Initial commit: wowee native WoW 3.3.5a client 2026-02-02 13:03:22 -08:00
wdt_loader.hpp Add instance support: WDT parser, WMO-only map loading, area triggers, BG queue accept 2026-02-26 17:56:11 -08:00
wmo_loader.hpp wmo: apply MOHD ambient color to interior group lighting 2026-03-09 21:27:01 -07:00
wowee_achievement_criteria.hpp feat(editor): add WACR (Achievement Criteria) open catalog format 2026-05-09 22:43:44 -07:00
wowee_achievements.hpp feat(pipeline): add WACH (Wowee Achievement Catalog) format 2026-05-09 16:04:30 -07:00
wowee_action_bars.hpp feat(editor): add WACT (Action Bar Layout) open catalog format 2026-05-10 00:11:53 -07:00
wowee_animations.hpp feat(pipeline): add WANI (Wowee Animation) catalog 2026-05-09 19:19:13 -07:00
wowee_auction.hpp feat(pipeline): add WAUC (Wowee Auction House) catalog 2026-05-09 18:34:54 -07:00
wowee_bags.hpp feat(pipeline): add WBNK (Wowee Bag / Bank Slot) catalog 2026-05-09 20:46:06 -07:00
wowee_battlegrounds.hpp feat(pipeline): add WBGD (Wowee Battleground Definition) format 2026-05-09 17:30:59 -07:00
wowee_boss_encounters.hpp feat(editor): add WBOS (Boss Encounter Definition) open catalog format 2026-05-09 23:45:26 -07:00
wowee_buff_book.hpp feat(editor): add WBAB (Buff & Aura Book) — 102nd open format 2026-05-10 01:13:42 -07:00
wowee_building.hpp feat(wob): tryLoadByGamePath helper, used by editor + terrain_manager 2026-05-06 04:10:12 -07:00
wowee_channels.hpp feat(pipeline): add WCHN (Wowee Chat Channel) catalog 2026-05-09 18:43:26 -07:00
wowee_char_features.hpp feat(pipeline): add WCHF (Wowee Character Customization Feature) catalog 2026-05-09 20:35:21 -07:00
wowee_chars.hpp feat(pipeline): add WCHC (Wowee Character Classes/Races) format 2026-05-09 16:47:04 -07:00
wowee_cinematics.hpp feat(pipeline): add WCMS (Wowee Cinematic) catalog 2026-05-09 18:50:43 -07:00
wowee_collision.hpp feat(woc): add WMO collision meshes to exported zone collision 2026-05-06 02:33:22 -07:00
wowee_combat_maneuvers.hpp feat(editor): add WCMG (Combat Maneuver Group) open catalog format 2026-05-10 00:41:45 -07:00
wowee_combat_ratings.hpp feat(pipeline): add WCRR (Wowee Combat Rating Conversion) catalog 2026-05-09 21:11:26 -07:00
wowee_companions.hpp feat(pipeline): add WCMP (Wowee Companion Pet) catalog 2026-05-09 20:05:06 -07:00
wowee_conditions.hpp feat(pipeline): add WPCD (Wowee Player Condition) format 2026-05-09 18:18:27 -07:00
wowee_creature_difficulties.hpp feat(editor): add WCDF (Creature Difficulty) open catalog format 2026-05-09 22:10:09 -07:00
wowee_creature_equipment.hpp feat(pipeline): add WCEQ (Wowee Creature Equipment) — 50th open format 2026-05-09 19:48:13 -07:00
wowee_creature_families.hpp feat(editor): add WCEF (Creature Family) open catalog format 2026-05-09 21:54:00 -07:00
wowee_creature_patrols.hpp feat(editor): add WCMR (Creature Patrol Path) — 90th open format milestone 2026-05-09 23:38:59 -07:00
wowee_creatures.hpp feat(pipeline): add WCRT (Wowee Creature Template) format 2026-05-09 15:18:44 -07:00
wowee_currency_types.hpp feat(editor): add WCTR (Currency Type) open catalog format 2026-05-09 22:31:42 -07:00
wowee_emotes.hpp feat(editor): add WEMO (Emote Definition) — 101st open format 2026-05-10 00:53:33 -07:00
wowee_events.hpp feat(pipeline): add WSEA (Wowee Seasonal Event) format 2026-05-09 17:14:46 -07:00
wowee_factions.hpp feat(pipeline): add WFAC (Wowee Faction Catalog) format 2026-05-09 15:37:59 -07:00
wowee_game_tips.hpp feat(pipeline): add WGTP (Wowee Game Tips) catalog 2026-05-09 20:00:56 -07:00
wowee_gems.hpp feat(pipeline): add WGEM (Wowee Gem / Enchantment) format 2026-05-09 18:01:48 -07:00
wowee_glyph_slots.hpp feat(editor): add WGFS (Glyph Slot) open catalog format 2026-05-09 22:05:05 -07:00
wowee_glyphs.hpp feat(pipeline): add WGLY (Wowee Glyph) catalog 2026-05-09 18:55:22 -07:00
wowee_gossip.hpp feat(pipeline): add WGSP (Wowee Gossip Menu) format 2026-05-09 16:20:07 -07:00
wowee_group_compositions.hpp feat(editor): add WGRP (Group Composition) open catalog format 2026-05-10 00:20:44 -07:00
wowee_guilds.hpp feat(pipeline): add WGLD (Wowee Guild) catalog format 2026-05-09 18:10:45 -07:00
wowee_hearth_binds.hpp feat(editor): add WHRT (Hearth Bind Point) open catalog format 2026-05-10 00:25:55 -07:00
wowee_holidays.hpp feat(pipeline): add WHOL (Wowee Holiday) catalog 2026-05-09 19:05:33 -07:00
wowee_instance_lockouts.hpp feat(editor): add WHLD (Instance Lockout Schedule) open catalog format 2026-05-09 23:51:49 -07:00
wowee_item_flags.hpp feat(editor): add WIFS (Item Flag Set) open catalog format 2026-05-09 23:10:35 -07:00
wowee_item_materials.hpp feat(editor): add WMAT (Item Material) open catalog format 2026-05-09 22:14:44 -07:00
wowee_item_qualities.hpp feat(editor): add WIQR (Item Quality) open catalog format 2026-05-09 22:59:27 -07:00
wowee_item_sets.hpp feat(pipeline): add WSET (Wowee Item Set / Tier Bonus) catalog 2026-05-09 19:54:36 -07:00
wowee_item_suffixes.hpp feat(pipeline): add WSUF (Wowee Item Random Suffix) catalog 2026-05-09 21:05:49 -07:00
wowee_items.hpp feat(pipeline): add WIT (Wowee Item Template) format 2026-05-09 15:04:48 -07:00
wowee_keybindings.hpp feat(pipeline): add WKBD (Wowee Keybinding) catalog 2026-05-09 20:13:37 -07:00
wowee_lfg.hpp feat(pipeline): add WLFG (Wowee Looking-for-Group) catalog 2026-05-09 20:24:21 -07:00
wowee_light.hpp feat(pipeline): add WOL preset variants for cave/dungeon/night 2026-05-09 14:01:26 -07:00
wowee_liquids.hpp feat(pipeline): add WLIQ (Wowee Liquid Type) catalog 2026-05-09 19:10:03 -07:00
wowee_loading_screens.hpp feat(pipeline): add WLDS (Wowee Loading Screen) catalog 2026-05-09 20:59:25 -07:00
wowee_locks.hpp feat(pipeline): add WLCK (Wowee Lock Template) format 2026-05-09 15:44:26 -07:00
wowee_loot.hpp feat(pipeline): add WLOT (Wowee Loot Table) format 2026-05-09 15:11:08 -07:00
wowee_macros.hpp feat(pipeline): add WMAC (Wowee Macro / Slash Command) catalog 2026-05-09 20:30:17 -07:00
wowee_mail.hpp feat(pipeline): add WMAL (Wowee Mail Template) format 2026-05-09 17:41:03 -07:00
wowee_maps.hpp feat(pipeline): add WMS (Wowee Map / Area) catalog format 2026-05-09 16:40:00 -07:00
wowee_model.hpp feat(extract): emit WOM and WOB side-files (M2/WMO → open formats) 2026-05-06 10:32:17 -07:00
wowee_mounts.hpp feat(pipeline): add WMOU (Wowee Mount catalog) format 2026-05-09 17:23:00 -07:00
wowee_npc_services.hpp feat(editor): add WBKD (NPC Service Definition) open catalog format 2026-05-09 23:15:20 -07:00
wowee_objects.hpp feat(pipeline): add WGOT (Wowee Game Object Template) format 2026-05-09 15:31:49 -07:00
wowee_pets.hpp feat(pipeline): add WPET (Wowee Pet System) catalog 2026-05-09 18:27:02 -07:00
wowee_player_conditions.hpp feat(pipeline): add WPCN (Wowee Player Condition) catalog 2026-05-09 19:36:56 -07:00
wowee_player_spawn_profiles.hpp feat(editor): add WPSP (Player Spawn Profile) open catalog format 2026-05-09 22:22:57 -07:00
wowee_pvp.hpp feat(pipeline): add WPVP (Wowee PvP Honor / Rank) — 60th open format 2026-05-09 20:41:09 -07:00
wowee_quest_sorts.hpp feat(pipeline): add WQSO (Wowee Quest Sort) catalog 2026-05-09 21:23:38 -07:00
wowee_quests.hpp feat(pipeline): add WQT (Wowee Quest Template) format 2026-05-09 15:25:02 -07:00
wowee_realm_list.hpp feat(editor): add WMSP (Master Server Profile) — 100th open format 2026-05-10 00:47:02 -07:00
wowee_runes.hpp feat(pipeline): add WRUN (Wowee DK Rune Cost) catalog 2026-05-09 20:52:19 -07:00
wowee_server_broadcasts.hpp feat(editor): add WSCB (Server Channel Broadcast) open catalog format 2026-05-10 00:31:15 -07:00
wowee_skill_costs.hpp feat(editor): add WSCS (Skill Cost) open catalog format 2026-05-09 23:04:02 -07:00
wowee_skills.hpp feat(pipeline): add WSKL (Wowee Skill Catalog) format 2026-05-09 15:50:25 -07:00
wowee_sound.hpp feat(pipeline): add WSND (Wowee Sound Catalog) format 2026-05-09 14:47:16 -07:00
wowee_spawns.hpp feat(pipeline): add WSPN (Wowee Spawn Point catalog) format 2026-05-09 14:57:53 -07:00
wowee_spell_aura_types.hpp feat(editor): add WAUR (Spell Aura Type) — companion to WSEF, CLI flag count breaks 1000 2026-05-09 22:54:53 -07:00
wowee_spell_cast_times.hpp feat(editor): add WSCT (Spell Cast Time Index) open catalog format 2026-05-09 21:37:42 -07:00
wowee_spell_cooldowns.hpp feat(editor): add WSCD (Spell Cooldown Category) open catalog format 2026-05-09 21:49:13 -07:00
wowee_spell_durations.hpp feat(editor): add WSDR (Spell Duration Index) — completes WSRG/WSCT/WSDR triplet 2026-05-09 21:41:55 -07:00
wowee_spell_effect_types.hpp feat(editor): add WSEF (Spell Effect Type) open catalog format 2026-05-09 22:50:13 -07:00
wowee_spell_mechanics.hpp feat(pipeline): add WSMC (Wowee Spell Mechanic) catalog 2026-05-09 20:09:44 -07:00
wowee_spell_power_costs.hpp feat(editor): add WSPC (Spell Power Cost) — completes spell-bucket five-pack 2026-05-09 22:00:55 -07:00
wowee_spell_procs.hpp feat(editor): add WSPS (Spell Proc Trigger) open catalog format 2026-05-09 23:32:25 -07:00
wowee_spell_ranges.hpp feat(editor): add WSRG (Spell Range Index) open catalog format 2026-05-09 21:33:17 -07:00
wowee_spell_reagents.hpp feat(editor): add WSPR (Spell Reagent) — 80th open format milestone 2026-05-09 22:38:36 -07:00
wowee_spell_schools.hpp feat(pipeline): add WSCH (Wowee Spell School) catalog 2026-05-09 20:19:34 -07:00
wowee_spell_visuals.hpp feat(pipeline): add WSVK (Wowee Spell Visual Kit) catalog 2026-05-09 19:23:36 -07:00
wowee_spells.hpp feat(pipeline): add WSPL (Wowee Spell Catalog) format 2026-05-09 15:58:09 -07:00
wowee_stable_slots.hpp feat(editor): add WSTC (Hunter Stable Slot) open catalog format 2026-05-09 23:58:49 -07:00
wowee_stat_curves.hpp feat(editor): add WSTM (Stat Modifier Curve) open catalog format 2026-05-10 00:05:07 -07:00
wowee_talent_tabs.hpp feat(editor): add WTLE (Talent Tab) open catalog format 2026-05-09 22:27:18 -07:00
wowee_talents.hpp feat(pipeline): add WTAL (Wowee Talent catalog) format 2026-05-09 16:33:45 -07:00
wowee_taxi.hpp feat(pipeline): add WTAX (Wowee Taxi catalog) format 2026-05-09 16:26:27 -07:00
wowee_terrain_loader.hpp feat: integrate Wowee Open Terrain loader into client terrain pipeline 2026-05-05 09:56:24 -07:00
wowee_titles.hpp feat(pipeline): add WTIT (Wowee Title catalog) format 2026-05-09 17:07:56 -07:00
wowee_token_rewards.hpp feat(editor): add WTBR (Token Reward) open catalog format 2026-05-09 23:26:13 -07:00
wowee_tokens.hpp feat(pipeline): add WTKN (Wowee Token catalog) format 2026-05-09 16:53:11 -07:00
wowee_trade_skills.hpp feat(pipeline): add WTSK (Wowee Trade Skill / Recipe) catalog 2026-05-09 19:41:49 -07:00
wowee_trainers.hpp feat(pipeline): add WTRN (Wowee Trainer / Vendor catalog) format 2026-05-09 16:12:58 -07:00
wowee_triggers.hpp feat(pipeline): add WTRG (Wowee Area Trigger) format 2026-05-09 17:01:43 -07:00
wowee_unit_movement.hpp feat(pipeline): add WUMV (Wowee Unit Movement Type) catalog 2026-05-09 21:18:03 -07:00
wowee_vehicles.hpp feat(pipeline): add WVHC (Wowee Vehicle) catalog 2026-05-09 18:59:49 -07:00
wowee_weather.hpp feat(pipeline): add Wowee Open Weather (.wow) zone schedule 2026-05-09 14:10:13 -07:00
wowee_world_map.hpp feat(pipeline): add WOMX (Wowee World Map index) format 2026-05-09 14:38:05 -07:00
wowee_world_state_ui.hpp feat(pipeline): add WWUI (Wowee World-State UI) catalog 2026-05-09 19:32:15 -07:00