From f8a6a9b01713a5dbe5ed38bd3d1b1c72191cf288 Mon Sep 17 00:00:00 2001 From: Shauren Date: Tue, 30 May 2023 19:34:19 +0200 Subject: Scripts/Spells: Added spell effect validation helper --- src/server/game/Spells/SpellScript.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/server/game/Spells/SpellScript.cpp') 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; -- cgit v1.2.3