From 6c7837f947ff4eb5110a116a371daa6f9e2b3bbe Mon Sep 17 00:00:00 2001 From: Peter Keresztes Schmidt Date: Sat, 15 Aug 2020 15:29:43 +0200 Subject: Core/Unit: Make HandleEmoteCommand typesafe (#25249) * Scripts/ScarletMonastery: Fix wrong emote during Headless Horseman encounter * Scripts/HoR: Fix wrong emote during escape event * Core/Unit: Make improve type safety of HandleEmoteCommand Change argument type to the expected enum type Emote * Scripts/CoS: Use SetUInt32Value to set UNIT_NPC_EMOTESTATE UNIT_NPC_EMOTESTATE is no flag field --- src/server/game/Scripting/ScriptMgr.cpp | 2 +- src/server/game/Scripting/ScriptMgr.h | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'src/server/game/Scripting') diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index 6e0024e769d..acb2c962d57 100644 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -1910,7 +1910,7 @@ 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::OnPlayerEmote(Player* player, Emote emote) { FOREACH_SCRIPT(PlayerScript)->OnEmote(player, emote); } diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h index f255a3b06a3..be35f14448e 100644 --- a/src/server/game/Scripting/ScriptMgr.h +++ b/src/server/game/Scripting/ScriptMgr.h @@ -76,6 +76,7 @@ enum BattlegroundTypeId : uint32; enum ContentLevels : uint8; enum Difficulty : uint8; enum DuelCompleteType : uint8; +enum Emote : uint32; enum QuestStatus : uint8; enum RemoveMethod : uint8; enum ShutdownExitCode : uint32; @@ -682,7 +683,7 @@ class TC_GAME_API PlayerScript : public ScriptObject 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 OnEmote(Player* /*player*/, Emote /*emote*/) { } virtual void OnTextEmote(Player* /*player*/, uint32 /*textEmote*/, uint32 /*emoteNum*/, ObjectGuid /*guid*/) { } @@ -1027,7 +1028,7 @@ class TC_GAME_API 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 OnPlayerEmote(Player* player, Emote emote); void OnPlayerTextEmote(Player* player, uint32 textEmote, uint32 emoteNum, ObjectGuid guid); void OnPlayerSpellCast(Player* player, Spell* spell, bool skipCheck); void OnPlayerLogin(Player* player, bool firstLogin); -- cgit v1.2.3