Disallowed quicksave/load in character creation

This commit is contained in:
Thomas 2014-04-23 21:21:11 -04:00
parent e873135da7
commit 49620968b9

View file

@ -646,31 +646,35 @@ namespace MWInput
} }
void InputManager::quickLoad() { void InputManager::quickLoad() {
MWState::Character* mCurrentCharacter = MWBase::Environment::get().getStateManager()->getCurrentCharacter(false); //Get current character if(MWBase::Environment::get().getWorld()->getGlobalInt ("chargenstate")==-1) {
if(mCurrentCharacter) { //Ensure a current character exists MWState::Character* mCurrentCharacter = MWBase::Environment::get().getStateManager()->getCurrentCharacter(false); //Get current character
const MWState::Slot* slot = &*mCurrentCharacter->begin(); //Get newest save if(mCurrentCharacter) { //Ensure a current character exists
if(slot) //Don't even try loading it if there's no prior save. const MWState::Slot* slot = &*mCurrentCharacter->begin(); //Get newest save
MWBase::Environment::get().getStateManager()->loadGame (mCurrentCharacter, slot); //load newest save. That was easy! if(slot) //Don't even try loading it if there's no prior save.
MWBase::Environment::get().getStateManager()->loadGame (mCurrentCharacter, slot); //load newest save. That was easy!
}
} }
} }
void InputManager::quickSave() { void InputManager::quickSave() {
const MWState::Slot* slot = NULL; if(MWBase::Environment::get().getWorld()->getGlobalInt ("chargenstate")==-1) { //ensure you're not in character creation
MWState::Character* mCurrentCharacter = MWBase::Environment::get().getStateManager()->getCurrentCharacter(false); //Get current character const MWState::Slot* slot = NULL;
if (mCurrentCharacter) //Ensure one exists, otherwise do nothing MWState::Character* mCurrentCharacter = MWBase::Environment::get().getStateManager()->getCurrentCharacter(true); //Get current character
{ if (mCurrentCharacter) //Ensure one exists
//Find quicksave slot
for (MWState::Character::SlotIterator it = mCurrentCharacter->begin(); it != mCurrentCharacter->end(); ++it)
{ {
if (it->mProfile.mDescription == "Quicksave") //Find quicksave slot
slot = &*it; for (MWState::Character::SlotIterator it = mCurrentCharacter->begin(); it != mCurrentCharacter->end(); ++it)
{
if (it->mProfile.mDescription == "Quicksave")
slot = &*it;
}
//If no quicksave works create a new slot with Signature
if(slot == NULL) {
slot = mCurrentCharacter->createSlot(mCurrentCharacter->getSignature());
}
//MWBase::Environment::get().getWindowManager()->messageBox("#{sQuick_save}"); //No message on quicksave?
MWBase::Environment::get().getStateManager()->saveGame("Quicksave", slot);
} }
//If no quicksave works create a new slot with Signature
if(slot == NULL) {
slot = mCurrentCharacter->createSlot(mCurrentCharacter->getSignature());
}
//MWBase::Environment::get().getWindowManager()->messageBox("#{sQuick_save}"); //No message on quicksave?
MWBase::Environment::get().getStateManager()->saveGame("Quicksave", slot);
} }
} }
void InputManager::toggleSpell() void InputManager::toggleSpell()