aboutsummaryrefslogtreecommitdiff
path: root/src/game/Player.cpp
diff options
context:
space:
mode:
authorn0n4m3 <none@none>2010-02-06 19:07:28 +0300
committern0n4m3 <none@none>2010-02-06 19:07:28 +0300
commitbb7222c376785654ff3256e82fda28f4d8be7e98 (patch)
tree824e7fa5cc83ab36e305d0a629445234fa016e33 /src/game/Player.cpp
parent982296518c7886068691010be9d6b094668e1c31 (diff)
Fixed data loss at player save.
--HG-- branch : trunk
Diffstat (limited to 'src/game/Player.cpp')
-rw-r--r--src/game/Player.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/game/Player.cpp b/src/game/Player.cpp
index 606997908b8..985908dff0a 100644
--- a/src/game/Player.cpp
+++ b/src/game/Player.cpp
@@ -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