From 99c931652d02f337b63bb474ef380c6bae5df394 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Sat, 3 Feb 2024 13:15:36 -0500 Subject: [PATCH] Core/Units: Update PlayHoverAnim state when flying or hovering Port From (https://github.com/TrinityCore/TrinityCore/commit/c1b36eec5678090654dfd65a3fef29ea8ada6ef2) --- Source/Game/Entities/Unit/Unit.Movement.cs | 28 +++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/Source/Game/Entities/Unit/Unit.Movement.cs b/Source/Game/Entities/Unit/Unit.Movement.cs index 7e2734a51..66378f3d6 100644 --- a/Source/Game/Entities/Unit/Unit.Movement.cs +++ b/Source/Game/Entities/Unit/Unit.Movement.cs @@ -734,6 +734,16 @@ namespace Game.Entities SetAnimTier(AnimTier.Ground); } + if (IsAlive()) + { + if (IsGravityDisabled() || IsHovering()) + SetPlayHoverAnim(true); + else + SetPlayHoverAnim(false); + } + else if (IsPlayer()) // To update player who dies while flying/hovering + SetPlayHoverAnim(false, false); + return true; } @@ -1112,6 +1122,16 @@ namespace Game.Entities SetAnimTier(AnimTier.Ground); } + if (IsAlive()) + { + if (IsGravityDisabled() || IsHovering()) + SetPlayHoverAnim(true); + else + SetPlayHoverAnim(false); + } + else if (IsPlayer()) // To update player who dies while flying/hovering + SetPlayHoverAnim(false, false); + return true; } @@ -1661,10 +1681,16 @@ namespace Game.Entities public bool IsPlayingHoverAnim() { return _playHoverAnim; } - void SetPlayHoverAnim(bool enable) + void SetPlayHoverAnim(bool enable, bool sendUpdate = true) { + if (IsPlayingHoverAnim() == enable) + return; + _playHoverAnim = enable; + if (!sendUpdate) + return; + SetPlayHoverAnim data = new(); data.UnitGUID = GetGUID(); data.PlayHoverAnim = enable;