aboutsummaryrefslogtreecommitdiff
path: root/src/game/SpellHandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/SpellHandler.cpp')
-rw-r--r--src/game/SpellHandler.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/game/SpellHandler.cpp b/src/game/SpellHandler.cpp
index 3ed9c04a259..868ba1d0ff8 100644
--- a/src/game/SpellHandler.cpp
+++ b/src/game/SpellHandler.cpp
@@ -33,6 +33,7 @@
#include "MapManager.h"
#include "ScriptCalls.h"
#include "Totem.h"
+#include "TemporarySummon.h"
void WorldSession::HandleUseItemOpcode(WorldPacket& recvPacket)
{
@@ -370,6 +371,14 @@ void WorldSession::HandleCancelAuraOpcode( WorldPacket& recvPacket)
((Unit*)_player->GetFarsightTarget())->RemoveAurasDueToSpellByCancel(spellId);
return;
}
+ else if (spellInfo->Effect[i] == SPELL_EFFECT_SUMMON &&
+ (spellInfo->EffectMiscValueB[i] == SUMMON_TYPE_POSESSED ||
+ spellInfo->EffectMiscValueB[i] == SUMMON_TYPE_POSESSED2 ||
+ spellInfo->EffectMiscValueB[i] == SUMMON_TYPE_POSESSED3))
+ {
+ // Possession is removed in the UnSummon function
+ ((TemporarySummon*)caster->GetCharm())->UnSummon();
+ }
}
}