diff options
author | megamage <none@none> | 2009-04-21 12:55:26 -0500 |
---|---|---|
committer | megamage <none@none> | 2009-04-21 12:55:26 -0500 |
commit | 4e1143c990154e2dc52ddacdc522f89e455338cc (patch) | |
tree | ce87b2c4db3e7978330cc759fc344992e994c5b9 /src/game/Map.cpp | |
parent | 9e46994506616bc4ffd6aa84267c785e833bbc87 (diff) |
*Fix a crash of vehicle.
--HG--
branch : trunk
Diffstat (limited to 'src/game/Map.cpp')
-rw-r--r-- | src/game/Map.cpp | 18 |
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)); |