diff options
Diffstat (limited to 'src/client.cpp')
-rw-r--r-- | src/client.cpp | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/src/client.cpp b/src/client.cpp index afc1ae1d..137210b1 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -446,14 +446,6 @@ Client::~Client() // Shutdown sound sound.close(); - // Unload XML databases - ColorDB::unload(); - EmoteDB::unload(); - ItemDB::unload(); - MonsterDB::unload(); - NPCDB::unload(); - StatusEffect::unload(); - ResourceManager::deleteInstance(); SDL_FreeSurface(mIcon); @@ -594,6 +586,19 @@ int Client::exec() { delete game; game = 0; + + if (mState != STATE_CHANGE_MAP) + { + // Unload XML databases + ColorDB::unload(); + EmoteDB::unload(); + ItemDB::unload(); + MonsterDB::unload(); + NPCDB::unload(); + StatusEffect::unload(); + + ActorSprite::unload(); + } } mOldState = mState; @@ -748,6 +753,8 @@ int Client::exec() StatusEffect::load(); Units::loadUnits(); + ActorSprite::load(); + mDesktop->reloadWallpaper(); mState = STATE_GET_CHARACTERS; |