From f304e31bf2100d239e75ac8166084c1661f0bb9e Mon Sep 17 00:00:00 2001 From: megamage Date: Sat, 13 Jun 2009 10:37:56 -0500 Subject: [PATCH] *Fix a crash caused by outdated intance id. --HG-- branch : trunk --- src/game/InstanceSaveMgr.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/game/InstanceSaveMgr.cpp b/src/game/InstanceSaveMgr.cpp index 14d5951615..2c30419113 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());