fixed smooth animations for snapping in BD engine for non-black space
authorHolger Schemel <holger.schemel@virtion.de>
Mon, 26 Aug 2024 19:53:42 +0000 (21:53 +0200)
committerHolger Schemel <holger.schemel@virtion.de>
Tue, 27 Aug 2024 08:33:45 +0000 (10:33 +0200)
src/game_bd/bd_graphics.c

index d2d0e0fa80f6fb2bb7b99c025484d4a8a70943b1..a0ee42f67ef2bed980ee8c542e58168c80d38f55 100644 (file)
@@ -825,6 +825,14 @@ static void gd_drawcave_tile(Bitmap *dest, GdGame *game, int x, int y, boolean d
     if (is_moving_from)
       blit_bitmap = BlitBitmapMasked;
 
+    // if player is snapping a diggable game element, draw non-moving "space" element
+    // (special case required if "space" element is graphically defined as non-black)
+    if (tile == O_SPACE && el_diggable(tile_last))
+    {
+      gx = (dx != 0 ? shift - gx : gx);
+      gy = (dy != 0 ? shift - gy : gy);
+    }
+
     blit_bitmap(tile_bitmap, dest, gx, gy, xsize, ysize, tx, ty);
 
     // when using dynamic scheduling (mainly BD1 levels), redraw tile in next frame