Core/PacketIO: Minor refactor in Opcode definitions, packet class type no longer needs to be defined manually, it is now inferred from handler argument

This commit is contained in:
Shauren
2016-08-06 12:34:38 +02:00
parent 763e9e4921
commit 807488df8a
5 changed files with 719 additions and 712 deletions

View File

@@ -38,10 +38,10 @@
void WorldSession::HandleMoveWorldportAckOpcode(WorldPackets::Movement::WorldPortResponse& /*packet*/)
{
HandleMoveWorldportAckOpcode();
HandleMoveWorldportAck();
}
void WorldSession::HandleMoveWorldportAckOpcode()
void WorldSession::HandleMoveWorldportAck()
{
// ignore unexpected far teleports
if (!GetPlayer()->IsBeingTeleportedFar())
@@ -241,7 +241,7 @@ void WorldSession::HandleSuspendTokenResponse(WorldPackets::Movement::SuspendTok
SendPacket(packet.Write());
if (_player->IsBeingTeleportedSeamlessly())
HandleMoveWorldportAckOpcode();
HandleMoveWorldportAck();
}
void WorldSession::HandleMoveTeleportAck(WorldPackets::Movement::MoveTeleportAck& packet)

File diff suppressed because it is too large Load Diff

View File

@@ -1815,7 +1815,7 @@ class OpcodeTable
}
private:
template<class PacketClass, void(WorldSession::*HandlerFunction)(PacketClass&)>
template<typename Handler, Handler HandlerFunction>
void ValidateAndSetClientOpcode(OpcodeClient opcode, char const* name, SessionStatus status, PacketProcessing processing);
void ValidateAndSetServerOpcode(OpcodeServer opcode, char const* name, SessionStatus status, ConnectionType conIdx);

View File

@@ -507,7 +507,7 @@ void WorldSession::LogoutPlayer(bool save)
{
// finish pending transfers before starting the logout
while (_player && _player->IsBeingTeleportedFar())
HandleMoveWorldportAckOpcode();
HandleMoveWorldportAck();
m_playerLogout = true;
m_playerSave = save;
@@ -562,7 +562,7 @@ void WorldSession::LogoutPlayer(bool save)
// Repop at GraveYard or other player far teleport will prevent saving player because of not present map
// Teleport player immediately for correct player save
while (_player->IsBeingTeleportedFar())
HandleMoveWorldportAckOpcode();
HandleMoveWorldportAck();
///- If the player is in a guild, update the guild roster and broadcast a logout message to other guild members
if (Guild* guild = sGuildMgr->GetGuildById(_player->GetGuildId()))

View File

@@ -1238,7 +1238,7 @@ class TC_GAME_API WorldSession
void HandleGameObjectQueryOpcode(WorldPackets::Query::QueryGameObject& packet);
void HandleMoveWorldportAckOpcode(WorldPackets::Movement::WorldPortResponse& packet);
void HandleMoveWorldportAckOpcode(); // for server-side calls
void HandleMoveWorldportAck(); // for server-side calls
void HandleSuspendTokenResponse(WorldPackets::Movement::SuspendTokenResponse& suspendTokenResponse);
void HandleMovementOpcodes(WorldPackets::Movement::ClientPlayerMovement& packet);