mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-08-01 10:21:34 -04:00
item_tooltip_renderer.cpp:378 queries Faction.dbc Name field to
resolve faction IDs to localized names for the 'Requires X Reputation'
line in item tooltips. None of the four dbc_layouts.json defined a
Name entry under Faction; the code's ternary fallback (20u) only
fired when the entire Faction layout was null. With the layout
present, (*layout)['Name'] returned DBC_FIELD_INVALID (0xFFFFFFFF)
and dbc->getString(r, 0xFFFFFFFF) read out of bounds.
Result: s_factionNames never populated → every item with a reputation
requirement displayed 'Unknown Faction'.
Canonical Name column index per Faction.dbc DBC format strings
(string offset to the English-locale entry):
Vanilla 1.12: 19 (cmangos-classic DBCfmt.h FactionEntryfmt:
"niiiiiiiiiiiiiiiiiissssssssxxxxxxxxxx")
TBC 2.4.3: 23 (cmangos-tbc SQLStorages.cpp FactionEntryfmt:
"iiiiiiiiiiiiiiiiiiiffiissssssssssssssss")
WotLK 3.3.5a: 23 (TrinityCore 3.3.5 DBCfmt.h FactionEntryfmt:
"niiiiiiiiiiiiiiiiiiffiissssssssssssssssxxxxxxxxxxxxxxxxxx")
Note: in 1.12 the row layout omits ReputationFlags[4] that TBC/WotLK
added, so the Name string offset moves from 19 → 23 across the
TBC bump.
Same root-cause pattern as bd5e9aa2 and 50e31ab0 (DBC field referenced
by code but missing from layout JSON → operator[] sentinel beats
the ternary fallback).