[8433] Implement proper store and use character specific account data.

* Base at TOM_RUS reseach save/load character specific account data in new table `character_account_data`
    * Move its in sql update from `account_data` to new table.
    * For client packets that can be send in loggined state or just after logout but assocualted
      with recently logout character add new login status STATUS_LOGGEDIN_OR_RECENTLY_LOGGOUT
    * Store low guid for loggedin player or recently logout into WorldSession.

Author: VladimirMangos, TOM_RUS

--HG--
branch : trunk
This commit is contained in:
megamage
2009-09-01 16:47:49 -05:00
parent f0e6acda3b
commit dc68c2b269
13 changed files with 164 additions and 45 deletions

View File

@@ -919,7 +919,7 @@ void WorldSession::HandleUpdateAccountData(WorldPacket &recv_data)
if(decompressedSize == 0) // erase
{
SetAccountData(type, 0, "");
SetAccountData(AccountDataType(type), 0, "");
WorldPacket data(SMSG_UPDATE_ACCOUNT_DATA_COMPLETE, 4+4);
data << uint32(type);
@@ -952,7 +952,7 @@ void WorldSession::HandleUpdateAccountData(WorldPacket &recv_data)
std::string adata;
dest >> adata;
SetAccountData(type, timestamp, adata);
SetAccountData(AccountDataType(type), timestamp, adata);
WorldPacket data(SMSG_UPDATE_ACCOUNT_DATA_COMPLETE, 4+4);
data << uint32(type);
@@ -972,7 +972,7 @@ void WorldSession::HandleRequestAccountData(WorldPacket& recv_data)
if(type > NUM_ACCOUNT_DATA_TYPES)
return;
AccountData *adata = GetAccountData(type);
AccountData *adata = GetAccountData(AccountDataType(type));
uint32 size = adata->Data.size();