diff options
-rw-r--r-- | src/game/Spell.cpp | 5 | ||||
-rw-r--r-- | src/game/SpellAuras.cpp | 19 | ||||
-rw-r--r-- | src/game/SpellEffects.cpp | 4 | ||||
-rw-r--r-- | src/game/Unit.cpp | 2 |
4 files changed, 6 insertions, 24 deletions
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 3269f91dee6..e4d57801161 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -2066,8 +2066,9 @@ void Spell::prepare(SpellCastTargets const* targets, Aura* triggeredByAura) // set timer base at cast time ReSetTimer(); - - if(m_IsTriggeredSpell) + //Containers for channeled spells have to be set + //TODO:Apply this to all casted spells if needed + if(m_IsTriggeredSpell && !IsChanneledSpell(m_spellInfo)) cast(true); else { diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index b518e5770cb..1ae6880f2c5 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -1975,25 +1975,6 @@ void Aura::HandleAuraDummy(bool apply, bool Real) return; } - if (caster && m_removeMode == AURA_REMOVE_BY_DEATH) - { - // Stop caster Arcane Missle chanelling on death - if (m_spellProto->SpellFamilyName == SPELLFAMILY_MAGE && - m_spellProto->SpellFamilyFlags[0] & 0x800) - { - caster->InterruptSpell(CURRENT_CHANNELED_SPELL); - return; - } - // Stop caster Penance chanelling on death - if (m_spellProto->SpellFamilyName == SPELLFAMILY_PRIEST && - m_spellProto->SpellFamilyFlags[2] & 0x00000080) - { - caster->InterruptSpell(CURRENT_CHANNELED_SPELL); - return; - } - - } - // some auras remove at aura remove if(GetEffIndex()==0 && m_target->GetTypeId()==TYPEID_PLAYER) { diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 468e79cb510..3bdad19a797 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -1894,8 +1894,8 @@ void Spell::EffectTriggerRitualOfSummoning(uint32 i) targets.setUnitTarget( unitTarget); spell->prepare(&targets); - m_caster->SetCurrentCastedSpell(spell); - spell->m_selfContainer = &(m_caster->m_currentSpells[spell->GetCurrentContainer()]); + //m_caster->SetCurrentCastedSpell(spell); + //spell->m_selfContainer = &(m_caster->m_currentSpells[spell->GetCurrentContainer()]); } diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index e264b669e03..2ac67aaa3fa 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -4174,7 +4174,7 @@ void Unit::RemoveAura(AuraMap::iterator &i, AuraRemoveMode mode) && AurSpellInfo->EffectApplyAuraName[Aur->GetEffIndex()]!= SPELL_AURA_DUMMY) //don't stop channeling of scripted spells (this is actually a hack) { - caster->m_currentSpells[CURRENT_CHANNELED_SPELL]->cancel(); + caster->InterruptSpell(CURRENT_CHANNELED_SPELL); } } } |