diff options
| author | Shauren <shauren.trinity@gmail.com> | 2020-12-28 11:29:33 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2020-12-28 11:29:33 +0100 |
| commit | 110564e757fefbfbddfab876a96ca9eb5aa7dd7b (patch) | |
| tree | fe64d473f12106fe7665a32a62d605e07b70d229 /src | |
| parent | 2e4609f6e18c181fbb54ec851a9ccd5bd3c6eb7b (diff) | |
Core/Vehicles: Treat entering other vehicles mounted on main vehicle as swapping seats
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/Spells/Auras/SpellAuraEffects.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index b9b599be9ea..bd05a5fbc41 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -3023,7 +3023,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 |
