diff options
Diffstat (limited to 'src/server/game/Handlers/GroupHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/GroupHandler.cpp | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/src/server/game/Handlers/GroupHandler.cpp b/src/server/game/Handlers/GroupHandler.cpp index 6b5b92fd63a..03d4cb6e367 100644 --- a/src/server/game/Handlers/GroupHandler.cpp +++ b/src/server/game/Handlers/GroupHandler.cpp @@ -33,6 +33,7 @@ #include "WorldPacket.h" #include "WorldSession.h" #include "SpellAuraEffects.h" +#include "MiscPackets.h" class Aura; @@ -648,13 +649,13 @@ void WorldSession::HandleMinimapPingOpcode(WorldPacket& recvData) GetPlayer()->GetGroup()->BroadcastPacket(&data, true, -1, GetPlayer()->GetGUID()); } -void WorldSession::HandleRandomRollOpcode(WorldPacket& recvData) +void WorldSession::HandleRandomRollOpcode(WorldPackets::Misc::RandomRollClient& packet) { TC_LOG_DEBUG("network", "WORLD: Received CMSG_RANDOM_ROLL"); uint32 minimum, maximum, roll; - recvData >> minimum; - recvData >> maximum; + minimum = packet.Min; + maximum = packet.Max; /** error handling **/ if (minimum > maximum || maximum > 10000) // < 32768 for urand call @@ -666,15 +667,16 @@ void WorldSession::HandleRandomRollOpcode(WorldPacket& recvData) //TC_LOG_DEBUG("misc", "ROLL: MIN: %u, MAX: %u, ROLL: %u", minimum, maximum, roll); - WorldPacket data(SMSG_RANDOM_ROLL, 4+4+4+8); - data << uint32(minimum); - data << uint32(maximum); - data << uint32(roll); - data << GetPlayer()->GetGUID(); + WorldPackets::Misc::RandomRoll randomRoll; + randomRoll.Min = minimum; + randomRoll.Max = maximum; + randomRoll.Result = roll; + randomRoll.Roller = GetPlayer()->GetGUID(); + randomRoll.RollerWowAccount = GetAccountGUID(); if (GetPlayer()->GetGroup()) - GetPlayer()->GetGroup()->BroadcastPacket(&data, false); + GetPlayer()->GetGroup()->BroadcastPacket(randomRoll.Write(), false); else - SendPacket(&data); + SendPacket(randomRoll.Write()); } void WorldSession::HandleRaidTargetUpdateOpcode(WorldPacket& recvData) |