aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2016-09-03 22:00:20 -0300
committerariel- <ariel-@users.noreply.github.com>2016-09-03 22:00:20 -0300
commit7470bf6b97eed6732fd1e076bb290f4f97e402a3 (patch)
tree4e4a02c1f9de6545f6d658bd0482949369c6d34c /src
parent14445d2202de1b58dcb04c5457be682b8e7075ca (diff)
Core/Transport: do not relocate players on board of vehicles when near teleporting. Vehicle should take care of that
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Transport/Transport.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/server/game/Entities/Transport/Transport.cpp b/src/server/game/Entities/Transport/Transport.cpp
index da9c713d5a9..fad197949a8 100644
--- a/src/server/game/Entities/Transport/Transport.cpp
+++ b/src/server/game/Entities/Transport/Transport.cpp
@@ -616,6 +616,11 @@ bool Transport::TeleportTransport(uint32 newMapid, float x, float y, float z, fl
{
if ((*itr)->GetTypeId() == TYPEID_PLAYER)
{
+ // will be relocated in UpdatePosition of the vehicle
+ if (Unit* veh = (*itr)->ToUnit()->GetVehicleBase())
+ if (veh->GetTransport() == this)
+ continue;
+
float destX, destY, destZ, destO;
(*itr)->m_movementInfo.transport.pos.GetPosition(destX, destY, destZ, destO);
TransportBase::CalculatePassengerPosition(destX, destY, destZ, &destO, x, y, z, o);