aboutsummaryrefslogtreecommitdiff
path: root/src/game/InstanceSaveMgr.cpp
diff options
context:
space:
mode:
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());