diff options
| author | Rat <gmstreetrat@gmail.com> | 2014-12-19 20:47:01 +0100 |
|---|---|---|
| committer | Rat <gmstreetrat@gmail.com> | 2014-12-19 20:47:01 +0100 |
| commit | 9fefd963b3278fbdfe87d8c564551febe33b9d59 (patch) | |
| tree | e8c66ec6a62066bb512b2f250297317a2eced6d8 /src/server/game/Spells/Spell.cpp | |
| parent | 085df6d9872e6453ac5080a82686d4195188bd14 (diff) | |
Core/Spells: fixed build and SelectEffectImplicitTargets logic
Diffstat (limited to 'src/server/game/Spells/Spell.cpp')
| -rw-r--r-- | src/server/game/Spells/Spell.cpp | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index b3257ca0673..d8df74cbd15 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -929,20 +929,23 @@ void Spell::SelectEffectImplicitTargets(SpellEffIndex effIndex, SpellImplicitTar // targets for effect already selected if (effectMask & processedEffectMask) return; - // choose which targets we can select at once - for (SpellEffectInfo const* effect : GetEffects()) + if (SpellEffectInfo const* _effect = GetEffect(effIndex)) { - //for (uint32 j = effIndex + 1; j < MAX_SPELL_EFFECTS; ++j) - if (!effect || effect->EffectIndex <= uint32(effIndex)) - continue; - if (effect->IsEffect() && - effect->TargetA.GetTarget() == effect->TargetA.GetTarget() && - effect->TargetB.GetTarget() == effect->TargetB.GetTarget() && - effect->ImplicitTargetConditions == effect->ImplicitTargetConditions && - effect->CalcRadius(m_caster) == effect->CalcRadius(m_caster) && - CheckScriptEffectImplicitTargets(effIndex, effect->EffectIndex)) + // choose which targets we can select at once + for (SpellEffectInfo const* effect : GetEffects()) { - effectMask |= 1 << effect->EffectIndex; + //for (uint32 j = effIndex + 1; j < MAX_SPELL_EFFECTS; ++j) + if (!effect || effect->EffectIndex <= uint32(effIndex)) + continue; + if (effect->IsEffect() && + _effect->TargetA.GetTarget() == effect->TargetA.GetTarget() && + _effect->TargetB.GetTarget() == effect->TargetB.GetTarget() && + _effect->ImplicitTargetConditions == effect->ImplicitTargetConditions && + _effect->CalcRadius(m_caster) == effect->CalcRadius(m_caster) && + CheckScriptEffectImplicitTargets(effIndex, effect->EffectIndex)) + { + effectMask |= 1 << effect->EffectIndex; + } } } processedEffectMask |= effectMask; |
