From 12426b158d2d6b05a15076a8e20ed739fd809eac Mon Sep 17 00:00:00 2001 From: VladimirMangos Date: Fri, 2 Apr 2010 23:09:17 +0400 Subject: [PATCH] [9659] Simplify resetTalent code. Currently all code related to deepndent spells unlern exist in removeSpell so not need do it in special way in talentReset. --- src/game/Player.cpp | 31 ++----------------------------- src/shared/revision_nr.h | 2 +- 2 files changed, 3 insertions(+), 30 deletions(-) diff --git a/src/game/Player.cpp b/src/game/Player.cpp index db9ed39fa..841496f4c 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -3659,35 +3659,8 @@ bool Player::resetTalents(bool no_cost) continue; for (int j = 0; j < MAX_TALENT_RANK; ++j) - { - for(PlayerSpellMap::iterator itr = GetSpellMap().begin(); itr != GetSpellMap().end();) - { - if (itr->second.state == PLAYERSPELL_REMOVED || itr->second.disabled) - { - ++itr; - continue; - } - - // remove learned spells (all ranks) - uint32 itrFirstId = sSpellMgr.GetFirstSpellInChain(itr->first); - - // unlearn if first rank is talent or learned by talent - if (itrFirstId == talentInfo->RankID[j]) - { - removeSpell(itr->first,!IsPassiveSpell(itr->first),false); - itr = GetSpellMap().begin(); - continue; - } - else if (sSpellMgr.IsSpellLearnToSpell(talentInfo->RankID[j],itrFirstId)) - { - removeSpell(itr->first,!IsPassiveSpell(itr->first)); - itr = GetSpellMap().begin(); - continue; - } - else - ++itr; - } - } + if (talentInfo->RankID[j]) + removeSpell(talentInfo->RankID[j],!IsPassiveSpell(talentInfo->RankID[j]),false); } UpdateFreeTalentPoints(false); diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index deefa4b7a..f940ee49d 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "9658" + #define REVISION_NR "9659" #endif // __REVISION_NR_H__