diff options
author | Nay <dnpd.dd@gmail.com> | 2012-08-28 21:02:48 +0100 |
---|---|---|
committer | Nay <dnpd.dd@gmail.com> | 2012-08-28 21:02:48 +0100 |
commit | 49532cd220df08affcbc7faff0b538ca2837144d (patch) | |
tree | 7c96aaf412d91ca90392cd52edccef229ffccd03 /src/server/game/Handlers/GroupHandler.cpp | |
parent | 449e577b70dab742942eeae2da88973d36048e8b (diff) |
Core/Groups: Fix some failures when building stats
Thanks Zakamurite and Kaelima
Diffstat (limited to 'src/server/game/Handlers/GroupHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/GroupHandler.cpp | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/src/server/game/Handlers/GroupHandler.cpp b/src/server/game/Handlers/GroupHandler.cpp index 3296b17ad78..9287045bfb1 100644 --- a/src/server/game/Handlers/GroupHandler.cpp +++ b/src/server/game/Handlers/GroupHandler.cpp @@ -988,7 +988,11 @@ void WorldSession::BuildPartyMemberStatsChangedPacket(Player* player, WorldPacke { AuraApplication const* aurApp = player->GetVisibleAura(i); if (!aurApp) - continue; // mhmm... + { + *data << uint32(0); + *data << uint16(0); + continue; + } *data << uint32(aurApp->GetBase()->GetId()); *data << uint16(aurApp->GetFlags()); @@ -1092,7 +1096,11 @@ void WorldSession::BuildPartyMemberStatsChangedPacket(Player* player, WorldPacke { AuraApplication const* aurApp = pet->GetVisibleAura(i); if (!aurApp) - continue; // mhmm... + { + *data << uint32(0); + *data << uint16(0); + continue; + } *data << uint32(aurApp->GetBase()->GetId()); *data << uint16(aurApp->GetFlags()); @@ -1170,18 +1178,17 @@ void WorldSession::HandleRequestPartyMemberStatsOpcode(WorldPacket& recvData) data << (uint16) player->GetPositionY(); // GROUP_UPDATE_FLAG_POSITION data << (uint16) player->GetPositionZ(); // GROUP_UPDATE_FLAG_POSITION - uint64 auramask = 0; - size_t maskPos = data.wpos(); + // GROUP_UPDATE_FLAG_AURAS data << (uint8) 1; + uint64 auramask = 0; data << (uint64) auramask; // placeholder + size_t maskPos = data.wpos(); data << (uint32) MAX_AURAS; // count for (uint8 i = 0; i < MAX_AURAS; ++i) { - if (auramask & (uint64(1) << i)) + if (AuraApplication const* aurApp = player->GetVisibleAura(i)) { - AuraApplication const* aurApp = player->GetVisibleAura(i); - if (!aurApp) - continue; // mhmm... + auramask |= (uint64(1) << i); data << uint32(aurApp->GetBase()->GetId()); data << uint16(aurApp->GetFlags()); @@ -1212,18 +1219,17 @@ void WorldSession::HandleRequestPartyMemberStatsOpcode(WorldPacket& recvData) data << (uint16) pet->GetPower(petpowertype); // GROUP_UPDATE_FLAG_PET_CUR_POWER data << (uint16) pet->GetMaxPower(petpowertype); // GROUP_UPDATE_FLAG_PET_MAX_POWER - uint64 petauramask = 0; - size_t petMaskPos = data.wpos(); + // GROUP_UPDATE_FLAG_PET_AURAS data << (uint8) 1; + uint64 petauramask = 0; data << (uint64) petauramask; // placeholder + size_t petMaskPos = data.wpos(); data << (uint32) MAX_AURAS; // count for (uint8 i = 0; i < MAX_AURAS; ++i) { - if (auramask & (uint64(1) << i)) + if (AuraApplication const* aurApp = pet->GetVisibleAura(i);) { - AuraApplication const* aurApp = pet->GetVisibleAura(i); - if (!aurApp) - continue; // mhmm... + petauramask |= (uint64(1) << i); data << uint32(aurApp->GetBase()->GetId()); data << uint16(aurApp->GetFlags()); |