Core/Spells: remove PrepareSpellScript and PrepareAuraScript macros and make Hooklist use emplace behaivior (#174)
This commit is contained in:
1 parent
677990a1b8
commit
2b2fc5fb8a
252 files changed
+3275
-7394
No files matched your search
@@ -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;
|
||||
|
||||
Reference in new issue
Block a user