From 36332d2463cdb98171878ab8c836a875fe3493cc Mon Sep 17 00:00:00 2001 From: Shauren Date: Fri, 13 Jun 2025 16:36:03 +0200 Subject: Core/Misc: Remove a bunch of code from headers --- src/server/game/Spells/SpellScript.cpp | 39 ++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'src/server/game/Spells/SpellScript.cpp') diff --git a/src/server/game/Spells/SpellScript.cpp b/src/server/game/Spells/SpellScript.cpp index d541c5f0a46..5314223ea8d 100644 --- a/src/server/game/Spells/SpellScript.cpp +++ b/src/server/game/Spells/SpellScript.cpp @@ -102,6 +102,13 @@ std::string_view SpellScriptBase::GetScriptName() const return m_scriptName; } +template +SpellScriptBase::HookList& SpellScriptBase::HookList::operator+=(T&& t) +{ + ::HookList::operator+=(std::move(t)); + return *this; +} + SpellScriptBase::EffectHook::EffectHook(uint8 effIndex) { // effect index must be in range <0;2>, allow use of special effindexes @@ -248,6 +255,19 @@ bool SpellScript::TargetHook::CheckEffect(SpellInfo const* spellInfo, uint8 effI return false; } +template TC_GAME_API SpellScriptBase::HookList& SpellScriptBase::HookList::operator+=(SpellScript::CastHandler&& hook); +template TC_GAME_API SpellScriptBase::HookList& SpellScriptBase::HookList::operator+=(SpellScript::CheckCastHandler&& hook); +template TC_GAME_API SpellScriptBase::HookList& SpellScriptBase::HookList::operator+=(SpellScript::EffectHandler&& hook); +template TC_GAME_API SpellScriptBase::HookList& SpellScriptBase::HookList::operator+=(SpellScript::BeforeHitHandler&& hook); +template TC_GAME_API SpellScriptBase::HookList& SpellScriptBase::HookList::operator+=(SpellScript::HitHandler&& hook); +template TC_GAME_API SpellScriptBase::HookList& SpellScriptBase::HookList::operator+=(SpellScript::OnCalcCritChanceHandler&& hook); +template TC_GAME_API SpellScriptBase::HookList& SpellScriptBase::HookList::operator+=(SpellScript::ObjectAreaTargetSelectHandler&& hook); +template TC_GAME_API SpellScriptBase::HookList& SpellScriptBase::HookList::operator+=(SpellScript::ObjectTargetSelectHandler&& hook); +template TC_GAME_API SpellScriptBase::HookList& SpellScriptBase::HookList::operator+=(SpellScript::DestinationTargetSelectHandler&& hook); +template TC_GAME_API SpellScriptBase::HookList& SpellScriptBase::HookList::operator+=(SpellScript::DamageAndHealingCalcHandler&& hook); +template TC_GAME_API SpellScriptBase::HookList& SpellScriptBase::HookList::operator+=(SpellScript::OnCalculateResistAbsorbHandler&& hook); +template TC_GAME_API SpellScriptBase::HookList& SpellScriptBase::HookList::operator+=(SpellScript::EmpowerStageCompletedHandler&& hook); + SpellScript::SpellScript(): m_spell(nullptr), m_hitPreventEffectMask(0), m_hitPreventDefaultEffectMask(0) { } @@ -770,6 +790,25 @@ Difficulty SpellScript::GetCastDifficulty() const return m_spell->GetCastDifficulty(); } +template TC_GAME_API SpellScriptBase::HookList& SpellScriptBase::HookList::operator+=(AuraScript::CheckAreaTargetHandler&& hook); +template TC_GAME_API SpellScriptBase::HookList& SpellScriptBase::HookList::operator+=(AuraScript::AuraDispelHandler&& hook); +template TC_GAME_API SpellScriptBase::HookList& SpellScriptBase::HookList::operator+=(AuraScript::AuraHeartbeatHandler&& hook); +template TC_GAME_API SpellScriptBase::HookList& SpellScriptBase::HookList::operator+=(AuraScript::EffectApplyHandler&& hook); +template TC_GAME_API SpellScriptBase::HookList& SpellScriptBase::HookList::operator+=(AuraScript::EffectPeriodicHandler&& hook); +template TC_GAME_API SpellScriptBase::HookList& SpellScriptBase::HookList::operator+=(AuraScript::EffectUpdatePeriodicHandler&& hook); +template TC_GAME_API SpellScriptBase::HookList& SpellScriptBase::HookList::operator+=(AuraScript::EffectCalcAmountHandler&& hook); +template TC_GAME_API SpellScriptBase::HookList& SpellScriptBase::HookList::operator+=(AuraScript::EffectCalcPeriodicHandler&& hook); +template TC_GAME_API SpellScriptBase::HookList& SpellScriptBase::HookList::operator+=(AuraScript::EffectCalcSpellModHandler&& hook); +template TC_GAME_API SpellScriptBase::HookList& SpellScriptBase::HookList::operator+=(AuraScript::EffectCalcCritChanceHandler&& hook); +template TC_GAME_API SpellScriptBase::HookList& SpellScriptBase::HookList::operator+=(AuraScript::EffectCalcDamageAndHealingHandler&& hook); +template TC_GAME_API SpellScriptBase::HookList& SpellScriptBase::HookList::operator+=(AuraScript::EffectAbsorbHandler&& hook); +template TC_GAME_API SpellScriptBase::HookList& SpellScriptBase::HookList::operator+=(AuraScript::EffectAbsorbHealHandler&& hook); +template TC_GAME_API SpellScriptBase::HookList& SpellScriptBase::HookList::operator+=(AuraScript::CheckProcHandler&& hook); +template TC_GAME_API SpellScriptBase::HookList& SpellScriptBase::HookList::operator+=(AuraScript::CheckEffectProcHandler&& hook); +template TC_GAME_API SpellScriptBase::HookList& SpellScriptBase::HookList::operator+=(AuraScript::AuraProcHandler&& hook); +template TC_GAME_API SpellScriptBase::HookList& SpellScriptBase::HookList::operator+=(AuraScript::EffectProcHandler&& hook); +template TC_GAME_API SpellScriptBase::HookList& SpellScriptBase::HookList::operator+=(AuraScript::EnterLeaveCombatHandler&& hook); + bool AuraScript::_Validate(SpellInfo const* entry) { for (auto itr = DoCheckAreaTarget.begin(); itr != DoCheckAreaTarget.end(); ++itr) -- cgit v1.2.3