mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-22 23:30:14 +00:00
game: add Classic 1.12 parseAuraUpdate override to restore aura tracking
Classic 1.12 sends SMSG_AURA_UPDATE/SMSG_AURA_UPDATE_ALL, but ClassicPacketParsers inherited TBC's override which returns false (TBC uses a different aura system and doesn't send SMSG_AURA_UPDATE at all). Classic aura format differs from WotLK in two key ways: - DURATION flag bit is 0x10 in Vanilla, not 0x20 as in WotLK; reading with the WotLK parser would incorrectly gate duration reads and misparse aura fields - No caster GUID field in Classic; WotLK parser tries to read one (gated by 0x08) which would consume spell ID or flag bytes from the next aura slot With this override, player/target aura bars and buff tracking work correctly on Classic 1.12 connections for the first time.
This commit is contained in:
parent
b15a21a957
commit
cb0dfddf59
2 changed files with 64 additions and 0 deletions
|
|
@ -412,6 +412,9 @@ public:
|
|||
bool parseAttackerStateUpdate(network::Packet& packet, AttackerStateUpdateData& data) override;
|
||||
bool parseSpellDamageLog(network::Packet& packet, SpellDamageLogData& data) override;
|
||||
bool parseSpellHealLog(network::Packet& packet, SpellHealLogData& data) override;
|
||||
// Classic 1.12 has SMSG_AURA_UPDATE (unlike TBC which doesn't);
|
||||
// format differs from WotLK: no caster GUID, DURATION flag is 0x10 not 0x20
|
||||
bool parseAuraUpdate(network::Packet& packet, AuraUpdateData& data, bool isAll = false) override;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue