Core/Spells: remove PrepareSpellScript and PrepareAuraScript macros and make Hooklist use emplace behaivior (#174)

This commit is contained in:
Warpten authored and GitHub committed 2020-08-28 15:40:26 +02:00
1 parent 677990a1b8
commit 2b2fc5fb8a
252 files changed
+3275 -7394

No files matched your search

+22 -22
View File
@@ -7914,7 +7914,7 @@ void Spell::CallScriptBeforeCastHandlers()
(*scritr)->_PrepareScriptCall(SPELL_SCRIPT_HOOK_BEFORE_CAST);
auto hookItrEnd = (*scritr)->BeforeCast.end(), hookItr = (*scritr)->BeforeCast.begin();
for (; hookItr != hookItrEnd; ++hookItr)
(*hookItr).Call(*scritr);
(*hookItr).Call();
(*scritr)->_FinishScriptCall();
}
@@ -7927,7 +7927,7 @@ void Spell::CallScriptOnCastHandlers()
(*scritr)->_PrepareScriptCall(SPELL_SCRIPT_HOOK_ON_CAST);
auto hookItrEnd = (*scritr)->OnCast.end(), hookItr = (*scritr)->OnCast.begin();
for (; hookItr != hookItrEnd; ++hookItr)
(*hookItr).Call(*scritr);
(*hookItr).Call();
(*scritr)->_FinishScriptCall();
}
@@ -7940,7 +7940,7 @@ void Spell::CallScriptAfterCastHandlers()
(*scritr)->_PrepareScriptCall(SPELL_SCRIPT_HOOK_AFTER_CAST);
auto hookItrEnd = (*scritr)->AfterCast.end(), hookItr = (*scritr)->AfterCast.begin();
for (; hookItr != hookItrEnd; ++hookItr)
(*hookItr).Call(*scritr);
(*hookItr).Call();
(*scritr)->_FinishScriptCall();
}
@@ -7955,7 +7955,7 @@ SpellCastResult Spell::CallScriptCheckCastHandlers()
auto hookItrEnd = (*scritr)->OnCheckCast.end(), hookItr = (*scritr)->OnCheckCast.begin();
for (; hookItr != hookItrEnd; ++hookItr)
{
SpellCastResult tempResult = (*hookItr).Call(*scritr);
SpellCastResult tempResult = (*hookItr).Call();
if (retVal == SPELL_CAST_OK)
retVal = tempResult;
}
@@ -7972,7 +7972,7 @@ void Spell::CallScriptOnSpellStartHandlers()
(*scritr)->_PrepareScriptCall(SPELL_SCRIPT_HOOK_ON_SPELL_START);
auto hookItrEnd = (*scritr)->OnSpellStart.end(), hookItr = (*scritr)->OnSpellStart.begin();
for (; hookItr != hookItrEnd; ++hookItr)
(*hookItr).Call(*scritr);
(*hookItr).Call();
(*scritr)->_FinishScriptCall();
}
@@ -7991,7 +7991,7 @@ bool Spell::CallScriptEffectHandlers(SpellEffIndex effIndex, SpellEffectHandleMo
bool preventDefault = false;
for (auto scritr = m_loadedScripts.begin(); scritr != m_loadedScripts.end(); ++scritr)
{
HookList<SpellScript::EffectHandler>::iterator effItr, effEndItr;
HookList<SpellScript::EffectNameHook>::iterator effItr, effEndItr;
SpellScriptHookType hookType;
switch (mode)
{
@@ -8022,8 +8022,8 @@ bool Spell::CallScriptEffectHandlers(SpellEffIndex effIndex, SpellEffectHandleMo
(*scritr)->_PrepareScriptCall(hookType);
for (; effItr != effEndItr; ++effItr)
// effect execution can be prevented
if (!(*scritr)->_IsEffectPrevented(effIndex) && (*effItr).IsEffectAffected(m_spellInfo, effIndex))
(*effItr).Call(*scritr, effIndex);
if (!(*scritr)->_IsEffectPrevented(effIndex) && (*effItr).Filter(m_spellInfo, effIndex))
(*effItr).Call(effIndex);
if (!preventDefault)
preventDefault = (*scritr)->_IsDefaultEffectPrevented(effIndex);
@@ -8040,7 +8040,7 @@ void Spell::CallScriptSuccessfulDispel(SpellEffIndex effIndex)
(*scritr)->_PrepareScriptCall(SPELL_SCRIPT_HOOK_EFFECT_SUCCESSFUL_DISPEL);
auto hookItrEnd = (*scritr)->OnEffectSuccessfulDispel.end(), hookItr = (*scritr)->OnEffectSuccessfulDispel.begin();
for (; hookItr != hookItrEnd; ++hookItr)
hookItr->Call(*scritr, effIndex);
hookItr->Call(effIndex);
(*scritr)->_FinishScriptCall();
}
@@ -8053,7 +8053,7 @@ void Spell::CallScriptBeforeHitHandlers()
(*scritr)->_PrepareScriptCall(SPELL_SCRIPT_HOOK_BEFORE_HIT);
auto hookItrEnd = (*scritr)->BeforeHit.end(), hookItr = (*scritr)->BeforeHit.begin();
for (; hookItr != hookItrEnd; ++hookItr)
(*hookItr).Call(*scritr);
(*hookItr).Call();
(*scritr)->_FinishScriptCall();
}
@@ -8066,7 +8066,7 @@ void Spell::CallScriptOnHitHandlers()
(*scritr)->_PrepareScriptCall(SPELL_SCRIPT_HOOK_HIT);
auto hookItrEnd = (*scritr)->OnHit.end(), hookItr = (*scritr)->OnHit.begin();
for (; hookItr != hookItrEnd; ++hookItr)
(*hookItr).Call(*scritr);
(*hookItr).Call();
(*scritr)->_FinishScriptCall();
}
@@ -8079,7 +8079,7 @@ void Spell::CallScriptAfterHitHandlers()
(*scritr)->_PrepareScriptCall(SPELL_SCRIPT_HOOK_AFTER_HIT);
auto hookItrEnd = (*scritr)->AfterHit.end(), hookItr = (*scritr)->AfterHit.begin();
for (; hookItr != hookItrEnd; ++hookItr)
(*hookItr).Call(*scritr);
(*hookItr).Call();
(*scritr)->_FinishScriptCall();
}
@@ -8092,8 +8092,8 @@ void Spell::CallScriptObjectAreaTargetSelectHandlers(std::list<WorldObject*>& ta
(*scritr)->_PrepareScriptCall(SPELL_SCRIPT_HOOK_OBJECT_AREA_TARGET_SELECT);
auto hookItrEnd = (*scritr)->OnObjectAreaTargetSelect.end(), hookItr = (*scritr)->OnObjectAreaTargetSelect.begin();
for (; hookItr != hookItrEnd; ++hookItr)
if (hookItr->IsEffectAffected(m_spellInfo, effIndex) && targetType.GetTarget() == hookItr->GetTarget())
hookItr->Call(*scritr, targets);
if (hookItr->Filter(m_spellInfo, effIndex) && targetType.GetTarget() == hookItr->GetTarget())
hookItr->Call(targets);
(*scritr)->_FinishScriptCall();
}
@@ -8106,8 +8106,8 @@ void Spell::CallScriptObjectTargetSelectHandlers(WorldObject*& target, SpellEffI
(*scritr)->_PrepareScriptCall(SPELL_SCRIPT_HOOK_OBJECT_TARGET_SELECT);
auto hookItrEnd = (*scritr)->OnObjectTargetSelect.end(), hookItr = (*scritr)->OnObjectTargetSelect.begin();
for (; hookItr != hookItrEnd; ++hookItr)
if (hookItr->IsEffectAffected(m_spellInfo, effIndex) && targetType.GetTarget() == hookItr->GetTarget())
hookItr->Call(*scritr, target);
if (hookItr->Filter(m_spellInfo, effIndex) && targetType.GetTarget() == hookItr->GetTarget())
hookItr->Call(target);
(*scritr)->_FinishScriptCall();
}
@@ -8120,8 +8120,8 @@ void Spell::CallScriptDestinationTargetSelectHandlers(SpellDestination& target,
(*scritr)->_PrepareScriptCall(SPELL_SCRIPT_HOOK_DESTINATION_TARGET_SELECT);
auto hookItrEnd = (*scritr)->OnDestinationTargetSelect.end(), hookItr = (*scritr)->OnDestinationTargetSelect.begin();
for (; hookItr != hookItrEnd; ++hookItr)
if (hookItr->IsEffectAffected(m_spellInfo, effIndex) && targetType.GetTarget() == hookItr->GetTarget())
hookItr->Call(*scritr, target);
if (hookItr->Filter(m_spellInfo, effIndex) && targetType.GetTarget() == hookItr->GetTarget())
hookItr->Call(target);
(*scritr)->_FinishScriptCall();
}
@@ -8137,14 +8137,14 @@ bool Spell::CheckScriptEffectImplicitTargets(uint32 effIndex, uint32 effIndexToC
{
auto targetSelectHookEnd = (*itr)->OnObjectTargetSelect.end(), targetSelectHookItr = (*itr)->OnObjectTargetSelect.begin();
for (; targetSelectHookItr != targetSelectHookEnd; ++targetSelectHookItr)
if (((*targetSelectHookItr).IsEffectAffected(m_spellInfo, effIndex) && !(*targetSelectHookItr).IsEffectAffected(m_spellInfo, effIndexToCheck)) ||
(!(*targetSelectHookItr).IsEffectAffected(m_spellInfo, effIndex) && (*targetSelectHookItr).IsEffectAffected(m_spellInfo, effIndexToCheck)))
if (((*targetSelectHookItr).Filter(m_spellInfo, SpellEffIndex(effIndex)) && !(*targetSelectHookItr).Filter(m_spellInfo, SpellEffIndex(effIndexToCheck))) ||
(!(*targetSelectHookItr).Filter(m_spellInfo, SpellEffIndex(effIndex)) && (*targetSelectHookItr).Filter(m_spellInfo, SpellEffIndex(effIndexToCheck))))
return false;
auto areaTargetSelectHookEnd = (*itr)->OnObjectAreaTargetSelect.end(), areaTargetSelectHookItr = (*itr)->OnObjectAreaTargetSelect.begin();
for (; areaTargetSelectHookItr != areaTargetSelectHookEnd; ++areaTargetSelectHookItr)
if (((*areaTargetSelectHookItr).IsEffectAffected(m_spellInfo, effIndex) && !(*areaTargetSelectHookItr).IsEffectAffected(m_spellInfo, effIndexToCheck)) ||
(!(*areaTargetSelectHookItr).IsEffectAffected(m_spellInfo, effIndex) && (*areaTargetSelectHookItr).IsEffectAffected(m_spellInfo, effIndexToCheck)))
if (((*areaTargetSelectHookItr).Filter(m_spellInfo, SpellEffIndex(effIndex)) && !(*areaTargetSelectHookItr).Filter(m_spellInfo, SpellEffIndex(effIndexToCheck))) ||
(!(*areaTargetSelectHookItr).Filter(m_spellInfo, SpellEffIndex(effIndex)) && (*areaTargetSelectHookItr).Filter(m_spellInfo, SpellEffIndex(effIndexToCheck))))
return false;
}
return true;