diff options
| -rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 69 |
1 files changed, 32 insertions, 37 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 29d7a6d518e..dffae64da64 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -5671,59 +5671,54 @@ void ObjectMgr::ValidateSpellScripts() uint32 count = 0; - for (auto spell : _spellScriptsStore) + for (auto& spell : _spellScriptsStore) { SpellInfo const* spellEntry = sSpellMgr->GetSpellInfo(spell.first, DIFFICULTY_NONE); - auto const bounds = sObjectMgr->GetSpellScriptsBounds(spell.first); - - for (auto itr = bounds.first; itr != bounds.second; ++itr) + if (SpellScriptLoader* spellScriptLoader = sScriptMgr->GetSpellScriptLoader(spell.second.first)) { - if (SpellScriptLoader* spellScriptLoader = sScriptMgr->GetSpellScriptLoader(itr->second.first)) + ++count; + + std::unique_ptr<SpellScript> spellScript(spellScriptLoader->GetSpellScript()); + std::unique_ptr<AuraScript> auraScript(spellScriptLoader->GetAuraScript()); + + if (!spellScript && !auraScript) { - ++count; + TC_LOG_ERROR("scripts", "Functions GetSpellScript() and GetAuraScript() of script `%s` do not return objects - script skipped", GetScriptName(spell.second.first).c_str()); - std::unique_ptr<SpellScript> spellScript(spellScriptLoader->GetSpellScript()); - std::unique_ptr<AuraScript> auraScript(spellScriptLoader->GetAuraScript()); + spell.second.second = false; + continue; + } - if (!spellScript && !auraScript) - { - TC_LOG_ERROR("scripts", "Functions GetSpellScript() and GetAuraScript() of script `%s` do not return objects - script skipped", GetScriptName(itr->second.first).c_str()); + if (spellScript) + { + spellScript->_Init(&spellScriptLoader->GetName(), spellEntry->Id); + spellScript->_Register(); - itr->second.second = false; + if (!spellScript->_Validate(spellEntry)) + { + spell.second.second = false; continue; } + } - if (spellScript) - { - spellScript->_Init(&spellScriptLoader->GetName(), spellEntry->Id); - spellScript->_Register(); - - if (!spellScript->_Validate(spellEntry)) - { - itr->second.second = false; - continue; - } - } + if (auraScript) + { + auraScript->_Init(&spellScriptLoader->GetName(), spellEntry->Id); + auraScript->_Register(); - if (auraScript) + if (!auraScript->_Validate(spellEntry)) { - auraScript->_Init(&spellScriptLoader->GetName(), spellEntry->Id); - auraScript->_Register(); - - if (!auraScript->_Validate(spellEntry)) - { - itr->second.second = false; - continue; - } + spell.second.second = false; + continue; } - - // Enable the script when all checks passed - itr->second.second = true; } - else - itr->second.second = false; + + // Enable the script when all checks passed + spell.second.second = true; } + else + spell.second.second = false; } TC_LOG_INFO("server.loading", ">> Validated %u scripts in %u ms", count, GetMSTimeDiffToNow(oldMSTime)); |
