diff options
author | Peter Keresztes Schmidt <carbenium@outlook.com> | 2020-08-15 15:29:43 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-01-26 21:46:51 +0100 |
commit | 2e3c612c808bca7601b32ce5dca28b204e652773 (patch) | |
tree | 61f88efa0f2bc5781183ad5c8989b508f46b634c /src/server/game/Handlers/ChatHandler.cpp | |
parent | 595e89e02bec7300b3dd42afc5899a64f79aecba (diff) |
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
(cherry picked from commit 6c7837f947ff4eb5110a116a371daa6f9e2b3bbe)
Diffstat (limited to 'src/server/game/Handlers/ChatHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/ChatHandler.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/server/game/Handlers/ChatHandler.cpp b/src/server/game/Handlers/ChatHandler.cpp index 2f5a0234d91..bae2ba82818 100644 --- a/src/server/game/Handlers/ChatHandler.cpp +++ b/src/server/game/Handlers/ChatHandler.cpp @@ -663,9 +663,9 @@ void WorldSession::HandleTextEmoteOpcode(WorldPackets::Chat::CTextEmote& packet) if (!em) return; - uint32 emoteAnim = em->EmoteID; + Emote emote = static_cast<Emote>(em->EmoteID); - switch (emoteAnim) + switch (emote) { case EMOTE_STATE_SLEEP: case EMOTE_STATE_SIT: @@ -674,13 +674,13 @@ void WorldSession::HandleTextEmoteOpcode(WorldPackets::Chat::CTextEmote& packet) break; case EMOTE_STATE_DANCE: case EMOTE_STATE_READ: - _player->SetEmoteState(Emote(emoteAnim)); + _player->SetEmoteState(emote); break; default: // Only allow text-emotes for "dead" entities (feign death included) if (_player->HasUnitState(UNIT_STATE_DIED)) break; - _player->HandleEmoteCommand(emoteAnim, nullptr, { packet.SpellVisualKitIDs.data(), packet.SpellVisualKitIDs.data() + packet.SpellVisualKitIDs.size() }); + _player->HandleEmoteCommand(emote, nullptr, { packet.SpellVisualKitIDs.data(), packet.SpellVisualKitIDs.data() + packet.SpellVisualKitIDs.size() }); break; } @@ -701,7 +701,7 @@ void WorldSession::HandleTextEmoteOpcode(WorldPackets::Chat::CTextEmote& packet) if (Creature* creature = unit->ToCreature()) creature->AI()->ReceiveEmote(_player, packet.EmoteID); - if (emoteAnim != EMOTE_ONESHOT_NONE) + if (emote != EMOTE_ONESHOT_NONE) _player->RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags::Anim); } |