aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2014-11-03 18:30:23 +0100
committerShauren <shauren.trinity@gmail.com>2014-11-03 18:30:23 +0100
commit064154c54018bb2c1657e4febf86ecc7c87b41e1 (patch)
treefefccc4c71b7f7caf66d11dfefc7270442d4c398 /src
parent48d47998d9b4e5a234d4b2489f2954eded8dcbf0 (diff)
Core/PacketIO: Changed CMSG_PLAYER_LOGIN handler signature for new packet clasess
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Handlers/CharacterHandler.cpp5
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp9
-rw-r--r--src/server/game/Server/WorldSession.h7
3 files changed, 14 insertions, 7 deletions
diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp
index a3ed092e56a..c5d5f5540d5 100644
--- a/src/server/game/Handlers/CharacterHandler.cpp
+++ b/src/server/game/Handlers/CharacterHandler.cpp
@@ -745,7 +745,7 @@ void WorldSession::HandleCharDeleteOpcode(WorldPacket& recvData)
SendCharDelete(CHAR_DELETE_SUCCESS);
}
-void WorldSession::HandlePlayerLoginOpcode(WorldPacket& recvData)
+void WorldSession::HandlePlayerLoginOpcode(WorldPackets::Character::PlayerLogin& playerLogin)
{
if (PlayerLoading() || GetPlayer() != NULL)
{
@@ -758,9 +758,6 @@ void WorldSession::HandlePlayerLoginOpcode(WorldPacket& recvData)
m_playerLoading = true;
- WorldPackets::Character::PlayerLogin playerLogin(std::move(recvData));
- playerLogin.Read();
-
TC_LOG_DEBUG("network", "Character %s logging in", playerLogin.Guid.ToString().c_str());
if (!IsLegitCharacterForAccount(playerLogin.Guid))
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index cfd1f1a2358..4d62b83552f 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -18,6 +18,7 @@
#include "Opcodes.h"
#include "WorldSession.h"
+#include "Packets/CharacterPackets.h"
template<class PacketClass, void(WorldSession::*HandlerFunction)(PacketClass&)>
class PacketHandler : public OpcodeHandler
@@ -100,6 +101,9 @@ void OpcodeTable::Initialize()
#define DEFINE_OPCODE_HANDLER_OLD(opcode, status, processing, handler) \
ValidateAndSetOpcode<WorldPacket, handler>(opcode, #opcode, status, processing);
+#define DEFINE_HANDLER(opcode, status, processing, packetclass, handler) \
+ ValidateAndSetOpcode<packetclass, handler>(opcode, #opcode, status, processing);
+
DEFINE_OPCODE_HANDLER_OLD(CMSG_ACCEPT_LEVEL_GRANT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAcceptGrantLevel );
DEFINE_OPCODE_HANDLER_OLD(CMSG_ACCEPT_TRADE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAcceptTradeOpcode );
DEFINE_OPCODE_HANDLER_OLD(CMSG_ACTIVATETAXI, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleActivateTaxiOpcode );
@@ -454,7 +458,7 @@ 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_OPCODE_HANDLER_OLD(CMSG_PLAYER_LOGIN, STATUS_AUTHED, PROCESS_THREADUNSAFE, &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_OPCODE_HANDLER_OLD(CMSG_PUSHQUESTTOPARTY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePushQuestToParty );
@@ -659,7 +663,8 @@ void OpcodeTable::Initialize()
DEFINE_OPCODE_HANDLER_OLD(MSG_TABARDVENDOR_ACTIVATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleTabardVendorActivateOpcode);
DEFINE_OPCODE_HANDLER_OLD(MSG_TALENT_WIPE_CONFIRM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleTalentWipeConfirmOpcode );
-#undef DEFINE_OPCODE_HANDLER
+#undef DEFINE_OPCODE_HANDLER_OLD
+#undef DEFINE_HANDLER
#define DEFINE_SERVER_OPCODE_HANDLER(opcode, status) \
ValidateAndSetOpcode(opcode, #opcode, status)
diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h
index 5b707809cde..f195bf2908d 100644
--- a/src/server/game/Server/WorldSession.h
+++ b/src/server/game/Server/WorldSession.h
@@ -74,6 +74,11 @@ class RBACData;
namespace WorldPackets
{
class ServerPacket;
+
+ namespace Character
+ {
+ class PlayerLogin;
+ }
}
enum AccountDataType
@@ -470,7 +475,7 @@ class WorldSession
void HandleCharDeleteOpcode(WorldPacket& recvPacket);
void HandleCharCreateOpcode(WorldPacket& recvPacket);
void HandleCharCreateCallback(PreparedQueryResult result, CharacterCreateInfo* createInfo);
- void HandlePlayerLoginOpcode(WorldPacket& recvPacket);
+ void HandlePlayerLoginOpcode(WorldPackets::Character::PlayerLogin& playerLogin);
void HandleLoadScreenOpcode(WorldPacket& recvPacket);
void HandleCharEnum(PreparedQueryResult result);
void HandlePlayerLogin(LoginQueryHolder * holder);