diff options
Diffstat (limited to 'src/game/Player.cpp')
-rw-r--r-- | src/game/Player.cpp | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 24b7d336d62..463398eeab2 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -14644,13 +14644,6 @@ bool Player::LoadFromDB( uint32 guid, SqlQueryHolder *holder ) return false; } - m_specsCount = fields[42].GetUInt32(); - m_activeSpec = fields[43].GetUInt32(); - - // sanity check - if (m_specsCount < 2) // Maybe better to check MAX_TALENT_SPECS? - m_activeSpec = 0; - Object::_Create( guid, 0, HIGHGUID_PLAYER ); m_name = fields[3].GetCppString(); @@ -15070,7 +15063,17 @@ bool Player::LoadFromDB( uint32 guid, SqlQueryHolder *holder ) //mails are loaded only when needed ;-) - when player in game click on mailbox. //_LoadMail(); + + m_specsCount = fields[42].GetUInt32(); + m_activeSpec = fields[43].GetUInt32(); + // sanity check + if (m_specsCount > MAX_TALENT_SPECS || m_activeSpec > MAX_TALENT_SPECS) // if (m_specsCount < 2) is not logical + { + m_activeSpec = 0; + sLog.outError("Player %s(GUID: %u) has SpecCount = %u and ActiveSpec = %u.", GetName(), GetGUIDLow(), m_specsCount, m_activeSpec); + } + _LoadTalents(holder->GetResult(PLAYER_LOGIN_QUERY_LOADTALENTS)); _LoadSpells(holder->GetResult(PLAYER_LOGIN_QUERY_LOADSPELLS)); |