Core/Vehicles: Treat entering other vehicles mounted on main vehicle as swapping seats

(cherry picked from commit 110564e757)
This commit is contained in:
Shauren
2020-12-28 11:29:33 +01:00
committed by Ovahlord
parent c8d37293e8
commit ef70533e55

View File

@@ -3083,7 +3083,10 @@ void AuraEffect::HandleAuraControlVehicle(AuraApplication const* aurApp, uint8 m
caster->ToCreature()->RemoveCorpse();
}
if (!(mode & AURA_EFFECT_HANDLE_CHANGE_AMOUNT))
bool seatChange = (mode & AURA_EFFECT_HANDLE_CHANGE_AMOUNT) // Seat change on the same direct vehicle
|| target->HasAuraType(SPELL_AURA_CONTROL_VEHICLE); // Seat change to a proxy vehicle (for example turret mounted on a siege engine)
if (!seatChange)
caster->_ExitVehicle();
else
target->GetVehicleKit()->RemovePassenger(caster); // Only remove passenger from vehicle without launching exit movement or despawning the vehicle