aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2016-06-14 22:13:27 +0200
committerShauren <shauren.trinity@gmail.com>2016-06-14 22:13:27 +0200
commitb415f0a04a38123eee00c95fc1f8f483c480526a (patch)
tree72125bed034871e8af778368e8fad020af6a75e9
parent27e08e48e117a3c31e3d45d8bfe5d307d93ebc81 (diff)
Core/Players: Fixed saving talents for all specs
-rw-r--r--src/server/game/Entities/Player/Player.cpp8
-rw-r--r--src/server/game/Miscellaneous/SharedDefines.h4
-rw-r--r--src/server/game/Tools/CharacterDatabaseCleaner.cpp2
3 files changed, 6 insertions, 8 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index b3f23d79221..083ab3c2465 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -24761,11 +24761,13 @@ void Player::SendTalentsInfoData()
if (!spec)
continue;
+ PlayerTalentMap* talents = GetTalentMap(i);
+
WorldPackets::Talent::TalentGroupInfo groupInfoPkt;
groupInfoPkt.SpecID = spec->ID;
- groupInfoPkt.TalentIDs.reserve(GetTalentMap(i)->size());
+ groupInfoPkt.TalentIDs.reserve(talents->size());
- for (PlayerTalentMap::const_iterator itr = GetTalentMap(i)->begin(); itr != GetTalentMap(i)->end(); ++itr)
+ for (PlayerTalentMap::const_iterator itr = talents->begin(); itr != talents->end(); ++itr)
{
if (itr->second == PLAYERSPELL_REMOVED)
continue;
@@ -24989,7 +24991,7 @@ void Player::_SaveTalents(SQLTransaction& trans)
trans->Append(stmt);
PlayerTalentMap* talents;
- for (uint8 group = 0; group < MAX_TALENT_GROUPS; ++group)
+ for (uint8 group = 0; group < MAX_SPECIALIZATIONS; ++group)
{
talents = GetTalentMap(group);
for (PlayerTalentMap::iterator itr = talents->begin(); itr != talents->end();)
diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h
index 7320119f739..9b6680b7358 100644
--- a/src/server/game/Miscellaneous/SharedDefines.h
+++ b/src/server/game/Miscellaneous/SharedDefines.h
@@ -851,10 +851,6 @@ enum SpellAttr13
SPELL_ATTR13_UNK23 = 0x00800000 // 23
};
-#define MIN_TALENT_GROUP 0
-#define MAX_TALENT_GROUP 1
-#define MIN_TALENT_GROUPS 1
-#define MAX_TALENT_GROUPS 2
#define MIN_SPECIALIZATION_LEVEL 10
#define MAX_SPECIALIZATIONS 4
#define PET_SPEC_OVERRIDE_CLASS_INDEX MAX_CLASSES
diff --git a/src/server/game/Tools/CharacterDatabaseCleaner.cpp b/src/server/game/Tools/CharacterDatabaseCleaner.cpp
index 04614d65ded..a4d34f6088a 100644
--- a/src/server/game/Tools/CharacterDatabaseCleaner.cpp
+++ b/src/server/game/Tools/CharacterDatabaseCleaner.cpp
@@ -148,7 +148,7 @@ bool CharacterDatabaseCleaner::TalentCheck(uint32 talent_id)
void CharacterDatabaseCleaner::CleanCharacterTalent()
{
- CharacterDatabase.DirectPExecute("DELETE FROM character_talent WHERE spec > %u", MAX_TALENT_GROUPS);
+ CharacterDatabase.DirectPExecute("DELETE FROM character_talent WHERE spec > %u", MAX_SPECIALIZATIONS);
CheckUnique("spell", "character_talent", &TalentCheck);
}