[Cbomb] = Xbomb,
[Cnut] = Xnut,
[Cspring] = Xspring,
+ [Cspring_e] = Xspring_e,
+ [Cspring_w] = Xspring_w,
[Cpush_emerald_e] = Xpush_emerald_e,
[Cpush_emerald_w] = Xpush_emerald_w,
[Cpush_diamond_e] = Xpush_diamond_e,
lev.wheel_time = cav.wheel_time;
lev.wheel_cnt = cav.wheel_active ? cav.wheel_time : 0;
- lev.wheel_x = cav.wheel_x;
- lev.wheel_y = cav.wheel_y;
+ lev.wheel_x = cav.wheel_x + lev.left;
+ lev.wheel_y = cav.wheel_y + lev.top;
lev.wind_time = cav.wind_time;
lev.wind_cnt = cav.wind_time;
lev.killed_out_of_time = FALSE;
- lev.num_ball_arrays = cav.num_ball_arrays;
+ lev.num_eater_arrays = cav.num_eater_arrays;
+ lev.num_ball_arrays = cav.num_ball_arrays;
for (i = 0; i < 8; i++)
for (j = 0; j < 9; j++)
for (i = 0; i < GAME_TILE_MAX; i++)
lev.android_array[i] = map[cav.android_array[i]];
- /* determine number of players in this level */
lev.home_initial = 0;
+ /* check for players in this level */
for (i = 0; i < MAX_PLAYERS; i++)
{
ply[i].exists = FALSE;
lev.home = lev.home_initial;
players_left = lev.home_initial;
+ /* assign active players */
for (i = 0; i < MAX_PLAYERS; i++)
{
- if (ply[i].exists)
+ if (ply[i].exists && isActivePlayer_EM(i))
{
if (players_left)
{
ply[i].alive = TRUE;
players_left--;
}
- else
- {
- int x = cav.player_x[i];
- int y = cav.player_y[i];
+ }
+ }
- lev.cave[lev.left + x][lev.top + y] = Xblank;
- lev.next[lev.left + x][lev.top + y] = Xblank;
- lev.draw[lev.left + x][lev.top + y] = Xblank;
- }
+ /* remove inactive players */
+ for (i = 0; i < MAX_PLAYERS; i++)
+ {
+ if (ply[i].exists && !ply[i].alive)
+ {
+ int x = cav.player_x[i];
+ int y = cav.player_y[i];
+
+ lev.cave[lev.left + x][lev.top + y] = Xblank;
+ lev.next[lev.left + x][lev.top + y] = Xblank;
+ lev.draw[lev.left + x][lev.top + y] = Xblank;
}
}
//
// - game_em.use_single_button (default: TRUE)
// - game_em.use_snap_key_bug (default: FALSE)
+ // - game_em.use_random_bug (default: FALSE)
// - game_em.use_old_explosions (default: FALSE)
+ // - game_em.use_old_android (default: FALSE)
+ // - game_em.use_old_push_elements (default: FALSE)
+ // - game_em.use_old_push_into_acid (default: FALSE)
+ // - game_em.use_wrap_around (default: TRUE)
game_em.level_solved = FALSE;
game_em.game_over = FALSE;