diff options
author | QAston <none@none> | 2010-10-08 21:33:44 +0200 |
---|---|---|
committer | QAston <none@none> | 2010-10-08 21:33:44 +0200 |
commit | 1760e42e2caa99d3de0038d1b52f64a1daeb665a (patch) | |
tree | 9d95c4a73c675b3fb59724a1b0a908e5c9c3a490 /src/server/game/Spells/SpellScript.cpp | |
parent | e5e53498cede475ae0d80623e89c4a3cbec39b62 (diff) |
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
Diffstat (limited to 'src/server/game/Spells/SpellScript.cpp')
-rwxr-xr-x | src/server/game/Spells/SpellScript.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/server/game/Spells/SpellScript.cpp b/src/server/game/Spells/SpellScript.cpp index 355da664f42..ee2c7836f62 100755 --- a/src/server/game/Spells/SpellScript.cpp +++ b/src/server/game/Spells/SpellScript.cpp @@ -167,6 +167,16 @@ void SpellScript::EffectHandler::Call(SpellScript * spellScript, SpellEffIndex e (spellScript->*pEffectHandlerScript)(effIndex); } +SpellScript::HitHandler::HitHandler(SpellHitFnType _pHitHandlerScript) +{ + pHitHandlerScript = _pHitHandlerScript; +} + +void SpellScript::HitHandler::Call(SpellScript * spellScript) +{ + (spellScript->*pHitHandlerScript)(); +} + bool SpellScript::_Validate(SpellEntry const * entry) { for (std::list<EffectHandler>::iterator itr = OnEffect.begin(); itr != OnEffect.end(); ++itr) |