*Try to fix a crash caused by corpse. Thanks to new001.
--HG-- branch : trunk
This commit is contained in:
@@ -309,7 +309,7 @@ void InstanceSaveManager::CleanupInstances()
|
|||||||
delete result;
|
delete result;
|
||||||
}
|
}
|
||||||
|
|
||||||
// gameobject_respawn
|
// characters
|
||||||
result = CharacterDatabase.Query("SELECT DISTINCT(instance_id) FROM characters WHERE instance_id <> 0");
|
result = CharacterDatabase.Query("SELECT DISTINCT(instance_id) FROM characters WHERE instance_id <> 0");
|
||||||
if( result )
|
if( result )
|
||||||
{
|
{
|
||||||
@@ -323,6 +323,20 @@ void InstanceSaveManager::CleanupInstances()
|
|||||||
delete result;
|
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();
|
bar.step();
|
||||||
sLog.outString();
|
sLog.outString();
|
||||||
sLog.outString( ">> Initialized %u instances", (uint32)InstanceSet.size());
|
sLog.outString( ">> Initialized %u instances", (uint32)InstanceSet.size());
|
||||||
|
|||||||
@@ -157,6 +157,8 @@ void LoadHelper(CellCorpseSet const& cell_corpses, CellPair &cell, CorpseMapType
|
|||||||
|
|
||||||
// TODO: this is a hack
|
// TODO: this is a hack
|
||||||
// corpse's map should be reset when the map is unloaded
|
// corpse's map should be reset when the map is unloaded
|
||||||
|
// but it may still exist when the grid is unloaded but map is not
|
||||||
|
// in that case map == currMap
|
||||||
obj->SetMap(map);
|
obj->SetMap(map);
|
||||||
|
|
||||||
AddObjectHelper(cell, m, count, map, obj);
|
AddObjectHelper(cell, m, count, map, obj);
|
||||||
|
|||||||
Reference in New Issue
Block a user