mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-22 23:30:14 +00:00
game: fix Classic 1.12 packed GUID for SMSG_PARTY_MEMBER_STATS
Classic/Vanilla uses ObjectGuid::WriteAsPacked() for party member stats packets (same packed format as WotLK), not full uint64 as TBC does. Reading 8 fixed bytes for the GUID over-read the packed GUID field, misaligning updateFlags and all subsequent stat fields, breaking party frame HP/mana display in Classic.
This commit is contained in:
parent
8014f2650c
commit
d3ec230cec
1 changed files with 5 additions and 4 deletions
|
|
@ -13310,10 +13310,11 @@ void GameHandler::handlePartyMemberStats(network::Packet& packet, bool isFull) {
|
|||
packet.readUInt8();
|
||||
}
|
||||
|
||||
// WotLK uses packed GUID; TBC/Classic use full uint64
|
||||
const bool pmsTbcLike = isClassicLikeExpansion() || isActiveExpansion("tbc");
|
||||
if (remaining() < (pmsTbcLike ? 8u : 1u)) return;
|
||||
uint64_t memberGuid = pmsTbcLike
|
||||
// WotLK and Classic/Vanilla use packed GUID; TBC uses full uint64
|
||||
// (Classic uses ObjectGuid::WriteAsPacked() = packed format, same as WotLK)
|
||||
const bool pmsTbc = isActiveExpansion("tbc");
|
||||
if (remaining() < (pmsTbc ? 8u : 1u)) return;
|
||||
uint64_t memberGuid = pmsTbc
|
||||
? packet.readUInt64() : UpdateObjectParser::readPackedGuid(packet);
|
||||
if (remaining() < 4) return;
|
||||
uint32_t updateFlags = packet.readUInt32();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue