*Fix a crash caused by vehicles.

--HG--
branch : trunk
This commit is contained in:
megamage
2009-06-19 17:04:45 -05:00
parent 07c59aeff5
commit 8f0cb4a3a2
+7 -2
View File
@@ -160,11 +160,16 @@ void Vehicle::RemoveAllPassengers()
{ {
if(passenger->GetTypeId() == TYPEID_UNIT && ((Creature*)passenger)->isVehicle()) if(passenger->GetTypeId() == TYPEID_UNIT && ((Creature*)passenger)->isVehicle())
((Vehicle*)passenger)->RemoveAllPassengers(); ((Vehicle*)passenger)->RemoveAllPassengers();
if(!passenger->m_Vehicle || passenger->m_Vehicle != this)
{
sLog.outCrash("Vehicle %u has invalid passenger %u.", GetEntry(), passenger->GetEntry());
}
passenger->ExitVehicle(); passenger->ExitVehicle();
if(itr->second.passenger) if(itr->second.passenger)
{ {
sLog.outCrash("Vehicle %u cannot remove passenger %u.", GetEntry(), itr->second.passenger->GetEntry()); sLog.outCrash("Vehicle %u cannot remove passenger %u. %u is still on it.", GetEntry(), passenger->GetEntry(), itr->second.passenger->GetEntry());
assert(!itr->second.passenger); //assert(!itr->second.passenger);
itr->second.passenger = NULL;
} }
} }
} }