replaced stop/play buttons in game panel with save/load buttons
[rocksndiamonds.git] / src / game.h
index 3f04c02edfe87c8dba67f54c7b5f173101814469..3e62cf4d983ece67595577c665f65e67347dafe4 100644 (file)
 /* (not included here due to collisions with Emerald Mine engine definitions) */
 /* #include "main.h" */
 
-#define MAX_INVENTORY_SIZE     1000
+#define MAX_INVENTORY_SIZE             1000
 
-#define STD_NUM_KEYS           4
-#define MAX_NUM_KEYS           8
+#define STD_NUM_KEYS                   4
+#define MAX_NUM_KEYS                   8
 
-#define NUM_BELTS              4
-#define NUM_BELT_PARTS         3
+#define NUM_BELTS                      4
+#define NUM_BELT_PARTS                 3
+
+#define NUM_PANEL_INVENTORY            8
+#define NUM_PANEL_GRAPHICS             8
+#define NUM_PANEL_ELEMENTS             8
+#define NUM_PANEL_CE_SCORE             8
+
+#define STR_SNAPSHOT_MODE_OFF          "off"
+#define STR_SNAPSHOT_MODE_EVERY_STEP   "every_step"
+#define STR_SNAPSHOT_MODE_EVERY_MOVE   "every_move"
+#define STR_SNAPSHOT_MODE_DEFAULT      STR_SNAPSHOT_MODE_EVERY_MOVE
+
+#define SNAPSHOT_MODE_OFF              0
+#define SNAPSHOT_MODE_EVERY_STEP       1
+#define SNAPSHOT_MODE_EVERY_MOVE       2
+#define SNAPSHOT_MODE_DEFAULT          SNAPSHOT_MODE_EVERY_MOVE
 
-#define NUM_PANEL_INVENTORY    8
-#define NUM_PANEL_GRAPHICS     8
-#define NUM_PANEL_ELEMENTS     8
-#define NUM_PANEL_CE_SCORE     8
 
 struct GamePanelInfo
 {
@@ -101,6 +112,14 @@ struct GameButtonInfo
   struct XY sound_simple;
 };
 
+struct GameSnapshotInfo
+{
+  int mode;
+
+  byte last_action[MAX_PLAYERS];
+  boolean changed_action;
+};
+
 struct GameInfo
 {
   /* values for control panel */
@@ -175,6 +194,9 @@ struct GameInfo
 
   /* values for random number generator initialization after snapshot */
   unsigned int num_random_calls;
+
+  /* values for game engine snapshot control */
+  struct GameSnapshotInfo snapshot;
 };
 
 struct PlayerInfo
@@ -353,13 +375,15 @@ void FreeEngineSnapshotSingle();
 void FreeEngineSnapshotList();
 void LoadEngineSnapshotSingle();
 void SaveEngineSnapshotSingle();
-void SaveEngineSnapshotToList();
-boolean CheckEngineSnapshot();
+boolean SaveEngineSnapshotToList();
+void SaveEngineSnapshotToListInitial();
+boolean CheckEngineSnapshotSingle();
+boolean CheckEngineSnapshotList();
 
 void CreateGameButtons();
 void FreeGameButtons();
-void MapStopPlayButtons();
 void MapUndoRedoButtons();
+void UnmapUndoRedoButtons();
 void MapGameButtons();
 void UnmapGameButtons();
 void RedrawGameButtons();