diff --git a/apps/openmw/mwbase/statemanager.hpp b/apps/openmw/mwbase/statemanager.hpp index e9d10a796e..7101be25d8 100644 --- a/apps/openmw/mwbase/statemanager.hpp +++ b/apps/openmw/mwbase/statemanager.hpp @@ -63,8 +63,6 @@ namespace MWBase /// \note \a slot must belong to \a character. virtual MWState::Character *getCurrentCharacter() = 0; - ///< \attention Do not call this function to check if there is a current character. - /// Instead, assume there is a character if getState() == Running. virtual CharacterIterator characterBegin() = 0; ///< Any call to SaveGame and getCurrentCharacter can invalidate the returned diff --git a/apps/openmw/mwgui/savegamedialog.cpp b/apps/openmw/mwgui/savegamedialog.cpp index 648dd46838..2ea83cfa36 100644 --- a/apps/openmw/mwgui/savegamedialog.cpp +++ b/apps/openmw/mwgui/savegamedialog.cpp @@ -89,23 +89,22 @@ namespace MWGui if (mgr->characterBegin() == mgr->characterEnd()) return; - // If we are running, there must be a current character - if (mgr->getState() == MWBase::StateManager::State_Running) - { - mCurrentCharacter = mgr->getCurrentCharacter(); - } + mCurrentCharacter = mgr->getCurrentCharacter(); mCharacterSelection->removeAllItems(); for (MWBase::StateManager::CharacterIterator it = mgr->characterBegin(); it != mgr->characterEnd(); ++it) { - std::stringstream title; - title << it->getSignature().mPlayerName; - title << " (Level " << it->getSignature().mPlayerLevel << " " << it->getSignature().mPlayerClass << ")"; + if (it->begin()!=it->end()) + { + std::stringstream title; + title << it->getSignature().mPlayerName; + title << " (Level " << it->getSignature().mPlayerLevel << " " << it->getSignature().mPlayerClass << ")"; - mCharacterSelection->addItem (title.str()); + mCharacterSelection->addItem (title.str()); - if (mCurrentCharacter == &*it) - mCharacterSelection->setIndexSelected(mCharacterSelection->getItemCount()-1); + if (mgr->getCurrentCharacter() == &*it) + mCharacterSelection->setIndexSelected(mCharacterSelection->getItemCount()-1); + } } fillSaveList(); diff --git a/apps/openmw/mwstate/statemanagerimp.hpp b/apps/openmw/mwstate/statemanagerimp.hpp index 08b0776c19..a380c9fee6 100644 --- a/apps/openmw/mwstate/statemanagerimp.hpp +++ b/apps/openmw/mwstate/statemanagerimp.hpp @@ -43,8 +43,6 @@ namespace MWState /// \note \a slot must belong to \a character. virtual Character *getCurrentCharacter(); - ///< \attention Do not call this function to check if there is a current character. Use - /// characterBegin()!=characterEnd() instead. virtual CharacterIterator characterBegin(); ///< Any call to SaveGame and getCurrentCharacter can invalidate the returned