*Fix a crash caused by vehicles.
--HG-- branch : trunk
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user