aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/SpellMgr.cpp
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2016-10-07 00:51:52 -0300
committerjoschiwald <joschiwald.trinity@gmail.com>2017-08-26 23:23:32 +0200
commitc7cd9102d364fa8225b9952ccfa245c54bb6654b (patch)
tree92a2cea4743c7a085d087deeaab7de4ace5e9062 /src/server/game/Spells/SpellMgr.cpp
parentee0e9c8578486879a27059b82f30618ef2ebb4fd (diff)
Core/Globals: cache SpellSpecific and AuraState information instead of computing them each time they're needed
(cherry picked from commit ce45e1bf95a03be6b1f42c785e4c01dd55999d33) # Conflicts: # src/server/game/Spells/SpellInfo.cpp # src/server/game/Spells/SpellInfo.h # src/server/game/Spells/SpellMgr.cpp # src/server/game/World/World.cpp
Diffstat (limited to 'src/server/game/Spells/SpellMgr.cpp')
-rw-r--r--src/server/game/Spells/SpellMgr.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp
index 0a2ae57ffd1..0d949f26d75 100644
--- a/src/server/game/Spells/SpellMgr.cpp
+++ b/src/server/game/Spells/SpellMgr.cpp
@@ -3746,6 +3746,23 @@ void SpellMgr::LoadSpellInfoCorrections()
TC_LOG_INFO("server.loading", ">> Loaded SpellInfo corrections in %u ms", GetMSTimeDiffToNow(oldMSTime));
}
+void SpellMgr::LoadSpellInfoSpellSpecificAndAuraState()
+{
+ uint32 oldMSTime = getMSTime();
+
+ for (SpellInfo* spellInfo : mSpellInfoMap)
+ {
+ if (!spellInfo)
+ continue;
+
+ // AuraState depends on SpellSpecific
+ spellInfo->_LoadSpellSpecific();
+ spellInfo->_LoadAuraState();
+ }
+
+ TC_LOG_INFO("server.loading", ">> Loaded SpellInfo SpellSpecific and AuraState in %u ms", GetMSTimeDiffToNow(oldMSTime));
+}
+
void SpellMgr::LoadPetFamilySpellsStore()
{
std::unordered_map<uint32, SpellLevelsEntry const*> levelsBySpell;