boom[x][y+1] = lev.eater_array[lev.eater_pos][7];
boom[x+1][y+1] = lev.eater_array[lev.eater_pos][8];
- lev.eater_pos = (lev.eater_pos + 1) % 8;
+ lev.eater_pos = (lev.eater_pos + 1) % lev.num_eater_arrays;
#if PLAY_ELEMENT_SOUND
play_element_sound(x, y, SOUND_boom, Xeater_n);
next[x][y] = element;
}
+static void Lpush_element_old(int x, int y, int element)
+{
+ if (!game_em.use_old_push_elements)
+ return;
+
+ cave[x][y] = element;
+ next[x][y] = element;
+}
+
static boolean player_killed(struct PLAYER *ply)
{
int x = ply->x;
switch (cave[x+1][y])
{
+ case Zplayer:
+ if (!game_em.use_old_push_elements)
+ break;
case Zborder:
case Zbug:
case Ztank:
case Xboom_tank:
case Xboom_android:
case Xboom_1:
+ Lpush_element_old(x, y, Xemerald);
return;
#ifdef ACID_ROLL
case Xacid_6:
case Xacid_7:
case Xacid_8:
+ if (game_em.use_old_push_into_acid)
+ break;
if (cave[x+2][y-1] == Xblank)
cave[x+2][y-1] = Xsplash_e;
if (cave[x][y-1] == Xblank)
switch (cave[x-1][y])
{
+ case Zplayer:
+ if (!game_em.use_old_push_elements)
+ break;
case Zborder:
case Zbug:
case Ztank:
case Xboom_tank:
case Xboom_android:
case Xboom_1:
+ Lpush_element_old(x, y, Xemerald);
return;
#ifdef ACID_ROLL
case Xacid_6:
case Xacid_7:
case Xacid_8:
+ if (game_em.use_old_push_into_acid)
+ break;
if (cave[x][y-1] == Xblank)
cave[x][y-1] = Xsplash_e;
if (cave[x-2][y-1] == Xblank)
switch (cave[x+1][y])
{
+ case Zplayer:
+ if (!game_em.use_old_push_elements)
+ break;
case Zborder:
case Zbug:
case Ztank:
case Xboom_tank:
case Xboom_android:
case Xboom_1:
+ Lpush_element_old(x, y, Xdiamond);
return;
#ifdef ACID_ROLL
case Xacid_6:
case Xacid_7:
case Xacid_8:
+ if (game_em.use_old_push_into_acid)
+ break;
if (cave[x+2][y-1] == Xblank)
cave[x+2][y-1] = Xsplash_e;
if (cave[x][y-1] == Xblank)
switch (cave[x-1][y])
{
+ case Zplayer:
+ if (!game_em.use_old_push_elements)
+ break;
case Zborder:
case Zbug:
case Ztank:
case Xboom_tank:
case Xboom_android:
case Xboom_1:
+ Lpush_element_old(x, y, Xdiamond);
return;
#ifdef ACID_ROLL
case Xacid_6:
case Xacid_7:
case Xacid_8:
+ if (game_em.use_old_push_into_acid)
+ break;
if (cave[x][y-1] == Xblank)
cave[x][y-1] = Xsplash_e;
if (cave[x-2][y-1] == Xblank)
switch (cave[x+1][y])
{
+ case Zplayer:
+ if (!game_em.use_old_push_elements)
+ break;
case Zborder:
case Zbug:
case Ztank:
case Xboom_tank:
case Xboom_android:
case Xboom_1:
+ Lpush_element_old(x, y, Xstone);
return;
#ifdef ACID_ROLL
case Xacid_6:
case Xacid_7:
case Xacid_8:
+ if (game_em.use_old_push_into_acid)
+ break;
if (cave[x+2][y-1] == Xblank)
cave[x+2][y-1] = Xsplash_e;
if (cave[x][y-1] == Xblank)
switch (cave[x-1][y])
{
+ case Zplayer:
+ if (!game_em.use_old_push_elements)
+ break;
case Zborder:
case Zbug:
case Ztank:
case Xboom_tank:
case Xboom_android:
case Xboom_1:
+ Lpush_element_old(x, y, Xstone);
return;
#ifdef ACID_ROLL
case Xacid_6:
case Xacid_7:
case Xacid_8:
+ if (game_em.use_old_push_into_acid)
+ break;
if (cave[x][y-1] == Xblank)
cave[x][y-1] = Xsplash_e;
if (cave[x-2][y-1] == Xblank)
switch (cave[x+1][y])
{
+ case Zplayer:
+ if (!game_em.use_old_push_elements)
+ break;
case Zborder:
case Zbug:
case Ztank:
case Xboom_tank:
case Xboom_android:
case Xboom_1:
+ Lpush_element_old(x, y, Xbomb);
return;
#ifdef ACID_ROLL
case Xacid_6:
case Xacid_7:
case Xacid_8:
+ if (game_em.use_old_push_into_acid)
+ break;
if (cave[x+2][y-1] == Xblank)
cave[x+2][y-1] = Xsplash_e;
if (cave[x][y-1] == Xblank)
switch (cave[x-1][y])
{
+ case Zplayer:
+ if (!game_em.use_old_push_elements)
+ break;
case Zborder:
case Zbug:
case Ztank:
case Xboom_tank:
case Xboom_android:
case Xboom_1:
+ Lpush_element_old(x, y, Xbomb);
return;
#ifdef ACID_ROLL
case Xacid_6:
case Xacid_7:
case Xacid_8:
+ if (game_em.use_old_push_into_acid)
+ break;
if (cave[x][y-1] == Xblank)
cave[x][y-1] = Xsplash_e;
if (cave[x-2][y-1] == Xblank)
switch (cave[x+1][y])
{
+ case Zplayer:
+ if (!game_em.use_old_push_elements)
+ break;
case Zborder:
case Zbug:
case Ztank:
case Xboom_tank:
case Xboom_android:
case Xboom_1:
+ Lpush_element_old(x, y, Xnut);
return;
#ifdef ACID_ROLL
case Xacid_6:
case Xacid_7:
case Xacid_8:
+ if (game_em.use_old_push_into_acid)
+ break;
if (cave[x+2][y-1] == Xblank)
cave[x+2][y-1] = Xsplash_e;
if (cave[x][y-1] == Xblank)
switch (cave[x-1][y])
{
+ case Zplayer:
+ if (!game_em.use_old_push_elements)
+ break;
case Zborder:
case Zbug:
case Ztank:
case Xboom_tank:
case Xboom_android:
case Xboom_1:
+ Lpush_element_old(x, y, Xnut);
return;
#ifdef ACID_ROLL
case Xacid_6:
case Xacid_7:
case Xacid_8:
+ if (game_em.use_old_push_into_acid)
+ break;
if (cave[x][y-1] == Xblank)
cave[x][y-1] = Xsplash_e;
if (cave[x-2][y-1] == Xblank)
switch (cave[x+1][y])
{
+ case Zplayer:
+ if (!game_em.use_old_push_elements)
+ break;
case Zborder:
case Zbug:
case Ztank:
case Xboom_tank:
case Xboom_android:
case Xboom_1:
+ Lpush_element_old(x, y, Xspring);
return;
#ifdef ACID_ROLL
case Xacid_6:
case Xacid_7:
case Xacid_8:
+ if (game_em.use_old_push_into_acid)
+ break;
if (cave[x+2][y-1] == Xblank)
cave[x+2][y-1] = Xsplash_e;
if (cave[x][y-1] == Xblank)
switch (cave[x-1][y])
{
+ case Zplayer:
+ if (!game_em.use_old_push_elements)
+ break;
case Zborder:
case Zbug:
case Ztank:
case Xboom_tank:
case Xboom_android:
case Xboom_1:
+ Lpush_element_old(x, y, Xspring);
return;
#ifdef ACID_ROLL
case Xacid_6:
case Xacid_7:
case Xacid_8:
+ if (game_em.use_old_push_into_acid)
+ break;
if (cave[x][y-1] == Xblank)
cave[x][y-1] = Xsplash_e;
if (cave[x-2][y-1] == Xblank)