diff options
| author | Shauren <shauren.trinity@gmail.com> | 2016-04-29 20:04:01 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2016-04-29 20:04:01 +0200 |
| commit | c963e703d53a9578cb5320ac0c3de24996e05906 (patch) | |
| tree | d5e2cf5e5b4f63152dfdc950cb7632d0333d807d /src/server/game/Spells/SpellMgr.cpp | |
| parent | 2b411aa1488e57dd12198217196922b3c6f60a21 (diff) | |
Core/Spells: Fixed applying mastery auras
Diffstat (limited to 'src/server/game/Spells/SpellMgr.cpp')
| -rw-r--r-- | src/server/game/Spells/SpellMgr.cpp | 61 |
1 files changed, 1 insertions, 60 deletions
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index 1744f6f638d..beeb1109dce 100644 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -1617,66 +1617,7 @@ void SpellMgr::LoadSpellLearnSpells() ++dbc_count; } - uint32 mastery_count = 0; - for (uint32 i = 0; i < sChrSpecializationStore.GetNumRows(); ++i) - { - ChrSpecializationEntry const* chrSpec = sChrSpecializationStore.LookupEntry(i); - if (!chrSpec) - continue; - - if (chrSpec->ClassID >= MAX_CLASSES) - continue; - - uint32 masteryMainSpell = MasterySpells[chrSpec->ClassID]; - - for (uint32 m = 0; m < MAX_MASTERY_SPELLS; ++m) - { - uint32 mastery = chrSpec->MasterySpellID[m]; - if (!mastery) - continue; - - SpellLearnSpellMapBounds db_node_bounds = dbSpellLearnSpells.equal_range(masteryMainSpell); - bool found = false; - for (SpellLearnSpellMap::const_iterator itr = db_node_bounds.first; itr != db_node_bounds.second; ++itr) - { - if (itr->second.Spell == mastery) - { - TC_LOG_ERROR("sql.sql", "Found redundant record (entry: %u, SpellID: %u) in `spell_learn_spell`, spell added automatically as mastery learned spell from ChrSpecialization.dbc", masteryMainSpell, mastery); - found = true; - break; - } - } - - if (found) - continue; - - // Check if it is already found in Spell.dbc, ignore silently if yes - SpellLearnSpellMapBounds dbc_node_bounds = GetSpellLearnSpellMapBounds(masteryMainSpell); - found = false; - for (SpellLearnSpellMap::const_iterator itr = dbc_node_bounds.first; itr != dbc_node_bounds.second; ++itr) - { - if (itr->second.Spell == mastery) - { - found = true; - break; - } - } - - if (found) - continue; - - SpellLearnSpellNode masteryNode; - masteryNode.Spell = mastery; - masteryNode.OverridesSpell = 0; - masteryNode.Active = true; - masteryNode.AutoLearned = false; - - mSpellLearnSpells.insert(SpellLearnSpellMap::value_type(masteryMainSpell, masteryNode)); - ++mastery_count; - } - } - - TC_LOG_INFO("server.loading", ">> Loaded %u spell learn spells, %u found in Spell.dbc and %u from TalentTab.dbc in %u ms", count, dbc_count, mastery_count, GetMSTimeDiffToNow(oldMSTime)); + TC_LOG_INFO("server.loading", ">> Loaded %u spell learn spells, %u found in Spell.dbc in %u ms", count, dbc_count, GetMSTimeDiffToNow(oldMSTime)); } void SpellMgr::LoadSpellTargetPositions() |
