diff options
author | QAston@qaston-pc <none@none> | 2009-03-01 02:46:33 +0100 |
---|---|---|
committer | QAston@qaston-pc <none@none> | 2009-03-01 02:46:33 +0100 |
commit | 783714aff351ce60b40e7d15796622b5f4e5d7ca (patch) | |
tree | 526c379038825047d092d7681fc71978ece4c929 /src | |
parent | d1717aef696f258980254c4e705b22c1e1967fcb (diff) |
*Fix Penance.
*Remove some hacks from channeled spells related code.
--HG--
branch : trunk
Diffstat (limited to 'src')
-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); } } } |