aboutsummaryrefslogtreecommitdiff
path: root/src/game/Unit.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-02-23 09:54:48 -0600
committermegamage <none@none>2009-02-23 09:54:48 -0600
commit7ca5b9a8e7e5cf8dba02dc6a4a6d027b5892fb89 (patch)
treec4386ed4746ff6ba1b51bbe2ebcf3a33a203c32f /src/game/Unit.cpp
parent08b760e953fb1a1cdb798d47b8e7681d8422345a (diff)
*Remove possessed summons when aura is cancelled but not when channelling is canncelled. This fix Eye of Kilrogg.
--HG-- branch : trunk
Diffstat (limited to 'src/game/Unit.cpp')
-rw-r--r--src/game/Unit.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 2e4a552c8d0..21a489f188c 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -4673,7 +4673,7 @@ void Unit::RemoveAura(AuraMap::iterator &i, AuraRemoveMode mode)
// Statue unsummoned at aura remove
Totem* statue = NULL;
bool channeled = false;
- if(IsChanneledSpell(AurSpellInfo))
+ if(Aur->GetAuraDuration() && IsChanneledSpell(AurSpellInfo))
{
if(!caster) // can be already located for IsSingleTargetSpell case
caster = Aur->GetCaster();
@@ -4700,6 +4700,22 @@ void Unit::RemoveAura(AuraMap::iterator &i, AuraRemoveMode mode)
}
}
}
+
+ // Unsummon summon as possessed creatures on spell cancel
+ if(caster->GetTypeId() == TYPEID_PLAYER)
+ {
+ for(int i = 0; i < 3; ++i)
+ {
+ if(AurSpellInfo->Effect[i] == SPELL_EFFECT_SUMMON &&
+ (AurSpellInfo->EffectMiscValueB[i] == SUMMON_TYPE_POSESSED ||
+ AurSpellInfo->EffectMiscValueB[i] == SUMMON_TYPE_POSESSED2 ||
+ AurSpellInfo->EffectMiscValueB[i] == SUMMON_TYPE_POSESSED3))
+ {
+ ((Player*)caster)->StopCastingCharm();
+ break;
+ }
+ }
+ }
}
}