added setup option for using "player is pushing" graphics in BD engine
[rocksndiamonds.git] / src / game_bd / export_bd.h
index 53e72c61f9f31bbf75abe26ceb5dbc40349711c8..690481a26b801121cd80a5a89215886d850781c1 100644 (file)
@@ -2,9 +2,9 @@
 // Rocks'n'Diamonds - McDuffin Strikes Back!
 // ----------------------------------------------------------------------------
 // (c) 1995-2024 by Artsoft Entertainment
-//                  Holger Schemel
-//                  info@artsoft.org
-//                  https://www.artsoft.org/
+//                         Holger Schemel
+//                 info@artsoft.org
+//                 https://www.artsoft.org/
 // ----------------------------------------------------------------------------
 // export_bd.h
 // ============================================================================
@@ -16,7 +16,9 @@
 // functions and definitions exported from game_bd to main program
 // ============================================================================
 
+#include "bd_cave.h"
 #include "bd_elements.h"
+#include "bd_gameplay.h"
 
 
 // ----------------------------------------------------------------------------
 
 struct GameInfo_BD
 {
+  GdGame *game;
+
+  unsigned int random_seed;
+
   boolean level_solved;
   boolean game_over;
+  boolean cover_screen;
 
   // needed for updating panel
   int time_played;
@@ -44,10 +51,23 @@ struct GameInfo_BD
 
 struct LevelInfo_BD
 {
-  int width;
-  int height;
+  GdCave *cave;
+  GdReplay *replay;
+
+  int cave_nr;
+  int level_nr;
+
+  boolean loaded_from_caveset;
+};
+
+struct GraphicInfo_BD
+{
+  Bitmap *bitmap;
+  int src_x, src_y;
+  int width, height;
 
-  int cave[BD_MAX_CAVE_WIDTH][BD_MAX_CAVE_HEIGHT];
+  int graphic;
+  int frame;
 };
 
 struct EngineSnapshotInfo_BD
@@ -61,8 +81,45 @@ struct EngineSnapshotInfo_BD
 
 extern struct GameInfo_BD game_bd;
 extern struct LevelInfo_BD native_bd_level;
+extern struct GraphicInfo_BD graphic_info_bd_object[O_MAX_ALL][8];
+extern struct GraphicInfo_BD graphic_info_bd_color_template;
 extern struct EngineSnapshotInfo_BD engine_snapshot_bd;
 
+void bd_open_all(void);
+void bd_close_all(void);
+
+int map_action_RND_to_BD(int);
+int map_action_BD_to_RND(int);
+
+boolean checkGameRunning_BD(void);
+boolean checkGamePlaying_BD(void);
+boolean checkBonusTime_BD(void);
+int getFramesPerSecond_BD(void);
+int getTimeLeft_BD(void);
+
+void InitGfxBuffers_BD(void);
+
+void setLevelInfoToDefaults_BD_Ext(int, int);
 void setLevelInfoToDefaults_BD(void);
+boolean LoadNativeLevel_BD(char *, int, boolean);
+boolean SaveNativeLevel_BD(char *);
+
+void PreparePreviewTileBitmap_BD(Bitmap *, int);
+void SetPreviewTileBitmapReference_BD(Bitmap *);
+Bitmap *GetPreviewTileBitmap_BD(Bitmap *);
+
+unsigned int InitEngineRandom_BD(int);
+void InitGameEngine_BD(void);
+void GameActions_BD(byte[MAX_PLAYERS]);
+
+boolean use_native_bd_graphics_engine(void);
+boolean use_bd_smooth_movements(void);
+boolean use_bd_pushing_graphics(void);
+
+Bitmap **GetTitleScreenBitmaps_BD(void);
+void CoverScreen_BD(void);
+
+void BlitScreenToBitmap_BD(Bitmap *);
+void RedrawPlayfield_BD(boolean);
 
 #endif // EXPORT_BD_H