From ef655186900752155c3de2aedfc26e4095c6dc6d Mon Sep 17 00:00:00 2001 From: tomrus88 Date: Thu, 5 Mar 2009 16:09:25 +0300 Subject: [PATCH] Fix free talent points amount in case preview learning --- src/game/Player.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/game/Player.cpp b/src/game/Player.cpp index c165c5fd5..18c7dc98d 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -19864,7 +19864,10 @@ void Player::LearnTalent(uint32 talentId, uint32 talentRank, bool skipPrevRanks) sLog.outDetail("TalentID: %u Rank: %u Spell: %u\n", talentId, talentRank, spellid); // update free talent points - SetFreeTalentPoints(CurTalentPoints - 1); + if(skipPrevRanks) + SetFreeTalentPoints(CurTalentPoints - (talentRank + 1)); + else + SetFreeTalentPoints(CurTalentPoints - 1); } void Player::LearnPetTalent(uint64 petGuid, uint32 talentId, uint32 talentRank, bool skipPrevRanks) @@ -19986,6 +19989,12 @@ void Player::LearnPetTalent(uint64 petGuid, uint32 talentId, uint32 talentRank, // learn! (other talent ranks will unlearned at learning) pet->learnSpell(spellid); sLog.outDetail("TalentID: %u Rank: %u Spell: %u\n", talentId, talentRank, spellid); + + // update free talent points + if(skipPrevRanks) + pet->SetFreeTalentPoints(CurTalentPoints - (talentRank + 1)); + else + pet->SetFreeTalentPoints(CurTalentPoints - 1); } void Player::SendEquipmentSetList()