game_bd.game->itercycle = 0;
game_bd.game->itermax = 8; // default; dynamically changed at runtime
game_bd.game->itermax_last = game_bd.game->itermax;
+ game_bd.game->itermax2[0] = game_bd.game->itermax;
+ game_bd.game->itermax2[1] = game_bd.game->itermax;
+
+ game_bd.player_moving = FALSE;
+ game_bd.player_snapping = FALSE;
// default: start with completely covered playfield
int next_state = GAME_INT_START_UNCOVER + 1;
play_game_func(game_bd.game, action[0]);
}
+ boolean single_step_mode_paused =
+ CheckSingleStepMode_BD(check_iteration_reached(game_bd.game),
+ game_bd.player_moving,
+ game_bd.player_snapping);
+
+ // draw final movement animation frame before going to single step pause mode
+ if (single_step_mode_paused)
+ game_bd.game->itercycle = game_bd.game->itermax - 1;
+
RedrawPlayfield_BD(FALSE);
UpdateGameDoorValues_BD();
{
engine_snapshot_bd.element_buffer[x][y] = game->element_buffer[y][x];
engine_snapshot_bd.last_element_buffer[x][y] = game->last_element_buffer[y][x];
- engine_snapshot_bd.dir_buffer[x][y] = game->dir_buffer[y][x];
+ engine_snapshot_bd.dir_buffer_from[x][y] = game->dir_buffer_from[y][x];
+ engine_snapshot_bd.dir_buffer_to[x][y] = game->dir_buffer_to[y][x];
engine_snapshot_bd.gfx_buffer[x][y] = game->gfx_buffer[y][x];
}
}
engine_snapshot_bd.game.element_buffer = game->element_buffer;
engine_snapshot_bd.game.last_element_buffer = game->last_element_buffer;
- engine_snapshot_bd.game.dir_buffer = game->dir_buffer;
+ engine_snapshot_bd.game.dir_buffer_from = game->dir_buffer_from;
+ engine_snapshot_bd.game.dir_buffer_to = game->dir_buffer_to;
engine_snapshot_bd.game.gfx_buffer = game->gfx_buffer;
*game = engine_snapshot_bd.game;
{
game->element_buffer[y][x] = engine_snapshot_bd.element_buffer[x][y];
game->last_element_buffer[y][x] = engine_snapshot_bd.last_element_buffer[x][y];
- game->dir_buffer[y][x] = engine_snapshot_bd.dir_buffer[x][y];
+ game->dir_buffer_from[y][x] = engine_snapshot_bd.dir_buffer_from[x][y];
+ game->dir_buffer_to[y][x] = engine_snapshot_bd.dir_buffer_to[x][y];
game->gfx_buffer[y][x] = engine_snapshot_bd.gfx_buffer[x][y];
}
}