From 50acdf3e479f190eca1d6f2450ce6caf896f9728 Mon Sep 17 00:00:00 2001 From: scrawl Date: Mon, 14 Mar 2016 00:03:02 +0100 Subject: [PATCH] Move createCharacter inside the try block --- apps/openmw/mwstate/statemanagerimp.cpp | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/apps/openmw/mwstate/statemanagerimp.cpp b/apps/openmw/mwstate/statemanagerimp.cpp index e3c8f3df5..6cd8ec43b 100644 --- a/apps/openmw/mwstate/statemanagerimp.cpp +++ b/apps/openmw/mwstate/statemanagerimp.cpp @@ -174,17 +174,18 @@ void MWState::StateManager::endGame() void MWState::StateManager::saveGame (const std::string& description, const Slot *slot) { MWState::Character* character = getCurrentCharacter(); - if (!character) - { - MWWorld::ConstPtr player = MWMechanics::getPlayer(); - std::string name = player.get()->mBase->mName; - - character = mCharacterManager.createCharacter(name); - mCharacterManager.setCurrentCharacter(character); - } try { + if (!character) + { + MWWorld::ConstPtr player = MWMechanics::getPlayer(); + std::string name = player.get()->mBase->mName; + + character = mCharacterManager.createCharacter(name); + mCharacterManager.setCurrentCharacter(character); + } + ESM::SavedGame profile; MWBase::World& world = *MWBase::Environment::get().getWorld(); @@ -299,7 +300,7 @@ void MWState::StateManager::saveGame (const std::string& description, const Slot MWBase::Environment::get().getWindowManager()->interactiveMessageBox(error.str(), buttons); // If no file was written, clean up the slot - if (slot && !boost::filesystem::exists(slot->mPath)) + if (character && slot && !boost::filesystem::exists(slot->mPath)) { character->deleteSlot(slot); character->cleanup();