From cac4cfda42f6d392fa6232bdb211334d5b5638fa Mon Sep 17 00:00:00 2001 From: QAston Date: Tue, 5 Oct 2010 08:17:10 +0200 Subject: Core/ScriptSystem: Add missing script call preparation for SpellScripts - fixes issues with core false alarms after recent changes --HG-- branch : trunk --- src/server/game/Spells/Spell.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/server/game/Spells/Spell.cpp') diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 15b1b2069c0..d2393e582cd 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -7219,6 +7219,7 @@ bool Spell::CallScriptEffectHandlers(SpellEffIndex effIndex) bool preventDefault = false; for(std::list::iterator scritr = m_loadedScripts.begin(); scritr != m_loadedScripts.end() ; ++scritr) { + (*scritr)->_PrepareScriptCall(SPELL_SCRIPT_HOOK_EFFECT); std::list::iterator effEndItr = (*scritr)->OnEffect.end(), effItr = (*scritr)->OnEffect.begin(); for(; effItr != effEndItr ; ++effItr) { @@ -7228,6 +7229,7 @@ bool Spell::CallScriptEffectHandlers(SpellEffIndex effIndex) } if (!preventDefault) preventDefault = (*scritr)->_IsDefaultEffectPrevented(effIndex); + (*scritr)->_FinishScriptCall(); } return preventDefault; } @@ -7236,11 +7238,13 @@ void Spell::CallScriptBeforeHitHandlers() { for(std::list::iterator scritr = m_loadedScripts.begin(); scritr != m_loadedScripts.end() ; ++scritr) { + (*scritr)->_PrepareScriptCall(SPELL_SCRIPT_HOOK_BEFORE_HIT); std::list::iterator hookItrEnd = (*scritr)->BeforeHit.end(), hookItr = (*scritr)->BeforeHit.begin(); for(; hookItr != hookItrEnd ; ++hookItr) { ((*scritr)->*(*hookItr))(); } + (*scritr)->_FinishScriptCall(); } } @@ -7248,11 +7252,13 @@ void Spell::CallScriptOnHitHandlers() { for(std::list::iterator scritr = m_loadedScripts.begin(); scritr != m_loadedScripts.end() ; ++scritr) { + (*scritr)->_PrepareScriptCall(SPELL_SCRIPT_HOOK_HIT); std::list::iterator hookItrEnd = (*scritr)->OnHit.end(), hookItr = (*scritr)->OnHit.begin(); for(; hookItr != hookItrEnd ; ++hookItr) { ((*scritr)->*(*hookItr))(); } + (*scritr)->_FinishScriptCall(); } } @@ -7260,10 +7266,12 @@ void Spell::CallScriptAfterHitHandlers() { for(std::list::iterator scritr = m_loadedScripts.begin(); scritr != m_loadedScripts.end() ; ++scritr) { + (*scritr)->_PrepareScriptCall(SPELL_SCRIPT_HOOK_AFTER_HIT); std::list::iterator hookItrEnd = (*scritr)->AfterHit.end(), hookItr = (*scritr)->AfterHit.begin(); for(; hookItr != hookItrEnd ; ++hookItr) { ((*scritr)->*(*hookItr))(); } + (*scritr)->_FinishScriptCall(); } } -- cgit v1.2.3