mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-22 23:30:14 +00:00
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:
parent
9b092782c9
commit
4c1bc842bc
1 changed files with 3 additions and 1 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue