diff options
Diffstat (limited to 'src')
-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 c50043fd2dd..16074c1534d 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 <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 5513d95b9b9..ad1556ae57c 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 |