X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_em%2Femerald.h;h=01219b9ea9726f4a9d743f70117ad05f8aced617;hb=2a4f4ada000ade47a2a04e7f7b4d1d67878a2381;hp=477a7bafe128bd0bf5bf5b27bb219f0d2955c7d1;hpb=47ed33d197cbd8d560197cb364b759a2239dff98;p=rocksndiamonds.git diff --git a/src/game_em/emerald.h b/src/game_em/emerald.h index 477a7baf..01219b9e 100644 --- a/src/game_em/emerald.h +++ b/src/game_em/emerald.h @@ -112,6 +112,15 @@ enum Xfake_acid_7, Xfake_acid_8, + Xfake_acid_1_player, /* newly added to EM engine */ + Xfake_acid_2_player, + Xfake_acid_3_player, + Xfake_acid_4_player, + Xfake_acid_5_player, + Xfake_acid_6_player, + Xfake_acid_7_player, + Xfake_acid_8_player, + Xgrass, Ygrass_nB, Ygrass_eB, @@ -126,12 +135,12 @@ enum Xandroid, Xandroid_1_n, - Xandroid_2_n, Xandroid_1_e, - Xandroid_2_e, Xandroid_1_w, - Xandroid_2_w, Xandroid_1_s, + Xandroid_2_n, + Xandroid_2_e, + Xandroid_2_w, Xandroid_2_s, Yandroid_n, Yandroid_nB, @@ -543,7 +552,7 @@ enum Ygrass_blank, Ydirt_blank, - TILE_MAX + GAME_TILE_MAX }; /* other definitions */ @@ -572,7 +581,7 @@ enum enum { - SOUND_blank = 0, /* player walks on blank */ + SOUND_blank, /* player walks on blank */ SOUND_roll, /* player pushes stone/bomb/nut/spring */ SOUND_stone, /* stone hits ground */ SOUND_nut, /* nut hits ground */ @@ -616,6 +625,36 @@ enum // data structure definitions // ---------------------------------------------------------------------------- +/* structure used by logic() for gameplay */ + +struct PLAYER +{ + int num; /* player number */ + int anim; + + int x; + int y; + int prev_x; + int prev_y; + + boolean exists; /* flag if player exists in cave */ + boolean alive; /* flag if player is alive */ + + int dynamite; /* number of pieces of collected dynamite */ + int dynamite_cnt; /* how long the player has held down fire */ + int keys; /* keys the player has collected */ + + int last_move_dir; + + boolean joy_n; + boolean joy_e; + boolean joy_s; + boolean joy_w; + boolean joy_snap; + boolean joy_drop; + boolean joy_stick; +}; + struct LOGIC { int width; /* cave width */ @@ -644,47 +683,51 @@ struct LOGIC int magnify_score; /* score for collecting magnifier */ 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; /* wheel y pos */ - int lenses_time; /* lenses reset time */ - int magnify_time; /* magnify reset time */ - int wind_time; /* wind reset time */ + int android_move_time; /* reset time for android movement */ + int android_clone_time; /* reset time for android cloning */ + int ball_time; /* reset time for ball activity */ + int amoeba_time; /* amoeba growth speed */ + int wonderwall_time; /* reset time for wonderwall activity */ + int wheel_time; /* reset time for wheel activity */ + int wheel_x; /* wheel x position */ + int wheel_y; /* wheel y position */ + int lenses_time; /* reset time for lenses activity */ + int magnify_time; /* reset time for magnifier activity */ + int wind_time; /* reset time for wind activity */ 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 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 */ - + boolean ball_random; /* flag if ball is random */ + boolean ball_active; /* flag if ball is already active */ + boolean wonderwall_active; /* flag if wonderwall is already active */ + + int wheel_cnt; /* counter for wheel activity */ + int lenses_cnt; /* counter for lenses activity */ + int magnify_cnt; /* counter for magnifier activity */ + int wind_cnt; /* counter for wind activity */ + int android_move_cnt; /* counter for android movement */ + int android_clone_cnt; /* counter for android cloning */ + int ball_cnt; /* counter for ball activity */ + int ball_pos; /* counter for ball array position */ + int eater_pos; /* counter for eater array position */ + int shine_cnt; /* counter for emerald/diamond shining */ + + int num_eater_arrays; /* number of eater data arrays used */ 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 testmode; /* test mode */ + boolean infinite; /* flag for infinitely wide cave */ + boolean infinite_true; /* flag for truely infinitely wide cave */ 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 android_array[GAME_TILE_MAX]; /* android clone data */ short cavebuf[CAVE_BUFFER_WIDTH][CAVE_BUFFER_HEIGHT]; short nextbuf[CAVE_BUFFER_WIDTH][CAVE_BUFFER_HEIGHT]; @@ -702,33 +745,4 @@ struct LOGIC short **boom; }; -struct PLAYER -{ - int num; - int exists; - int alive_initial; - int alive; - - int dynamite; - int dynamite_cnt; - int keys; - int anim; - - int x; - int y; - int oldx; - int oldy; - - int last_move_dir; - - int joy_n:1; - int joy_e:1; - int joy_s:1; - int joy_w:1; - int joy_snap:1; - int joy_drop:1; - int joy_stick:1; - int joy_spin:1; -}; - #endif // EMERALD_H