diff options
-rw-r--r-- | src/server/game/Spells/SpellScript.cpp | 12 | ||||
-rw-r--r-- | src/server/game/Spells/SpellScript.h | 2 |
2 files changed, 14 insertions, 0 deletions
diff --git a/src/server/game/Spells/SpellScript.cpp b/src/server/game/Spells/SpellScript.cpp index 28d2b81a44f..c56fb6ce0ef 100644 --- a/src/server/game/Spells/SpellScript.cpp +++ b/src/server/game/Spells/SpellScript.cpp @@ -18,6 +18,7 @@ #include "Spell.h" #include "ScriptMgr.h" #include "SpellAuras.h" +#include "SpellMgr.h" #include "SpellScript.h" #include "SpellMgr.h" #include <string> @@ -32,6 +33,17 @@ bool _SpellScript::_Validate(SpellInfo const* entry) return true; } +bool _SpellScript::ValidateSpellInfo(std::vector<uint32> spellIds) +{ + for (uint32 spellId : spellIds) + if (!sSpellMgr->GetSpellInfo(spellId)) + { + TC_LOG_ERROR("scripts.spells", "_SpellScript::ValidateSpellInfo: Spell %u does not exist.", spellId); + return false; + } + return true; +} + void _SpellScript::_Register() { m_currentScriptState = SPELL_SCRIPT_STATE_REGISTRATION; diff --git a/src/server/game/Spells/SpellScript.h b/src/server/game/Spells/SpellScript.h index 4dc39370b1e..51d3c2a85ab 100644 --- a/src/server/game/Spells/SpellScript.h +++ b/src/server/game/Spells/SpellScript.h @@ -132,6 +132,8 @@ class TC_GAME_API _SpellScript // Function called when script is destroyed // use for: deallocating memory allocated by script virtual void Unload() { } + // Helpers + static bool ValidateSpellInfo(std::vector<uint32> spellIds); }; // SpellScript interface - enum used for runtime checks of script function calls |