fixed bug with using too large scroll delay value on smaller playfields
[rocksndiamonds.git] / src / game.h
index a0ffe85a31b15e7dff94dee66e4c7ef24844c3b9..5a96d4fc630cb23fc67d253984b1ec7b8afdfe8b 100644 (file)
@@ -186,10 +186,17 @@ struct GameInfo
   int belt_dir_nr[4];
   int switchgate_pos;
   int wind_direction;
+
   boolean explosions_delayed;
   boolean envelope_active;
   boolean no_time_limit;       // (variable only in very special case)
 
+  int score;
+  int score_final;
+
+  int health;
+  int health_final;
+
   int gems_still_needed;
   int sokoban_fields_still_needed;
   int sokoban_objects_still_needed;
@@ -197,6 +204,11 @@ struct GameInfo
   int players_still_needed;
   int friends_still_needed;
 
+  int robot_wheel_x, robot_wheel_y;
+  int exit_x, exit_y;
+
+  boolean all_players_gone;
+
   // values for the new EMC elements
   int lenses_time_left;
   int magnify_time_left;
@@ -229,8 +241,10 @@ struct GameInfo
   // values for game engine snapshot control
   struct GameSnapshotInfo snapshot;
 
-  // values for handling states for solved level
+  // values for handling states for solved level and game over
   boolean LevelSolved;
+  boolean GamePlayed;
+  boolean GameOver;
 
   boolean LevelSolved_GameWon;
   boolean LevelSolved_GameEnd;
@@ -253,6 +267,7 @@ struct PlayerInfo
 
   boolean killed;              // player maybe present/active, but killed
   boolean reanimated;          // player maybe killed, but reanimated
+  boolean buried;              // player finally killed and removed
 
   int index_nr;                        // player number (0 to 3)
   int index_bit;               // player number bit (1 << 0 to 1 << 3)
@@ -260,12 +275,12 @@ struct PlayerInfo
   int client_nr;               // network client identifier
 
   byte action;                 // action from local input device
-  byte mapped_action;          // action mapped from device to player
   byte effective_action;       /* action acknowledged from network server
                                   or summarized over all configured input
                                   devices when in single player mode */
   byte programmed_action;      /* action forced by game itself (like moving
                                   through doors); overrides other actions */
+  byte snap_action;            // action from TAS snap keys
 
   struct MouseActionInfo mouse_action;          // (used by MM engine only)
   struct MouseActionInfo effective_mouse_action; // (used by MM engine only)
@@ -287,8 +302,6 @@ struct PlayerInfo
 
   boolean gravity;
 
-  boolean GameOver;
-
   int last_move_dir;
 
   boolean is_active;
@@ -350,12 +363,6 @@ struct PlayerInfo
 
   int step_counter;
 
-  int score;
-  int score_final;
-
-  int health;
-  int health_final;
-
   int key[MAX_NUM_KEYS];
   int num_white_keys;
   int dynabomb_count, dynabomb_size, dynabombs_left, dynabomb_xl;