mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-27 01:00:13 +00:00
Fix AURA_UPDATE_ALL parsing of per-effect amounts
Only read effect amount int32 for active effect indices (flags 0x01, 0x02, 0x04) instead of always reading 3. The over-read desynchronized the packet position, corrupting subsequent aura slots in ALL updates.
This commit is contained in:
parent
aa462fdb1f
commit
a01cec68a4
1 changed files with 6 additions and 4 deletions
|
|
@ -2079,11 +2079,13 @@ bool AuraUpdateParser::parse(network::Packet& packet, AuraUpdateData& data, bool
|
|||
aura.durationMs = static_cast<int32_t>(packet.readUInt32());
|
||||
}
|
||||
|
||||
if (aura.flags & 0x40) { // EFFECT_AMOUNTS - skip
|
||||
// 3 effect amounts
|
||||
if (aura.flags & 0x40) { // EFFECT_AMOUNTS
|
||||
// Only read amounts for active effect indices (flags 0x01, 0x02, 0x04)
|
||||
for (int i = 0; i < 3; ++i) {
|
||||
if (packet.getReadPos() < packet.getSize()) {
|
||||
packet.readUInt32();
|
||||
if (aura.flags & (1 << i)) {
|
||||
if (packet.getReadPos() < packet.getSize()) {
|
||||
packet.readUInt32();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue