GdCave *cave = game->cave;
int sx = x * cell_size - scroll_x;
int sy = y * cell_size - scroll_y;
- int frame = game->itercycle;
int border_size = cell_size / 8;
int draw = game->drawing_buffer[y][x];
int draw_last = game->last_drawing_buffer[y][x];
int dir_to = game->dir_buffer_to[y][x];
boolean is_moving_to = (dir_to != GD_MV_STILL);
boolean is_diggable_last = el_diggable(draw_last);
- int tile = (is_moving_to && is_diggable_last ? draw_last : draw);
+ boolean is_digging = (is_moving_to && is_diggable_last);
+ int tile = (is_digging ? draw_last : draw);
int tile_gfx = get_dirt_element(tile, dir_to, FALSE);
int tile_crm = get_dirt_element(tile, dir_to, TRUE);
+ int animcycle = game->animcycle;
+ int itercycle = MIN(game->itercycle * 8 / game->itermax, 7);
+ int frame = (is_digging ? itercycle : animcycle);
struct GraphicInfo_BD *gfx = &graphic_info_bd_object[tile_gfx][frame];
struct GraphicInfo_BD *crm = &graphic_info_bd_object[tile_crm][frame];
int dirs[] = { GD_MV_UP, GD_MV_LEFT, GD_MV_RIGHT, GD_MV_DOWN };