4 // ============================================================================
5 // functions and definitions exported from game_em to main program
6 // ============================================================================
12 // ----------------------------------------------------------------------------
13 // constant definitions
14 // ----------------------------------------------------------------------------
16 #define EM_MAX_CAVE_WIDTH CAVE_WIDTH
17 #define EM_MAX_CAVE_HEIGHT CAVE_HEIGHT
20 // ----------------------------------------------------------------------------
21 // exported structures
22 // ----------------------------------------------------------------------------
36 boolean any_player_moving;
37 boolean any_player_snapping;
39 int last_moving_player;
40 int last_player_direction[MAX_PLAYERS];
43 struct PLAYER *ply[MAX_PLAYERS];
45 // flags to handle bugs in and changes between different engine versions
46 boolean use_single_button;
47 boolean use_snap_key_bug;
48 boolean use_random_bug;
49 boolean use_old_explosions;
50 boolean use_old_android;
51 boolean use_old_push_elements;
52 boolean use_old_push_into_acid;
53 boolean use_wrap_around;
54 boolean use_push_delay;
68 int src_offset_x, src_offset_y;
69 int dst_offset_x, dst_offset_y;
72 Bitmap *crumbled_bitmap;
73 int crumbled_src_x, crumbled_src_y;
74 int crumbled_border_size;
75 int crumbled_tile_size;
77 boolean has_crumbled_graphics;
78 boolean preserve_background;
80 int unique_identifier; /* used to identify needed screen updates */
83 struct EngineSnapshotInfo_EM
85 struct GameInfo_EM game_em;
87 struct PLAYER ply[MAX_PLAYERS];
95 // ----------------------------------------------------------------------------
97 // ----------------------------------------------------------------------------
99 extern struct GlobalInfo_EM global_em_info;
100 extern struct GameInfo_EM game_em;
101 extern struct LevelInfo_EM native_em_level;
102 extern struct GraphicInfo_EM graphic_info_em_object[GAME_TILE_MAX][8];
103 extern struct GraphicInfo_EM graphic_info_em_player[MAX_PLAYERS][PLY_MAX][8];
104 extern struct EngineSnapshotInfo_EM engine_snapshot_em;
106 void em_open_all(void);
107 void em_close_all(void);
109 void InitGfxBuffers_EM(void);
111 void InitGameEngine_EM(void);
112 void GameActions_EM(byte[MAX_PLAYERS]);
114 unsigned int InitEngineRandom_EM(int);
116 void setLevelInfoToDefaults_EM(void);
117 boolean LoadNativeLevel_EM(char *, boolean);
119 int getFieldbufferOffsetX_EM(void);
120 int getFieldbufferOffsetY_EM(void);
122 void BlitScreenToBitmap_EM(Bitmap *);
123 void RedrawPlayfield_EM(boolean);
125 void LoadEngineSnapshotValues_EM(void);
126 void SaveEngineSnapshotValues_EM(void);
128 boolean checkIfAllPlayersFitToScreen(void);
130 int map_em_element_C_to_X(int);
131 int map_em_element_X_to_C(int);