aboutsummaryrefslogtreecommitdiff
path: root/engines/engine.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/engine.h')
-rw-r--r--engines/engine.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/engines/engine.h b/engines/engine.h
index d7d971ad97..2796df5c4f 100644
--- a/engines/engine.h
+++ b/engines/engine.h
@@ -82,6 +82,13 @@ private:
*/
int32 _engineStartTime;
+ /**
+ * Save slot selected via global main menu.
+ * This slot will be loaded after main menu execution (not from inside
+ * the menu loop, to avoid bugs like #2822778).
+ */
+ int _saveSlotToLoad;
+
public:
@@ -186,6 +193,15 @@ public:
virtual Common::Error loadGameState(int slot);
/**
+ * Sets the game slot for a savegame to be loaded after global
+ * main menu execution. This is to avoid loading a savegame from
+ * inside the menu loop which causes bugs like #2822778.
+ *
+ * @param slot the slot from which a savestate should be loaded.
+ */
+ void setGameToLoadSlot(int slot);
+
+ /**
* Indicates whether a game state can be loaded.
*/
virtual bool canLoadGameStateCurrently();
@@ -252,6 +268,13 @@ public:
void openMainMenuDialog();
/**
+ * Display a warning to the user that the game is not fully supported.
+ *
+ * @return true if the user chose to start anyway, false otherwise
+ */
+ static bool warnUserAboutUnsupportedGame();
+
+ /**
* Get the total play time.
*
* @return How long the player has been playing in ms.