added snapshot support for BD engine
[rocksndiamonds.git] / src / game_bd / export_bd.h
index 12a6c9aa3ed9abd33dcee9d3d27b44bf55b7f7dc..35f2e687fc2fa57daa740b7a5bf56c33437dca1e 100644 (file)
@@ -44,9 +44,12 @@ struct GameInfo_BD
   boolean cover_screen;
 
   // needed for updating panel
-  int time_played;
+  int time_left;
   int gems_still_needed;
   int score;
+
+  // needed for saving score time
+  int frames_played;
 };
 
 struct LevelInfo_BD
@@ -60,8 +63,31 @@ struct LevelInfo_BD
   boolean loaded_from_caveset;
 };
 
+struct GraphicInfo_BD
+{
+  Bitmap *bitmap;
+  int src_x, src_y;
+  int width, height;
+
+  int graphic;
+  int frame;
+};
+
 struct EngineSnapshotInfo_BD
 {
+  GdGame game;
+
+  // data from pointers in game structure
+  int element_buffer[MAX_PLAYFIELD_WIDTH][MAX_PLAYFIELD_HEIGHT];
+  int last_element_buffer[MAX_PLAYFIELD_WIDTH][MAX_PLAYFIELD_HEIGHT];
+  int dir_buffer[MAX_PLAYFIELD_WIDTH][MAX_PLAYFIELD_HEIGHT];
+  int gfx_buffer[MAX_PLAYFIELD_WIDTH][MAX_PLAYFIELD_HEIGHT];
+
+  GdCave cave;
+
+  // data from pointers in cave structure
+  short map[MAX_PLAYFIELD_WIDTH][MAX_PLAYFIELD_HEIGHT];
+  short hammered_reappear[MAX_PLAYFIELD_WIDTH][MAX_PLAYFIELD_HEIGHT];
 };
 
 
@@ -71,11 +97,54 @@ 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 SetTimeFrames_BD(int);
+
+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 DumpLevelset_BD(void);
+
+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);
+boolean use_bd_up_down_graphics(void);
+boolean use_bd_falling_sounds(void);
+
+boolean hasColorTemplate_BD(void);
+
+Bitmap **GetTitleScreenBitmaps_BD(void);
+void CoverScreen_BD(void);
+
+void BlitScreenToBitmap_BD(Bitmap *);
+void RedrawPlayfield_BD(boolean);
+
+void SaveEngineSnapshotValues_BD(void);
+void LoadEngineSnapshotValues_BD(void);
 
 #endif // EXPORT_BD_H