diff --git a/engines/saga/interface.cpp b/engines/saga/interface.cpp index 5a3b229c9d95..0f84b09547df 100644 --- a/engines/saga/interface.cpp +++ b/engines/saga/interface.cpp @@ -1379,9 +1379,7 @@ void Interface::setSave(PanelButton *panelButton) { fileName = _vm->calcSaveFileName(_vm->getSaveFile(_optionSaveFileTitleNumber)->slotNumber); _vm->save(fileName, _textInputString); } - _vm->getTimerManager()->removeTimerProc(&saveReminderCallback); - _vm->getTimerManager()->installTimerProc(&saveReminderCallback, TIMETOSAVE, this); - setSaveReminderState(1); + resetSaveReminder(); _textInput = false; setMode(kPanelOption); @@ -1393,6 +1391,12 @@ void Interface::setSave(PanelButton *panelButton) { } } +void Interface::resetSaveReminder() { + _vm->getTimerManager()->removeTimerProc(&saveReminderCallback); + _vm->getTimerManager()->installTimerProc(&saveReminderCallback, TIMETOSAVE, this); + setSaveReminderState(1); +} + void Interface::handleOptionUpdate(const Point& mousePoint) { int16 mouseY; Rect rect; diff --git a/engines/saga/interface.h b/engines/saga/interface.h index b9a96653a725..09631bf0e88d 100644 --- a/engines/saga/interface.h +++ b/engines/saga/interface.h @@ -288,6 +288,8 @@ class Interface { int32 getProtectHash() { return _protectHash; } + void resetSaveReminder(); + private: void handleMainUpdate(const Point& mousePoint); // main panel update void handleMainClick(const Point& mousePoint); // main panel click diff --git a/engines/saga/saveload.cpp b/engines/saga/saveload.cpp index 9edb79fa7ce7..6a6992fb5f37 100644 --- a/engines/saga/saveload.cpp +++ b/engines/saga/saveload.cpp @@ -256,6 +256,8 @@ void SagaEngine::save(const char *fileName, const char *saveName) { warning("Can't write file '%s'. (Disk full?)", fileName); delete out; + + _interface->resetSaveReminder(); } void SagaEngine::load(const char *fileName) {