aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/MiscHandler.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2015-08-15 14:24:42 +0200
committerForesterDev <gmmunchkinbox@gmail.com>2020-03-12 17:10:13 +0100
commit425f588525cb0b5f384e0bc3b566cdd476579dbb (patch)
tree422eca92db13b75927b8b0ed5072822b35d461a2 /src/server/game/Handlers/MiscHandler.cpp
parentaf6d207addfef177fb5ac3e7fa61ec93ced83d16 (diff)
Core/PacketIO: Updated and enabled CMSG_WORLD_TELEPORT (GM opcode)
(cherry picked from commit 7632e1182584236ab2e8069ac6e3739fd7de47b0)
Diffstat (limited to 'src/server/game/Handlers/MiscHandler.cpp')
-rw-r--r--src/server/game/Handlers/MiscHandler.cpp33
1 files changed, 10 insertions, 23 deletions
diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp
index 38e0ea8a19f..552db8c6ffc 100644
--- a/src/server/game/Handlers/MiscHandler.cpp
+++ b/src/server/game/Handlers/MiscHandler.cpp
@@ -38,6 +38,7 @@
#include "Language.h"
#include "Log.h"
#include "MapManager.h"
+#include "MiscPackets.h"
#include "Object.h"
#include "ObjectAccessor.h"
#include "ObjectMgr.h"
@@ -1042,36 +1043,22 @@ void WorldSession::HandleInspectHonorStatsOpcode(WorldPacket& recvData)
SendPacket(&data);
}
-void WorldSession::HandleWorldTeleportOpcode(WorldPacket& recvData)
+void WorldSession::HandleWorldTeleportOpcode(WorldPackets::Misc::WorldTeleport& worldTeleport)
{
- uint32 time;
- uint32 mapid;
- float PositionX;
- float PositionY;
- float PositionZ;
- float Orientation;
-
- recvData >> time; // time in m.sec.
- recvData >> mapid;
- recvData >> PositionX;
- recvData >> PositionY;
- recvData >> PositionZ;
- recvData >> Orientation; // o (3.141593 = 180 degrees)
-
- TC_LOG_DEBUG("network", "WORLD: Received CMSG_WORLD_TELEPORT");
-
- if (GetPlayer()->IsInFlight())
+ if (_player->IsInFlight())
{
- TC_LOG_DEBUG("network", "Player '%s' (GUID: %u) in flight, ignore worldport command.",
- GetPlayer()->GetName().c_str(), GetPlayer()->GetGUID().GetCounter());
+ TC_LOG_DEBUG("network", "Player '%s' (%s) in flight, ignore worldport command.",
+ _player->GetName().c_str(), _player->GetGUID().ToString().c_str());
return;
}
- TC_LOG_DEBUG("network", "CMSG_WORLD_TELEPORT: Player = %s, Time = %u, map = %u, x = %f, y = %f, z = %f, o = %f",
- GetPlayer()->GetName().c_str(), time, mapid, PositionX, PositionY, PositionZ, Orientation);
+ WorldLocation loc(worldTeleport.MapID, worldTeleport.Pos);
+ loc.SetOrientation(worldTeleport.Facing);
+ TC_LOG_DEBUG("network", "CMSG_WORLD_TELEPORT: Player = %s, time = %u, map = %u, pos = %s",
+ _player->GetName().c_str(), worldTeleport.Time, worldTeleport.MapID, loc.ToString().c_str());
if (HasPermission(rbac::RBAC_PERM_OPCODE_WORLD_TELEPORT))
- GetPlayer()->TeleportTo(mapid, PositionX, PositionY, PositionZ, Orientation);
+ _player->TeleportTo(loc);
else
SendNotification(LANG_YOU_NOT_HAVE_PERMISSION);
}