X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_em%2Femerald.h;h=38a2656f29ca7fd2d31b882cd5a063e52132c4fe;hb=56be9668e4ff713c8fff9b105f0913dd4d373cb1;hp=52a81bcead61b0786fb825fd4f4dd1ce6cddd6df;hpb=54bec5c06ec986c0abe1bfff4ca41944dfd3c540;p=rocksndiamonds.git diff --git a/src/game_em/emerald.h b/src/game_em/emerald.h index 52a81bce..38a2656f 100644 --- a/src/game_em/emerald.h +++ b/src/game_em/emerald.h @@ -60,9 +60,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. /* ----------------------------------------------------------------------------- definition of elements used in the Emerald Mine Club engine; - the element names have the following properties: + the element names (mostly) have the following properties: - elements that start with 'X' can be stored in a level file - - elements that start with 'Y' indicate moving elements + - elements that start with 'Y' indicate moving or active elements - elements that end with 'B' are the "backside" of moving elements ----------------------------------------------------------------------------- */ @@ -71,8 +71,8 @@ enum { Xblank = 0, - Xacid_splash_e, - Xacid_splash_w, + Xsplash_e, + Xsplash_w, Xplant, Yplant, @@ -370,16 +370,16 @@ enum Ydrip_2_sB, Xwonderwall, - XwonderwallB, + Ywonderwall, Xwheel, - XwheelB, + Ywheel, Xswitch, - XswitchB, + Yswitch, Xbumper, - XbumperB, + Ybumper, Xacid_nw, Xacid_ne, @@ -388,13 +388,13 @@ enum Xacid_se, Xfake_blank, - Xfake_blankB, + Yfake_blank, Xfake_grass, - Xfake_grassB, + Yfake_grass, Xfake_amoeba, /* dripper */ - Xfake_amoebaB, + Yfake_amoeba, Xlenses, @@ -419,10 +419,10 @@ enum Xsand_stonesand_quickout_1, /* newly added to EM engine */ Xsand_stonesand_quickout_2, - Xslidewall_ns, /* growing wall */ - Yslidewall_ns_blank, - Xslidewall_ew, - Yslidewall_ew_blank, + Xslide_ns, /* growing wall */ + Yslide_ns_blank, + Xslide_ew, + Yslide_ew_blank, Xwind_n, Xwind_e, @@ -597,7 +597,7 @@ enum SOUND_dirt, /* player digs into dirt */ SOUND_acid, /* acid splashes */ SOUND_ball, /* ball places something */ - SOUND_slidewall, /* slide wall grows */ + SOUND_slide, /* slide wall grows */ SOUND_wonder, /* wonderwall is active */ SOUND_door, /* player goes thru door (gate) */ SOUND_exit_open, /* exit opens */ @@ -618,12 +618,8 @@ enum // data structure definitions // ---------------------------------------------------------------------------- -struct LEVEL +struct LOGIC { - int home_initial; /* number of players (initial) */ - int home; /* number of players not yet at home */ - /* 0 == all players at home */ - int width; /* playfield width */ int height; /* playfield height */ @@ -632,31 +628,19 @@ struct LEVEL int right; /* playfield right edge */ int bottom; /* playfield bottom edge */ - int time_seconds; /* available time (seconds) */ - int time_initial; /* available time (initial) */ - int time; /* time remaining (runtime) */ - - boolean killed_out_of_time; /* kill player due to time out */ - - int required_initial; /* emeralds needed (initial) */ - int required; /* emeralds needed (runtime) */ - + int time; /* time remaining */ + int required; /* emeralds needed */ int score; /* score */ - /* all below entries must be filled every time a level is read */ - int alien_score; /* score for killing alien */ int amoeba_time; /* amoeba speed */ - int android_move_cnt_initial; /* android move counter (initial) */ int android_move_cnt; /* android move counter */ int android_move_time; /* android move reset time */ - int android_clone_cnt_initial;/* android clone counter (initial) */ int android_clone_cnt; /* android clone counter */ int android_clone_time; /* android clone reset time */ int ball_cnt; /* ball counter */ int ball_pos; /* ball array pos counter */ int ball_random; /* ball is random flag */ - int ball_state_initial; /* ball active flag (initial) */ int ball_state; /* ball active flag */ int ball_time; /* ball reset time */ int bug_score; /* score for killing bug */ @@ -667,11 +651,9 @@ struct LEVEL int emerald_score; /* score for collecting emerald */ int exit_score; /* score for entering exit */ int key_score; /* score for colleting key */ - int lenses_cnt_initial; /* lenses counter (initial) */ int lenses_cnt; /* lenses counter */ int lenses_score; /* score for collecting lenses */ int lenses_time; /* lenses reset time */ - int magnify_cnt_initial; /* magnify counter (initial) */ int magnify_cnt; /* magnify counter */ int magnify_score; /* score for collecting magnifier */ int magnify_time; /* magnify reset time */ @@ -679,29 +661,30 @@ struct LEVEL int shine_cnt; /* shine counter for emerald/diamond */ int slurp_score; /* score for slurping alien */ int tank_score; /* score for killing tank */ - int wheel_cnt_initial; /* wheel counter (initial) */ int wheel_cnt; /* wheel counter */ - int wheel_x_initial; /* wheel x pos (initial) */ int wheel_x; /* wheel x pos */ - int wheel_y_initial; /* wheel y pos (initial) */ int wheel_y; /* wheel y pos */ int wheel_time; /* wheel reset time */ - int wind_cnt_initial; /* wind counter (initial) */ int wind_cnt; /* wind time counter */ - int wind_direction_initial; /* wind direction (initial) */ int wind_direction; /* wind direction */ int wind_time; /* wind reset time */ - int wonderwall_state_initial; /* wonderwall active flag (initial) */ int wonderwall_state; /* wonderwall active flag */ - int wonderwall_time_initial; /* wonderwall time (initial) */ int wonderwall_time; /* wonderwall time */ - short eater_array[8][9]; /* eater data */ - short ball_array[8][8]; /* ball data */ - short android_array[TILE_MAX];/* android clone table */ + int num_ball_arrays; /* number of ball data arrays used */ + int home_initial; /* number of players (initial) */ + int home; /* number of players not yet at home */ + /* 0 == all players at home */ + + boolean killed_out_of_time; /* kill player due to time out */ + int exit_x, exit_y; /* kludge for playing player exit sound */ + short eater_array[8][9]; /* eater data */ + short ball_array[8][8]; /* ball data */ + short android_array[TILE_MAX]; /* android clone table */ + short cavebuf[CAVE_BUFFER_WIDTH][CAVE_BUFFER_HEIGHT]; short nextbuf[CAVE_BUFFER_WIDTH][CAVE_BUFFER_HEIGHT]; short drawbuf[CAVE_BUFFER_WIDTH][CAVE_BUFFER_HEIGHT]; @@ -730,8 +713,6 @@ struct PLAYER int keys; int anim; - int x_initial; - int y_initial; int x; int y; int oldx;