X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_em%2Fexport.h;h=252a950ffba35ecd6434685b77b4367ce912a28d;hb=63539da7f2d5e1ca071f0e4a9d897df0595d6ae5;hp=e6f25b3c5bb8ef54f1ca6483be8f5dcc9fd9b5fe;hpb=ee9f14e2369b8a1991961e2559ff7bada4232bff;p=rocksndiamonds.git diff --git a/src/game_em/export.h b/src/game_em/export.h index e6f25b3c..252a950f 100644 --- a/src/game_em/export.h +++ b/src/game_em/export.h @@ -6,6 +6,15 @@ // ============================================================================ #include "emerald.h" +#include "cave.h" + + +// ---------------------------------------------------------------------------- +// constant definitions +// ---------------------------------------------------------------------------- + +#define EM_MAX_CAVE_WIDTH CAVE_WIDTH +#define EM_MAX_CAVE_HEIGHT CAVE_HEIGHT // ---------------------------------------------------------------------------- @@ -19,30 +28,34 @@ struct GlobalInfo_EM 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; + boolean use_old_android; + boolean use_old_push_elements; + boolean use_wrap_around; }; struct LevelInfo_EM { int file_version; - short cave[EM_MAX_CAVE_WIDTH][EM_MAX_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 @@ -67,17 +80,12 @@ 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]; - short Array[4][EM_MAX_CAVE_HEIGHT][EM_MAX_CAVE_WIDTH]; + + int frame; int screen_x; int screen_y; - int frame; - short **Boom; - short **Cave; - short **Next; - short **Draw; }; @@ -88,8 +96,8 @@ struct EngineSnapshotInfo_EM extern struct GlobalInfo_EM global_em_info; extern struct GameInfo_EM game_em; extern struct LevelInfo_EM native_em_level; -extern struct GraphicInfo_EM graphic_info_em_object[TILE_MAX][8]; -extern struct GraphicInfo_EM graphic_info_em_player[MAX_PLAYERS][SPR_MAX][8]; +extern struct GraphicInfo_EM graphic_info_em_object[GAME_TILE_MAX][8]; +extern struct GraphicInfo_EM graphic_info_em_player[MAX_PLAYERS][PLY_MAX][8]; extern struct EngineSnapshotInfo_EM engine_snapshot_em; void em_open_all(void); @@ -108,7 +116,6 @@ boolean LoadNativeLevel_EM(char *, boolean); int getFieldbufferOffsetX_EM(void); int getFieldbufferOffsetY_EM(void); -void BackToFront_EM(void); void BlitScreenToBitmap_EM(Bitmap *); void RedrawPlayfield_EM(boolean); @@ -117,7 +124,7 @@ void SaveEngineSnapshotValues_EM(void); 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