aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/MiscHandler.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2014-11-09 21:36:06 +0100
committerShauren <shauren.trinity@gmail.com>2014-11-09 21:36:06 +0100
commitf59a701e2903d6ef023cd10aa7f4a80a524a8c07 (patch)
tree8bf9f0db654dadda1bc96703f0b565300f9d4c04 /src/server/game/Handlers/MiscHandler.cpp
parent3881c5c3db81d94a2e02463540c45e3c4b63f7cb (diff)
Core/PacketIO: Updated and enabled logout opcodes
Diffstat (limited to 'src/server/game/Handlers/MiscHandler.cpp')
-rw-r--r--src/server/game/Handlers/MiscHandler.cpp27
1 files changed, 11 insertions, 16 deletions
diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp
index a96cd9220ac..de72e024e5e 100644
--- a/src/server/game/Handlers/MiscHandler.cpp
+++ b/src/server/game/Handlers/MiscHandler.cpp
@@ -56,6 +56,7 @@
#include "Battlefield.h"
#include "BattlefieldMgr.h"
#include "DB2Stores.h"
+#include "CharacterPackets.h"
void WorldSession::HandleRepopRequestOpcode(WorldPacket& recvData)
{
@@ -373,7 +374,7 @@ void WorldSession::HandleWhoOpcode(WorldPacket& recvData)
TC_LOG_DEBUG("network", "WORLD: Send SMSG_WHO Message");
}
-void WorldSession::HandleLogoutRequestOpcode(WorldPacket& /*recvData*/)
+void WorldSession::HandleLogoutRequestOpcode(WorldPackets::Character::LogoutRequest& /*logoutRequest*/)
{
TC_LOG_DEBUG("network", "WORLD: Recvd CMSG_LOGOUT_REQUEST Message, security - %u", GetSecurity());
@@ -395,14 +396,14 @@ void WorldSession::HandleLogoutRequestOpcode(WorldPacket& /*recvData*/)
else if (GetPlayer()->duel || GetPlayer()->HasAura(9454)) // is dueling or frozen by GM via freeze command
reason = 2; // FIXME - Need the correct value
- WorldPacket data(SMSG_LOGOUT_RESPONSE, 1+4);
- data << uint32(reason);
- data << uint8(instantLogout);
- SendPacket(&data);
+ WorldPackets::Character::LogoutResponse logoutResponse;
+ logoutResponse.LogoutResult = reason;
+ logoutResponse.Instant = instantLogout;
+ SendPacket(logoutResponse.Write());
if (reason)
{
- LogoutRequest(0);
+ SetLogoutStartTime(0);
return;
}
@@ -422,15 +423,10 @@ void WorldSession::HandleLogoutRequestOpcode(WorldPacket& /*recvData*/)
GetPlayer()->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED);
}
- LogoutRequest(time(NULL));
+ SetLogoutStartTime(time(NULL));
}
-void WorldSession::HandlePlayerLogoutOpcode(WorldPacket& /*recvData*/)
-{
- TC_LOG_DEBUG("network", "WORLD: Recvd CMSG_PLAYER_LOGOUT Message");
-}
-
-void WorldSession::HandleLogoutCancelOpcode(WorldPacket& /*recvData*/)
+void WorldSession::HandleLogoutCancelOpcode(WorldPackets::Character::LogoutCancel& /*logoutCancel*/)
{
TC_LOG_DEBUG("network", "WORLD: Recvd CMSG_LOGOUT_CANCEL Message");
@@ -438,10 +434,9 @@ void WorldSession::HandleLogoutCancelOpcode(WorldPacket& /*recvData*/)
if (!GetPlayer())
return;
- LogoutRequest(0);
+ SetLogoutStartTime(0);
- WorldPacket data(SMSG_LOGOUT_CANCEL_ACK, 0);
- SendPacket(&data);
+ SendPacket(WorldPackets::Character::LogoutCancelAck().Write());
// not remove flags if can't free move - its not set in Logout request code.
if (GetPlayer()->CanFreeMove())