From 107f5ce0a40fdbd325cdb467baaee841d39e0958 Mon Sep 17 00:00:00 2001 From: Seyden Date: Mon, 8 Nov 2021 10:16:55 +0100 Subject: Core/Auras: Implement SpellAuraInterruptFlags2::Ground and SpellAuraInterruptFlags2::Swimming (#27193) --- src/server/game/Entities/Unit/Unit.cpp | 7 +++++++ src/server/game/Spells/SpellDefines.h | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) (limited to 'src/server') diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 3659f304091..4134cd66b35 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -12060,6 +12060,13 @@ bool Unit::UpdatePosition(float x, float y, float z, float orientation, bool tel UpdatePositionData(); + bool isInWater = IsInWater(); + if (!IsFalling() || isInWater || IsFlying()) + RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags2::Ground); + + if (isInWater) + RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags2::Swimming); + return (relocated || turn); } diff --git a/src/server/game/Spells/SpellDefines.h b/src/server/game/Spells/SpellDefines.h index 1b32fd91d52..9c402167a5f 100644 --- a/src/server/game/Spells/SpellDefines.h +++ b/src/server/game/Spells/SpellDefines.h @@ -112,9 +112,9 @@ enum class SpellAuraInterruptFlags2 : uint32 { None = 0, Falling = 0x00000001, // NYI - Swimming = 0x00000002, // NYI + Swimming = 0x00000002, NotMoving = 0x00000004, // NYI - Ground = 0x00000008, // NYI + Ground = 0x00000008, Transform = 0x00000010, // NYI Jump = 0x00000020, ChangeSpec = 0x00000040, // NYI -- cgit v1.2.3