diff options
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 7 | ||||
| -rw-r--r-- | src/server/game/Spells/SpellDefines.h | 4 |
2 files changed, 9 insertions, 2 deletions
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 |
