aboutsummaryrefslogtreecommitdiff
path: root/src/game/SpellMgr.cpp
diff options
context:
space:
mode:
authorthenecromancer <none@none>2010-01-20 20:54:32 +0100
committerthenecromancer <none@none>2010-01-20 20:54:32 +0100
commit721c9262291833868b6c478410c23f732eca4d4b (patch)
tree23b53485981afd57654ebe2f9f10362771cd6cc9 /src/game/SpellMgr.cpp
parentbfad15470f38c2000313a53ec670b87e15bbf87b (diff)
Change GetSpellSpecific() to have SpellEntry argument instead of ID, this saves lookups in spellstore for entries we already have.
--HG-- branch : trunk
Diffstat (limited to 'src/game/SpellMgr.cpp')
-rw-r--r--src/game/SpellMgr.cpp16
1 files changed, 6 insertions, 10 deletions
diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp
index 7e098c57bfc..5b6f73fce4f 100644
--- a/src/game/SpellMgr.cpp
+++ b/src/game/SpellMgr.cpp
@@ -464,12 +464,8 @@ AuraState GetSpellAuraState(SpellEntry const * spellInfo)
return AURA_STATE_NONE;
}
-SpellSpecific GetSpellSpecific(uint32 spellId)
+SpellSpecific GetSpellSpecific(SpellEntry const * spellInfo)
{
- SpellEntry const *spellInfo = sSpellStore.LookupEntry(spellId);
- if(!spellInfo)
- return SPELL_SPECIFIC_NORMAL;
-
switch(spellInfo->SpellFamilyName)
{
case SPELLFAMILY_GENERIC:
@@ -1013,7 +1009,7 @@ bool IsSingleTargetSpell(SpellEntry const *spellInfo)
if ( spellInfo->AttributesEx5 & SPELL_ATTR_EX5_SINGLE_TARGET_SPELL )
return true;
- switch(GetSpellSpecific(spellInfo->Id))
+ switch(GetSpellSpecific(spellInfo))
{
case SPELL_SPECIFIC_JUDGEMENT:
return true;
@@ -1033,13 +1029,13 @@ bool IsSingleTargetSpells(SpellEntry const *spellInfo1, SpellEntry const *spellI
return true;
// TODO - need found Judgements rule
- SpellSpecific spec1 = GetSpellSpecific(spellInfo1->Id);
+ SpellSpecific spec1 = GetSpellSpecific(spellInfo1);
// spell with single target specific types
switch(spec1)
{
case SPELL_SPECIFIC_JUDGEMENT:
case SPELL_SPECIFIC_MAGE_POLYMORPH:
- if(GetSpellSpecific(spellInfo2->Id) == spec1)
+ if(GetSpellSpecific(spellInfo2) == spec1)
return true;
break;
default:
@@ -3025,8 +3021,8 @@ bool SpellArea::IsFitToRequirements(Player const* player, uint32 newZone, uint32
bool SpellMgr::CanAurasStack(SpellEntry const *spellInfo_1, SpellEntry const *spellInfo_2, bool sameCaster) const
{
- SpellSpecific spellSpec_1 = GetSpellSpecific(spellInfo_1->Id);
- SpellSpecific spellSpec_2 = GetSpellSpecific(spellInfo_2->Id);
+ SpellSpecific spellSpec_1 = GetSpellSpecific(spellInfo_1);
+ SpellSpecific spellSpec_2 = GetSpellSpecific(spellInfo_2);
if (spellSpec_1 && spellSpec_2)
if (IsSingleFromSpellSpecificPerTarget(spellSpec_1, spellSpec_2)
|| sameCaster && IsSingleFromSpellSpecificPerCaster(spellSpec_1, spellSpec_2))