X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_em%2Femerald.h;h=b3f285a9d3d5c3803404787b88ab551d4a36f858;hb=f717d0c1;hp=52a81bcead61b0786fb825fd4f4dd1ce6cddd6df;hpb=54bec5c06ec986c0abe1bfff4ca41944dfd3c540;p=rocksndiamonds.git diff --git a/src/game_em/emerald.h b/src/game_em/emerald.h index 52a81bce..b3f285a9 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,90 +618,76 @@ 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 */ - - int left; /* playfield left edge */ - int top; /* playfield top edge */ - int right; /* playfield right edge */ - int bottom; /* playfield bottom edge */ + int width; /* cave width */ + int height; /* cave height */ - 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 left; /* cave left edge */ + int top; /* cave top edge */ + int right; /* cave right edge */ + int bottom; /* cave bottom edge */ + int time; /* time remaining */ + int gems_needed; /* emeralds needed */ int score; /* score */ - /* all below entries must be filled every time a level is read */ - + int eater_score; /* score for killing eater */ 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 */ + int tank_score; /* score for killing tank */ + int slurp_score; /* score for slurping alien with spring */ + int nut_score; /* score for cracking nut to emerald */ + int emerald_score; /* score for collecting emerald */ int diamond_score; /* score for collecting diamond */ int dynamite_score; /* score for collecting dynamite */ - int eater_pos; /* eater array pos */ - int eater_score; /* score for killing eater */ - 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 */ - int nut_score; /* score for cracking nut */ - 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 exit_score; /* score for entering exit */ + + int android_move_time; /* android move reset time */ + int android_clone_time; /* android clone reset time */ + int ball_time; /* ball reset time */ + int amoeba_time; /* amoeba speed */ + int wonderwall_time; /* wonderwall time */ + int wheel_time; /* wheel reset time */ 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 lenses_time; /* lenses reset time */ + int magnify_time; /* magnify reset time */ int wind_time; /* wind reset time */ - int wonderwall_state_initial; /* wonderwall active flag (initial) */ + int wind_direction; /* wind direction */ + + int ball_random; /* ball is random flag */ + int ball_state; /* ball active flag */ 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 wheel_cnt; /* wheel counter */ + int lenses_cnt; /* lenses counter */ + int magnify_cnt; /* magnify counter */ + int wind_cnt; /* wind time counter */ + + int android_move_cnt; /* android move counter */ + int android_clone_cnt; /* android clone counter */ + int ball_cnt; /* ball counter */ + int ball_pos; /* ball array pos counter */ + int eater_pos; /* eater array pos */ + int shine_cnt; /* shine counter for emerald/diamond */ + 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 data */ + 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 +716,6 @@ struct PLAYER int keys; int anim; - int x_initial; - int y_initial; int x; int y; int oldx;