aboutsummaryrefslogtreecommitdiff
path: root/src/game/Map.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/Map.cpp')
-rw-r--r--src/game/Map.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/game/Map.cpp b/src/game/Map.cpp
index f0dce40e2fd..0dabf205af7 100644
--- a/src/game/Map.cpp
+++ b/src/game/Map.cpp
@@ -911,11 +911,21 @@ Map::CreatureRelocation(Creature *creature, float x, float y, float z, float ang
if(creature->isVehicle())
{
for(SeatMap::iterator itr = ((Vehicle*)creature)->m_Seats.begin(); itr != ((Vehicle*)creature)->m_Seats.end(); ++itr)
- if(itr->second.passenger)
- if(itr->second.passenger->GetTypeId() == TYPEID_PLAYER)
- PlayerRelocation((Player*)itr->second.passenger, x, y, z, ang);
+ if(Unit *passenger = itr->second.passenger)
+ {
+ if(passenger->GetTypeId() == TYPEID_PLAYER)
+ PlayerRelocation((Player*)passenger,
+ x + passenger->m_movementInfo.t_x,
+ y + passenger->m_movementInfo.t_y,
+ z + passenger->m_movementInfo.t_z,
+ ang + passenger->m_movementInfo.t_o);
else
- CreatureRelocation((Creature*)itr->second.passenger, x, y, z, ang);
+ CreatureRelocation((Creature*)passenger,
+ x + passenger->m_movementInfo.t_x,
+ y + passenger->m_movementInfo.t_y,
+ z + passenger->m_movementInfo.t_z,
+ ang + passenger->m_movementInfo.t_o);
+ }
}
assert(CheckGridIntegrity(creature,true));