diff options
-rw-r--r-- | src/game/Player.cpp | 24 |
1 files changed, 2 insertions, 22 deletions
diff --git a/src/game/Player.cpp b/src/game/Player.cpp index a47f2fd9786..58d515ba014 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -3796,26 +3796,16 @@ bool Player::resetTalents(bool no_cost) PlayerTalentMap::iterator plrTalent = m_talents[m_activeSpec]->find(talentInfo->RankID[rank]); if (plrTalent != m_talents[m_activeSpec]->end() || m_talents[m_activeSpec]->empty()) { - for (PlayerSpellMap::iterator itr = GetSpellMap().begin(); itr != GetSpellMap().end();) + for (PlayerSpellMap::iterator itr = GetSpellMap().begin(); itr != GetSpellMap().end(); ++itr) { // remove learned spells (all ranks) uint32 itrFirstId = spellmgr.GetFirstSpellInChain(itr->first); // unlearn if first rank is talent or learned by talent if (itrFirstId == talentInfo->RankID[rank]) - { removeSpell(itr->first, true, false); - itr = GetSpellMap().begin(); - continue; - } else if (spellmgr.IsSpellLearnToSpell(talentInfo->RankID[rank], itrFirstId)) - { removeSpell(itr->first, true, true); - itr = GetSpellMap().begin(); - continue; - } - else - ++itr; } if (!m_talents[m_activeSpec]->empty()) plrTalent->second->state = PLAYERSPELL_REMOVED; // mark the talent in the talent map as removed @@ -22019,26 +22009,16 @@ void Player::ActivateSpec(uint8 spec) PlayerTalentMap::iterator plrTalent = m_talents[m_activeSpec]->find(talentInfo->RankID[rank]); if (plrTalent != m_talents[m_activeSpec]->end() || m_talents[m_activeSpec]->empty()) { - for (PlayerSpellMap::iterator itr = GetSpellMap().begin(); itr != GetSpellMap().end();) + for (PlayerSpellMap::iterator itr = GetSpellMap().begin(); itr != GetSpellMap().end(); ++itr) { // remove learned spells (all ranks) uint32 itrFirstId = spellmgr.GetFirstSpellInChain(itr->first); // unlearn if first rank is talent or learned by talent if (itrFirstId == talentInfo->RankID[rank]) - { removeSpell(itr->first, true, false); - itr = GetSpellMap().begin(); - continue; - } else if (spellmgr.IsSpellLearnToSpell(talentInfo->RankID[rank], itrFirstId)) - { removeSpell(itr->first, true, true); - itr = GetSpellMap().begin(); - continue; - } - else - ++itr; } //plrTalent->second->state = PLAYERSPELL_REMOVED; // mark the talent in the talent map as removed } |