fix: normalize TBC SMSG_INIT_EXTRA_AURA_INFO_OBSOLETE harmful bit to WotLK debuff convention

TBC aura packets (SMSG_INIT_EXTRA_AURA_INFO_OBSOLETE / SMSG_SET_EXTRA_AURA_INFO_OBSOLETE)
use flag bit 0x02 for harmful (debuff) auras, same as Classic 1.12. The UI checks bit 0x80
for debuff display, following the WotLK SMSG_AURA_UPDATE convention. Without normalization,
all TBC debuffs were displayed in the buff bar instead of the debuff bar.

Normalize using (flags & 0x02) ? 0x80 : 0, matching the fix applied to Classic in 9b09278.
This commit is contained in:
Kelsi 2026-03-12 21:39:22 -07:00
parent 9b092782c9
commit 4c1bc842bc

View file

@ -5462,7 +5462,9 @@ void GameHandler::handlePacket(network::Packet& packet) {
while (auraList->size() <= slot) auraList->push_back(AuraSlot{});
AuraSlot& a = (*auraList)[slot];
a.spellId = spellId;
a.flags = flags;
// TBC uses same flag convention as Classic: 0x02=harmful, 0x04=beneficial.
// Normalize to WotLK SMSG_AURA_UPDATE convention: 0x80=debuff, 0=buff.
a.flags = (flags & 0x02) ? 0x80u : 0u;
a.durationMs = (durationMs == 0xFFFFFFFF) ? -1 : static_cast<int32_t>(durationMs);
a.maxDurationMs= (maxDurMs == 0xFFFFFFFF) ? -1 : static_cast<int32_t>(maxDurMs);
a.receivedAtMs = nowMs;