From 7817f18c24c89c608fee46e2c2c777865c7ad59e Mon Sep 17 00:00:00 2001 From: Shauren Date: Mon, 28 Dec 2020 11:29:33 +0100 Subject: Core/Vehicles: Treat entering other vehicles mounted on main vehicle as swapping seats (cherry picked from commit 110564e757fefbfbddfab876a96ca9eb5aa7dd7b) --- src/server/game/Spells/Auras/SpellAuraEffects.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index cf6155a5874..0627faf8f00 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -2974,7 +2974,10 @@ void AuraEffect::HandleAuraControlVehicle(AuraApplication const* aurApp, uint8 m caster->ToCreature()->DespawnOrUnsummon(); } - 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 -- cgit v1.2.3