aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/game/Spell.cpp5
-rw-r--r--src/game/SpellAuras.cpp19
-rw-r--r--src/game/SpellEffects.cpp4
-rw-r--r--src/game/Unit.cpp2
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);
}
}
}