1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-02-01 11:15:36 +00:00

changed character creation logic (create on save instead of on new game)

This commit is contained in:
Marc Zinnschlag 2013-11-21 10:20:50 +01:00
parent d6e2701dd6
commit e938c5a0ee
5 changed files with 10 additions and 6 deletions

View file

@ -54,7 +54,6 @@ namespace MWBase
/// \note Slot must belong to the current character.
virtual MWState::Character *getCurrentCharacter() = 0;
///< Must not be called, if there is no current character.
};
}

View file

@ -39,7 +39,7 @@ MWState::CharacterManager::CharacterManager (const boost::filesystem::path& save
MWState::Character *MWState::CharacterManager::getCurrentCharacter()
{
if (!mCurrent)
throw std::logic_error ("no character selected");
createCharacter();
return mCurrent;
}
@ -54,4 +54,9 @@ void MWState::CharacterManager::createCharacter()
mCharacters.push_back (Character (path));
mCurrent = &mCharacters.back();
}
void MWState::CharacterManager::clearCurrentCharacter()
{
mCurrent = 0;
}

View file

@ -27,10 +27,12 @@ namespace MWState
CharacterManager (const boost::filesystem::path& saves);
Character *getCurrentCharacter();
///< Must not be called, if there is no current character.
///< A character is implicitly created, if there is none.
void createCharacter();
///< Create new character within saved game management
void clearCurrentCharacter();
};
}

View file

@ -37,6 +37,7 @@ void MWState::StateManager::newGame (bool bypass)
MWBase::Environment::get().getDialogueManager()->clear();
MWBase::Environment::get().getJournal()->clear();
mState = State_NoGame;
mCharacterManager.clearCurrentCharacter();
}
if (!bypass)
@ -46,8 +47,6 @@ void MWState::StateManager::newGame (bool bypass)
MWBase::Environment::get().getWindowManager()->setNewGame (true);
}
mCharacterManager.createCharacter();
mState = State_Running;
}

View file

@ -38,7 +38,6 @@ namespace MWState
/// \note Slot must belong to the current character.
virtual Character *getCurrentCharacter();
///< Must not be called, if there is no current character.
};
}