ENGINES: Abstract autosave check into SaveStateDescriptor

This commit is contained in:
Paul Gilbert 2020-02-10 18:55:31 -08:00 committed by Paul Gilbert
parent 233614a2ff
commit 0b81eaab7b
3 changed files with 39 additions and 5 deletions

View file

@ -496,16 +496,15 @@ void Engine::handleAutoSave() {
void Engine::saveAutosaveIfEnabled() {
if (_autosaveInterval != 0) {
bool saveFlag = canSaveAutosaveCurrently();
Common::String saveName = _("Autosave");
if (saveFlag) {
// First check for an existing savegame in the slot, and if present, if it's an autosave
SaveStateDescriptor desc = getMetaEngine().querySaveMetaInfos(
_targetName.c_str(), getAutosaveSlot());
saveFlag = desc.getSaveSlot() == -1 || desc.getDescription() == saveName;
saveFlag = desc.getSaveSlot() == -1 || desc.isAutosave();
}
if (saveFlag && saveGameState(getAutosaveSlot(), saveName, true).getCode() != Common::kNoError) {
if (saveFlag && saveGameState(getAutosaveSlot(), _("Autosave"), true).getCode() != Common::kNoError) {
// Couldn't autosave at the designated time
g_system->displayMessageOnOSD(_("Error occurred making autosave"));
saveFlag = false;