X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_em%2Fmain_em.h;h=2a422f6d02b2b2a7ef7849b2a5005a072b7ca261;hb=2d235297197dd0c325184f7fc401d9c5c41c2616;hp=7620cc2fd194129ff237ca884b850ff4da904973;hpb=ef9242bb9320d705010959ba11fdf697dc1e5b70;p=rocksndiamonds.git diff --git a/src/game_em/main_em.h b/src/game_em/main_em.h index 7620cc2f..2a422f6d 100644 --- a/src/game_em/main_em.h +++ b/src/game_em/main_em.h @@ -1,6 +1,9 @@ #ifndef MAIN_EM_H #define MAIN_EM_H +#include "../engines.h" + + /* 2000-07-30T11:06:03Z ---------------------------------------------------- */ #define EM_MAX_CAVE_WIDTH 102 @@ -10,6 +13,17 @@ #define EM_ENGINE_BAD_ROLL #define EM_ENGINE_BAD_SPRING + +/* + ----------------------------------------------------------------------------- + definition of elements used in the Emerald Mine Club engine; + the element names have the following properties: + - elements that start with an 'X' can be stored in a level file; + - elements that start with an 'Y' indicate moving elements; + - elements that end with a 'B' are the "backside" of a moving element. + ----------------------------------------------------------------------------- +*/ + enum { Xblank = 0, /* still */ @@ -246,6 +260,22 @@ enum Xball_2, Xball_2B, Yball_eat, + +#if 1 + Ykey_1_eat, + Ykey_2_eat, + Ykey_3_eat, + Ykey_4_eat, + Ykey_5_eat, + Ykey_6_eat, + Ykey_7_eat, + Ykey_8_eat, + Ylenses_eat, + Ymagnify_eat, + Ygrass_eat, + Ydirt_eat, +#endif + Xgrow_ns, Ygrow_ns_eat, Xgrow_ew, @@ -425,6 +455,16 @@ enum TILE_MAX }; +enum +{ + SPR_still = 0, + SPR_walk = 1, + SPR_push = 5, + SPR_spray = 9, + + SPR_MAX = 13 +}; + enum { SAMPLE_blank = 0, /* player walks on blank */ @@ -577,6 +617,11 @@ struct PLAYER #define FILE_VERSION_EM_ACTUAL FILE_VERSION_EM_V6 +struct GlobalInfo_EM +{ + Bitmap *screenbuffer; +}; + struct LevelInfo_EM { int file_version; @@ -587,4 +632,20 @@ struct LevelInfo_EM unsigned short cave[EM_MAX_CAVE_WIDTH][EM_MAX_CAVE_HEIGHT]; }; +struct GraphicInfo_EM +{ + Bitmap *bitmap; + int src_x, src_y; + int src_offset_x, src_offset_y; + int dst_offset_x, dst_offset_y; + int width, height; + + boolean has_crumbled_graphics; + Bitmap *crumbled_bitmap; + int crumbled_src_x, crumbled_src_y; + int crumbled_border_size; + + int unique_identifier; /* used to identify needed screen updates */ +}; + #endif /* MAIN_EM_H */