diff options
-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; } } } |