diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 21 | ||||
-rw-r--r-- | src/server/game/Entities/Player/Player.h | 2 | ||||
-rw-r--r-- | src/server/game/Spells/SpellMgr.cpp | 61 |
3 files changed, 5 insertions, 79 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 19e68dd2e6c..406679616b7 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -111,22 +111,6 @@ static uint32 copseReclaimDelay[MAX_DEATH_COUNT] = { 30, 60, 120 }; -uint32 const MasterySpells[MAX_CLASSES] = -{ - 0, - 87500, // Warrior - 87494, // Paladin - 87493, // Hunter - 87496, // Rogue - 87495, // Priest - 87492, // Death Knight - 87497, // Shaman - 86467, // Mage - 87498, // Warlock - 0, - 87491, // Druid -}; - uint64 const MAX_MONEY_AMOUNT = 9999999999ULL; Player::Player(WorldSession* session) : Unit(true) @@ -26033,7 +26017,10 @@ Pet* Player::SummonPet(uint32 entry, float x, float y, float z, float ang, PetTy bool Player::CanUseMastery() const { - return HasSpell(MasterySpells[getClass()]); + if (ChrSpecializationEntry const* chrSpec = sChrSpecializationStore.LookupEntry(GetSpecId(GetActiveTalentGroup()))) + return HasSpell(chrSpec->MasterySpellID[0]) || HasSpell(chrSpec->MasterySpellID[1]); + + return false; } void Player::ValidateMovementInfo(MovementInfo* mi) diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 9da5232ace7..d87ac5a91f9 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -116,8 +116,6 @@ struct PlayerSpell bool disabled : 1; // first rank has been learned in result talent learn but currently talent unlearned, save max learned ranks }; -TC_GAME_API extern uint32 const MasterySpells[MAX_CLASSES]; - enum TalentSpecialization // talent tabs { TALENT_SPEC_MAGE_ARCANE = 62, 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() |