diff options
author | Rat <gmstreetrat@gmail.com> | 2014-11-24 18:57:49 +0100 |
---|---|---|
committer | Rat <gmstreetrat@gmail.com> | 2014-11-24 18:57:49 +0100 |
commit | 2144d6c85159ad1e8529ef8e8ee1476e947fca92 (patch) | |
tree | 75f88bd9e73e4e860d4d2e6608e078341844ae7d /src/server/game/Scripting/ScriptMgr.cpp | |
parent | 42fa46a11d7ee09054fa3e759307e2a7318b4d71 (diff) |
Core/Spells: core now builds without scripts project, still not stable
Diffstat (limited to 'src/server/game/Scripting/ScriptMgr.cpp')
-rw-r--r-- | src/server/game/Scripting/ScriptMgr.cpp | 73 |
1 files changed, 38 insertions, 35 deletions
diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index ac0b5bbf2e6..ff1978edce6 100644 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -256,70 +256,73 @@ void ScriptMgr::FillSpellSummary() if (!pTempSpell) continue; - for (uint32 j = 0; j < MAX_SPELL_EFFECTS; ++j) + for (SpellEffectInfo const* effect : pTempSpell->GetEffectsForDifficulty(DIFFICULTY_NONE)) { + if (!effect) + continue; + // Spell targets self. - if (pTempSpell->Effects[j].TargetA.GetTarget() == TARGET_UNIT_CASTER) + if (effect->TargetA.GetTarget() == TARGET_UNIT_CASTER) SpellSummary[i].Targets |= 1 << (SELECT_TARGET_SELF-1); // Spell targets a single enemy. - if (pTempSpell->Effects[j].TargetA.GetTarget() == TARGET_UNIT_TARGET_ENEMY || - pTempSpell->Effects[j].TargetA.GetTarget() == TARGET_DEST_TARGET_ENEMY) + if (effect->TargetA.GetTarget() == TARGET_UNIT_TARGET_ENEMY || + effect->TargetA.GetTarget() == TARGET_DEST_TARGET_ENEMY) SpellSummary[i].Targets |= 1 << (SELECT_TARGET_SINGLE_ENEMY-1); // Spell targets AoE at enemy. - if (pTempSpell->Effects[j].TargetA.GetTarget() == TARGET_UNIT_SRC_AREA_ENEMY || - pTempSpell->Effects[j].TargetA.GetTarget() == TARGET_UNIT_DEST_AREA_ENEMY || - pTempSpell->Effects[j].TargetA.GetTarget() == TARGET_SRC_CASTER || - pTempSpell->Effects[j].TargetA.GetTarget() == TARGET_DEST_DYNOBJ_ENEMY) + if (effect->TargetA.GetTarget() == TARGET_UNIT_SRC_AREA_ENEMY || + effect->TargetA.GetTarget() == TARGET_UNIT_DEST_AREA_ENEMY || + effect->TargetA.GetTarget() == TARGET_SRC_CASTER || + effect->TargetA.GetTarget() == TARGET_DEST_DYNOBJ_ENEMY) SpellSummary[i].Targets |= 1 << (SELECT_TARGET_AOE_ENEMY-1); // Spell targets an enemy. - if (pTempSpell->Effects[j].TargetA.GetTarget() == TARGET_UNIT_TARGET_ENEMY || - pTempSpell->Effects[j].TargetA.GetTarget() == TARGET_DEST_TARGET_ENEMY || - pTempSpell->Effects[j].TargetA.GetTarget() == TARGET_UNIT_SRC_AREA_ENEMY || - pTempSpell->Effects[j].TargetA.GetTarget() == TARGET_UNIT_DEST_AREA_ENEMY || - pTempSpell->Effects[j].TargetA.GetTarget() == TARGET_SRC_CASTER || - pTempSpell->Effects[j].TargetA.GetTarget() == TARGET_DEST_DYNOBJ_ENEMY) + if (effect->TargetA.GetTarget() == TARGET_UNIT_TARGET_ENEMY || + effect->TargetA.GetTarget() == TARGET_DEST_TARGET_ENEMY || + effect->TargetA.GetTarget() == TARGET_UNIT_SRC_AREA_ENEMY || + effect->TargetA.GetTarget() == TARGET_UNIT_DEST_AREA_ENEMY || + effect->TargetA.GetTarget() == TARGET_SRC_CASTER || + effect->TargetA.GetTarget() == TARGET_DEST_DYNOBJ_ENEMY) SpellSummary[i].Targets |= 1 << (SELECT_TARGET_ANY_ENEMY-1); // Spell targets a single friend (or self). - if (pTempSpell->Effects[j].TargetA.GetTarget() == TARGET_UNIT_CASTER || - pTempSpell->Effects[j].TargetA.GetTarget() == TARGET_UNIT_TARGET_ALLY || - pTempSpell->Effects[j].TargetA.GetTarget() == TARGET_UNIT_TARGET_PARTY) + if (effect->TargetA.GetTarget() == TARGET_UNIT_CASTER || + effect->TargetA.GetTarget() == TARGET_UNIT_TARGET_ALLY || + effect->TargetA.GetTarget() == TARGET_UNIT_TARGET_PARTY) SpellSummary[i].Targets |= 1 << (SELECT_TARGET_SINGLE_FRIEND-1); // Spell targets AoE friends. - if (pTempSpell->Effects[j].TargetA.GetTarget() == TARGET_UNIT_CASTER_AREA_PARTY || - pTempSpell->Effects[j].TargetA.GetTarget() == TARGET_UNIT_LASTTARGET_AREA_PARTY || - pTempSpell->Effects[j].TargetA.GetTarget() == TARGET_SRC_CASTER) + if (effect->TargetA.GetTarget() == TARGET_UNIT_CASTER_AREA_PARTY || + effect->TargetA.GetTarget() == TARGET_UNIT_LASTTARGET_AREA_PARTY || + effect->TargetA.GetTarget() == TARGET_SRC_CASTER) SpellSummary[i].Targets |= 1 << (SELECT_TARGET_AOE_FRIEND-1); // Spell targets any friend (or self). - if (pTempSpell->Effects[j].TargetA.GetTarget() == TARGET_UNIT_CASTER || - pTempSpell->Effects[j].TargetA.GetTarget() == TARGET_UNIT_TARGET_ALLY || - pTempSpell->Effects[j].TargetA.GetTarget() == TARGET_UNIT_TARGET_PARTY || - pTempSpell->Effects[j].TargetA.GetTarget() == TARGET_UNIT_CASTER_AREA_PARTY || - pTempSpell->Effects[j].TargetA.GetTarget() == TARGET_UNIT_LASTTARGET_AREA_PARTY || - pTempSpell->Effects[j].TargetA.GetTarget() == TARGET_SRC_CASTER) + if (effect->TargetA.GetTarget() == TARGET_UNIT_CASTER || + effect->TargetA.GetTarget() == TARGET_UNIT_TARGET_ALLY || + effect->TargetA.GetTarget() == TARGET_UNIT_TARGET_PARTY || + effect->TargetA.GetTarget() == TARGET_UNIT_CASTER_AREA_PARTY || + effect->TargetA.GetTarget() == TARGET_UNIT_LASTTARGET_AREA_PARTY || + effect->TargetA.GetTarget() == TARGET_SRC_CASTER) SpellSummary[i].Targets |= 1 << (SELECT_TARGET_ANY_FRIEND-1); // Make sure that this spell includes a damage effect. - if (pTempSpell->Effects[j].Effect == SPELL_EFFECT_SCHOOL_DAMAGE || - pTempSpell->Effects[j].Effect == SPELL_EFFECT_INSTAKILL || - pTempSpell->Effects[j].Effect == SPELL_EFFECT_ENVIRONMENTAL_DAMAGE || - pTempSpell->Effects[j].Effect == SPELL_EFFECT_HEALTH_LEECH) + if (effect->Effect == SPELL_EFFECT_SCHOOL_DAMAGE || + effect->Effect == SPELL_EFFECT_INSTAKILL || + effect->Effect == SPELL_EFFECT_ENVIRONMENTAL_DAMAGE || + effect->Effect == SPELL_EFFECT_HEALTH_LEECH) SpellSummary[i].Effects |= 1 << (SELECT_EFFECT_DAMAGE-1); // Make sure that this spell includes a healing effect (or an apply aura with a periodic heal). - if (pTempSpell->Effects[j].Effect == SPELL_EFFECT_HEAL || - pTempSpell->Effects[j].Effect == SPELL_EFFECT_HEAL_MAX_HEALTH || - pTempSpell->Effects[j].Effect == SPELL_EFFECT_HEAL_MECHANICAL || - (pTempSpell->Effects[j].Effect == SPELL_EFFECT_APPLY_AURA && pTempSpell->Effects[j].ApplyAuraName == 8)) + if (effect->Effect == SPELL_EFFECT_HEAL || + effect->Effect == SPELL_EFFECT_HEAL_MAX_HEALTH || + effect->Effect == SPELL_EFFECT_HEAL_MECHANICAL || + (effect->Effect == SPELL_EFFECT_APPLY_AURA && effect->ApplyAuraName == 8)) SpellSummary[i].Effects |= 1 << (SELECT_EFFECT_HEALING-1); // Make sure that this spell applies an aura. - if (pTempSpell->Effects[j].Effect == SPELL_EFFECT_APPLY_AURA) + if (effect->Effect == SPELL_EFFECT_APPLY_AURA) SpellSummary[i].Effects |= 1 << (SELECT_EFFECT_AURA-1); } } |