aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/GroupHandler.cpp
diff options
context:
space:
mode:
authorNay <dnpd.dd@gmail.com>2012-08-28 21:02:48 +0100
committerNay <dnpd.dd@gmail.com>2012-08-28 21:02:48 +0100
commit49532cd220df08affcbc7faff0b538ca2837144d (patch)
tree7c96aaf412d91ca90392cd52edccef229ffccd03 /src/server/game/Handlers/GroupHandler.cpp
parent449e577b70dab742942eeae2da88973d36048e8b (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.cpp34
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());