diff options
| author | ariel- <ariel-@users.noreply.github.com> | 2016-11-04 14:21:28 -0300 |
|---|---|---|
| committer | ariel- <ariel-@users.noreply.github.com> | 2016-11-04 14:22:27 -0300 |
| commit | 4f1ef6985e1a83f3a10673d20648f452e93a3004 (patch) | |
| tree | 6f00ca771685834ff975e4e8d084855571e285f0 /src/server/game/Spells/SpellInfo.cpp | |
| parent | 9ac22ef053ac2da126d564c7c7b1b45eb0fdbc19 (diff) | |
Core/Spell: apply SPELLFAMILY_GENERIC mods to all spells by default
Closes #18160
Diffstat (limited to 'src/server/game/Spells/SpellInfo.cpp')
| -rw-r--r-- | src/server/game/Spells/SpellInfo.cpp | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index 925d5ec57a3..fd80dac5623 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -1210,6 +1210,20 @@ bool SpellInfo::HasInitialAggro() const return !(HasAttribute(SPELL_ATTR1_NO_THREAT) || HasAttribute(SPELL_ATTR3_NO_INITIAL_AGGRO)); } +bool SpellInfo::IsAffected(uint32 familyName, flag96 const& familyFlags) const +{ + if (!familyName) + return true; + + if (familyName != SpellFamilyName) + return false; + + if (familyFlags && !(familyFlags & SpellFamilyFlags)) + return false; + + return true; +} + bool SpellInfo::IsAffectedBySpellMods() const { return !HasAttribute(SPELL_ATTR3_NO_DONE_BONUS); @@ -1221,15 +1235,10 @@ bool SpellInfo::IsAffectedBySpellMod(SpellModifier const* mod) const return false; SpellInfo const* affectSpell = sSpellMgr->GetSpellInfo(mod->spellId); - // False if affect_spell == NULL or spellFamily not equal - if (!affectSpell || affectSpell->SpellFamilyName != SpellFamilyName) + if (!affectSpell) return false; - // true - if (mod->mask & SpellFamilyFlags) - return true; - - return false; + return IsAffected(affectSpell->SpellFamilyName, mod->mask); } bool SpellInfo::CanPierceImmuneAura(SpellInfo const* aura) const |
