mirror of
https://github.com/OpenMW/openmw.git
synced 2025-02-01 13:15:34 +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.
|
/// \note Slot must belong to the current character.
|
||||||
|
|
||||||
virtual MWState::Character *getCurrentCharacter() = 0;
|
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()
|
MWState::Character *MWState::CharacterManager::getCurrentCharacter()
|
||||||
{
|
{
|
||||||
if (!mCurrent)
|
if (!mCurrent)
|
||||||
throw std::logic_error ("no character selected");
|
createCharacter();
|
||||||
|
|
||||||
return mCurrent;
|
return mCurrent;
|
||||||
}
|
}
|
||||||
|
@ -54,4 +54,9 @@ void MWState::CharacterManager::createCharacter()
|
||||||
mCharacters.push_back (Character (path));
|
mCharacters.push_back (Character (path));
|
||||||
|
|
||||||
mCurrent = &mCharacters.back();
|
mCurrent = &mCharacters.back();
|
||||||
|
}
|
||||||
|
|
||||||
|
void MWState::CharacterManager::clearCurrentCharacter()
|
||||||
|
{
|
||||||
|
mCurrent = 0;
|
||||||
}
|
}
|
|
@ -27,10 +27,12 @@ namespace MWState
|
||||||
CharacterManager (const boost::filesystem::path& saves);
|
CharacterManager (const boost::filesystem::path& saves);
|
||||||
|
|
||||||
Character *getCurrentCharacter();
|
Character *getCurrentCharacter();
|
||||||
///< Must not be called, if there is no current character.
|
///< A character is implicitly created, if there is none.
|
||||||
|
|
||||||
void createCharacter();
|
void createCharacter();
|
||||||
///< Create new character within saved game management
|
///< 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().getDialogueManager()->clear();
|
||||||
MWBase::Environment::get().getJournal()->clear();
|
MWBase::Environment::get().getJournal()->clear();
|
||||||
mState = State_NoGame;
|
mState = State_NoGame;
|
||||||
|
mCharacterManager.clearCurrentCharacter();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!bypass)
|
if (!bypass)
|
||||||
|
@ -46,8 +47,6 @@ void MWState::StateManager::newGame (bool bypass)
|
||||||
MWBase::Environment::get().getWindowManager()->setNewGame (true);
|
MWBase::Environment::get().getWindowManager()->setNewGame (true);
|
||||||
}
|
}
|
||||||
|
|
||||||
mCharacterManager.createCharacter();
|
|
||||||
|
|
||||||
mState = State_Running;
|
mState = State_Running;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,6 @@ namespace MWState
|
||||||
/// \note Slot must belong to the current character.
|
/// \note Slot must belong to the current character.
|
||||||
|
|
||||||
virtual Character *getCurrentCharacter();
|
virtual Character *getCurrentCharacter();
|
||||||
///< Must not be called, if there is no current character.
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue