diff options
author | thenecromancer <none@none> | 2010-01-13 10:04:48 +0100 |
---|---|---|
committer | thenecromancer <none@none> | 2010-01-13 10:04:48 +0100 |
commit | 3af5237f8cdf426b78feb0686d487f70ee429993 (patch) | |
tree | 6d1124d4577d20c5ef22ebe61b3f22b8fb035cf7 | |
parent | ac4bab545197f9fb393d7225d5c3d6597871978a (diff) |
Do not remove MOVEMENTFLAG_ONTRANSPORT when unit has existing GAMEOBJECT_TYPE_TRANSPORT in movement info
Note that this will fix movement on elevators only visualy ( server position is still going to be wrong )
--HG--
branch : trunk
-rw-r--r-- | src/game/MovementHandler.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/game/MovementHandler.cpp b/src/game/MovementHandler.cpp index e675352f198..e249766ed35 100644 --- a/src/game/MovementHandler.cpp +++ b/src/game/MovementHandler.cpp @@ -307,7 +307,11 @@ void WorldSession::HandleMovementOpcodes( WorldPacket & recv_data ) } if (!mover->GetTransport() && !mover->GetVehicle()) - movementInfo.flags &= ~MOVEMENTFLAG_ONTRANSPORT; + {
+ GameObject *go = mover->GetMap()->GetGameObject(movementInfo.t_guid);
+ if (!go || go->GetGoType() != GAMEOBJECT_TYPE_TRANSPORT)
+ movementInfo.flags &= ~MOVEMENTFLAG_ONTRANSPORT;
+ } } else if (plMover && plMover->GetTransport()) // if we were on a transport, leave { |