X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_em%2Fmain_em.h;h=2a422f6d02b2b2a7ef7849b2a5005a072b7ca261;hb=2d235297197dd0c325184f7fc401d9c5c41c2616;hp=abf566f03ac92dacba42f7605b98ac7f4dad3bfd;hpb=2c89261a1186ffc19bd6e5f82e9369bee1545e2f;p=rocksndiamonds.git diff --git a/src/game_em/main_em.h b/src/game_em/main_em.h index abf566f0..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 */ @@ -471,10 +511,14 @@ struct LEVEL unsigned int width; /* playfield width */ unsigned int height; /* playfield height */ - unsigned int time_initial; /* time remaining (initial) */ + + unsigned int time_seconds; /* available time (seconds) */ + unsigned int time_initial; /* available time (initial) */ unsigned int time; /* time remaining (runtime) */ + unsigned int required_initial; /* emeralds needed (initial) */ unsigned int required; /* emeralds needed (runtime) */ + unsigned int score; /* score */ /* fill in all below /every/ time you read a level */ @@ -573,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; @@ -583,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 */