aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/game/Player.cpp24
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
}