aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDekadence <dekadence.net@gmail.com>2014-09-06 03:20:39 +0200
committerDekadence <dekadence.net@gmail.com>2014-09-06 03:20:39 +0200
commit57ceeae828f94557e865f5a903a2914e1ce3dfea (patch)
treeb740cc24b677e16bf8cb78f30922ce9449c3b02a /src
parent9a4f062b266315c99d5d2f018abc5161b890f81f (diff)
Player/Emotes: Fix infinite dance and read map animation
Thx to @Kinzcool and @SeTM for the info This closes #10067
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Handlers/ChatHandler.cpp4
-rw-r--r--src/server/game/Handlers/MovementHandler.cpp4
2 files changed, 8 insertions, 0 deletions
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)
{