From 57ceeae828f94557e865f5a903a2914e1ce3dfea Mon Sep 17 00:00:00 2001 From: Dekadence Date: Sat, 6 Sep 2014 03:20:39 +0200 Subject: Player/Emotes: Fix infinite dance and read map animation Thx to @Kinzcool and @SeTM for the info This closes #10067 --- src/server/game/Handlers/ChatHandler.cpp | 4 ++++ src/server/game/Handlers/MovementHandler.cpp | 4 ++++ 2 files changed, 8 insertions(+) (limited to 'src') diff --git a/src/server/game/Handlers/ChatHandler.cpp b/src/server/game/Handlers/ChatHandler.cpp index 422d0d9c7d2..0ce9c21b399 100644 --- a/src/server/game/Handlers/ChatHandler.cpp +++ b/src/server/game/Handlers/ChatHandler.cpp @@ -746,6 +746,10 @@ void WorldSession::HandleTextEmoteOpcode(WorldPacket& recvData) case EMOTE_STATE_KNEEL: case EMOTE_ONESHOT_NONE: break; + case EMOTE_STATE_DANCE: + case EMOTE_STATE_READ: + GetPlayer()->SetUInt32Value(UNIT_NPC_EMOTESTATE, emote_anim); + 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 b59f9aca943..139be4e9d4c 100644 --- a/src/server/game/Handlers/MovementHandler.cpp +++ b/src/server/game/Handlers/MovementHandler.cpp @@ -297,6 +297,10 @@ void WorldSession::HandleMovementOpcodes(WorldPacket& recvPacket) return; } + // stop some emotes at player move + if (plrMover && (plrMover->GetUInt32Value(UNIT_NPC_EMOTESTATE) != 0)) + plrMover->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); + /* handle special cases */ if (movementInfo.transport.guid) { -- cgit v1.2.3