X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_em%2Femerald.h;h=477a7bafe128bd0bf5bf5b27bb219f0d2955c7d1;hb=47ed33d197cbd8d560197cb364b759a2239dff98;hp=b2fbc165be4e28fcee7c740892b561a4a55ad057;hpb=724fbe31d039f8b7272f45b18f18a8d9ea2281df;p=rocksndiamonds.git diff --git a/src/game_em/emerald.h b/src/game_em/emerald.h index b2fbc165..477a7baf 100644 --- a/src/game_em/emerald.h +++ b/src/game_em/emerald.h @@ -48,6 +48,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // constant definitions // ---------------------------------------------------------------------------- +/* maximum cave size */ #define CAVE_WIDTH MAX_PLAYFIELD_WIDTH #define CAVE_HEIGHT MAX_PLAYFIELD_HEIGHT @@ -57,19 +58,35 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define CAVE_BUFFER_WIDTH (CAVE_WIDTH + 2 * CAVE_BUFFER_XOFFSET) #define CAVE_BUFFER_HEIGHT (CAVE_HEIGHT + 2 * CAVE_BUFFER_YOFFSET) -/* - ----------------------------------------------------------------------------- - definition of elements used in the Emerald Mine Club engine; - 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 or active elements - - elements that end with 'B' are the "backside" of moving elements - ----------------------------------------------------------------------------- -*/ + +// ---------------------------------------------------------------------------- +// definition of elements used in the Emerald Mine Club engine; +// the element names (mostly) have the following properties: +// - elements that start with 'X' are not animated (more or less) +// - elements that start with 'Y' are animated elements +// - elements that start with 'Z' are internal elements (without graphics) +// - elements that end with 'B' or '_blank' change to the "Xblank" element +// ---------------------------------------------------------------------------- enum { - Xblank = 0, + Zborder, /* special code to indicate border */ + Zplayer, /* special code to indicate player */ + + Zbug, /* internal bug explosion */ + Ztank, /* internal tank/alien/bomb explosion */ + Zeater, /* internal eater explosion */ + Zdynamite, /* internal dynamite explosion */ + Zboom, /* explosion */ + + Xchain, /* chain explosion; transition to Zboom */ + Xboom_bug, /* bug explosion; transition to Zbug */ + Xboom_tank, /* tank/alien/bomb explosion; transition to Ztank */ + Xboom_android, /* android explosion; transition to Xboom_2 */ + Xboom_1, /* tile explosion; transition to Xboom_2 */ + Xboom_2, /* transition to boom[] */ + + Xblank, Xsplash_e, Xsplash_w, @@ -477,7 +494,7 @@ enum Xalpha_8, Xalpha_9, Xalpha_excla, - Xalpha_quote, + Xalpha_apost, Xalpha_comma, Xalpha_minus, Xalpha_perio, @@ -526,25 +543,6 @@ enum Ygrass_blank, Ydirt_blank, - Xboom_bug, /* passed from explode to synchro (linked explosion); - transition to explode_normal */ - Xboom_bomb, /* passed from explode to synchro (linked explosion); - transition to explode_normal */ - Xboom_android, /* passed from explode to synchro; - transition to boom_2 */ - Xboom_1, /* passed from explode to synchro; - transition to boom_2 */ - Xboom_2, /* transition to boom[] */ - - Znormal, /* passed from synchro to explode, only in next[]; - no picture */ - Zdynamite, /* passed from synchro to explode, only in next[]; - no picture */ - Zplayer, /* special code to indicate player; - no picture */ - Zborder, /* special code to indicate border; - no picture */ - TILE_MAX }; @@ -629,47 +627,50 @@ struct LOGIC int bottom; /* cave bottom edge */ int time; /* time remaining */ - int required; /* emeralds needed */ + int gems_needed; /* emeralds needed */ int score; /* score */ + int eater_score; /* score for killing eater */ int alien_score; /* score for killing alien */ - int amoeba_time; /* amoeba speed */ - int android_move_cnt; /* android move counter */ - int android_move_time; /* android move reset time */ - 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; /* 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; /* lenses counter */ int lenses_score; /* score for collecting lenses */ - int lenses_time; /* lenses reset time */ - 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; /* wheel counter */ + 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 wheel_time; /* wheel reset time */ - int wind_cnt; /* wind time counter */ - int wind_direction; /* wind direction */ + int lenses_time; /* lenses reset time */ + int magnify_time; /* magnify reset time */ int wind_time; /* wind reset time */ + 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; /* wonderwall time */ + 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 */ @@ -683,7 +684,7 @@ struct LOGIC short eater_array[8][9]; /* eater data */ short ball_array[8][8]; /* ball data */ - short android_array[TILE_MAX]; /* android clone table */ + short android_array[TILE_MAX]; /* android clone data */ short cavebuf[CAVE_BUFFER_WIDTH][CAVE_BUFFER_HEIGHT]; short nextbuf[CAVE_BUFFER_WIDTH][CAVE_BUFFER_HEIGHT];