Fix action bar and buff bar spell tooltips showing 'Spell #xxx'

The action bar's inline Spell.dbc loader had a broken field index lookup:
operator[] on the layout map would silently insert 0 if 'Name' wasn't a
key, causing all names to be read from field 0 (the spell ID). Also the
once-only 'attempted' flag meant if assetMgr wasn't ready, it never retried.

Replace the duplicated broken DBC loading in the action bar and buff bar
with SpellbookScreen::lookupSpellName(), which reuses the spellbook's
already-correct loading (expansion layout + WotLK fallback). Remove the
now-unused actionSpellNames/actionSpellDbAttempted/actionSpellDbLoaded fields.
This commit is contained in:
Kelsi 2026-02-17 15:41:55 -08:00
parent bd70ca17ca
commit df0bfaea4f
4 changed files with 16 additions and 41 deletions

View file

@ -203,10 +203,6 @@ private:
TalentScreen talentScreen;
rendering::WorldMap worldMap;
bool actionSpellDbAttempted = false;
bool actionSpellDbLoaded = false;
std::unordered_map<uint32_t, std::string> actionSpellNames;
// Spell icon cache: spellId -> GL texture ID
std::unordered_map<uint32_t, GLuint> spellIconCache_;
// SpellIconID -> icon path (from SpellIcon.dbc)

View file

@ -35,6 +35,9 @@ public:
void toggle() { open = !open; }
void setOpen(bool o) { open = o; }
// Spell name lookup — triggers DBC load if needed, used by action bar tooltips
std::string lookupSpellName(uint32_t spellId, pipeline::AssetManager* assetManager);
// Drag-and-drop state for action bar assignment
bool isDraggingSpell() const { return draggingSpell_; }
uint32_t getDragSpellId() const { return dragSpellId_; }