Core/Misc: Moved CharacterInfo out of world to separate class

Port From (https://github.com/TrinityCore/TrinityCore/commit/ad4e63bae145ae49b584ab2fc621660430cec0d3)
This commit is contained in:
hondacrx
2019-08-16 13:43:17 -04:00
parent ea35c2ca62
commit 3634bc7133
56 changed files with 598 additions and 527 deletions
+12 -10
View File
@@ -428,28 +428,28 @@ namespace Game
public void LoadTutorialsData(SQLResult result)
{
if (!result.IsEmpty())
{
for (var i = 0; i < SharedConst.MaxAccountTutorialValues; i++)
tutorials[i] = result.Read<uint>(i);
tutorialsChanged |= TutorialsFlag.LoadedFromDB;
}
tutorialsChanged = false;
tutorialsChanged &= ~TutorialsFlag.Changed;
}
public void SaveTutorialsData(SQLTransaction trans)
{
if (!tutorialsChanged)
if (!tutorialsChanged.HasAnyFlag(TutorialsFlag.Changed))
return;
PreparedStatement stmt = DB.Characters.GetPreparedStatement(CharStatements.SEL_HAS_TUTORIALS);
stmt.AddValue(0, GetAccountId());
bool hasTutorials = !DB.Characters.Query(stmt).IsEmpty();
// Modify data in DB
stmt = DB.Characters.GetPreparedStatement(hasTutorials ? CharStatements.UPD_TUTORIALS : CharStatements.INS_TUTORIALS);
bool hasTutorialsInDB = tutorialsChanged.HasAnyFlag(TutorialsFlag.LoadedFromDB);
PreparedStatement stmt = DB.Characters.GetPreparedStatement(hasTutorialsInDB ? CharStatements.UPD_TUTORIALS : CharStatements.INS_TUTORIALS);
for (var i = 0; i < SharedConst.MaxAccountTutorialValues; ++i)
stmt.AddValue(i, tutorials[i]);
stmt.AddValue(SharedConst.MaxAccountTutorialValues, GetAccountId());
trans.Append(stmt);
tutorialsChanged = false;
tutorialsChanged &= ~TutorialsFlag.Changed;
}
public void SendConnectToInstance(ConnectToSerial serial)
@@ -622,6 +622,8 @@ namespace Game
public ulong GetConnectToInstanceKey() { return _instanceConnectKey.Raw; }
public QueryCallbackProcessor GetQueryProcessor() { return _queryProcessor; }
void SetLogoutStartTime(long requestTime)
{
_logoutTime = requestTime;
@@ -780,7 +782,7 @@ namespace Game
if (tutorials[index] != value)
{
tutorials[index] = value;
tutorialsChanged = true;
tutorialsChanged |= TutorialsFlag.Changed;
}
}
@@ -855,7 +857,7 @@ namespace Game
uint m_clientTimeDelay;
AccountData[] _accountData = new AccountData[(int)AccountDataTypes.Max];
uint[] tutorials = new uint[SharedConst.MaxAccountTutorialValues];
bool tutorialsChanged;
TutorialsFlag tutorialsChanged;
Array<byte> _realmListSecret = new Array<byte>(32);
Dictionary<uint /*realmAddress*/, byte> _realmCharacterCounts = new Dictionary<uint, byte>();