Fixed data loss at player save.

--HG--
branch : trunk
This commit is contained in:
n0n4m3
2010-02-06 19:07:28 +03:00
parent 982296518c
commit bb7222c376
2 changed files with 8 additions and 0 deletions
+6
View File
@@ -287,6 +287,8 @@ UpdateMask Player::updateVisualBits;
Player::Player (WorldSession *session): Unit(), m_achievementMgr(this), m_reputationMgr(this)
{
m_isSaved = false;
m_speakTime = 0;
m_speakCount = 0;
@@ -16987,12 +16989,15 @@ bool Player::_LoadHomeBind(QueryResult_AutoPtr result)
void Player::SaveToDB()
{
// delay auto save at any saves (manual, in code, or autosave)
m_isSaved = true;
m_nextSave = sWorld.getConfig(CONFIG_INTERVAL_SAVE);
//lets allow only players in world to be saved
if (IsBeingTeleportedFar())
{
ScheduleDelayedOperation(DELAYED_SAVE_PLAYER);
m_isSaved = false;
return;
}
@@ -17126,6 +17131,7 @@ void Player::SaveToDB()
// save pet (hunter pet level and experience and all type pets health/mana).
if (Pet* pet = GetPet())
pet->SavePetToDB(PET_SAVE_AS_CURRENT);
m_isSaved = false;
}
// fast save function for item/money cheating preventing - save only inventory and money state
+2
View File
@@ -2577,6 +2577,8 @@ Spell * m_spellModTakingSpell;
uint32 m_ChampioningFaction;
bool m_isSaved;
uint32 m_timeSyncCount;
uint32 m_timeSyncTimer;
};