diff options
author | megamage <none@none> | 2009-06-13 10:37:56 -0500 |
---|---|---|
committer | megamage <none@none> | 2009-06-13 10:37:56 -0500 |
commit | f304e31bf2100d239e75ac8166084c1661f0bb9e (patch) | |
tree | ed8dba31225df8cd15371036741fbe2df18fcfc3 | |
parent | 2617dc1b2f8acfaa7284041c66d2334f634e8be5 (diff) |
*Fix a crash caused by outdated intance id.
--HG--
branch : trunk
-rw-r--r-- | src/game/InstanceSaveMgr.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/game/InstanceSaveMgr.cpp b/src/game/InstanceSaveMgr.cpp index 14d5951615d..2c304191136 100644 --- a/src/game/InstanceSaveMgr.cpp +++ b/src/game/InstanceSaveMgr.cpp @@ -309,6 +309,20 @@ void InstanceSaveManager::CleanupInstances() delete result; } + // gameobject_respawn + result = CharacterDatabase.Query("SELECT DISTINCT(instance_id) FROM characters WHERE instance_id <> 0"); + if( result ) + { + do + { + Field *fields = result->Fetch(); + if(InstanceSet.find(fields[0].GetUInt32()) == InstanceSet.end()) + CharacterDatabase.PExecute("UPDATE characters SET instance_id = '0' WHERE instance_id = '%u'", fields[0].GetUInt32()); + } + while (result->NextRow()); + delete result; + } + bar.step(); sLog.outString(); sLog.outString( ">> Initialized %u instances", (uint32)InstanceSet.size()); |