Core: Fixed occasional wrong order of async operations at respawn time saving. Closes issue #5239.

DB schema: Sorted out a discrepancy in respawn time column format.

--HG--
branch : trunk
This commit is contained in:
Xanadu
2010-12-23 05:49:23 +01:00
parent 66b4c8003c
commit cfa26522ad
10 changed files with 79 additions and 33 deletions
@@ -742,7 +742,7 @@ bool GameObject::LoadFromDB(uint32 guid, Map *map)
if (m_respawnTime && m_respawnTime <= time(NULL))
{
m_respawnTime = 0;
sObjectMgr->SaveGORespawnTime(m_DBTableGuid,GetInstanceId(),0);
sObjectMgr->RemoveGORespawnTime(m_DBTableGuid, GetInstanceId());
}
}
}
@@ -760,7 +760,7 @@ bool GameObject::LoadFromDB(uint32 guid, Map *map)
void GameObject::DeleteFromDB()
{
sObjectMgr->SaveGORespawnTime(m_DBTableGuid,GetInstanceId(),0);
sObjectMgr->RemoveGORespawnTime(m_DBTableGuid, GetInstanceId());
sObjectMgr->DeleteGOData(m_DBTableGuid);
WorldDatabase.PExecute("DELETE FROM gameobject WHERE guid = '%u'", m_DBTableGuid);
WorldDatabase.PExecute("DELETE FROM game_event_gameobject WHERE guid = '%u'", m_DBTableGuid);
@@ -853,7 +853,7 @@ void GameObject::Respawn()
if (m_spawnedByDefault && m_respawnTime > 0)
{
m_respawnTime = time(NULL);
sObjectMgr->SaveGORespawnTime(m_DBTableGuid,GetInstanceId(),0);
sObjectMgr->RemoveGORespawnTime(m_DBTableGuid, GetInstanceId());
}
}