aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2016-09-03 22:00:20 -0300
committerjoschiwald <joschiwald.trinity@gmail.com>2017-02-19 15:34:57 +0100
commitb1b150a419241e926669807363913553b73f8b47 (patch)
tree5696fceb8136773daf3143ec9cec3166c0e8b851
parentb239afb0ef3086020637f43c8a48a38eef6b9fee (diff)
Core/Transport: do not relocate players on board of vehicles when near teleporting. Vehicle should take care of that
(cherry picked from commit 7470bf6b97eed6732fd1e076bb290f4f97e402a3)
-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 42112c9845d..b8329d24a8b 100644
--- a/src/server/game/Entities/Transport/Transport.cpp
+++ b/src/server/game/Entities/Transport/Transport.cpp
@@ -628,6 +628,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);