diff options
Diffstat (limited to 'src/game/SpellEffects.cpp')
-rw-r--r-- | src/game/SpellEffects.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index c3503d35683..10562bbd4fb 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -2028,7 +2028,7 @@ void Spell::EffectForceCast(uint32 i) unitTarget->CastSpell(unitTarget, spellInfo, true, NULL, NULL, m_originalCasterGUID); } -void Spell::EffectTriggerSpell(uint32 i) +void Spell::EffectTriggerSpell(uint32 effIndex) { // only unit case known if (!unitTarget) @@ -2038,7 +2038,7 @@ void Spell::EffectTriggerSpell(uint32 i) return; } - uint32 triggered_spell_id = m_spellInfo->EffectTriggerSpell[i]; + uint32 triggered_spell_id = m_spellInfo->EffectTriggerSpell[effIndex]; // special cases switch(triggered_spell_id) @@ -2184,7 +2184,11 @@ void Spell::EffectTriggerSpell(uint32 i) && m_spellInfo->Category == spellInfo->Category) ((Player*)m_caster)->RemoveSpellCooldown(spellInfo->Id); - m_caster->CastSpell(unitTarget,spellInfo,true,NULL,NULL,m_originalCasterGUID); + // Note: not exist spells with weapon req. and IsSpellHaveCasterSourceTargets == true + // so this just for speedup places in else + Unit *caster = IsSpellWithCasterSourceTargetsOnly(spellInfo) ? unitTarget : m_caster; + + caster->CastSpell(unitTarget,spellInfo,true,NULL,NULL,m_originalCasterGUID); } void Spell::EffectTriggerMissileSpell(uint32 effect_idx) |