aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Handlers/ChatHandler.cpp6
-rw-r--r--src/server/game/Scripting/ScriptMgr.cpp4
-rw-r--r--src/server/game/Scripting/ScriptMgr.h4
3 files changed, 8 insertions, 6 deletions
diff --git a/src/server/game/Handlers/ChatHandler.cpp b/src/server/game/Handlers/ChatHandler.cpp
index c908a772458..1c960961eaf 100644
--- a/src/server/game/Handlers/ChatHandler.cpp
+++ b/src/server/game/Handlers/ChatHandler.cpp
@@ -529,8 +529,10 @@ void WorldSession::HandleEmoteOpcode(WorldPackets::Chat::EmoteClient& /* packet
if (!GetPlayer()->IsAlive() || GetPlayer()->HasUnitState(UNIT_STATE_DIED))
return;
- sScriptMgr->OnPlayerEmote(GetPlayer(), 0);
- GetPlayer()->HandleEmoteCommand(0);
+ sScriptMgr->OnPlayerClearEmote(GetPlayer());
+
+ if (_player->GetUInt32Value(UNIT_NPC_EMOTESTATE))
+ _player->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
}
void WorldSession::HandleTextEmoteOpcode(WorldPackets::Chat::CTextEmote& packet)
diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp
index dd996ee0f50..8b05ec98fa5 100644
--- a/src/server/game/Scripting/ScriptMgr.cpp
+++ b/src/server/game/Scripting/ScriptMgr.cpp
@@ -1257,9 +1257,9 @@ void ScriptMgr::OnPlayerChat(Player* player, uint32 type, uint32 lang, std::stri
FOREACH_SCRIPT(PlayerScript)->OnChat(player, type, lang, msg, channel);
}
-void ScriptMgr::OnPlayerEmote(Player* player, uint32 emote)
+void ScriptMgr::OnPlayerClearEmote(Player* player)
{
- FOREACH_SCRIPT(PlayerScript)->OnEmote(player, emote);
+ FOREACH_SCRIPT(PlayerScript)->OnClearEmote(player);
}
void ScriptMgr::OnPlayerTextEmote(Player* player, uint32 textEmote, uint32 emoteNum, ObjectGuid guid)
diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h
index 84275b95d81..97f4c4e6bc9 100644
--- a/src/server/game/Scripting/ScriptMgr.h
+++ b/src/server/game/Scripting/ScriptMgr.h
@@ -735,7 +735,7 @@ class PlayerScript : public UnitScript
virtual void OnChat(Player* /*player*/, uint32 /*type*/, uint32 /*lang*/, std::string& /*msg*/, Channel* /*channel*/) { }
// Both of the below are called on emote opcodes.
- virtual void OnEmote(Player* /*player*/, uint32 /*emote*/) { }
+ virtual void OnClearEmote(Player* /*player*/) { }
virtual void OnTextEmote(Player* /*player*/, uint32 /*textEmote*/, uint32 /*emoteNum*/, ObjectGuid /*guid*/) { }
@@ -1076,7 +1076,7 @@ class ScriptMgr
void OnPlayerChat(Player* player, uint32 type, uint32 lang, std::string& msg, Group* group);
void OnPlayerChat(Player* player, uint32 type, uint32 lang, std::string& msg, Guild* guild);
void OnPlayerChat(Player* player, uint32 type, uint32 lang, std::string& msg, Channel* channel);
- void OnPlayerEmote(Player* player, uint32 emote);
+ void OnPlayerClearEmote(Player* player);
void OnPlayerTextEmote(Player* player, uint32 textEmote, uint32 emoteNum, ObjectGuid guid);
void OnPlayerSpellCast(Player* player, Spell* spell, bool skipCheck);
void OnPlayerLogin(Player* player, bool firstLogin);