rnd-20100420-1-src
authorHolger Schemel <info@artsoft.org>
Tue, 20 Apr 2010 15:35:39 +0000 (17:35 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:59:09 +0000 (10:59 +0200)
src/conftime.h
src/game_sp/DDScrollBuffer.c
src/libgame/system.c

index e5f38b5c96077dd1e3a288b0e0ba8254c53af82d..bd40385507af3ab0a0fa28db915bd4bf5f5de121 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "2010-04-19 01:09"
+#define COMPILE_DATE_STRING "2010-04-20 17:35"
index eeecf2a784ff7945c658f17296e20e9b26972789..e8bd2fbce26221c29eb956408a597d7c962dd3d4 100644 (file)
@@ -253,8 +253,6 @@ void BlitScreenToBitmap_SP(Bitmap *target_bitmap)
 #if 1
   if (ExplosionShakeMurphy != 0)
   {
-    printf("::: ExplosionShakeMurphy\n");
-
     px += TILEX / 2 - GetSimpleRandom(TILEX + 1);
     py += TILEY / 2 - GetSimpleRandom(TILEX + 1);
   }
index bccb5fddddbc847b0208998eb783968cb86b9dd9..e67cbaeb80c1701f879022671243aaf716f64115 100644 (file)
@@ -527,19 +527,23 @@ static boolean ValidClippedRectangle(Bitmap *bitmap, int *x, int *y,
 
   if (*x < 0)
   {
-    *x = 0;
     *width += *x;
+    *x = 0;
   }
   else if (*x + *width > bitmap->width)
+  {
     *width = bitmap->width - *x;
+  }
 
   if (*y < 0)
   {
-    *y = 0;
     *height += *y;
+    *y = 0;
   }
   else if (*y + *height > bitmap->height)
+  {
     *height = bitmap->height - *y;
+  }
 
   return TRUE;
 }
@@ -548,6 +552,9 @@ void BlitBitmap(Bitmap *src_bitmap, Bitmap *dst_bitmap,
                int src_x, int src_y, int width, int height,
                int dst_x, int dst_y)
 {
+  int dst_x_unclipped = dst_x;
+  int dst_y_unclipped = dst_y;
+
   if (DrawingDeactivated(dst_x, dst_y, width, height))
     return;
 
@@ -555,6 +562,11 @@ void BlitBitmap(Bitmap *src_bitmap, Bitmap *dst_bitmap,
   if (!ValidClippedRectangle(src_bitmap, &src_x, &src_y, &width, &height) ||
       !ValidClippedRectangle(dst_bitmap, &dst_x, &dst_y, &width, &height))
     return;
+
+  /* source x/y might need adjustment if destination x/y was clipped top/left */
+  src_x += dst_x - dst_x_unclipped;
+  src_y += dst_y - dst_y_unclipped;
+
 #else
   /* skip if rectangle starts outside bitmap */
   if (src_x >= src_bitmap->width ||