X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_bd%2Fbd_graphics.c;h=b122219a6284575695f305040db1560830ccf96d;hb=f5d6510e9169694a95703cdbe57694f9a06b670e;hp=4797f8edb5ed2c843ac5c3fd35db85743e34188d;hpb=459e3ba4589c247d389e315d1f501ee099a8a125;p=rocksndiamonds.git diff --git a/src/game_bd/bd_graphics.c b/src/game_bd/bd_graphics.c index 4797f8ed..b122219a 100644 --- a/src/game_bd/bd_graphics.c +++ b/src/game_bd/bd_graphics.c @@ -613,8 +613,8 @@ static void gd_drawcave_tile(Bitmap *dest, GdGame *game, int x, int y, boolean d // redraw previous game element on the cave field the new element is moving to int tile_last = game->last_element_buffer[y][x]; - // only redraw previous game element if it is not collectible (like dirt etc.) - if (is_collectible(tile_last)) + // only redraw previous game element if it is diggable (like dirt etc.) + if (!is_diggable(tile_last)) tile_last = O_SPACE; struct GraphicInfo_BD *g_old = &graphic_info_bd_object[tile_last][frame]; @@ -650,7 +650,9 @@ static void gd_drawcave_tile(Bitmap *dest, GdGame *game, int x, int y, boolean d else { // if old tile also moving (like pushing player), do not redraw tile background - game->last_element_buffer[old_y][old_x] |= SKIPPED; + // (but redraw if tile and old tile are moving/falling into different directions) + if (game->dir_buffer[old_y][old_x] == game->dir_buffer[y][x]) + game->last_element_buffer[old_y][old_x] |= SKIPPED; } }