aboutsummaryrefslogtreecommitdiff
path: root/src/game/InstanceSaveMgr.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-08-26 18:11:14 -0500
committermegamage <none@none>2009-08-26 18:11:14 -0500
commit185219d0879c1cac563b3f87d1f8fa034f80f695 (patch)
treef7b2a44861c69c6fc5b417d06a06b0f43de7de16 /src/game/InstanceSaveMgr.cpp
parent3cf8ae345c918faef9b01acfa78371d539e24ea2 (diff)
*Try to fix a crash caused by corpse. Thanks to new001.
--HG-- branch : trunk
Diffstat (limited to 'src/game/InstanceSaveMgr.cpp')
-rw-r--r--src/game/InstanceSaveMgr.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/game/InstanceSaveMgr.cpp b/src/game/InstanceSaveMgr.cpp
index d45e3fac451..2c3161e2faf 100644
--- a/src/game/InstanceSaveMgr.cpp
+++ b/src/game/InstanceSaveMgr.cpp
@@ -309,7 +309,7 @@ void InstanceSaveManager::CleanupInstances()
delete result;
}
- // gameobject_respawn
+ // characters
result = CharacterDatabase.Query("SELECT DISTINCT(instance_id) FROM characters WHERE instance_id <> 0");
if( result )
{
@@ -323,6 +323,20 @@ void InstanceSaveManager::CleanupInstances()
delete result;
}
+ // corpse
+ result = CharacterDatabase.Query("SELECT DISTINCT(instance) FROM corpse WHERE instance <> 0");
+ if( result )
+ {
+ do
+ {
+ Field *fields = result->Fetch();
+ if(InstanceSet.find(fields[0].GetUInt32()) == InstanceSet.end())
+ CharacterDatabase.PExecute("UPDATE corpse SET instance = '0' WHERE instance = '%u'", fields[0].GetUInt32());
+ }
+ while (result->NextRow());
+ delete result;
+ }
+
bar.step();
sLog.outString();
sLog.outString( ">> Initialized %u instances", (uint32)InstanceSet.size());