aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDekadence <dekadence.net@gmail.com>2014-09-06 03:20:39 +0200
committerShauren <shauren.trinity@gmail.com>2024-10-05 18:52:09 +0200
commit515294f0acde84d2183b232a76b804ed332c6499 (patch)
treeaa513f9a7e98bb4a48edb95f24b811bf6b011721
parentae6b9bd8e8a55dd38d644cec888363f80f597bba (diff)
Player/Emotes: Fix infinite dance and read map animation
Thx to @Kinzcool and @SeTM for the info This closes #10067 (cherry picked from commit 57ceeae828f94557e865f5a903a2914e1ce3dfea)
-rw-r--r--src/server/game/Handlers/ChatHandler.cpp3
-rw-r--r--src/server/game/Handlers/MovementHandler.cpp4
2 files changed, 7 insertions, 0 deletions
diff --git a/src/server/game/Handlers/ChatHandler.cpp b/src/server/game/Handlers/ChatHandler.cpp
index 50f5cefe9eb..c6e0d7e2fc8 100644
--- a/src/server/game/Handlers/ChatHandler.cpp
+++ b/src/server/game/Handlers/ChatHandler.cpp
@@ -649,6 +649,9 @@ void WorldSession::HandleTextEmoteOpcode(WorldPacket& recvData)
case EMOTE_STATE_KNEEL:
case EMOTE_ONESHOT_NONE:
break;
+ case EMOTE_STATE_DANCE:
+ GetPlayer()->SetEmoteState(emote);
+ break;
default:
// Only allow text-emotes for "dead" entities (feign death included)
if (GetPlayer()->HasUnitState(UNIT_STATE_DIED))
diff --git a/src/server/game/Handlers/MovementHandler.cpp b/src/server/game/Handlers/MovementHandler.cpp
index 8064c73d622..8df75eb2e67 100644
--- a/src/server/game/Handlers/MovementHandler.cpp
+++ b/src/server/game/Handlers/MovementHandler.cpp
@@ -303,6 +303,10 @@ void WorldSession::HandleMovementOpcodes(WorldPacket& recvPacket)
if (!mover->movespline->Finalized())
return;
+ // stop some emotes at player move
+ if (plrMover && (plrMover->GetEmoteState() != 0))
+ plrMover->SetEmoteState(EMOTE_ONESHOT_NONE);
+
/* handle special cases */
if (movementInfo.HasMovementFlag(MOVEMENTFLAG_ONTRANSPORT))
{