diff options
Diffstat (limited to 'src/server/game/Handlers/MiscHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/MiscHandler.cpp | 40 |
1 files changed, 15 insertions, 25 deletions
diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp index 569bcf73ffa..e2c71e65e87 100644 --- a/src/server/game/Handlers/MiscHandler.cpp +++ b/src/server/game/Handlers/MiscHandler.cpp @@ -61,12 +61,10 @@ #include "ClientConfigPackets.h" #include "MiscPackets.h" -void WorldSession::HandleRepopRequestOpcode(WorldPacket& recvData) +void WorldSession::HandleRepopRequest(WorldPackets::Misc::RepopRequest& packet) { TC_LOG_DEBUG("network", "WORLD: Recvd CMSG_REPOP_REQUEST Message"); - recvData.read_skip<uint8>(); - if (GetPlayer()->IsAlive() || GetPlayer()->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_GHOST)) return; @@ -501,14 +499,14 @@ void WorldSession::HandleZoneUpdateOpcode(WorldPacket& recvData) //GetPlayer()->SendInitWorldStates(true, newZone); } -void WorldSession::HandleReturnToGraveyard(WorldPacket& /*recvPacket*/) +void WorldSession::HandlePortGraveyard(WorldPackets::Misc::PortGraveyard& /*packet*/) { if (GetPlayer()->IsAlive() || !GetPlayer()->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_GHOST)) return; GetPlayer()->RepopAtGraveyard(); } -void WorldSession::HandleRequestCemeteryList(WorldPacket& /*recvPacket*/) +void WorldSession::HandleRequestCemeteryList(WorldPackets::Misc::RequestCemeteryList& /*packet*/) { uint32 zoneId = _player->GetZoneId(); uint32 team = _player->GetTeam(); @@ -529,14 +527,14 @@ void WorldSession::HandleRequestCemeteryList(WorldPacket& /*recvPacket*/) return; } - WorldPacket data(SMSG_REQUEST_CEMETERY_LIST_RESPONSE, 4 + 4 * graveyardIds.size()); - data.WriteBit(0); // Is MicroDungeon (WorldMapFrame.lua) - - data.WriteBits(graveyardIds.size(), 24); - for (uint32 id : graveyardIds) - data << id; - - SendPacket(&data); + WorldPackets::Misc::RequestCemeteryListResponse packet;
+ packet.IsGossipTriggered = false;
+ packet.CemeteryID.reserve(graveyardIds.size());
+
+ for (uint32 id : graveyardIds)
+ packet.CemeteryID.push_back(id);
+
+ SendPacket(packet.Write()); } void WorldSession::HandleSetSelectionOpcode(WorldPackets::Misc::SetSelection& packet) @@ -761,13 +759,10 @@ void WorldSession::HandleBugOpcode(WorldPacket& recvData) CharacterDatabase.Execute(stmt); } -void WorldSession::HandleReclaimCorpseOpcode(WorldPacket& recvData) +void WorldSession::HandleReclaimCorpse(WorldPackets::Misc::ReclaimCorpse& packet) { TC_LOG_DEBUG("network", "WORLD: Received CMSG_RECLAIM_CORPSE"); - ObjectGuid guid; - recvData >> guid; - if (_player->IsAlive()) return; @@ -798,25 +793,20 @@ void WorldSession::HandleReclaimCorpseOpcode(WorldPacket& recvData) _player->SpawnCorpseBones(); } -void WorldSession::HandleResurrectResponseOpcode(WorldPacket& recvData) +void WorldSession::HandleResurrectResponse(WorldPackets::Misc::ResurrectResponse& packet) { TC_LOG_DEBUG("network", "WORLD: Received CMSG_RESURRECT_RESPONSE"); - ObjectGuid guid; - uint8 status; - recvData >> guid; - recvData >> status; - if (GetPlayer()->IsAlive()) return; - if (status == 0) + if (packet.Response == 0) { GetPlayer()->ClearResurrectRequestData(); // reject return; } - if (!GetPlayer()->IsResurrectRequestedBy(guid)) + if (!GetPlayer()->IsResurrectRequestedBy(packet.Resurrecter)) return; GetPlayer()->ResurrectUsingRequestData(); |