Core/Maps: Unload transports in MapManager::UnloadAll instead of singleton destructor.

Core/Transports: Properly delink units from transports on transport desutruction. - Thanks to Shauren for help.
Core/ObjectAccessor: Unload corpse 'storage' in added UnloadAll method called in WorldRunnable postservice hook.
Core/Master: Change some postservice queries to syncrhonous (direct) execution to ensure execution on shutdown
Core/Master: Remove redundant calls to ACE::init and ACE::fini

These changes were made to fix crash/freeze issues on shutdown.
This commit is contained in:
Machiavelli
2011-01-16 00:08:52 +01:00
parent 58564cc496
commit 52cd2cbd7e
7 changed files with 37 additions and 33 deletions
@@ -180,8 +180,11 @@ Transport::Transport(uint32 period, uint32 script) : GameObject(), m_period(peri
Transport::~Transport()
{
for (CreatureSet::iterator itr = m_NPCPassengerSet.begin(); itr != m_NPCPassengerSet.end();)
(*(itr++))->ForcedDespawn();
for (CreatureSet::iterator itr = m_NPCPassengerSet.begin(); itr != m_NPCPassengerSet.end(); ++itr)
{
(*itr)->SetTransport(NULL);
GetMap()->AddObjectToRemoveList(*itr);
}
m_NPCPassengerSet.clear();