diff options
author | Shauren <shauren.trinity@gmail.com> | 2023-05-30 19:34:19 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2023-05-30 19:34:19 +0200 |
commit | f8a6a9b01713a5dbe5ed38bd3d1b1c72191cf288 (patch) | |
tree | df08545ca3a3f662df04779258c1591b43fc044b /src/server/game/Spells/SpellScript.cpp | |
parent | 3ca9e1253a127daea2ff1b8b0eb5236aa04f772e (diff) |
Scripts/Spells: Added spell effect validation helper
Diffstat (limited to 'src/server/game/Spells/SpellScript.cpp')
-rw-r--r-- | src/server/game/Spells/SpellScript.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/server/game/Spells/SpellScript.cpp b/src/server/game/Spells/SpellScript.cpp index 60f766d41f8..f9eb92a1725 100644 --- a/src/server/game/Spells/SpellScript.cpp +++ b/src/server/game/Spells/SpellScript.cpp @@ -52,6 +52,24 @@ bool _SpellScript::_ValidateSpellInfo(uint32 spellId) return true; } +bool _SpellScript::_ValidateSpellEffect(uint32 spellId, SpellEffIndex effectIndex) +{ + SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellId, DIFFICULTY_NONE); + if (!spellInfo) + { + TC_LOG_ERROR("scripts.spells", "_SpellScript::_ValidateSpellEffect: Spell {} does not exist.", spellId); + return false; + } + + if (spellInfo->GetEffects().size() <= effectIndex) + { + TC_LOG_ERROR("scripts.spells", "_SpellScript::_ValidateSpellEffect: Spell {} does not have EFFECT_{}.", spellId, uint32(effectIndex)); + return false; + } + + return true; +} + void _SpellScript::_Register() { m_currentScriptState = SPELL_SCRIPT_STATE_REGISTRATION; |