fixed checking artwork set for compatibility code for new score screens
[rocksndiamonds.git] / src / game.h
index e20f50fa6101ce28bff631c2a0016ba5703f3575..94144e3ee098210028344015c60bab38432b8e5e 100644 (file)
@@ -4,7 +4,7 @@
 // (c) 1995-2014 by Artsoft Entertainment
 //                         Holger Schemel
 //                 info@artsoft.org
-//                 http://www.artsoft.org/
+//                 https://www.artsoft.org/
 // ----------------------------------------------------------------------------
 // game.h
 // ============================================================================
 #define STR_SNAPSHOT_MODE_EVERY_COLLECT        "every_collect"
 #define STR_SNAPSHOT_MODE_DEFAULT      STR_SNAPSHOT_MODE_OFF
 
+#define STR_SCORES_TYPE_LOCAL_ONLY      "local_scores_only"
+#define STR_SCORES_TYPE_SERVER_ONLY     "server_scores_only"
+#define STR_SCORES_TYPE_LOCAL_AND_SERVER "local_and_server_scores"
+#define STR_SCORES_TYPE_DEFAULT                 STR_SCORES_TYPE_LOCAL_AND_SERVER
+
 #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
 
-// values for game action events handled by game engine
-#define GAME_EVENTS_NONE               0
-#define GAME_EVENTS_KEYS               (1 << 0)
-#define GAME_EVENTS_MOUSE              (1 << 1)
-
-#define GAME_EVENTS_DEFAULT            GAME_EVENTS_KEYS
-
 
 struct GamePanelInfo
 {
@@ -163,6 +161,8 @@ struct GameInfo
   boolean use_native_emc_graphics_engine;
   boolean use_native_sp_graphics_engine;
   boolean use_masked_pushing;
+  boolean use_masked_elements;
+  boolean use_masked_elements_initial;
   int forced_scroll_delay_value;
   int scroll_delay_value;
   int tile_size;
@@ -185,8 +185,9 @@ struct GameInfo
   boolean max_num_changes_per_frame;
   boolean use_reverse_scan_direction;
 
-  // bit mask to indicate game action events handled by game engine
-  int event_mask;
+  // flags to indicate which game actions are used in this game
+  boolean use_key_actions;
+  boolean use_mouse_actions;
 
   // variable within running game
   int yamyam_content_nr;
@@ -204,6 +205,9 @@ struct GameInfo
   boolean envelope_active;
   boolean no_time_limit;       // (variable only in very special case)
 
+  int time_final;              // time (in seconds) or steps left or played
+  int score_time_final;                // time (in frames) or steps played
+
   int score;
   int score_final;
 
@@ -242,6 +246,7 @@ struct GameInfo
 
   // values for special request dialog control
   boolean request_active;
+  boolean request_active_or_moving;
 
   // values for special game control
   int centered_player_nr;
@@ -249,6 +254,9 @@ struct GameInfo
   boolean set_centered_player;
   boolean set_centered_player_wrap;
 
+  // values for single step mode control
+  boolean enter_single_step_mode;
+
   // values for random number generator initialization after snapshot
   unsigned int num_random_calls;
 
@@ -383,6 +391,8 @@ struct PlayerInfo
   int shield_normal_time_left;
   int shield_deadly_time_left;
 
+  int last_removed_element;
+
   int inventory_element[MAX_INVENTORY_SIZE];
   int inventory_infinite_element;
   int inventory_size;
@@ -401,7 +411,7 @@ int GetElementFromGroupElement(int);
 
 int getPlayerInventorySize(int);
 
-void DrawGameValue_Time(int);
+void UpdateGameDoorValues(void);
 void DrawGameDoorValues(void);
 
 void UpdateAndDisplayGameControlValues(void);
@@ -413,6 +423,8 @@ void UpdateEngineValues(int, int, int, int);
 void GameWon(void);
 void GameEnd(void);
 
+void MergeServerScore(void);
+
 void InitPlayerGfxAnimation(struct PlayerInfo *, int, int);
 void Moving2Blocked(int, int, int *, int *);
 void Blocked2Moving(int, int, int *, int *);
@@ -464,8 +476,8 @@ boolean CheckEngineSnapshotList(void);
 
 void CreateGameButtons(void);
 void FreeGameButtons(void);
+void MapLoadSaveButtons(void);
 void MapUndoRedoButtons(void);
-void UnmapUndoRedoButtons(void);
 void ModifyPauseButtons(void);
 void MapGameButtons(void);
 void UnmapGameButtons(void);