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:
parent
d6e2701dd6
commit
e938c5a0ee
5 changed files with 10 additions and 6 deletions
|
@ -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.
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
|
@ -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();
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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.
|
||||
};
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue