Core/ScriptSystem: Add compile time type check of function assigned to hooks - prevents incorrect function calls. Since this rev you have to put PrepareSpellScript(<yourscriptclassnamehere>) at the beginning of every spell script. Yes, i know it's unhandy, but unfortunately C++ preprocessor is very limited, so you have to do that extra work each time you write a script:(.

--HG--
branch : trunk
This commit is contained in:
QAston
2010-10-08 21:33:44 +02:00
parent e5e53498ce
commit 1760e42e2c
23 changed files with 120 additions and 15 deletions

View File

@@ -7242,7 +7242,7 @@ void Spell::CallScriptBeforeHitHandlers()
std::list<SpellScript::HitHandler>::iterator hookItrEnd = (*scritr)->BeforeHit.end(), hookItr = (*scritr)->BeforeHit.begin();
for(; hookItr != hookItrEnd ; ++hookItr)
{
((*scritr)->*(*hookItr))();
(*hookItr).Call(*scritr);
}
(*scritr)->_FinishScriptCall();
}
@@ -7256,7 +7256,7 @@ void Spell::CallScriptOnHitHandlers()
std::list<SpellScript::HitHandler>::iterator hookItrEnd = (*scritr)->OnHit.end(), hookItr = (*scritr)->OnHit.begin();
for(; hookItr != hookItrEnd ; ++hookItr)
{
((*scritr)->*(*hookItr))();
(*hookItr).Call(*scritr);
}
(*scritr)->_FinishScriptCall();
}
@@ -7270,7 +7270,7 @@ void Spell::CallScriptAfterHitHandlers()
std::list<SpellScript::HitHandler>::iterator hookItrEnd = (*scritr)->AfterHit.end(), hookItr = (*scritr)->AfterHit.begin();
for(; hookItr != hookItrEnd ; ++hookItr)
{
((*scritr)->*(*hookItr))();
(*hookItr).Call(*scritr);
}
(*scritr)->_FinishScriptCall();
}