moved game controller base mappings file to new 'conf' sub-directory
[rocksndiamonds.git] / src / game.h
index 93ab629af638e6a63ee2a26111d7f40ffbd29001..7bf665e821304f10af32db57337eb5561681bb1f 100644 (file)
 #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_EVERY_COLLECT        "every_collect"
 #define STR_SNAPSHOT_MODE_DEFAULT      STR_SNAPSHOT_MODE_OFF
 
 #define SNAPSHOT_MODE_OFF              0
 #define SNAPSHOT_MODE_EVERY_STEP       1
 #define SNAPSHOT_MODE_EVERY_MOVE       2
+#define SNAPSHOT_MODE_EVERY_COLLECT    3
 #define SNAPSHOT_MODE_DEFAULT          SNAPSHOT_MODE_OFF
 
 
@@ -119,6 +121,9 @@ struct GameSnapshotInfo
 
   byte last_action[MAX_PLAYERS];
   boolean changed_action;
+  boolean collected_item;
+
+  boolean save_snapshot;
 };
 
 struct GameInfo
@@ -269,6 +274,11 @@ struct PlayerInfo
   boolean is_bored;
   boolean is_sleeping;
 
+  boolean was_waiting;
+  boolean was_moving;
+  boolean was_snapping;
+  boolean was_dropping;
+
   boolean cannot_move;
 
   int frame_counter_bored;
@@ -334,6 +344,8 @@ void DEBUG_SetMaximumDynamite();
 void GetPlayerConfig(void);
 int GetElementFromGroupElement(int);
 
+int getPlayerInventorySize(int);
+
 void DrawGameValue_Time(int);
 void DrawGameDoorValues(void);
 
@@ -342,7 +354,7 @@ void UpdateAndDisplayGameControlValues();
 void InitGameSound();
 void InitGame();
 
-void UpdateEngineValues(int, int);
+void UpdateEngineValues(int, int, int, int);
 void GameWon(void);
 void GameEnd(void);
 
@@ -378,7 +390,8 @@ void FreeEngineSnapshotSingle();
 void FreeEngineSnapshotList();
 void LoadEngineSnapshotSingle();
 void SaveEngineSnapshotSingle();
-boolean SaveEngineSnapshotToList();
+boolean CheckSaveEngineSnapshotToList();
+void SaveEngineSnapshotToList();
 void SaveEngineSnapshotToListInitial();
 boolean CheckEngineSnapshotSingle();
 boolean CheckEngineSnapshotList();