mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-26 20:02:25 +01:00
*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;
|
||||
}
|
||||
|
||||
// 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());
|
||||
|
||||
@@ -157,6 +157,8 @@ void LoadHelper(CellCorpseSet const& cell_corpses, CellPair &cell, CorpseMapType
|
||||
|
||||
// TODO: this is a hack
|
||||
// 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);
|
||||
|
||||
AddObjectHelper(cell, m, count, map, obj);
|
||||
|
||||
Reference in New Issue
Block a user