X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_em%2Fsynchro_2.c;h=c4b9a678b3e1e9dbf5ebb3302986d70c76736abf;hb=61c3da024802ecc0268bab42d7499fc0346e4fd3;hp=662ad2e53630f521ee873bf3be648d9c682c0419;hpb=f47cd4b09952aaf95d16542f6b53f2d8bf9e1d7d;p=rocksndiamonds.git diff --git a/src/game_em/synchro_2.c b/src/game_em/synchro_2.c index 662ad2e5..c4b9a678 100644 --- a/src/game_em/synchro_2.c +++ b/src/game_em/synchro_2.c @@ -8,25 +8,48 @@ * compilers suck. */ -#include "display.h" -#include "tile.h" -#include "level.h" -#include "sample.h" +#include "main_em.h" #define RANDOM (random = random << 31 | random >> 1) +static void set_nearest_player_xy(int x, int y, int *dx, int *dy) +{ + int distance, distance_shortest = EM_MAX_CAVE_WIDTH + EM_MAX_CAVE_HEIGHT; + int i; + + /* default values if no players are alive anymore */ + *dx = 0; + *dy = 0; + + for (i = 0; i < MAX_PLAYERS; i++) + { + if (!ply[i].alive) + continue; + + distance = ABS(ply[i].x - x) + ABS(ply[i].y - y); + + if (distance < distance_shortest) + { + *dx = ply[i].x; + *dy = ply[i].y; + + distance_shortest = distance; + } + } +} + void synchro_2(void) { - register unsigned int x = 0; - register unsigned int y = 1; - register unsigned long random = Random; - register unsigned short *cave_cache = Cave[y]; /* might be a win */ - unsigned long score = 0; - - unsigned int temp = 0; /* initialized to make compilers happy */ - unsigned int dx; /* only needed to find closest player */ - unsigned int dy; + int x = 0; + int y = 1; + unsigned int random = RandomEM; + short *cave_cache = Cave[y]; /* might be a win */ + int score = 0; + + int temp = 0; /* initialized to make compilers happy */ + int dx; /* only needed to find closest player */ + int dy; int element; loop: @@ -348,7 +371,7 @@ void synchro_2(void) if (Cave[y][x-1] == Xblank) Cave[y][x-1] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -356,6 +379,16 @@ void synchro_2(void) case Yacid_splash_wB: case Xplant: case Yplant: +#if 1 + case Xfake_acid_1: + case Xfake_acid_2: + case Xfake_acid_3: + case Xfake_acid_4: + case Xfake_acid_5: + case Xfake_acid_6: + case Xfake_acid_7: + case Xfake_acid_8: +#endif Cave[y][x] = Ystone_sB; Cave[y+1][x] = Ystone_s; Next[y][x] = Xblank; @@ -479,12 +512,22 @@ void synchro_2(void) if (Cave[y][x-1] == Xblank) Cave[y][x-1] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: case Yacid_splash_eB: case Yacid_splash_wB: +#if 1 + case Xfake_acid_1: + case Xfake_acid_2: + case Xfake_acid_3: + case Xfake_acid_4: + case Xfake_acid_5: + case Xfake_acid_6: + case Xfake_acid_7: + case Xfake_acid_8: +#endif Cave[y][x] = Ystone_sB; Cave[y+1][x] = Ystone_s; Next[y][x] = Xblank; @@ -516,13 +559,23 @@ void synchro_2(void) if (Cave[y][x-1] == Xblank) Cave[y][x-1] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: case Yacid_splash_eB: case Yacid_splash_wB: case Zplayer: +#if 1 + case Xfake_acid_1: + case Xfake_acid_2: + case Xfake_acid_3: + case Xfake_acid_4: + case Xfake_acid_5: + case Xfake_acid_6: + case Xfake_acid_7: + case Xfake_acid_8: +#endif Cave[y][x] = Ystone_sB; Cave[y+1][x] = Ystone_s; Next[y][x] = Xblank; @@ -558,7 +611,7 @@ void synchro_2(void) Boom[y+2][x-1] = Xemerald; Boom[y+2][x] = Xemerald; Boom[y+2][x+1] = Xemerald; -#if 0 +#if PLAY_ELEMENT_SOUND play_element_sound(x, y, SAMPLE_boom, element); #endif score += lev.bug_score; @@ -584,7 +637,7 @@ void synchro_2(void) Boom[y+2][x-1] = Xblank; Boom[y+2][x] = Xblank; Boom[y+2][x+1] = Xblank; -#if 0 +#if PLAY_ELEMENT_SOUND play_element_sound(x, y, SAMPLE_boom, element); #endif score += lev.tank_score; @@ -644,7 +697,7 @@ void synchro_2(void) Boom[y+2][x-1] = lev.eater_array[lev.eater_pos][6]; Boom[y+2][x] = lev.eater_array[lev.eater_pos][7]; Boom[y+2][x+1] = lev.eater_array[lev.eater_pos][8]; -#if 0 +#if PLAY_ELEMENT_SOUND play_element_sound(x, y, SAMPLE_boom, element); #endif lev.eater_pos = (lev.eater_pos + 1) & 7; @@ -665,7 +718,7 @@ void synchro_2(void) Boom[y+2][x-1] = Xblank; Boom[y+2][x] = Xblank; Boom[y+2][x+1] = Xblank; -#if 0 +#if PLAY_ELEMENT_SOUND play_element_sound(x, y, SAMPLE_boom, element); #endif score += lev.alien_score; @@ -746,7 +799,7 @@ void synchro_2(void) Boom[y+2][x-1] = Xblank; Boom[y+2][x] = Xblank; Boom[y+2][x+1] = Xblank; -#if 0 +#if PLAY_ELEMENT_SOUND play_element_sound(x, y, SAMPLE_boom, element); #endif goto loop; @@ -764,7 +817,7 @@ void synchro_2(void) } Next[y][x] = Xblank; - play_element_sound(x, y, SAMPLE_wonderfall, Xstone); + play_element_sound(x, y, SAMPLE_wonderfall, Xwonderwall); goto loop; } @@ -794,7 +847,7 @@ void synchro_2(void) if (Cave[y][x-1] == Xblank) Cave[y][x-1] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -915,7 +968,7 @@ void synchro_2(void) if (Cave[y][x-1] == Xblank) Cave[y][x-1] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -952,7 +1005,7 @@ void synchro_2(void) if (Cave[y][x-1] == Xblank) Cave[y][x-1] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -999,7 +1052,7 @@ void synchro_2(void) case Zplayer: Cave[y][x] = Ybug_n_e; Next[y][x] = Xbug_goe; - play_sound(x, y, SAMPLE_bug); + play_element_sound(x, y, SAMPLE_bug, element); goto loop; default: @@ -1031,7 +1084,7 @@ void synchro_2(void) if (Cave[y-2][x-1] == Xblank) Cave[y-2][x-1] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -1044,13 +1097,13 @@ void synchro_2(void) Cave[y-1][x] = Ybug_n; Next[y][x] = Xblank; Next[y-1][x] = Xbug_n; - play_sound(x, y, SAMPLE_bug); + play_element_sound(x, y, SAMPLE_bug, element); goto loop; default: Cave[y][x] = Ybug_n_w; Next[y][x] = Xbug_gow; - play_sound(x, y, SAMPLE_bug); + play_element_sound(x, y, SAMPLE_bug, element); goto loop; } @@ -1081,7 +1134,7 @@ void synchro_2(void) case Zplayer: Cave[y][x] = Ybug_e_s; Next[y][x] = Xbug_gos; - play_sound(x, y, SAMPLE_bug); + play_element_sound(x, y, SAMPLE_bug, element); goto loop; default: @@ -1113,7 +1166,7 @@ void synchro_2(void) if (Cave[y-1][x] == Xblank) Cave[y-1][x] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -1126,13 +1179,13 @@ void synchro_2(void) Cave[y][x+1] = Ybug_e; Next[y][x] = Xblank; Next[y][x+1] = Xbug_e; - play_sound(x, y, SAMPLE_bug); + play_element_sound(x, y, SAMPLE_bug, element); goto loop; default: Cave[y][x] = Ybug_e_n; Next[y][x] = Xbug_gon; - play_sound(x, y, SAMPLE_bug); + play_element_sound(x, y, SAMPLE_bug, element); goto loop; } @@ -1163,7 +1216,7 @@ void synchro_2(void) case Zplayer: Cave[y][x] = Ybug_s_w; Next[y][x] = Xbug_gow; - play_sound(x, y, SAMPLE_bug); + play_element_sound(x, y, SAMPLE_bug, element); goto loop; default: @@ -1195,7 +1248,7 @@ void synchro_2(void) if (Cave[y][x-1] == Xblank) Cave[y][x-1] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -1208,13 +1261,13 @@ void synchro_2(void) Cave[y+1][x] = Ybug_s; Next[y][x] = Xblank; Next[y+1][x] = Xbug_s; - play_sound(x, y, SAMPLE_bug); + play_element_sound(x, y, SAMPLE_bug, element); goto loop; default: Cave[y][x] = Ybug_s_e; Next[y][x] = Xbug_goe; - play_sound(x, y, SAMPLE_bug); + play_element_sound(x, y, SAMPLE_bug, element); goto loop; } @@ -1245,7 +1298,7 @@ void synchro_2(void) case Zplayer: Cave[y][x] = Ybug_w_n; Next[y][x] = Xbug_gon; - play_sound(x, y, SAMPLE_bug); + play_element_sound(x, y, SAMPLE_bug, element); goto loop; default: @@ -1277,7 +1330,7 @@ void synchro_2(void) if (Cave[y-1][x-2] == Xblank) Cave[y-1][x-2] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -1290,13 +1343,13 @@ void synchro_2(void) Cave[y][x-1] = Ybug_w; Next[y][x] = Xblank; Next[y][x-1] = Xbug_w; - play_sound(x, y, SAMPLE_bug); + play_element_sound(x, y, SAMPLE_bug, element); goto loop; default: Cave[y][x] = Ybug_w_s; Next[y][x] = Xbug_gos; - play_sound(x, y, SAMPLE_bug); + play_element_sound(x, y, SAMPLE_bug, element); goto loop; } @@ -1327,7 +1380,7 @@ void synchro_2(void) case Zplayer: Cave[y][x] = Ytank_n_w; Next[y][x] = Xtank_gow; - play_sound(x, y, SAMPLE_tank); + play_element_sound(x, y, SAMPLE_tank, element); goto loop; default: @@ -1359,7 +1412,7 @@ void synchro_2(void) if (Cave[y-2][x-1] == Xblank) Cave[y-2][x-1] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -1372,13 +1425,13 @@ void synchro_2(void) Cave[y-1][x] = Ytank_n; Next[y][x] = Xblank; Next[y-1][x] = Xtank_n; - play_sound(x, y, SAMPLE_tank); + play_element_sound(x, y, SAMPLE_tank, element); goto loop; default: Cave[y][x] = Ytank_n_e; Next[y][x] = Xtank_goe; - play_sound(x, y, SAMPLE_tank); + play_element_sound(x, y, SAMPLE_tank, element); goto loop; } @@ -1409,7 +1462,7 @@ void synchro_2(void) case Zplayer: Cave[y][x] = Ytank_e_n; Next[y][x] = Xtank_gon; - play_sound(x, y, SAMPLE_tank); + play_element_sound(x, y, SAMPLE_tank, element); goto loop; default: @@ -1441,7 +1494,7 @@ void synchro_2(void) if (Cave[y-1][x] == Xblank) Cave[y-1][x] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -1454,13 +1507,13 @@ void synchro_2(void) Cave[y][x+1] = Ytank_e; Next[y][x] = Xblank; Next[y][x+1] = Xtank_e; - play_sound(x, y, SAMPLE_tank); + play_element_sound(x, y, SAMPLE_tank, element); goto loop; default: Cave[y][x] = Ytank_e_s; Next[y][x] = Xtank_gos; - play_sound(x, y, SAMPLE_tank); + play_element_sound(x, y, SAMPLE_tank, element); goto loop; } @@ -1491,7 +1544,7 @@ void synchro_2(void) case Zplayer: Cave[y][x] = Ytank_s_e; Next[y][x] = Xtank_goe; - play_sound(x, y, SAMPLE_tank); + play_element_sound(x, y, SAMPLE_tank, element); goto loop; default: @@ -1523,7 +1576,7 @@ void synchro_2(void) if (Cave[y][x-1] == Xblank) Cave[y][x-1] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -1536,13 +1589,13 @@ void synchro_2(void) Cave[y+1][x] = Ytank_s; Next[y][x] = Xblank; Next[y+1][x] = Xtank_s; - play_sound(x, y, SAMPLE_tank); + play_element_sound(x, y, SAMPLE_tank, element); goto loop; default: Cave[y][x] = Ytank_s_w; Next[y][x] = Xtank_gow; - play_sound(x, y, SAMPLE_tank); + play_element_sound(x, y, SAMPLE_tank, element); goto loop; } @@ -1573,7 +1626,7 @@ void synchro_2(void) case Zplayer: Cave[y][x] = Ytank_w_s; Next[y][x] = Xtank_gos; - play_sound(x, y, SAMPLE_tank); + play_element_sound(x, y, SAMPLE_tank, element); goto loop; default: @@ -1605,7 +1658,7 @@ void synchro_2(void) if (Cave[y-1][x-2] == Xblank) Cave[y-1][x-2] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -1618,13 +1671,13 @@ void synchro_2(void) Cave[y][x-1] = Ytank_w; Next[y][x] = Xblank; Next[y][x-1] = Xtank_w; - play_sound(x, y, SAMPLE_tank); + play_element_sound(x, y, SAMPLE_tank, element); goto loop; default: Cave[y][x] = Ytank_w_n; Next[y][x] = Xtank_gon; - play_sound(x, y, SAMPLE_tank); + play_element_sound(x, y, SAMPLE_tank, element); goto loop; } @@ -1739,8 +1792,8 @@ void synchro_2(void) goto android_move; } - Next[y][x] = temp; /* the item we chose to clone */ - play_element_sound(x, y, SAMPLE_android, temp); + Next[y][x] = temp; /* the item we chose to clone */ + play_element_sound(x, y, SAMPLE_android_clone, temp); switch (RANDOM & 7) { @@ -1849,6 +1902,12 @@ void synchro_2(void) Cave[y+1][x+1] == Zplayer) goto android_still; +#if 1 + + set_nearest_player_xy(x, y, &dx, &dy); + +#else + if (ply1.alive && ply2.alive) { if ((ply1.x > x ? ply1.x - x : x - ply1.x) + @@ -1881,7 +1940,9 @@ void synchro_2(void) dy = 0; } - Next[y][x] = Xblank; /* assume we will move */ +#endif + + Next[y][x] = Xblank; /* assume we will move */ temp = ((x < dx) + 1 - (x > dx)) + ((y < dy) + 1 - (y > dy)) * 3; if (RANDOM & 1) @@ -2012,7 +2073,7 @@ void synchro_2(void) Cave[y][x] = Yandroid_nB; Cave[y-1][x] = Yandroid_n; Next[y-1][x] = Xandroid; - play_sound(x, y, SAMPLE_tank); + play_element_sound(x, y, SAMPLE_android_move, element); goto loop; android_ne: @@ -2020,7 +2081,7 @@ void synchro_2(void) Cave[y][x] = Yandroid_neB; Cave[y-1][x+1] = Yandroid_ne; Next[y-1][x+1] = Xandroid; - play_sound(x, y, SAMPLE_tank); + play_element_sound(x, y, SAMPLE_android_move, element); goto loop; android_e: @@ -2028,7 +2089,7 @@ void synchro_2(void) Cave[y][x] = Yandroid_eB; Cave[y][x+1] = Yandroid_e; Next[y][x+1] = Xandroid; - play_sound(x, y, SAMPLE_tank); + play_element_sound(x, y, SAMPLE_android_move, element); goto loop; android_se: @@ -2036,7 +2097,7 @@ void synchro_2(void) Cave[y][x] = Yandroid_seB; Cave[y+1][x+1] = Yandroid_se; Next[y+1][x+1] = Xandroid; - play_sound(x, y, SAMPLE_tank); + play_element_sound(x, y, SAMPLE_android_move, element); goto loop; android_s: @@ -2044,7 +2105,7 @@ void synchro_2(void) Cave[y][x] = Yandroid_sB; Cave[y+1][x] = Yandroid_s; Next[y+1][x] = Xandroid; - play_sound(x, y, SAMPLE_tank); + play_element_sound(x, y, SAMPLE_android_move, element); goto loop; android_sw: @@ -2052,7 +2113,7 @@ void synchro_2(void) Cave[y][x] = Yandroid_swB; Cave[y+1][x-1] = Yandroid_sw; Next[y+1][x-1] = Xandroid; - play_sound(x, y, SAMPLE_tank); + play_element_sound(x, y, SAMPLE_android_move, element); goto loop; android_w: @@ -2060,7 +2121,7 @@ void synchro_2(void) Cave[y][x] = Yandroid_wB; Cave[y][x-1] = Yandroid_w; Next[y][x-1] = Xandroid; - play_sound(x, y, SAMPLE_tank); + play_element_sound(x, y, SAMPLE_android_move, element); goto loop; android_nw: @@ -2068,7 +2129,7 @@ void synchro_2(void) Cave[y][x] = Yandroid_nwB; Cave[y-1][x-1] = Yandroid_nw; Next[y-1][x-1] = Xandroid; - play_sound(x, y, SAMPLE_tank); + play_element_sound(x, y, SAMPLE_android_move, element); goto loop; /* --------------------------------------------------------------------- */ @@ -2090,7 +2151,7 @@ void synchro_2(void) if (Cave[y-2][x-1] == Xblank) Cave[y-2][x-1] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -2100,7 +2161,7 @@ void synchro_2(void) Cave[y-1][x] = Yandroid_n; Next[y][x] = Xblank; Next[y-1][x] = Xandroid; - play_sound(x, y, SAMPLE_tank); + play_element_sound(x, y, SAMPLE_android_move, element); goto loop; default: @@ -2124,7 +2185,7 @@ void synchro_2(void) if (Cave[y-2][x-1] == Xblank) Cave[y-2][x-1] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -2134,7 +2195,7 @@ void synchro_2(void) Cave[y-1][x] = Yandroid_n; Next[y][x] = Xblank; Next[y-1][x] = Xandroid_1_n; - play_sound(x, y, SAMPLE_tank); + play_element_sound(x, y, SAMPLE_android_move, element); goto loop; default: @@ -2160,7 +2221,7 @@ void synchro_2(void) if (Cave[y-1][x] == Xblank) Cave[y-1][x] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -2170,7 +2231,7 @@ void synchro_2(void) Cave[y][x+1] = Yandroid_e; Next[y][x] = Xblank; Next[y][x+1] = Xandroid; - play_sound(x, y, SAMPLE_tank); + play_element_sound(x, y, SAMPLE_android_move, element); goto loop; default: @@ -2194,7 +2255,7 @@ void synchro_2(void) if (Cave[y-1][x] == Xblank) Cave[y-1][x] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -2204,7 +2265,7 @@ void synchro_2(void) Cave[y][x+1] = Yandroid_e; Next[y][x] = Xblank; Next[y][x+1] = Xandroid_1_e; - play_sound(x, y, SAMPLE_tank); + play_element_sound(x, y, SAMPLE_android_move, element); goto loop; default: @@ -2230,7 +2291,7 @@ void synchro_2(void) if (Cave[y][x-1] == Xblank) Cave[y][x-1] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -2240,7 +2301,7 @@ void synchro_2(void) Cave[y+1][x] = Yandroid_s; Next[y][x] = Xblank; Next[y+1][x] = Xandroid; - play_sound(x, y, SAMPLE_tank); + play_element_sound(x, y, SAMPLE_android_move, element); goto loop; default: @@ -2264,7 +2325,7 @@ void synchro_2(void) if (Cave[y][x-1] == Xblank) Cave[y][x-1] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -2274,7 +2335,7 @@ void synchro_2(void) Cave[y+1][x] = Yandroid_s; Next[y][x] = Xblank; Next[y+1][x] = Xandroid_1_s; - play_sound(x, y, SAMPLE_tank); + play_element_sound(x, y, SAMPLE_android_move, element); goto loop; default: @@ -2300,7 +2361,7 @@ void synchro_2(void) if (Cave[y-1][x-2] == Xblank) Cave[y-1][x-2] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -2310,7 +2371,7 @@ void synchro_2(void) Cave[y][x-1] = Yandroid_w; Next[y][x] = Xblank; Next[y][x-1] = Xandroid; - play_sound(x, y, SAMPLE_tank); + play_element_sound(x, y, SAMPLE_android_move, element); goto loop; default: @@ -2334,7 +2395,7 @@ void synchro_2(void) if (Cave[y-1][x-2] == Xblank) Cave[y-1][x-2] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -2344,7 +2405,7 @@ void synchro_2(void) Cave[y][x-1] = Yandroid_w; Next[y][x] = Xblank; Next[y][x-1] = Xandroid_1_w; - play_sound(x, y, SAMPLE_tank); + play_element_sound(x, y, SAMPLE_android_move, element); goto loop; default: @@ -2370,7 +2431,7 @@ void synchro_2(void) if (Cave[y][x-1] == Xblank) Cave[y][x-1] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -2524,7 +2585,7 @@ void synchro_2(void) if (Cave[y][x-1] == Xblank) Cave[y][x-1] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -2561,7 +2622,7 @@ void synchro_2(void) if (Cave[y][x-1] == Xblank) Cave[y][x-1] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -2593,7 +2654,7 @@ void synchro_2(void) if (Cave[y-1][x] == Xblank) Cave[y-1][x] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -2656,7 +2717,7 @@ void synchro_2(void) if (Cave[y][x-1] == Xblank) Cave[y][x-1] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -2688,7 +2749,7 @@ void synchro_2(void) if (Cave[y-1][x-2] == Xblank) Cave[y-1][x-2] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -2751,7 +2812,7 @@ void synchro_2(void) if (Cave[y][x-1] == Xblank) Cave[y][x-1] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -2777,7 +2838,7 @@ void synchro_2(void) Boom[y+2][x-1] = Xblank; Boom[y+2][x] = Xblank; Boom[y+2][x+1] = Xblank; -#if 0 +#if PLAY_ELEMENT_SOUND play_element_sound(x, y, SAMPLE_boom, element); #endif goto loop; @@ -2802,7 +2863,7 @@ void synchro_2(void) Boom[y+2][x-1] = Xemerald; Boom[y+2][x] = Xemerald; Boom[y+2][x+1] = Xemerald; -#if 0 +#if PLAY_ELEMENT_SOUND play_element_sound(x, y, SAMPLE_boom, element); #endif score += lev.bug_score; @@ -2828,7 +2889,7 @@ void synchro_2(void) Boom[y+2][x-1] = Xblank; Boom[y+2][x] = Xblank; Boom[y+2][x+1] = Xblank; -#if 0 +#if PLAY_ELEMENT_SOUND play_element_sound(x, y, SAMPLE_boom, element); #endif score += lev.tank_score; @@ -2850,7 +2911,7 @@ void synchro_2(void) Boom[y+2][x-1] = lev.eater_array[lev.eater_pos][6]; Boom[y+2][x] = lev.eater_array[lev.eater_pos][7]; Boom[y+2][x+1] = lev.eater_array[lev.eater_pos][8]; -#if 0 +#if PLAY_ELEMENT_SOUND play_element_sound(x, y, SAMPLE_boom, element); #endif lev.eater_pos = (lev.eater_pos + 1) & 7; @@ -2871,7 +2932,7 @@ void synchro_2(void) Boom[y+2][x-1] = Xblank; Boom[y+2][x] = Xblank; Boom[y+2][x+1] = Xblank; -#if 0 +#if PLAY_ELEMENT_SOUND play_element_sound(x, y, SAMPLE_boom, element); #endif score += lev.alien_score; @@ -2891,7 +2952,7 @@ void synchro_2(void) { Cave[y][x+1] = Ydiamond_eat; Next[y][x+1] = Xblank; - play_element_sound(x, y, SAMPLE_eater, Xdiamond); + play_element_sound(x, y, SAMPLE_eater_eat, element); goto loop; } @@ -2899,7 +2960,7 @@ void synchro_2(void) { Cave[y+1][x] = Ydiamond_eat; Next[y+1][x] = Xblank; - play_element_sound(x, y, SAMPLE_eater, Xdiamond); + play_element_sound(x, y, SAMPLE_eater_eat, element); goto loop; } @@ -2907,7 +2968,7 @@ void synchro_2(void) { Cave[y][x-1] = Ydiamond_eat; Next[y][x-1] = Xblank; - play_element_sound(x, y, SAMPLE_eater, Xdiamond); + play_element_sound(x, y, SAMPLE_eater_eat, element); goto loop; } @@ -2915,7 +2976,7 @@ void synchro_2(void) { Cave[y-1][x] = Ydiamond_eat; Next[y-1][x] = Xblank; - play_element_sound(x, y, SAMPLE_eater, Xdiamond); + play_element_sound(x, y, SAMPLE_eater_eat, element); goto loop; } @@ -2935,7 +2996,7 @@ void synchro_2(void) if (Cave[y-2][x-1] == Xblank) Cave[y-2][x-1] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -2952,7 +3013,7 @@ void synchro_2(void) default: Next[y][x] = RANDOM & 1 ? Xeater_e : Xeater_w; - play_sound(x, y, SAMPLE_eater); + play_element_sound(x, y, SAMPLE_eater, element); goto loop; } @@ -2963,7 +3024,7 @@ void synchro_2(void) { Cave[y+1][x] = Ydiamond_eat; Next[y+1][x] = Xblank; - play_element_sound(x, y, SAMPLE_eater, Xdiamond); + play_element_sound(x, y, SAMPLE_eater_eat, element); goto loop; } @@ -2971,7 +3032,7 @@ void synchro_2(void) { Cave[y][x-1] = Ydiamond_eat; Next[y][x-1] = Xblank; - play_element_sound(x, y, SAMPLE_eater, Xdiamond); + play_element_sound(x, y, SAMPLE_eater_eat, element); goto loop; } @@ -2979,7 +3040,7 @@ void synchro_2(void) { Cave[y-1][x] = Ydiamond_eat; Next[y-1][x] = Xblank; - play_element_sound(x, y, SAMPLE_eater, Xdiamond); + play_element_sound(x, y, SAMPLE_eater_eat, element); goto loop; } @@ -2987,7 +3048,7 @@ void synchro_2(void) { Cave[y][x+1] = Ydiamond_eat; Next[y][x+1] = Xblank; - play_element_sound(x, y, SAMPLE_eater, Xdiamond); + play_element_sound(x, y, SAMPLE_eater_eat, element); goto loop; } @@ -3007,7 +3068,7 @@ void synchro_2(void) if (Cave[y-1][x] == Xblank) Cave[y-1][x] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -3024,7 +3085,7 @@ void synchro_2(void) default: Next[y][x] = RANDOM & 1 ? Xeater_n : Xeater_s; - play_sound(x, y, SAMPLE_eater); + play_element_sound(x, y, SAMPLE_eater, element); goto loop; } @@ -3035,7 +3096,7 @@ void synchro_2(void) { Cave[y][x-1] = Ydiamond_eat; Next[y][x-1] = Xblank; - play_element_sound(x, y, SAMPLE_eater, Xdiamond); + play_element_sound(x, y, SAMPLE_eater_eat, element); goto loop; } @@ -3043,7 +3104,7 @@ void synchro_2(void) { Cave[y-1][x] = Ydiamond_eat; Next[y-1][x] = Xblank; - play_element_sound(x, y, SAMPLE_eater, Xdiamond); + play_element_sound(x, y, SAMPLE_eater_eat, element); goto loop; } @@ -3051,7 +3112,7 @@ void synchro_2(void) { Cave[y][x+1] = Ydiamond_eat; Next[y][x+1] = Xblank; - play_element_sound(x, y, SAMPLE_eater, Xdiamond); + play_element_sound(x, y, SAMPLE_eater_eat, element); goto loop; } @@ -3059,7 +3120,7 @@ void synchro_2(void) { Cave[y+1][x] = Ydiamond_eat; Next[y+1][x] = Xblank; - play_element_sound(x, y, SAMPLE_eater, Xdiamond); + play_element_sound(x, y, SAMPLE_eater_eat, element); goto loop; } @@ -3079,7 +3140,7 @@ void synchro_2(void) if (Cave[y][x-1] == Xblank) Cave[y][x-1] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -3096,7 +3157,7 @@ void synchro_2(void) default: Next[y][x] = RANDOM & 1 ? Xeater_e : Xeater_w; - play_sound(x, y, SAMPLE_eater); + play_element_sound(x, y, SAMPLE_eater, element); goto loop; } @@ -3107,7 +3168,7 @@ void synchro_2(void) { Cave[y-1][x] = Ydiamond_eat; Next[y-1][x] = Xblank; - play_element_sound(x, y, SAMPLE_eater, Xdiamond); + play_element_sound(x, y, SAMPLE_eater_eat, element); goto loop; } @@ -3115,7 +3176,7 @@ void synchro_2(void) { Cave[y][x+1] = Ydiamond_eat; Next[y][x+1] = Xblank; - play_element_sound(x, y, SAMPLE_eater, Xdiamond); + play_element_sound(x, y, SAMPLE_eater_eat, element); goto loop; } @@ -3123,7 +3184,7 @@ void synchro_2(void) { Cave[y+1][x] = Ydiamond_eat; Next[y+1][x] = Xblank; - play_element_sound(x, y, SAMPLE_eater, Xdiamond); + play_element_sound(x, y, SAMPLE_eater_eat, element); goto loop; } @@ -3131,7 +3192,7 @@ void synchro_2(void) { Cave[y][x-1] = Ydiamond_eat; Next[y][x-1] = Xblank; - play_element_sound(x, y, SAMPLE_eater, Xdiamond); + play_element_sound(x, y, SAMPLE_eater_eat, element); goto loop; } @@ -3151,7 +3212,7 @@ void synchro_2(void) if (Cave[y-1][x-2] == Xblank) Cave[y-1][x-2] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -3168,13 +3229,28 @@ void synchro_2(void) default: Next[y][x] = RANDOM & 1 ? Xeater_n : Xeater_s; - play_sound(x, y, SAMPLE_eater); + play_element_sound(x, y, SAMPLE_eater, element); goto loop; } /* --------------------------------------------------------------------- */ case Xalien: + +#if 1 + + if (lev.wheel_cnt) + { + dx = lev.wheel_x; + dy = lev.wheel_y; + } + else + { + set_nearest_player_xy(x, y, &dx, &dy); + } + +#else + if (lev.wheel_cnt) { dx = lev.wheel_x; @@ -3212,6 +3288,8 @@ void synchro_2(void) dy = 0; } +#endif + if (RANDOM & 1) { if (y > dy) @@ -3232,7 +3310,7 @@ void synchro_2(void) if (Cave[y-2][x-1] == Xblank) Cave[y-2][x-1] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -3267,7 +3345,7 @@ void synchro_2(void) Cave[y][x+1] = Yacid_splash_eB; if (Cave[y][x-1] == Xblank) Cave[y][x-1] = Yacid_splash_wB; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -3305,7 +3383,7 @@ void synchro_2(void) if (Cave[y-1][x] == Xblank) Cave[y-1][x] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -3340,7 +3418,7 @@ void synchro_2(void) if (Cave[y-1][x-2] == Xblank) Cave[y-1][x-2] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -3384,7 +3462,7 @@ void synchro_2(void) if (Cave[y][x-1] == Xblank) Cave[y][x-1] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -3519,7 +3597,7 @@ void synchro_2(void) if (Cave[y][x-1] == Xblank) Cave[y][x-1] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -3556,7 +3634,7 @@ void synchro_2(void) if (Cave[y][x-1] == Xblank) Cave[y][x-1] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -3581,7 +3659,7 @@ void synchro_2(void) } Next[y][x] = Xblank; - play_element_sound(x, y, SAMPLE_wonderfall, Xemerald); + play_element_sound(x, y, SAMPLE_wonderfall, Xwonderwall); goto loop; } @@ -3611,7 +3689,7 @@ void synchro_2(void) if (Cave[y][x-1] == Xblank) Cave[y][x-1] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -3746,7 +3824,7 @@ void synchro_2(void) if (Cave[y][x-1] == Xblank) Cave[y][x-1] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -3783,7 +3861,7 @@ void synchro_2(void) if (Cave[y][x-1] == Xblank) Cave[y][x-1] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -3808,7 +3886,7 @@ void synchro_2(void) } Next[y][x] = Xblank; - play_element_sound(x, y, SAMPLE_wonderfall, Xdiamond); + play_element_sound(x, y, SAMPLE_wonderfall, Xwonderwall); goto loop; } @@ -3838,7 +3916,7 @@ void synchro_2(void) if (Cave[y][x-1] == Xblank) Cave[y][x-1] = Yacid_splash_wB; Next[y][x] = Xdrip_stretchB; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -3930,7 +4008,7 @@ void synchro_2(void) if (Cave[y][x-1] == Xblank) Cave[y][x-1] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -4050,7 +4128,7 @@ void synchro_2(void) if (Cave[y][x-1] == Xblank) Cave[y][x-1] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -4087,7 +4165,7 @@ void synchro_2(void) if (Cave[y][x-1] == Xblank) Cave[y][x-1] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -4111,7 +4189,7 @@ void synchro_2(void) Boom[y+1][x-1] = Xblank; Boom[y+1][x] = Xblank; Boom[y+1][x+1] = Xblank; -#if 0 +#if PLAY_ELEMENT_SOUND play_element_sound(x, y, SAMPLE_boom, element); #endif goto loop; @@ -4142,7 +4220,7 @@ void synchro_2(void) if (Cave[y-2][x-1] == Xblank) Cave[y-2][x-1] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -4175,7 +4253,7 @@ void synchro_2(void) if (Cave[y-1][x] == Xblank) Cave[y-1][x] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -4208,7 +4286,7 @@ void synchro_2(void) if (Cave[y][x-1] == Xblank) Cave[y][x-1] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -4241,7 +4319,7 @@ void synchro_2(void) if (Cave[y-1][x-2] == Xblank) Cave[y-1][x-2] = Yacid_splash_wB; Next[y][x] = Xblank; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; case Xblank: @@ -4292,6 +4370,38 @@ void synchro_2(void) Next[y][x] = Xacid_1; goto loop; + case Xfake_acid_1: + Next[y][x] = Xfake_acid_2; + goto loop; + + case Xfake_acid_2: + Next[y][x] = Xfake_acid_3; + goto loop; + + case Xfake_acid_3: + Next[y][x] = Xfake_acid_4; + goto loop; + + case Xfake_acid_4: + Next[y][x] = Xfake_acid_5; + goto loop; + + case Xfake_acid_5: + Next[y][x] = Xfake_acid_6; + goto loop; + + case Xfake_acid_6: + Next[y][x] = Xfake_acid_7; + goto loop; + + case Xfake_acid_7: + Next[y][x] = Xfake_acid_8; + goto loop; + + case Xfake_acid_8: + Next[y][x] = Xfake_acid_1; + goto loop; + /* --------------------------------------------------------------------- */ case Xball_1: @@ -4455,7 +4565,11 @@ void synchro_2(void) } } +#if 1 + lev.ball_pos = (lev.ball_pos + 1) % lev.num_ball_arrays; +#else lev.ball_pos = (lev.ball_pos + 1) & 7; +#endif goto loop; /* --------------------------------------------------------------------- */ @@ -4528,6 +4642,8 @@ void synchro_2(void) Next[y][x] = Xexit_1; } + play_element_sound(x, y, SAMPLE_exit_open, Xexit); + goto loop; case Xexit_1: @@ -4600,23 +4716,42 @@ void synchro_2(void) case Xacid_6: case Xacid_7: case Xacid_8: +#if 1 + Cave[y][x] = Xsand_stonesand_quickout_1; + if (Cave[y][x+1] == Xblank) + Cave[y][x+1] = Yacid_splash_eB; + if (Cave[y][x-1] == Xblank) + Cave[y][x-1] = Yacid_splash_wB; + Next[y][x] = Xsand_stonesand_quickout_2; + play_element_sound(x, y, SAMPLE_acid, Xacid_1); + goto loop; +#else Cave[y][x] = Xsand_stonesand_3; if (Cave[y][x+1] == Xblank) Cave[y][x+1] = Yacid_splash_eB; if (Cave[y][x-1] == Xblank) Cave[y][x-1] = Yacid_splash_wB; Next[y][x] = Xsand_stonesand_4; - play_sound(x, y, SAMPLE_acid); + play_element_sound(x, y, SAMPLE_acid, Xacid_1); goto loop; +#endif case Xblank: case Yacid_splash_eB: case Yacid_splash_wB: +#if 1 + Cave[y][x] = Xsand_stonesand_quickout_1; + Cave[y+1][x] = Xsand_stoneout_1; + Next[y][x] = Xsand_stonesand_quickout_2; + Next[y+1][x] = Xsand_stoneout_2; + goto loop; +#else Cave[y][x] = Xsand_stonesand_3; Cave[y+1][x] = Xsand_stoneout_1; Next[y][x] = Xsand_stonesand_4; Next[y+1][x] = Xsand_stoneout_2; goto loop; +#endif case Xsand: Cave[y][x] = Xsand_stonesand_1; @@ -4661,6 +4796,16 @@ void synchro_2(void) Next[y][x] = Xsand; goto loop; +#if 1 + case Xsand_stonesand_quickout_1: + Next[y][x] = Xsand_stonesand_quickout_2; + goto loop; + + case Xsand_stonesand_quickout_2: + Next[y][x] = Xsand; + goto loop; +#endif + case Xsand_stoneout_1: Next[y][x] = Xsand_stoneout_2; goto loop; @@ -4762,7 +4907,7 @@ void synchro_2(void) Boom[y+1][x-1] = Xemerald; Boom[y+1][x] = Xemerald; Boom[y+1][x+1] = Xemerald; -#if 0 +#if PLAY_ELEMENT_SOUND play_element_sound(x, y, SAMPLE_boom, element); #endif goto loop; @@ -4781,19 +4926,22 @@ void synchro_2(void) Boom[y+1][x-1] = Xblank; Boom[y+1][x] = Xblank; Boom[y+1][x+1] = Xblank; -#if 0 +#if PLAY_ELEMENT_SOUND play_element_sound(x, y, SAMPLE_boom, element); #endif goto loop; case Xboom_android: -#if 0 +#if PLAY_ELEMENT_SOUND play_element_sound(x, y, SAMPLE_boom, Xandroid); #endif case Xboom_1: Next[y][x] = Xboom_2; -#if 1 - play_sound(x, y, SAMPLE_boom); +#if !PLAY_ELEMENT_SOUND + if (x != lev.exit_x && y != lev.exit_y) + play_sound(x, y, SAMPLE_boom); + else + lev.exit_x = lev.exit_y = -1; #endif goto loop; @@ -4820,10 +4968,10 @@ void synchro_2(void) done: - if (ply1.alive || ply2.alive) - lev.score += score; /* only get a score if someone is alive */ + if (ply[0].alive || ply[1].alive || ply[2].alive || ply[3].alive) + lev.score += score; /* only add a score if someone is alive */ - Random = random; + RandomEM = random; { void *temp = Cave;