diff options
author | QAston <qaston@gmail.com> | 2011-07-26 23:09:28 +0200 |
---|---|---|
committer | QAston <qaston@gmail.com> | 2011-07-26 23:09:28 +0200 |
commit | b0fe236265465a0f39aa98a8cee2916d1ccfaa02 (patch) | |
tree | 77ed4bde46de983c280a542d657a30b24865638c /src/server/game/Scripting/ScriptMgr.cpp | |
parent | 29c228a80170e4264129d4e3bed4d2fc41aca5a7 (diff) |
Core: Use new SpellInfo class in core. Sadly, this commit is not compatibile with some of the custom code. To make your code work again you may need to change:
*SpellEntry is now SpellInfo
*GetSpellProto is now GetSpellInfo
*SpellEntry::Effect*[effIndex] is now avalible under SpellInfo.Effects[effIndex].*
*sSpellStore.LookupEntry is no longer valid, use sSpellMgr->GetSpellInfo()
*SpellFunctions from SpellMgr.h like DoSpellStuff(spellId) are now: spellInfo->DoStuff()
*SpellMgr::CalculateEffectValue and similar functions are now avalible in SpellEffectInfo class.
*GET_SPELL macro is removed, code which used it is moved to SpellMgr::LoadDbcDataCorrections
*code which affected dbc data in SpellMgr::LoadSpellCustomAttr is now moved to LoadDbcDataCorrections
Diffstat (limited to 'src/server/game/Scripting/ScriptMgr.cpp')
-rwxr-xr-x | src/server/game/Scripting/ScriptMgr.cpp | 76 |
1 files changed, 38 insertions, 38 deletions
diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index a728478d811..b7ecb909653 100755 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -210,16 +210,16 @@ struct TSpellSummary void ScriptMgr::FillSpellSummary() { - SpellSummary = new TSpellSummary[GetSpellStore()->GetNumRows()]; + SpellSummary = new TSpellSummary[sSpellMgr->GetSpellInfoStoreSize()]; - SpellEntry const* pTempSpell; + SpellInfo const* pTempSpell; - for (uint32 i = 0; i < GetSpellStore()->GetNumRows(); ++i) + for (uint32 i = 0; i < sSpellMgr->GetSpellInfoStoreSize(); ++i) { SpellSummary[i].Effects = 0; SpellSummary[i].Targets = 0; - pTempSpell = GetSpellStore()->LookupEntry(i); + pTempSpell = sSpellMgr->GetSpellInfo(i); //This spell doesn't exist if (!pTempSpell) continue; @@ -227,67 +227,67 @@ void ScriptMgr::FillSpellSummary() for (uint32 j = 0; j < MAX_SPELL_EFFECTS; ++j) { //Spell targets self - if (pTempSpell->EffectImplicitTargetA[j] == TARGET_UNIT_CASTER) + if (pTempSpell->Effects[j].TargetA == TARGET_UNIT_CASTER) SpellSummary[i].Targets |= 1 << (SELECT_TARGET_SELF-1); //Spell targets a single enemy - if (pTempSpell->EffectImplicitTargetA[j] == TARGET_UNIT_TARGET_ENEMY || - pTempSpell->EffectImplicitTargetA[j] == TARGET_DST_TARGET_ENEMY) + if (pTempSpell->Effects[j].TargetA == TARGET_UNIT_TARGET_ENEMY || + pTempSpell->Effects[j].TargetA == TARGET_DST_TARGET_ENEMY) SpellSummary[i].Targets |= 1 << (SELECT_TARGET_SINGLE_ENEMY-1); //Spell targets AoE at enemy - if (pTempSpell->EffectImplicitTargetA[j] == TARGET_UNIT_AREA_ENEMY_SRC || - pTempSpell->EffectImplicitTargetA[j] == TARGET_UNIT_AREA_ENEMY_DST || - pTempSpell->EffectImplicitTargetA[j] == TARGET_SRC_CASTER || - pTempSpell->EffectImplicitTargetA[j] == TARGET_DEST_DYNOBJ_ENEMY) + if (pTempSpell->Effects[j].TargetA == TARGET_UNIT_AREA_ENEMY_SRC || + pTempSpell->Effects[j].TargetA == TARGET_UNIT_AREA_ENEMY_DST || + pTempSpell->Effects[j].TargetA == TARGET_SRC_CASTER || + pTempSpell->Effects[j].TargetA == TARGET_DEST_DYNOBJ_ENEMY) SpellSummary[i].Targets |= 1 << (SELECT_TARGET_AOE_ENEMY-1); //Spell targets an enemy - if (pTempSpell->EffectImplicitTargetA[j] == TARGET_UNIT_TARGET_ENEMY || - pTempSpell->EffectImplicitTargetA[j] == TARGET_DST_TARGET_ENEMY || - pTempSpell->EffectImplicitTargetA[j] == TARGET_UNIT_AREA_ENEMY_SRC || - pTempSpell->EffectImplicitTargetA[j] == TARGET_UNIT_AREA_ENEMY_DST || - pTempSpell->EffectImplicitTargetA[j] == TARGET_SRC_CASTER || - pTempSpell->EffectImplicitTargetA[j] == TARGET_DEST_DYNOBJ_ENEMY) + if (pTempSpell->Effects[j].TargetA == TARGET_UNIT_TARGET_ENEMY || + pTempSpell->Effects[j].TargetA == TARGET_DST_TARGET_ENEMY || + pTempSpell->Effects[j].TargetA == TARGET_UNIT_AREA_ENEMY_SRC || + pTempSpell->Effects[j].TargetA == TARGET_UNIT_AREA_ENEMY_DST || + pTempSpell->Effects[j].TargetA == TARGET_SRC_CASTER || + pTempSpell->Effects[j].TargetA == TARGET_DEST_DYNOBJ_ENEMY) SpellSummary[i].Targets |= 1 << (SELECT_TARGET_ANY_ENEMY-1); //Spell targets a single friend(or self) - if (pTempSpell->EffectImplicitTargetA[j] == TARGET_UNIT_CASTER || - pTempSpell->EffectImplicitTargetA[j] == TARGET_UNIT_TARGET_ALLY || - pTempSpell->EffectImplicitTargetA[j] == TARGET_UNIT_TARGET_PARTY) + if (pTempSpell->Effects[j].TargetA == TARGET_UNIT_CASTER || + pTempSpell->Effects[j].TargetA == TARGET_UNIT_TARGET_ALLY || + pTempSpell->Effects[j].TargetA == TARGET_UNIT_TARGET_PARTY) SpellSummary[i].Targets |= 1 << (SELECT_TARGET_SINGLE_FRIEND-1); //Spell targets aoe friends - if (pTempSpell->EffectImplicitTargetA[j] == TARGET_UNIT_PARTY_CASTER || - pTempSpell->EffectImplicitTargetA[j] == TARGET_UNIT_TARGET_ALLY_PARTY || - pTempSpell->EffectImplicitTargetA[j] == TARGET_SRC_CASTER) + if (pTempSpell->Effects[j].TargetA == TARGET_UNIT_PARTY_CASTER || + pTempSpell->Effects[j].TargetA == TARGET_UNIT_TARGET_ALLY_PARTY || + pTempSpell->Effects[j].TargetA == TARGET_SRC_CASTER) SpellSummary[i].Targets |= 1 << (SELECT_TARGET_AOE_FRIEND-1); //Spell targets any friend(or self) - if (pTempSpell->EffectImplicitTargetA[j] == TARGET_UNIT_CASTER || - pTempSpell->EffectImplicitTargetA[j] == TARGET_UNIT_TARGET_ALLY || - pTempSpell->EffectImplicitTargetA[j] == TARGET_UNIT_TARGET_PARTY || - pTempSpell->EffectImplicitTargetA[j] == TARGET_UNIT_PARTY_CASTER || - pTempSpell->EffectImplicitTargetA[j] == TARGET_UNIT_TARGET_ALLY_PARTY || - pTempSpell->EffectImplicitTargetA[j] == TARGET_SRC_CASTER) + if (pTempSpell->Effects[j].TargetA == TARGET_UNIT_CASTER || + pTempSpell->Effects[j].TargetA == TARGET_UNIT_TARGET_ALLY || + pTempSpell->Effects[j].TargetA == TARGET_UNIT_TARGET_PARTY || + pTempSpell->Effects[j].TargetA == TARGET_UNIT_PARTY_CASTER || + pTempSpell->Effects[j].TargetA == TARGET_UNIT_TARGET_ALLY_PARTY || + pTempSpell->Effects[j].TargetA == TARGET_SRC_CASTER) SpellSummary[i].Targets |= 1 << (SELECT_TARGET_ANY_FRIEND-1); //Make sure that this spell includes a damage effect - if (pTempSpell->Effect[j] == SPELL_EFFECT_SCHOOL_DAMAGE || - pTempSpell->Effect[j] == SPELL_EFFECT_INSTAKILL || - pTempSpell->Effect[j] == SPELL_EFFECT_ENVIRONMENTAL_DAMAGE || - pTempSpell->Effect[j] == SPELL_EFFECT_HEALTH_LEECH) + 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) 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->Effect[j] == SPELL_EFFECT_HEAL || - pTempSpell->Effect[j] == SPELL_EFFECT_HEAL_MAX_HEALTH || - pTempSpell->Effect[j] == SPELL_EFFECT_HEAL_MECHANICAL || - (pTempSpell->Effect[j] == SPELL_EFFECT_APPLY_AURA && pTempSpell->EffectApplyAuraName[j] == 8)) + 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)) SpellSummary[i].Effects |= 1 << (SELECT_EFFECT_HEALING-1); //Make sure that this spell applies an aura - if (pTempSpell->Effect[j] == SPELL_EFFECT_APPLY_AURA) + if (pTempSpell->Effects[j].Effect == SPELL_EFFECT_APPLY_AURA) SpellSummary[i].Effects |= 1 << (SELECT_EFFECT_AURA-1); } } |