aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp69
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));