added game engine support for playing native Boulder Dash levels
[rocksndiamonds.git] / src / libgame / system.h
index e5938dee7772abfe95220ff60f10e3f37781b76e..b36dcd615c81ccadb75bbc935865bacf060957a2 100644 (file)
 #define MAX_VSYNC_FRAME_DELAY  16      // maximum value for vsync to work
 #define FRAMES_PER_SECOND      (ONE_SECOND_DELAY / GAME_FRAME_DELAY)
 #define FRAMES_PER_SECOND_SP   35
+#define FRAMES_PER_SECOND_PAL  50
+#define FRAMES_PER_SECOND_NTSC 60
 
 // maximum playfield size supported by libgame functions
 #define MAX_PLAYFIELD_WIDTH    128
@@ -1241,11 +1243,12 @@ struct GfxInfo
   char * (*get_token_from_font_function)(int);
 
   int anim_random_frame;
+  int anim_first_level;
 
   void (*draw_busy_anim_function)(boolean);
   void (*draw_global_anim_function)(int, int);
   void (*draw_global_border_function)(int);
-  void (*draw_tile_cursor_function)(int);
+  void (*draw_tile_cursor_function)(int, int);
   void (*draw_envelope_request_function)(int);
 
   int cursor_mode;
@@ -1336,6 +1339,7 @@ struct SetupInputInfo
 struct SetupEditorInfo
 {
   boolean el_boulderdash;
+  boolean el_boulderdash_native;
   boolean el_emerald_mine;
   boolean el_emerald_mine_club;
   boolean el_more;
@@ -1380,6 +1384,7 @@ struct SetupLevelSetupInfo
 struct SetupEditorCascadeInfo
 {
   boolean el_bd;
+  boolean el_bd_native;
   boolean el_em;
   boolean el_emc;
   boolean el_rnd;
@@ -1517,6 +1522,7 @@ struct SetupInfo
   boolean sound_music;
   boolean sound_simple;
   boolean toons;
+  boolean global_animations;
   boolean scroll_delay;
   boolean forced_scroll_delay;
   int scroll_delay_value;
@@ -1553,6 +1559,8 @@ struct SetupInfo
   boolean prefer_extra_panel_items;
   boolean game_speed_extended;
   int game_frame_delay;
+  boolean bd_skip_uncovering;
+  boolean bd_skip_hatching;
   boolean sp_show_border_elements;
   boolean small_game_graphics;
   boolean show_load_save_buttons;
@@ -1980,7 +1988,7 @@ void InitGfxClipRegion(boolean, int, int, int, int);
 void InitGfxDrawBusyAnimFunction(void (*draw_busy_anim_function)(boolean));
 void InitGfxDrawGlobalAnimFunction(void (*draw_global_anim_function)(int, int));
 void InitGfxDrawGlobalBorderFunction(void (*draw_global_border_function)(int));
-void InitGfxDrawTileCursorFunction(void (*draw_tile_cursor_function)(int));
+void InitGfxDrawTileCursorFunction(void (*draw_tile_cursor_function)(int, int));
 void InitGfxDrawEnvelopeRequestFunction(void (*draw_envelope_request_function)(int));
 void InitGfxCustomArtworkInfo(void);
 void InitGfxOtherSettings(void);
@@ -2009,6 +2017,7 @@ void InitVideoDefaults(void);
 void InitVideoDisplay(void);
 void CloseVideoDisplay(void);
 void InitVideoBuffer(int, int, int, boolean);
+void ResetBitmapAlpha(Bitmap *);
 Bitmap *CreateBitmapStruct(void);
 Bitmap *CreateBitmap(int, int, int);
 void ReCreateBitmap(Bitmap **, int, int);