aboutsummaryrefslogtreecommitdiff
path: root/src/game/SpellEffects.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/SpellEffects.cpp')
-rw-r--r--src/game/SpellEffects.cpp10
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)