From 8f0cb4a3a291869472e7b793f4ab550b6760430c Mon Sep 17 00:00:00 2001 From: megamage Date: Fri, 19 Jun 2009 17:04:45 -0500 Subject: *Fix a crash caused by vehicles. --HG-- branch : trunk --- src/game/Vehicle.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/game/Vehicle.cpp') 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; } } } -- cgit v1.2.3