diff options
author | megamage <none@none> | 2009-06-19 17:04:45 -0500 |
---|---|---|
committer | megamage <none@none> | 2009-06-19 17:04:45 -0500 |
commit | 8f0cb4a3a291869472e7b793f4ab550b6760430c (patch) | |
tree | 38d07926fdf406337a2d4edfff9455ab8bbfcf37 /src | |
parent | 07c59aeff5ecdfdfa7c07de123826882477d6098 (diff) |
*Fix a crash caused by vehicles.
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/game/Vehicle.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/game/Vehicle.cpp b/src/game/Vehicle.cpp index 2a688dd254a..0aa0d48a24c 100644 --- a/src/game/Vehicle.cpp +++ b/src/game/Vehicle.cpp @@ -160,11 +160,16 @@ void Vehicle::RemoveAllPassengers() { if(passenger->GetTypeId() == TYPEID_UNIT && ((Creature*)passenger)->isVehicle()) ((Vehicle*)passenger)->RemoveAllPassengers(); + if(!passenger->m_Vehicle || passenger->m_Vehicle != this) + { + sLog.outCrash("Vehicle %u has invalid passenger %u.", GetEntry(), passenger->GetEntry()); + } passenger->ExitVehicle(); if(itr->second.passenger) { - sLog.outCrash("Vehicle %u cannot remove passenger %u.", GetEntry(), itr->second.passenger->GetEntry()); - assert(!itr->second.passenger); + sLog.outCrash("Vehicle %u cannot remove passenger %u. %u is still on it.", GetEntry(), passenger->GetEntry(), itr->second.passenger->GetEntry()); + //assert(!itr->second.passenger); + itr->second.passenger = NULL; } } } |