static const byte is_amoeba[TILE_MAX] =
{
[Xfake_amoeba] = 1,
- [Xfake_amoebaB] = 1,
+ [Yfake_amoeba] = 1,
[Xamoeba_1] = 1,
[Xamoeba_2] = 1,
[Xamoeba_3] = 1,
case Xwonderwall:
case Xswitch:
case Xbumper:
+ case Ybumper:
case Xacid_ne:
case Xacid_nw:
case Xslide_ns:
next[x][y] = Xblank;
cave[x+1][y] = Yemerald_e;
next[x+1][y] = Xemerald_pause;
+ if (cave[x][y+1] == Xbumper)
+ cave[x][y+1] = Ybumper;
return;
}
next[x][y] = Xblank;
cave[x-1][y] = Yemerald_w;
next[x-1][y] = Xemerald_pause;
+ if (cave[x][y+1] == Xbumper)
+ cave[x][y+1] = Ybumper;
return;
}
}
next[x][y] = Xblank;
cave[x-1][y] = Yemerald_w;
next[x-1][y] = Xemerald_pause;
+ if (cave[x][y+1] == Xbumper)
+ cave[x][y+1] = Ybumper;
return;
}
next[x][y] = Xblank;
cave[x+1][y] = Yemerald_e;
next[x+1][y] = Xemerald_pause;
+ if (cave[x][y+1] == Xbumper)
+ cave[x][y+1] = Ybumper;
return;
}
}
case Xwonderwall:
case Xswitch:
case Xbumper:
+ case Ybumper:
case Xacid_ne:
case Xacid_nw:
case Xslide_ns:
next[x][y] = Xblank;
cave[x+1][y] = Ydiamond_e;
next[x+1][y] = Xdiamond_pause;
+ if (cave[x][y+1] == Xbumper)
+ cave[x][y+1] = Ybumper;
return;
}
next[x][y] = Xblank;
cave[x-1][y] = Ydiamond_w;
next[x-1][y] = Xdiamond_pause;
+ if (cave[x][y+1] == Xbumper)
+ cave[x][y+1] = Ybumper;
return;
}
}
next[x][y] = Xblank;
cave[x-1][y] = Ydiamond_w;
next[x-1][y] = Xdiamond_pause;
+ if (cave[x][y+1] == Xbumper)
+ cave[x][y+1] = Ybumper;
return;
}
next[x][y] = Xblank;
cave[x+1][y] = Ydiamond_e;
next[x+1][y] = Xdiamond_pause;
+ if (cave[x][y+1] == Xbumper)
+ cave[x][y+1] = Ybumper;
return;
}
}
case Xball_2:
case Xswitch:
case Xbumper:
+ case Ybumper:
case Xacid_ne:
case Xacid_nw:
case Xlenses:
next[x][y] = Xblank;
cave[x+1][y] = Ystone_e;
next[x+1][y] = Xstone_pause;
+ if (cave[x][y+1] == Xbumper)
+ cave[x][y+1] = Ybumper;
return;
}
next[x][y] = Xblank;
cave[x-1][y] = Ystone_w;
next[x-1][y] = Xstone_pause;
+ if (cave[x][y+1] == Xbumper)
+ cave[x][y+1] = Ybumper;
return;
}
}
next[x][y] = Xblank;
cave[x-1][y] = Ystone_w;
next[x-1][y] = Xstone_pause;
+ if (cave[x][y+1] == Xbumper)
+ cave[x][y+1] = Ybumper;
return;
}
next[x][y] = Xblank;
cave[x+1][y] = Ystone_e;
next[x+1][y] = Xstone_pause;
+ if (cave[x][y+1] == Xbumper)
+ cave[x][y+1] = Ybumper;
return;
}
}
case Xball_2:
case Xswitch:
case Xbumper:
+ case Ybumper:
case Xacid_ne:
case Xacid_nw:
case Xslide_ns:
next[x][y] = Xblank;
cave[x+1][y] = Ybomb_e;
next[x+1][y] = Xbomb_pause;
+ if (cave[x][y+1] == Xbumper)
+ cave[x][y+1] = Ybumper;
return;
}
next[x][y] = Xblank;
cave[x-1][y] = Ybomb_w;
next[x-1][y] = Xbomb_pause;
+ if (cave[x][y+1] == Xbumper)
+ cave[x][y+1] = Ybumper;
return;
}
}
next[x][y] = Xblank;
cave[x-1][y] = Ybomb_w;
next[x-1][y] = Xbomb_pause;
+ if (cave[x][y+1] == Xbumper)
+ cave[x][y+1] = Ybumper;
return;
}
next[x][y] = Xblank;
cave[x+1][y] = Ybomb_e;
next[x+1][y] = Xbomb_pause;
+ if (cave[x][y+1] == Xbumper)
+ cave[x][y+1] = Ybumper;
return;
}
}
case Xball_2:
case Xswitch:
case Xbumper:
+ case Ybumper:
case Xacid_ne:
case Xacid_nw:
case Xslide_ns:
next[x][y] = Xblank;
cave[x+1][y] = Ynut_e;
next[x+1][y] = Xnut_pause;
+ if (cave[x][y+1] == Xbumper)
+ cave[x][y+1] = Ybumper;
return;
}
next[x][y] = Xblank;
cave[x-1][y] = Ynut_w;
next[x-1][y] = Xnut_pause;
+ if (cave[x][y+1] == Xbumper)
+ cave[x][y+1] = Ybumper;
return;
}
}
next[x][y] = Xblank;
cave[x-1][y] = Ynut_w;
next[x-1][y] = Xnut_pause;
+ if (cave[x][y+1] == Xbumper)
+ cave[x][y+1] = Ybumper;
return;
}
next[x][y] = Xblank;
cave[x+1][y] = Ynut_e;
next[x+1][y] = Xnut_pause;
+ if (cave[x][y+1] == Xbumper)
+ cave[x][y+1] = Ybumper;
return;
}
}
case Xball_2:
case Xswitch:
case Xbumper:
+ case Ybumper:
case Xacid_ne:
case Xacid_nw:
case Xslide_ns:
cave[x][y] = Yspring_eB;
next[x][y] = Xblank;
cave[x+1][y] = Yspring_e;
- if (cave[x][y+1] == Xbumper)
- cave[x][y+1] = XbumperB;
-
#ifdef SPRING_ROLL
next[x+1][y] = Xspring_e;
#else
next[x+1][y] = Xspring_pause;
#endif
+ if (cave[x][y+1] == Xbumper)
+ cave[x][y+1] = Ybumper;
return;
}
cave[x][y] = Yspring_wB;
next[x][y] = Xblank;
cave[x-1][y] = Yspring_w;
- if (cave[x][y+1] == Xbumper)
- cave[x][y+1] = XbumperB;
-
#ifdef SPRING_ROLL
next[x-1][y] = Xspring_w;
#else
next[x-1][y] = Xspring_pause;
#endif
+ if (cave[x][y+1] == Xbumper)
+ cave[x][y+1] = Ybumper;
return;
}
}
cave[x][y] = Yspring_wB;
next[x][y] = Xblank;
cave[x-1][y] = Yspring_w;
- if (cave[x][y+1] == Xbumper)
- cave[x][y+1] = XbumperB;
-
#ifdef SPRING_ROLL
next[x-1][y] = Xspring_w;
#else
next[x-1][y] = Xspring_pause;
#endif
+ if (cave[x][y+1] == Xbumper)
+ cave[x][y+1] = Ybumper;
return;
}
cave[x][y] = Yspring_eB;
next[x][y] = Xblank;
cave[x+1][y] = Yspring_e;
- if (cave[x][y+1] == Xbumper)
- cave[x][y+1] = XbumperB;
-
#ifdef SPRING_ROLL
next[x+1][y] = Xspring_e;
#else
next[x+1][y] = Xspring_pause;
#endif
+ if (cave[x][y+1] == Xbumper)
+ cave[x][y+1] = Ybumper;
return;
}
}
return;
case Xbumper:
- cave[x][y+1] = XbumperB;
+ cave[x][y+1] = Ybumper;
}
switch (cave[x+1][y])
return;
case Xbumper:
- case XbumperB:
- cave[x+1][y] = XbumperB;
+ case Ybumper:
+ cave[x+1][y] = Ybumper;
next[x][y] = Xspring_w;
play_element_sound(x, y, SOUND_spring, Xspring);
return;
return;
case Xbumper:
- cave[x][y+1] = XbumperB;
+ cave[x][y+1] = Ybumper;
}
switch (cave[x-1][y])
return;
case Xbumper:
- case XbumperB:
- cave[x-1][y] = XbumperB;
+ case Ybumper:
+ cave[x-1][y] = Ybumper;
next[x][y] = Xspring_e;
play_element_sound(x, y, SOUND_spring, Xspring);
return;
{
if (lev.wonderwall_time && lev.wonderwall_state)
{
- cave[x][y] = XwonderwallB;
+ cave[x][y] = Ywonderwall;
play_element_sound(x, y, SOUND_wonder, Xwonderwall);
}
}
static void Lwheel(int x, int y)
{
if (lev.wheel_cnt && x == lev.wheel_x && y == lev.wheel_y)
- cave[x][y] = XwheelB;
+ cave[x][y] = Ywheel;
}
static void Lswitch(int x, int y)
{
if (lev.ball_state)
- cave[x][y] = XswitchB;
+ cave[x][y] = Yswitch;
}
static void Lfake_blank(int x, int y)
{
if (lev.lenses_cnt)
- cave[x][y] = Xfake_blankB;
+ cave[x][y] = Yfake_blank;
}
static void Lfake_grass(int x, int y)
{
if (lev.magnify_cnt)
- cave[x][y] = Xfake_grassB;
+ cave[x][y] = Yfake_grass;
}
static void Lfake_amoeba(int x, int y)
{
if (lev.lenses_cnt)
- cave[x][y] = Xfake_amoebaB;
+ cave[x][y] = Yfake_amoeba;
}
static void Lsand_stone(int x, int y)