next[x][y] = Zplayer;
play_element_sound(x, y, SOUND_collect, element);
lev.score += lev.diamond_score;
- lev.required = lev.required < 3 ? 0 : lev.required - 3;
+ lev.gems_needed = lev.gems_needed < 3 ? 0 : lev.gems_needed - 3;
game.snapshot.collected_item = TRUE;
ply->anim = PLY_walk_n + anim;
ply->x = x;
next[x][y] = Zplayer;
play_element_sound(x, y, SOUND_collect, element);
lev.score += lev.emerald_score;
- lev.required = lev.required < 1 ? 0 : lev.required - 1;
+ lev.gems_needed = lev.gems_needed < 1 ? 0 : lev.gems_needed - 1;
game.snapshot.collected_item = TRUE;
ply->anim = PLY_walk_n + anim;
ply->x = x;
next[x][y] = Xblank;
play_element_sound(x, y, SOUND_collect, element);
lev.score += lev.diamond_score;
- lev.required = lev.required < 3 ? 0 : lev.required - 3;
+ lev.gems_needed = lev.gems_needed < 3 ? 0 : lev.gems_needed - 3;
game.snapshot.collected_item = TRUE;
ply->anim = PLY_walk_n + anim;
break;
next[x][y] = Xblank;
play_element_sound(x, y, SOUND_collect, element);
lev.score += lev.emerald_score;
- lev.required = lev.required < 1 ? 0 : lev.required - 1;
+ lev.gems_needed = lev.gems_needed < 1 ? 0 : lev.gems_needed - 1;
game.snapshot.collected_item = TRUE;
ply->anim = PLY_walk_n + anim;
break;
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] = Ybumper;
-
#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] = Ybumper;
-
#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] = Ybumper;
-
#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] = Ybumper;
-
#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;
}
}
static void Lexit(int x, int y)
{
- if (lev.required > 0)
+ if (lev.gems_needed > 0)
return;
switch (RANDOM(64) / 21)