aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoschiwald <joschiwald.trinity@gmail.com>2017-01-12 23:03:08 +0100
committerjoschiwald <joschiwald.trinity@gmail.com>2017-01-13 01:05:46 +0100
commit9edc62f2850469f2a800ad0d3f4faef1b6915d38 (patch)
tree2194dad6a383a7fb49c9ee68d924a746e939354f
parenta6acd8885a2e0ccb7337e16dd4d7ab10890953c0 (diff)
Core/SpellScripts: Added helper method to validate spells
(cherry picked from commit 2b5d7eef3a091e67c27e853d43ac0bebbfa67531)
-rw-r--r--src/server/game/Spells/SpellScript.cpp12
-rw-r--r--src/server/game/Spells/SpellScript.h2
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