aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/SpellHandler.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-06-05 12:31:33 +0200
committerShauren <shauren.trinity@gmail.com>2025-06-05 12:31:33 +0200
commitb88f4b7f4f8744b7cd455c07d3b94a704c373dfe (patch)
tree486670e4307a47b960a0f159b1b654e5e4707633 /src/server/game/Handlers/SpellHandler.cpp
parent8d3b81d4993c077d18bcb7dd81752b24adfa6de9 (diff)
Core/PacketIO: Implemented CMSG_UPDATE_AREA_TRIGGER_VISUAL
Diffstat (limited to 'src/server/game/Handlers/SpellHandler.cpp')
-rw-r--r--src/server/game/Handlers/SpellHandler.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/server/game/Handlers/SpellHandler.cpp b/src/server/game/Handlers/SpellHandler.cpp
index 0b66cdfc6cb..76999e55249 100644
--- a/src/server/game/Handlers/SpellHandler.cpp
+++ b/src/server/game/Handlers/SpellHandler.cpp
@@ -16,6 +16,8 @@
*/
#include "WorldSession.h"
+#include "AreaTrigger.h"
+#include "AreaTriggerPackets.h"
#include "CollectionMgr.h"
#include "Common.h"
#include "DatabaseEnv.h"
@@ -607,6 +609,22 @@ void WorldSession::HandleUpdateAuraVisual(WorldPackets::Spells::UpdateAuraVisual
_player->SetChannelVisual({ .SpellXSpellVisualID = spellXspellVisualId });
}
+void WorldSession::HandleUpdateAreaTriggerVisual(WorldPackets::AreaTrigger::UpdateAreaTriggerVisual const& updateAreaTriggerVisual)
+{
+ AreaTrigger* target = ObjectAccessor::GetAreaTrigger(*_player, updateAreaTriggerVisual.TargetGUID);
+ if (!target)
+ return;
+
+ if (target->GetCasterGuid() != _player->GetGUID())
+ return;
+
+ SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(target->m_areaTriggerData->SpellForVisuals, _player->GetMap()->GetDifficultyID());
+ if (!spellInfo)
+ return;
+
+ target->SetSpellVisual({ .SpellXSpellVisualID = _player->GetCastSpellXSpellVisualId(spellInfo) });
+}
+
void WorldSession::HandleKeyboundOverride(WorldPackets::Spells::KeyboundOverride& keyboundOverride)
{
Player* player = GetPlayer();