added optional button to restart game (door, panel and touch variants)
[rocksndiamonds.git] / src / game.h
index 600485eaf3d7239e9d28c9f753b14b27bc09d12c..3752ba00a7ed37d657bcb9a59b281cf54b9fb86a 100644 (file)
@@ -123,6 +123,8 @@ struct GameButtonInfo
   struct XY pause2;
   struct XY load;
 
+  struct XY restart;
+
   struct XY sound_music;
   struct XY sound_loops;
   struct XY sound_simple;
@@ -131,12 +133,15 @@ struct GameButtonInfo
   struct XY panel_pause;
   struct XY panel_play;
 
+  struct XY panel_restart;
+
   struct XY panel_sound_music;
   struct XY panel_sound_loops;
   struct XY panel_sound_simple;
 
   struct XY touch_stop;
   struct XY touch_pause;
+  struct XY touch_restart;
 };
 
 struct GameSnapshotInfo
@@ -163,6 +168,8 @@ struct GameInfo
   boolean use_masked_pushing;
   boolean use_masked_elements;
   boolean use_masked_elements_initial;
+  int forced_scroll_x;
+  int forced_scroll_y;
   int forced_scroll_delay_value;
   int scroll_delay_value;
   int tile_size;
@@ -242,12 +249,8 @@ struct GameInfo
   // values for special game initialization control
   boolean restart_level;
 
-  // trigger message to ask for restarting the game
-  char *restart_game_message;
-
   // values for special request dialog control
   boolean request_active;
-  boolean request_active_or_moving;
 
   // values for special game control
   int centered_player_nr;
@@ -277,6 +280,8 @@ struct GameInfo
   int LevelSolved_CountingTime;
   int LevelSolved_CountingScore;
   int LevelSolved_CountingHealth;
+
+  boolean RestartGameRequested;
 };
 
 struct PlayerInfo
@@ -379,7 +384,7 @@ struct PlayerInfo
   int push_delay;
   int push_delay_value;
 
-  unsigned int actual_frame_counter;
+  DelayCounter actual_frame_counter;
 
   int drop_delay;
   int drop_pressed_delay;
@@ -427,8 +432,10 @@ void GameEnd(void);
 void MergeServerScore(void);
 
 void InitPlayerGfxAnimation(struct PlayerInfo *, int, int);
+
 void Moving2Blocked(int, int, int *, int *);
 void Blocked2Moving(int, int, int *, int *);
+
 void DrawDynamite(int, int);
 
 void StartGameActions(boolean, boolean, int);
@@ -455,9 +462,8 @@ void RaiseScoreElement(int);
 
 void RequestQuitGameExt(boolean, boolean, char *);
 void RequestQuitGame(boolean);
-void RequestRestartGame(char *);
-void CheckGameOver(void);
 
+boolean CheckRestartGame(void);
 boolean checkGameSolved(void);
 boolean checkGameFailed(void);
 boolean checkGameEnded(void);