// ============================================================================
#include "emerald.h"
+#include "cave.h"
// ----------------------------------------------------------------------------
struct GameInfo_EM
{
+ unsigned int random;
+
boolean level_solved;
boolean game_over;
boolean any_player_moving;
boolean any_player_snapping;
- boolean use_single_button;
- boolean use_snap_key_bug;
-
int last_moving_player;
int last_player_direction[MAX_PLAYERS];
+
+ struct LOGIC *lev;
+ struct PLAYER *ply[MAX_PLAYERS];
+
+ // flags to handle bugs in and changes between different engine versions
+ boolean use_single_button;
+ boolean use_snap_key_bug;
+ boolean use_old_explosions;
};
struct LevelInfo_EM
{
int file_version;
- short cave[CAVE_WIDTH][CAVE_HEIGHT];
-
- struct LEVEL *lev;
- struct PLAYER *ply[MAX_PLAYERS];
-
- /* used for runtime values */
- struct GameInfo_EM *game_em;
+ struct CAVE *cav;
};
struct GraphicInfo_EM
struct EngineSnapshotInfo_EM
{
struct GameInfo_EM game_em;
- unsigned int RandomEM;
- struct LEVEL lev;
+ struct LOGIC lev;
struct PLAYER ply[MAX_PLAYERS];
+
+ int frame;
int screen_x;
int screen_y;
- int frame;
};
int getFieldbufferOffsetX_EM(void);
int getFieldbufferOffsetY_EM(void);
-void BackToFront_EM(void);
void BlitScreenToBitmap_EM(Bitmap *);
void RedrawPlayfield_EM(boolean);
boolean checkIfAllPlayersFitToScreen(void);
-void tab_generate(void);
-void tab_generate_graphics_info_em(void);
+int map_em_element_C_to_X(int);
+int map_em_element_X_to_C(int);
#endif // EXPORT_H