diff options
author | Shauren <shauren.trinity@gmail.com> | 2013-10-02 00:13:00 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2013-10-02 00:13:00 +0200 |
commit | 993513ce8d1fc278f83114c5126a07edd820722a (patch) | |
tree | 6e8b239e7573de492ce499d59ba7b23b20e7a542 /src | |
parent | 8fb1f7cc97bdb92999309597c5e7259099bf5ce4 (diff) |
Core/Vehicles: Fixed a crash happening when a minion vehicle despawns with passenger on it
Ref #9738
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 7dccb471eae..b6fef7b200b 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -15943,11 +15943,10 @@ void Unit::RemoveVehicleKit() if (!m_vehicleKit) return; - Vehicle* vehicle = m_vehicleKit; - m_vehicleKit = NULL; + m_vehicleKit->Uninstall(); + delete m_vehicleKit; - vehicle->Uninstall(); - delete vehicle; + m_vehicleKit = NULL; m_updateFlag &= ~UPDATEFLAG_VEHICLE; m_unitTypeMask &= ~UNIT_MASK_VEHICLE; @@ -16905,7 +16904,7 @@ void Unit::_ExitVehicle(Position const* exitPosition) if (vehicle->GetBase()->HasUnitTypeMask(UNIT_MASK_MINION) && vehicle->GetBase()->GetTypeId() == TYPEID_UNIT) if (((Minion*)vehicle->GetBase())->GetOwner() == this) - vehicle->GetBase()->ToCreature()->DespawnOrUnsummon(); + vehicle->GetBase()->ToCreature()->DespawnOrUnsummon(1); if (HasUnitTypeMask(UNIT_MASK_ACCESSORY)) { |