diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp index 597046351..1f8630d5e 100644 --- a/src/game/SpellMgr.cpp +++ b/src/game/SpellMgr.cpp @@ -1404,6 +1404,41 @@ void SpellMgr::LoadSpellProcItemEnchant() sLog.outString( ">> Loaded %u proc item enchant definitions", count ); } +bool IsCastEndProcModifierAura(SpellEntry const *spellInfo, SpellEffectIndex effecIdx, SpellEntry const *procSpell) +{ + // modifier auras that can proc on cast end + switch (AuraType(spellInfo->EffectApplyAuraName[effecIdx])) + { + case SPELL_AURA_ADD_FLAT_MODIFIER: + case SPELL_AURA_ADD_PCT_MODIFIER: + { + switch (spellInfo->EffectMiscValue[effecIdx]) + { + case SPELLMOD_RANGE: + case SPELLMOD_RADIUS: + case SPELLMOD_NOT_LOSE_CASTING_TIME: + case SPELLMOD_CASTING_TIME: + case SPELLMOD_COOLDOWN: + case SPELLMOD_COST: + case SPELLMOD_GLOBAL_COOLDOWN: + return true; + default: + break; + } + } + case SPELL_AURA_MOD_DAMAGE_PERCENT_DONE: + { + for (int32 i = 0; i < MAX_EFFECT_INDEX; ++i) + if (IsEffectHandledOnDelayedSpellLaunch(procSpell, SpellEffectIndex(i))) + return true; + + return false; + } + default: + return false; + } +} + struct DoSpellBonuses { DoSpellBonuses(SpellBonusMap& _spellBonusMap, SpellBonusEntry const& _spellBonus) : spellBonusMap(_spellBonusMap), spellBonus(_spellBonus) {} diff --git a/src/game/SpellMgr.h b/src/game/SpellMgr.h index a781ed5bd..3377cdf25 100644 --- a/src/game/SpellMgr.h +++ b/src/game/SpellMgr.h @@ -164,40 +164,7 @@ inline bool IsPeriodicRegenerateEffect(SpellEntry const *spellInfo, SpellEffectI } } -inline bool IsCastEndProcModifierAura(SpellEntry const *spellInfo, SpellEffectIndex effecIdx, SpellEntry const *procSpell) -{ - // modifier auras that can proc on cast end - switch (AuraType(spellInfo->EffectApplyAuraName[effecIdx])) - { - case SPELL_AURA_ADD_FLAT_MODIFIER: - case SPELL_AURA_ADD_PCT_MODIFIER: - { - switch (spellInfo->EffectMiscValue[effecIdx]) - { - case SPELLMOD_RANGE: - case SPELLMOD_RADIUS: - case SPELLMOD_NOT_LOSE_CASTING_TIME: - case SPELLMOD_CASTING_TIME: - case SPELLMOD_COOLDOWN: - case SPELLMOD_COST: - case SPELLMOD_GLOBAL_COOLDOWN: - return true; - default: - break; - } - } - case SPELL_AURA_MOD_DAMAGE_PERCENT_DONE: - { - for (int32 i = 0; i < MAX_EFFECT_INDEX; ++i) - if (IsEffectHandledOnDelayedSpellLaunch(procSpell, SpellEffectIndex(i))) - return true; - - return false; - } - default: - return false; - } -} +bool IsCastEndProcModifierAura(SpellEntry const *spellInfo, SpellEffectIndex effecIdx, SpellEntry const *procSpell); inline bool IsSpellHaveAura(SpellEntry const *spellInfo, AuraType aura) { diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 702b7f247..72f10eaa0 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "11761" + #define REVISION_NR "11762" #endif // __REVISION_NR_H__