aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Player/Player.cpp31
-rw-r--r--src/server/game/Handlers/MiscHandler.cpp40
-rw-r--r--src/server/game/Handlers/QueryHandler.cpp53
-rw-r--r--src/server/game/Maps/MapManager.cpp5
-rw-r--r--src/server/game/Server/Packets/MiscPackets.cpp52
-rw-r--r--src/server/game/Server/Packets/MiscPackets.h97
-rw-r--r--src/server/game/Server/Packets/QueryPackets.cpp30
-rw-r--r--src/server/game/Server/Packets/QueryPackets.h44
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp29
-rw-r--r--src/server/game/Server/Protocol/Opcodes.h19
-rw-r--r--src/server/game/Server/WorldSession.h21
11 files changed, 316 insertions, 105 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index efc5143bbfd..4f71347045d 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -4794,9 +4794,9 @@ void Player::DeleteOldCharacters(uint32 keepDays)
*/
void Player::BuildPlayerRepop()
{
- WorldPacket data(SMSG_PRE_RESURRECT, GetPackGUID().size());
- data << GetPackGUID();
- GetSession()->SendPacket(&data);
+ WorldPackets::Misc::PreRessurect packet;
+ packet.PlayerGUID = GetGUID();
+ GetSession()->SendPacket(packet.Write());
if (getRace() == RACE_NIGHTELF)
CastSpell(this, 20584, true);
@@ -4849,12 +4849,9 @@ void Player::BuildPlayerRepop()
void Player::ResurrectPlayer(float restore_percent, bool applySickness)
{
- WorldPacket data(SMSG_DEATH_RELEASE_LOC, 4*4); // remove spirit healer position
- data << uint32(-1);
- data << float(0);
- data << float(0);
- data << float(0);
- GetSession()->SendPacket(&data);
+ WorldPackets::Misc::DeathReleaseLoc packet;
+ packet.MapID = -1;
+ GetSession()->SendPacket(packet.Write());
// speed change, land walk
@@ -5274,12 +5271,10 @@ void Player::RepopAtGraveyard()
TeleportTo(ClosestGrave->MapID, ClosestGrave->Loc.X, ClosestGrave->Loc.Y, ClosestGrave->Loc.Z, (ClosestGrave->Facing * M_PI) / 180); // Orientation is initially in degrees
if (isDead()) // not send if alive, because it used in TeleportTo()
{
- WorldPacket data(SMSG_DEATH_RELEASE_LOC, 4*4); // show spirit healer position on minimap
- data << ClosestGrave->MapID;
- data << ClosestGrave->Loc.X;
- data << ClosestGrave->Loc.Y;
- data << ClosestGrave->Loc.Z;
- GetSession()->SendPacket(&data);
+ WorldPackets::Misc::DeathReleaseLoc packet;
+ packet.MapID = ClosestGrave->MapID;
+ packet.Loc = G3D::Vector3(ClosestGrave->Loc.X, ClosestGrave->Loc.Y, ClosestGrave->Loc.Z);
+ GetSession()->SendPacket(packet.Write());
}
}
else if (GetPositionZ() < MAX_MAP_DEPTH)
@@ -24330,9 +24325,9 @@ int32 Player::CalculateCorpseReclaimDelay(bool load)
void Player::SendCorpseReclaimDelay(uint32 delay)
{
- WorldPacket data(SMSG_CORPSE_RECLAIM_DELAY, 4);
- data << uint32(delay);
- GetSession()->SendPacket(&data);
+ WorldPackets::Misc::CorpseReclaimDelay packet;
+ packet.Remaining = delay;
+ GetSession()->SendPacket(packet.Write());
}
Player* Player::GetNextRandomRaidMember(float radius)
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();
diff --git a/src/server/game/Handlers/QueryHandler.cpp b/src/server/game/Handlers/QueryHandler.cpp
index 6556532cf98..0a8b7fd5298 100644
--- a/src/server/game/Handlers/QueryHandler.cpp
+++ b/src/server/game/Handlers/QueryHandler.cpp
@@ -165,38 +165,38 @@ void WorldSession::HandleGameObjectQueryOpcode(WorldPackets::Query::QueryGameObj
SendPacket(response.Write());
}
-void WorldSession::HandleCorpseQueryOpcode(WorldPacket& /*recvData*/)
+void WorldSession::HandleQueryCorpseLocation(WorldPackets::Query::QueryCorpseLocationFromClient& /*packet*/)
{
- TC_LOG_DEBUG("network", "WORLD: Received MSG_CORPSE_QUERY");
+ TC_LOG_DEBUG("network", "WORLD: Received CMSG_QUERY_CORPSE_LOCATION_FROM_CLIENT");
Corpse* corpse = GetPlayer()->GetCorpse();
if (!corpse)
{
- WorldPacket data(MSG_CORPSE_QUERY, 1);
- data << uint8(0); // corpse not found
- SendPacket(&data);
+ WorldPackets::Query::CorpseLocation packet;
+ packet.Valid = false; // corpse not found
+ SendPacket(packet.Write());
return;
}
- uint32 mapid = corpse->GetMapId();
+ uint32 mapID = corpse->GetMapId();
float x = corpse->GetPositionX();
float y = corpse->GetPositionY();
float z = corpse->GetPositionZ();
- uint32 corpsemapid = mapid;
+ uint32 corpseMapID = mapID;
// if corpse at different map
- if (mapid != _player->GetMapId())
+ if (mapID != _player->GetMapId())
{
// search entrance map for proper show entrance
- if (MapEntry const* corpseMapEntry = sMapStore.LookupEntry(mapid))
+ if (MapEntry const* corpseMapEntry = sMapStore.LookupEntry(mapID))
{
if (corpseMapEntry->IsDungeon() && corpseMapEntry->CorpseMapID >= 0)
{
// if corpse map have entrance
if (Map const* entranceMap = sMapMgr->CreateBaseMap(corpseMapEntry->CorpseMapID))
{
- mapid = corpseMapEntry->CorpseMapID;
+ mapID = corpseMapEntry->CorpseMapID;
x = corpseMapEntry->CorpsePos.X;
y = corpseMapEntry->CorpsePos.Y;
z = entranceMap->GetHeight(GetPlayer()->GetPhaseMask(), x, y, MAX_HEIGHT);
@@ -205,15 +205,13 @@ void WorldSession::HandleCorpseQueryOpcode(WorldPacket& /*recvData*/)
}
}
- WorldPacket data(MSG_CORPSE_QUERY, 1+(6*4));
- data << uint8(1); // corpse found
- data << int32(mapid);
- data << float(x);
- data << float(y);
- data << float(z);
- data << int32(corpsemapid);
- data << uint32(0); // unknown
- SendPacket(&data);
+ WorldPackets::Query::CorpseLocation packet;
+ packet.Valid = true;
+ packet.MapID = corpseMapID;
+ packet.ActualMapID = mapID;
+ packet.Position = G3D::Vector3(x, y, z);
+ packet.Transport = ObjectGuid::Empty; // NYI
+ SendPacket(packet.Write());
}
void WorldSession::HandleNpcTextQueryOpcode(WorldPackets::Query::QueryNPCText& packet)
@@ -280,19 +278,14 @@ void WorldSession::HandlePageTextQueryOpcode(WorldPackets::Query::QueryPageText&
}
}
-void WorldSession::HandleCorpseMapPositionQuery(WorldPacket& recvData)
+void WorldSession::HandleQueryCorpseTransport(WorldPackets::Query::QueryCorpseTransport& packet)
{
- TC_LOG_DEBUG("network", "WORLD: Recv CMSG_CORPSE_MAP_POSITION_QUERY");
-
- uint32 transportGuidLow;
- recvData >> transportGuidLow;
+ TC_LOG_DEBUG("network", "WORLD: Recv CMSG_QUERY_CORPSE_TRANSPORT");
- WorldPacket data(SMSG_CORPSE_MAP_POSITION_QUERY_RESPONSE, 4+4+4+4);
- data << float(0);
- data << float(0);
- data << float(0);
- data << float(0);
- SendPacket(&data);
+ WorldPackets::Query::CorpseTransportQuery response;
+ response.Position = G3D::Vector3(0.0f, 0.0f, 0.0f);
+ response.Facing = 0.0f;
+ SendPacket(response.Write());
}
void WorldSession::HandleQuestNPCQuery(WorldPacket& recvData)
diff --git a/src/server/game/Maps/MapManager.cpp b/src/server/game/Maps/MapManager.cpp
index a9acb2ef30a..8c4dd2e0c65 100644
--- a/src/server/game/Maps/MapManager.cpp
+++ b/src/server/game/Maps/MapManager.cpp
@@ -37,6 +37,7 @@
#include "WorldSession.h"
#include "Opcodes.h"
#include "AchievementMgr.h"
+#include "MiscPackets.h"
MapManager::MapManager()
{
@@ -179,8 +180,8 @@ bool MapManager::CanPlayerEnter(uint32 mapid, Player* player, bool loginCheck)
if (!corpseMap)
{
- WorldPacket data(SMSG_CORPSE_NOT_IN_INSTANCE);
- player->GetSession()->SendPacket(&data);
+ WorldPackets::Misc::AreaTriggerNoCorpse packet;
+ player->GetSession()->SendPacket(packet.Write());
TC_LOG_DEBUG("maps", "MAP: Player '%s' does not have a corpse in instance '%s' and cannot enter.", player->GetName().c_str(), mapName);
return false;
}
diff --git a/src/server/game/Server/Packets/MiscPackets.cpp b/src/server/game/Server/Packets/MiscPackets.cpp
index 937bd75c4b9..a8d49f9fafe 100644
--- a/src/server/game/Server/Packets/MiscPackets.cpp
+++ b/src/server/game/Server/Packets/MiscPackets.cpp
@@ -207,3 +207,55 @@ WorldPacket const* WorldPackets::Misc::RaidDifficultySet::Write()
_worldPacket << uint8(Legacy);
return &_worldPacket;
}
+
+WorldPacket const* WorldPackets::Misc::CorpseReclaimDelay::Write()
+{
+ _worldPacket << Remaining;
+
+ return &_worldPacket;
+}
+
+WorldPacket const* WorldPackets::Misc::DeathReleaseLoc::Write()
+{
+ _worldPacket << MapID;
+ _worldPacket << float(Loc.x);
+ _worldPacket << float(Loc.y);
+ _worldPacket << float(Loc.z);
+
+ return &_worldPacket;
+}
+
+WorldPacket const* WorldPackets::Misc::PreRessurect::Write()
+{
+ _worldPacket << PlayerGUID;
+
+ return &_worldPacket;
+}
+
+void WorldPackets::Misc::ReclaimCorpse::Read()
+{
+ _worldPacket >> CorpseGUID;
+}
+
+void WorldPackets::Misc::RepopRequest::Read()
+{
+ CheckInstance = _worldPacket.ReadBit();
+}
+
+WorldPacket const* WorldPackets::Misc::RequestCemeteryListResponse::Write()
+{
+ _worldPacket.WriteBit(IsGossipTriggered);
+ _worldPacket.FlushBits();
+
+ _worldPacket << uint32(CemeteryID.size());
+ for (uint32 cemetery : CemeteryID)
+ _worldPacket << cemetery;
+
+ return &_worldPacket;
+}
+
+void WorldPackets::Misc::ResurrectResponse::Read()
+{
+ _worldPacket >> Resurrecter;
+ _worldPacket >> Response;
+}
diff --git a/src/server/game/Server/Packets/MiscPackets.h b/src/server/game/Server/Packets/MiscPackets.h
index ae12389e791..cc4453e1177 100644
--- a/src/server/game/Server/Packets/MiscPackets.h
+++ b/src/server/game/Server/Packets/MiscPackets.h
@@ -263,6 +263,103 @@ namespace WorldPackets
int32 DifficultyID;
uint8 Legacy;
};
+
+ class CorpseReclaimDelay : public ServerPacket
+ {
+ public:
+ CorpseReclaimDelay() : ServerPacket(SMSG_CORPSE_RECLAIM_DELAY, 4) { }
+
+ WorldPacket const* Write() override;
+
+ uint32 Remaining = 0;
+ };
+
+ class DeathReleaseLoc : public ServerPacket
+ {
+ public:
+ DeathReleaseLoc() : ServerPacket(SMSG_DEATH_RELEASE_LOC, 4 + (3 * 4)) { }
+
+ WorldPacket const* Write() override;
+
+ int32 MapID = 0;
+ G3D::Vector3 Loc;
+ };
+
+ class PortGraveyard final : public ClientPacket
+ {
+ public:
+ PortGraveyard(WorldPacket&& packet) : ClientPacket(CMSG_PORT_GRAVEYARD, std::move(packet)) { }
+
+ void Read() override { }
+ };
+
+ class PreRessurect : public ServerPacket
+ {
+ public:
+ PreRessurect() : ServerPacket(SMSG_PRE_RESURRECT, 16) { }
+
+ WorldPacket const* Write() override;
+
+ ObjectGuid PlayerGUID;
+ };
+
+ class ReclaimCorpse final : public ClientPacket
+ {
+ public:
+ ReclaimCorpse(WorldPacket&& packet) : ClientPacket(CMSG_RECLAIM_CORPSE, std::move(packet)) { }
+
+ void Read() override;
+
+ ObjectGuid CorpseGUID;
+ };
+
+ class RepopRequest final : public ClientPacket
+ {
+ public:
+ RepopRequest(WorldPacket&& packet) : ClientPacket(CMSG_REPOP_REQUEST, std::move(packet)) { }
+
+ void Read() override;
+
+ bool CheckInstance = false;
+ };
+
+ class RequestCemeteryList final : public ClientPacket
+ {
+ public:
+ RequestCemeteryList(WorldPacket&& packet) : ClientPacket(CMSG_REQUEST_CEMETERY_LIST, std::move(packet)) { }
+
+ void Read() override { }
+ };
+
+ class RequestCemeteryListResponse : public ServerPacket
+ {
+ public:
+ RequestCemeteryListResponse() : ServerPacket(SMSG_REQUEST_CEMETERY_LIST_RESPONSE, 1) { }
+
+ WorldPacket const* Write() override;
+
+ bool IsGossipTriggered = false;
+ std::vector<uint32> CemeteryID;
+ };
+
+ class ResurrectResponse final : public ClientPacket
+ {
+ public:
+ ResurrectResponse(WorldPacket&& packet) : ClientPacket(CMSG_RESURRECT_RESPONSE, std::move(packet)) { }
+
+ void Read() override;
+
+ ObjectGuid Resurrecter;
+ uint32 Response = 0;
+ };
+
+ class AreaTriggerNoCorpse : public ServerPacket
+ {
+ public:
+ AreaTriggerNoCorpse() : ServerPacket(SMSG_AREA_TRIGGER_NO_CORPSE, 0) { }
+
+ WorldPacket const* Write() override { return &_worldPacket; }
+ };
}
}
diff --git a/src/server/game/Server/Packets/QueryPackets.cpp b/src/server/game/Server/Packets/QueryPackets.cpp
index e3f8dc01335..2cd58f7b13c 100644
--- a/src/server/game/Server/Packets/QueryPackets.cpp
+++ b/src/server/game/Server/Packets/QueryPackets.cpp
@@ -265,3 +265,33 @@ WorldPacket const* WorldPackets::Query::QueryGameObjectResponse::Write()
return &_worldPacket;
}
+
+WorldPacket const* WorldPackets::Query::CorpseLocation::Write()
+{
+ _worldPacket.WriteBit(Valid);
+ _worldPacket.FlushBits();
+
+ _worldPacket << ActualMapID;
+ _worldPacket << Position.x;
+ _worldPacket << Position.y;
+ _worldPacket << Position.z;
+ _worldPacket << MapID;
+ _worldPacket << Transport;
+
+ return &_worldPacket;
+}
+
+void WorldPackets::Query::QueryCorpseTransport::Read()
+{
+ _worldPacket >> Transport;
+}
+
+WorldPacket const* WorldPackets::Query::CorpseTransportQuery::Write()
+{
+ _worldPacket << Position.x;
+ _worldPacket << Position.y;
+ _worldPacket << Position.z;
+ _worldPacket << Facing;
+
+ return &_worldPacket;
+}
diff --git a/src/server/game/Server/Packets/QueryPackets.h b/src/server/game/Server/Packets/QueryPackets.h
index f2ab09f2b6b..6e1c3ebe83b 100644
--- a/src/server/game/Server/Packets/QueryPackets.h
+++ b/src/server/game/Server/Packets/QueryPackets.h
@@ -22,6 +22,7 @@
#include "Creature.h"
#include "DB2Stores.h"
#include "NPCHandler.h"
+#include "G3D/Vector3.h"
namespace WorldPackets
{
@@ -253,6 +254,49 @@ namespace WorldPackets
bool Allow = false;
GameObjectStats Stats;
};
+
+ class QueryCorpseLocationFromClient final : public ClientPacket
+ {
+ public:
+ QueryCorpseLocationFromClient(WorldPacket&& packet) : ClientPacket(CMSG_QUERY_CORPSE_LOCATION_FROM_CLIENT, std::move(packet)) { }
+
+ void Read() override { }
+ };
+
+ class CorpseLocation final : public ServerPacket
+ {
+ public:
+ CorpseLocation() : ServerPacket(SMSG_CORPSE_LOCATION, 1 + (5 * 4) + 16) { }
+
+ WorldPacket const* Write() override;
+
+ ObjectGuid Transport;
+ G3D::Vector3 Position;
+ int32 ActualMapID = 0;
+ int32 MapID = 0;
+ bool Valid = false;
+ };
+
+ class QueryCorpseTransport final : public ClientPacket
+ {
+ public:
+ QueryCorpseTransport(WorldPacket&& packet) : ClientPacket(CMSG_QUERY_CORPSE_TRANSPORT , std::move(packet)) { }
+
+ void Read() override;
+
+ ObjectGuid Transport;
+ };
+
+ class CorpseTransportQuery final : public ServerPacket
+ {
+ public:
+ CorpseTransportQuery() : ServerPacket(SMSG_CORPSE_TRANSPORT_QUERY, 16) { }
+
+ WorldPacket const* Write() override;
+
+ G3D::Vector3 Position;
+ float Facing = 0.0f;
+ };
}
}
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index 009c3c2a895..7f21315a982 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -278,7 +278,6 @@ void OpcodeTable::Initialize()
DEFINE_OPCODE_HANDLER_OLD(CMSG_COMPLETE_MOVIE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER_OLD(CMSG_CONNECT_TO_FAILED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER_OLD(CMSG_CONTACT_LIST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleContactListOpcode );
- DEFINE_OPCODE_HANDLER_OLD(CMSG_CORPSE_MAP_POSITION_QUERY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCorpseMapPositionQuery );
DEFINE_HANDLER(CMSG_CREATURE_QUERY, STATUS_LOGGEDIN, PROCESS_INPLACE, WorldPackets::Query::QueryCreature, &WorldSession::HandleCreatureQuery);
DEFINE_OPCODE_HANDLER_OLD(CMSG_DANCE_QUERY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_HANDLER(CMSG_DB_QUERY_BULK, STATUS_AUTHED, PROCESS_INPLACE, WorldPackets::Query::DBQueryBulk, &WorldSession::HandleDBQueryBulk);
@@ -524,12 +523,15 @@ void OpcodeTable::Initialize()
DEFINE_OPCODE_HANDLER_OLD(CMSG_PET_STOP_ATTACK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePetStopAttack );
DEFINE_OPCODE_HANDLER_OLD(CMSG_PING, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_EarlyProccess );
DEFINE_OPCODE_HANDLER_OLD(CMSG_PLAYED_TIME, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePlayedTime );
- DEFINE_HANDLER(CMSG_PLAYER_LOGIN, STATUS_AUTHED, PROCESS_THREADUNSAFE, WorldPackets::Character::PlayerLogin, &WorldSession::HandlePlayerLoginOpcode);
+ DEFINE_HANDLER(CMSG_PLAYER_LOGIN, STATUS_AUTHED, PROCESS_THREADUNSAFE, WorldPackets::Character::PlayerLogin, &WorldSession::HandlePlayerLoginOpcode);
DEFINE_OPCODE_HANDLER_OLD(CMSG_PLAYER_VEHICLE_ENTER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleEnterPlayerVehicle );
DEFINE_OPCODE_HANDLER_OLD(CMSG_PLAY_DANCE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
+ DEFINE_HANDLER(CMSG_PORT_GRAVEYARD, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Misc::PortGraveyard, &WorldSession::HandlePortGraveyard);
DEFINE_OPCODE_HANDLER_OLD(CMSG_PUSHQUESTTOPARTY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePushQuestToParty );
DEFINE_OPCODE_HANDLER_OLD(CMSG_PVP_LOG_DATA, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandlePVPLogDataOpcode );
DEFINE_OPCODE_HANDLER_OLD(CMSG_QUERY_BATTLEFIELD_STATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
+ DEFINE_HANDLER(CMSG_QUERY_CORPSE_LOCATION_FROM_CLIENT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Query::QueryCorpseLocationFromClient, &WorldSession::HandleQueryCorpseLocation);
+ DEFINE_HANDLER(CMSG_QUERY_CORPSE_TRANSPORT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Query::QueryCorpseTransport, &WorldSession::HandleQueryCorpseTransport);
DEFINE_OPCODE_HANDLER_OLD(CMSG_QUERY_GUILD_MEMBERS_FOR_RECIPE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER_OLD(CMSG_QUERY_GUILD_MEMBER_RECIPES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER_OLD(CMSG_QUERY_GUILD_RECIPES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
@@ -556,15 +558,15 @@ void OpcodeTable::Initialize()
DEFINE_HANDLER(CMSG_RANDOMIZE_CHAR_NAME, STATUS_AUTHED, PROCESS_THREADUNSAFE, WorldPackets::Character::GenerateRandomCharacterName, &WorldSession::HandleRandomizeCharNameOpcode);
DEFINE_OPCODE_HANDLER_OLD(CMSG_READ_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleReadItem );
DEFINE_OPCODE_HANDLER_OLD(CMSG_REALM_NAME_QUERY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER_OLD(CMSG_RECLAIM_CORPSE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleReclaimCorpseOpcode );
+ DEFINE_HANDLER(CMSG_RECLAIM_CORPSE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Misc::ReclaimCorpse, &WorldSession::HandleReclaimCorpse);
DEFINE_OPCODE_HANDLER_OLD(CMSG_RECRUIT_A_FRIEND, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_HANDLER(CMSG_REORDER_CHARACTERS, STATUS_AUTHED, PROCESS_THREADUNSAFE, WorldPackets::Character::ReorderCharacters, &WorldSession::HandleReorderCharacters);
DEFINE_HANDLER(CMSG_REPAIR_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Item::RepairItem, &WorldSession::HandleRepairItemOpcode);
- DEFINE_OPCODE_HANDLER_OLD(CMSG_REPOP_REQUEST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRepopRequestOpcode );
+ DEFINE_HANDLER(CMSG_REPOP_REQUEST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Misc::RepopRequest, &WorldSession::HandleRepopRequest);
DEFINE_OPCODE_HANDLER_OLD(CMSG_REPORT_PVP_AFK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleReportPvPAFK );
DEFINE_HANDLER(CMSG_REQUEST_ACCOUNT_DATA, STATUS_AUTHED, PROCESS_THREADUNSAFE, WorldPackets::ClientConfig::RequestAccountData, &WorldSession::HandleRequestAccountData);
DEFINE_OPCODE_HANDLER_OLD(CMSG_REQUEST_CATEGORY_COOLDOWNS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleRequestCategoryCooldowns );
- DEFINE_OPCODE_HANDLER_OLD(CMSG_REQUEST_CEMETERY_LIST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleRequestCemeteryList );
+ DEFINE_HANDLER(CMSG_REQUEST_CEMETERY_LIST, STATUS_LOGGEDIN, PROCESS_INPLACE, WorldPackets::Misc::RequestCemeteryList, &WorldSession::HandleRequestCemeteryList);
DEFINE_OPCODE_HANDLER_OLD(CMSG_REQUEST_INSPECT_RATED_BG_STATS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER_OLD(CMSG_REQUEST_PARTY_MEMBER_STATS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestPartyMemberStatsOpcode);
DEFINE_OPCODE_HANDLER_OLD(CMSG_REQUEST_PET_INFO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestPetInfoOpcode );
@@ -580,8 +582,7 @@ void OpcodeTable::Initialize()
DEFINE_OPCODE_HANDLER_OLD(CMSG_REQUEST_VEHICLE_SWITCH_SEAT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChangeSeatsOnControlledVehicle);
DEFINE_OPCODE_HANDLER_OLD(CMSG_RESET_FACTION_CHEAT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER_OLD(CMSG_RESET_INSTANCES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleResetInstancesOpcode );
- DEFINE_OPCODE_HANDLER_OLD(CMSG_RESURRECT_RESPONSE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleResurrectResponseOpcode );
- DEFINE_OPCODE_HANDLER_OLD(CMSG_RETURN_TO_GRAVEYARD, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleReturnToGraveyard );
+ DEFINE_HANDLER(CMSG_RESURRECT_RESPONSE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Misc::ResurrectResponse, &WorldSession::HandleResurrectResponse);
DEFINE_OPCODE_HANDLER_OLD(CMSG_ROLE_POLL_BEGIN, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRolePollBeginOpcode );
DEFINE_OPCODE_HANDLER_OLD(CMSG_ROUTER_CLIENT_LOG_STREAMING_ERROR, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER_OLD(CMSG_SAVE_CUF_PROFILES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleSaveCUFProfiles );
@@ -680,7 +681,6 @@ void OpcodeTable::Initialize()
DEFINE_OPCODE_HANDLER_OLD(CMSG_WORLD_TELEPORT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleWorldTeleportOpcode );
DEFINE_OPCODE_HANDLER_OLD(CMSG_WRAP_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleWrapItemOpcode );
DEFINE_OPCODE_HANDLER_OLD(CMSG_ZONEUPDATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleZoneUpdateOpcode );
- DEFINE_OPCODE_HANDLER_OLD(MSG_CORPSE_QUERY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCorpseQueryOpcode );
DEFINE_OPCODE_HANDLER_OLD(MSG_INSPECT_ARENA_TEAMS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleInspectArenaTeamsOpcode );
DEFINE_OPCODE_HANDLER_OLD(MSG_LIST_STABLED_PETS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleListStabledPetsOpcode );
DEFINE_OPCODE_HANDLER_OLD(MSG_MOVE_CHARM_TELEPORT_CHEAT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
@@ -722,6 +722,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_AREA_SPIRIT_HEALER_TIME, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_AREA_TRIGGER_MESSAGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_AREA_TRIGGER_MOVEMENT_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_AREA_TRIGGER_NO_CORPSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ARENA_ERROR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ARENA_UNIT_DESTROYED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ARENA_TEAM_CHANGE_FAILED_QUEUED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
@@ -866,9 +867,9 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONVERT_RUNE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_COOLDOWN_CHEAT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_COOLDOWN_EVENT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_CORPSE_MAP_POSITION_QUERY_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_CORPSE_NOT_IN_INSTANCE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_CORPSE_RECLAIM_DELAY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_CORPSE_LOCATION, STATUS_NEVER, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_CORPSE_RECLAIM_DELAY, STATUS_NEVER, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_CORPSE_TRANSPORT_QUERY, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CREATURE_QUERY_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CRITERIA_DELETED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CRITERIA_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
@@ -880,7 +881,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_DANCE_QUERY_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_DANCE_STUDIO_CREATE_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_DB_REPLY, STATUS_NEVER, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_DEATH_RELEASE_LOC, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_DEATH_RELEASE_LOC, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_DEBUG_RUNE_REGEN, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_DEFENSE_MESSAGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_DESTRUCTIBLE_BUILDING_DAMAGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
@@ -1218,7 +1219,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_TIME_WARNING, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PONG, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_POWER_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_PRE_RESURRECT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_PRE_RESURRECT, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PROCRESIST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PROPOSE_LEVEL_GRANT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_CREDIT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
@@ -1271,7 +1272,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_REFRESH_SPELL_HISTORY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_REMOVED_SPELL, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_REPORT_PVP_AFK_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_REQUEST_CEMETERY_LIST_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_REQUEST_CEMETERY_LIST_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_REQUEST_PVP_REWARDS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESEARCH_COMPLETE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESEARCH_SETUP_HISTORY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
diff --git a/src/server/game/Server/Protocol/Opcodes.h b/src/server/game/Server/Protocol/Opcodes.h
index e1624d076c3..2d606821c5f 100644
--- a/src/server/game/Server/Protocol/Opcodes.h
+++ b/src/server/game/Server/Protocol/Opcodes.h
@@ -196,7 +196,6 @@ enum OpcodeClient : uint32
CMSG_COMPLETE_MOVIE = 0xBADD,
CMSG_CONNECT_TO_FAILED = 0x0135,
CMSG_CONTACT_LIST = 0xBADD,
- CMSG_CORPSE_MAP_POSITION_QUERY = 0xBADD,
CMSG_CREATURE_QUERY = 0x0505,
CMSG_DANCE_QUERY = 0xBADD,
CMSG_DB_QUERY_BULK = 0x138B,
@@ -465,9 +464,12 @@ enum OpcodeClient : uint32
CMSG_PLAYER_LOGIN = 0x0B1D,
CMSG_PLAYER_VEHICLE_ENTER = 0xBADD,
CMSG_PLAY_DANCE = 0xBADD,
+ CMSG_PORT_GRAVEYARD = 0x0D3E,
CMSG_PUSHQUESTTOPARTY = 0xBADD,
CMSG_PVP_LOG_DATA = 0x08B5,
CMSG_QUERY_BATTLEFIELD_STATE = 0x0359,
+ CMSG_QUERY_CORPSE_LOCATION_FROM_CLIENT = 0x128A,
+ CMSG_QUERY_CORPSE_TRANSPORT = 0x0908,
CMSG_QUERY_GUILD_MEMBERS_FOR_RECIPE = 0xBADD,
CMSG_QUERY_GUILD_MEMBER_RECIPES = 0xBADD,
CMSG_QUERY_GUILD_RECIPES = 0xBADD,
@@ -497,7 +499,7 @@ enum OpcodeClient : uint32
CMSG_RANDOMIZE_CHAR_NAME = 0x1981,
CMSG_READ_ITEM = 0xBADD,
CMSG_REALM_NAME_QUERY = 0x1189,
- CMSG_RECLAIM_CORPSE = 0xBADD,
+ CMSG_RECLAIM_CORPSE = 0x1BC4,
CMSG_RECRUIT_A_FRIEND = 0x07BA,
CMSG_REORDER_CHARACTERS = 0x0DAA,
CMSG_REPAIR_ITEM = 0x0B54,
@@ -523,8 +525,7 @@ enum OpcodeClient : uint32
CMSG_REQUEST_VEHICLE_SWITCH_SEAT = 0xBADD,
CMSG_RESET_FACTION_CHEAT = 0xBADD,
CMSG_RESET_INSTANCES = 0x0389,
- CMSG_RESURRECT_RESPONSE = 0xBADD,
- CMSG_RETURN_TO_GRAVEYARD = 0x12EA,
+ CMSG_RESURRECT_RESPONSE = 0x073E,
CMSG_ROLE_POLL_BEGIN = 0xBADD,
CMSG_ROUTER_CLIENT_LOG_STREAMING_ERROR = 0x0C10,
CMSG_SAVE_CUF_PROFILES = 0x0053,
@@ -636,7 +637,6 @@ enum OpcodeClient : uint32
CMSG_WORLD_TELEPORT = 0xBADD,
CMSG_WRAP_ITEM = 0xBADD,
CMSG_ZONEUPDATE = 0xBADD,
- MSG_CORPSE_QUERY = 0xBADD,
MSG_GM_BIND_OTHER = 0xBADD,
MSG_GM_SHOWLABEL = 0xBADD,
MSG_GM_SUMMON = 0xBADD,
@@ -694,6 +694,7 @@ enum OpcodeServer : uint32
SMSG_AREA_SPIRIT_HEALER_TIME = 0xBADD,
SMSG_AREA_TRIGGER_MESSAGE = 0xBADD,
SMSG_AREA_TRIGGER_MOVEMENT_UPDATE = 0xBADD,
+ SMSG_AREA_TRIGGER_NO_CORPSE = 0x0D3F,
SMSG_ARENA_ERROR = 0xBADD,
SMSG_ARENA_UNIT_DESTROYED = 0x19E1,
SMSG_ARENA_TEAM_CHANGE_FAILED_QUEUED = 0xBADD,
@@ -844,9 +845,9 @@ enum OpcodeServer : uint32
SMSG_CONVERT_RUNE = 0x1C89,
SMSG_COOLDOWN_CHEAT = 0xBADD,
SMSG_COOLDOWN_EVENT = 0xBADD,
- SMSG_CORPSE_MAP_POSITION_QUERY_RESPONSE = 0xBADD,
- SMSG_CORPSE_NOT_IN_INSTANCE = 0xBADD,
+ SMSG_CORPSE_LOCATION = 0x09E1,
SMSG_CORPSE_RECLAIM_DELAY = 0x0BE2,
+ SMSG_CORPSE_TRANSPORT_QUERY = 0x13AB,
SMSG_CREATURE_QUERY_RESPONSE = 0x0A26,
SMSG_CRITERIA_DELETED = 0xBADD,
SMSG_CRITERIA_UPDATE = 0x1904,
@@ -859,7 +860,7 @@ enum OpcodeServer : uint32
SMSG_DANCE_QUERY_RESPONSE = 0xBADD,
SMSG_DANCE_STUDIO_CREATE_RESULT = 0x178D,
SMSG_DB_REPLY = 0x1939,
- SMSG_DEATH_RELEASE_LOC = 0xBADD,
+ SMSG_DEATH_RELEASE_LOC = 0x098C,
SMSG_DEBUG_RUNE_REGEN = 0xBADD,
SMSG_DEBUG_SERVER_GEO = 0xBADD,
SMSG_DEFENSE_MESSAGE = 0x1442,
@@ -1217,7 +1218,7 @@ enum OpcodeServer : uint32
SMSG_PLAY_TIME_WARNING = 0xBADD,
SMSG_PONG = 0x17CA,
SMSG_POWER_UPDATE = 0x0B27,
- SMSG_PRE_RESURRECT = 0xBADD,
+ SMSG_PRE_RESURRECT = 0x0D2E,
SMSG_PROCRESIST = 0xBADD,
SMSG_PROPOSE_LEVEL_GRANT = 0xBADD,
SMSG_PUREMOUNT_CANCELLED_OBSOLETE = 0xBADD,
diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h
index baf5232cd9b..9639d90572c 100644
--- a/src/server/game/Server/WorldSession.h
+++ b/src/server/game/Server/WorldSession.h
@@ -178,6 +178,11 @@ namespace WorldPackets
class TutorialSetFlag;
class SetDungeonDifficulty;
class SetRaidDifficulty;
+ class PortGraveyard;
+ class ReclaimCorpse;
+ class RepopRequest;
+ class RequestCemeteryList;
+ class ResurrectResponse;
}
namespace Movement
@@ -200,6 +205,8 @@ namespace WorldPackets
class QueryNPCText;
class DBQueryBulk;
class QueryGameObject;
+ class QueryCorpseLocationFromClient;
+ class QueryCorpseTransport;
}
namespace Quest
@@ -648,8 +655,8 @@ class WorldSession
void HandleLookingForGroup(WorldPacket& recvPacket);
// cemetery/graveyard related
- void HandleReturnToGraveyard(WorldPacket& recvPacket);
- void HandleRequestCemeteryList(WorldPacket& recvPacket);
+ void HandlePortGraveyard(WorldPackets::Misc::PortGraveyard& packet);
+ void HandleRequestCemeteryList(WorldPackets::Misc::RequestCemeteryList& packet);
// new inspect
void HandleInspectOpcode(WorldPacket& recvPacket);
@@ -679,7 +686,7 @@ class WorldSession
void HandleSetCollisionHeightAck(WorldPacket& recvPacket);
void HandlePingOpcode(WorldPacket& recvPacket);
- void HandleRepopRequestOpcode(WorldPacket& recvPacket);
+ void HandleRepopRequest(WorldPackets::Misc::RepopRequest& packet);
void HandleAutostoreLootItemOpcode(WorldPacket& recvPacket);
void HandleLootMoneyOpcode(WorldPacket& recvPacket);
void HandleLootOpcode(WorldPackets::Loot::LootUnit& packet);
@@ -961,10 +968,10 @@ class WorldSession
void HandleUnregisterAddonPrefixesOpcode(WorldPacket& recvPacket);
void HandleAddonRegisteredPrefixesOpcode(WorldPacket& recvPacket);
- void HandleReclaimCorpseOpcode(WorldPacket& recvPacket);
- void HandleCorpseQueryOpcode(WorldPacket& recvPacket);
- void HandleCorpseMapPositionQuery(WorldPacket& recvPacket);
- void HandleResurrectResponseOpcode(WorldPacket& recvPacket);
+ void HandleReclaimCorpse(WorldPackets::Misc::ReclaimCorpse& packet);
+ void HandleQueryCorpseLocation(WorldPackets::Query::QueryCorpseLocationFromClient& packet);
+ void HandleQueryCorpseTransport(WorldPackets::Query::QueryCorpseTransport& packet);
+ void HandleResurrectResponse(WorldPackets::Misc::ResurrectResponse& packet);
void HandleSummonResponseOpcode(WorldPacket& recvData);
void HandleJoinChannel(WorldPackets::Channel::JoinChannel& packet);