1 // ============================================================================
2 // Rocks'n'Diamonds - McDuffin Strikes Back!
3 // ----------------------------------------------------------------------------
4 // (c) 1995-2024 by Artsoft Entertainment
7 // https://www.artsoft.org/
8 // ----------------------------------------------------------------------------
10 // ============================================================================
15 // ============================================================================
16 // functions and definitions exported from game_bd to main program
17 // ============================================================================
20 #include "bd_elements.h"
21 #include "bd_gameplay.h"
24 // ----------------------------------------------------------------------------
25 // constant definitions
26 // ----------------------------------------------------------------------------
28 #define BD_MAX_CAVE_WIDTH MAX_PLAYFIELD_WIDTH
29 #define BD_MAX_CAVE_HEIGHT MAX_PLAYFIELD_HEIGHT
32 // ----------------------------------------------------------------------------
33 // data structure definitions
34 // ----------------------------------------------------------------------------
40 unsigned int random_seed;
46 boolean player_moving;
47 boolean player_snapping;
49 // needed for updating panel
51 int gems_still_needed;
54 // needed for saving score time
66 boolean loaded_from_caveset;
79 struct EngineSnapshotInfo_BD
83 // data from pointers in game structure
84 int element_buffer[MAX_PLAYFIELD_WIDTH][MAX_PLAYFIELD_HEIGHT];
85 int last_element_buffer[MAX_PLAYFIELD_WIDTH][MAX_PLAYFIELD_HEIGHT];
86 int dir_buffer[MAX_PLAYFIELD_WIDTH][MAX_PLAYFIELD_HEIGHT];
87 int gfx_buffer[MAX_PLAYFIELD_WIDTH][MAX_PLAYFIELD_HEIGHT];
91 // data from pointers in cave structure
92 short map[MAX_PLAYFIELD_WIDTH][MAX_PLAYFIELD_HEIGHT];
93 short hammered_reappear[MAX_PLAYFIELD_WIDTH][MAX_PLAYFIELD_HEIGHT];
97 // ----------------------------------------------------------------------------
99 // ----------------------------------------------------------------------------
101 extern struct GameInfo_BD game_bd;
102 extern struct LevelInfo_BD native_bd_level;
103 extern struct GraphicInfo_BD graphic_info_bd_object[O_MAX_ALL][8];
104 extern struct GraphicInfo_BD graphic_info_bd_color_template;
105 extern struct EngineSnapshotInfo_BD engine_snapshot_bd;
107 void bd_open_all(void);
108 void bd_close_all(void);
110 int map_action_RND_to_BD(int);
111 int map_action_BD_to_RND(int);
113 boolean checkGameRunning_BD(void);
114 boolean checkGamePlaying_BD(void);
115 boolean checkBonusTime_BD(void);
116 int getFramesPerSecond_BD(void);
117 int getTimeLeft_BD(void);
118 void SetTimeFrames_BD(int);
120 void InitGfxBuffers_BD(void);
122 void setLevelInfoToDefaults_BD_Ext(int, int);
123 void setLevelInfoToDefaults_BD(void);
124 boolean LoadNativeLevel_BD(char *, int, boolean);
125 boolean SaveNativeLevel_BD(char *);
126 void DumpLevelset_BD(void);
128 void PreparePreviewTileBitmap_BD(Bitmap *, int);
129 void SetPreviewTileBitmapReference_BD(Bitmap *);
130 Bitmap *GetPreviewTileBitmap_BD(Bitmap *);
132 unsigned int InitEngineRandom_BD(int);
133 void InitGameEngine_BD(void);
134 void GameActions_BD(byte[MAX_PLAYERS]);
136 boolean use_native_bd_graphics_engine(void);
137 boolean use_bd_smooth_movements(void);
138 boolean use_bd_pushing_graphics(void);
139 boolean use_bd_up_down_graphics(void);
140 boolean use_bd_falling_sounds(void);
142 boolean hasColorTemplate_BD(void);
144 Bitmap **GetTitleScreenBitmaps_BD(void);
145 void CoverScreen_BD(void);
147 void BlitScreenToBitmap_BD(Bitmap *);
148 void RedrawPlayfield_BD(boolean);
150 void SaveEngineSnapshotValues_BD(void);
151 void LoadEngineSnapshotValues_BD(void);
153 #endif // EXPORT_BD_H