aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/MovementHandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Handlers/MovementHandler.cpp')
-rw-r--r--src/server/game/Handlers/MovementHandler.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/server/game/Handlers/MovementHandler.cpp b/src/server/game/Handlers/MovementHandler.cpp
index cad1ef77daa..540107148fa 100644
--- a/src/server/game/Handlers/MovementHandler.cpp
+++ b/src/server/game/Handlers/MovementHandler.cpp
@@ -32,7 +32,9 @@
#include "ObjectMgr.h"
#include "MovementStructures.h"
-void WorldSession::HandleMoveWorldportAckOpcode(WorldPacket& /*recvPacket*/)
+#define MOVEMENT_PACKET_TIME_DELAY 0
+
+void WorldSession::HandleMoveWorldportAckOpcode(WorldPacket & /*recvData*/)
{
TC_LOG_DEBUG(LOG_FILTER_NETWORKIO, "WORLD: got MSG_MOVE_WORLDPORT_ACK.");
HandleMoveWorldportAckOpcode();
@@ -372,7 +374,14 @@ void WorldSession::HandleMovementOpcodes(WorldPacket& recvPacket)
plrMover->SetInWater(!plrMover->IsInWater() || plrMover->GetBaseMap()->IsUnderWater(movementInfo.pos.GetPositionX(), movementInfo.pos.GetPositionY(), movementInfo.pos.GetPositionZ()));
}
- movementInfo.time = getMSTime();
+ uint32 mstime = getMSTime();
+ /*----------------------*/
+ if(m_clientTimeDelay == 0)
+ m_clientTimeDelay = mstime - movementInfo.time;
+
+ /* process position-change */
+ movementInfo.time = movementInfo.time + m_clientTimeDelay + MOVEMENT_PACKET_TIME_DELAY;
+
movementInfo.guid = mover->GetGUID();
mover->m_movementInfo = movementInfo;