rnd-20080125-1-src
authorHolger Schemel <info@artsoft.org>
Fri, 25 Jan 2008 21:53:19 +0000 (22:53 +0100)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:56:49 +0000 (10:56 +0200)
src/conftime.h
src/editor.c
src/game.c
src/libgame/system.c

index fa795ebb616cc1421f7256b75f47eaf910a4c42b..0513971fec2c2b8721a72f012da722e37d8b8230 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "2008-01-22 01:00"
+#define COMPILE_DATE_STRING "2008-01-25 22:26"
index 57331cfc5eab280e439d76f1ed7f75ea554caf6f..bc2d896973b1626ec6421dab17380e16f2d79aaa 100644 (file)
@@ -4989,14 +4989,16 @@ static void DrawDrawingArea(int id)
 
 static void ScrollMiniLevel(int from_x, int from_y, int scroll)
 {
-#if 1
+#if 0
+  /* (directly solved in BlitBitmap() now) */
   static Bitmap *tmp_backbuffer = NULL;
 #endif
   int x, y;
   int dx = (scroll == ED_SCROLL_LEFT ? -1 : scroll == ED_SCROLL_RIGHT ? 1 : 0);
   int dy = (scroll == ED_SCROLL_UP   ? -1 : scroll == ED_SCROLL_DOWN  ? 1 : 0);
 
-#if 1
+#if 0
+  /* (directly solved in BlitBitmap() now) */
   if (tmp_backbuffer == NULL)
     tmp_backbuffer = CreateBitmap(WIN_XSIZE, WIN_YSIZE, DEFAULT_DEPTH);
 
@@ -5028,8 +5030,6 @@ static void ScrollMiniLevel(int from_x, int from_y, int scroll)
             SY + (dy == +1 ? MINI_TILEY : 0));
 #endif
 
-  printf("::: ScrollMiniLevel: A.1\n");
-
   if (dx)
   {
     x = (dx == 1 ? 0 : ed_fieldx - 1);
@@ -5043,8 +5043,6 @@ static void ScrollMiniLevel(int from_x, int from_y, int scroll)
       DrawMiniElementOrWall(x, y, from_x, from_y);
   }
 
-  printf("::: ScrollMiniLevel: Z\n");
-
   redraw_mask |= REDRAW_FIELD;
   BackToFront();
 }
index cf5441bf4772d8e5d5e71d7768b22a963e13d009..723143690961eda9c7c08ae37d8264d068b0ee69 100644 (file)
@@ -12674,7 +12674,8 @@ static boolean AllPlayersInVisibleScreen()
 
 void ScrollLevel(int dx, int dy)
 {
-#if 1
+#if 0
+  /* (directly solved in BlitBitmap() now) */
   static Bitmap *bitmap_db_field2 = NULL;
   int softscroll_offset = (setup.soft_scrolling ? TILEX : 0);
   int x, y;
@@ -12689,7 +12690,8 @@ void ScrollLevel(int dx, int dy)
     return;
 #endif
 
-#if 1
+#if 0
+  /* (directly solved in BlitBitmap() now) */
   if (bitmap_db_field2 == NULL)
     bitmap_db_field2 = CreateBitmap(FXSIZE, FYSIZE, DEFAULT_DEPTH);
 
index 7a6618eb9176dc7b08b8de21a9a5891c50c0e25b..20ea20bed03553ee0e76107830f8dc3031045e41 100644 (file)
@@ -491,8 +491,34 @@ void BlitBitmap(Bitmap *src_bitmap, Bitmap *dst_bitmap,
   if (DrawingDeactivated(dst_x, dst_y, width, height))
     return;
 
-  sysCopyArea(src_bitmap, dst_bitmap, src_x, src_y, width, height,
-             dst_x, dst_y, BLIT_OPAQUE);
+#if 0
+  /* !!! APPARENTLY THIS HAS BEEN FIXED IN SDL 1.2.12 !!! */
+#if defined(TARGET_SDL) && defined(PLATFORM_WIN32)
+  if (src_bitmap == dst_bitmap)
+  {
+    /* !!! THIS IS A BUG (IN THE SDL LIBRARY?) AND SHOULD BE FIXED !!! */
+
+    /* needed when blitting directly to same bitmap -- should not be needed with
+       recent SDL libraries, but apparently does not work in 1.2.11 directly */
+
+    static Bitmap *tmp_bitmap = NULL;
+
+    if (tmp_bitmap == NULL)
+      tmp_bitmap = CreateBitmap(MAX(FXSIZE, WIN_XSIZE),
+                               MAX(FYSIZE, WIN_YSIZE), DEFAULT_DEPTH);
+
+    sysCopyArea(src_bitmap, tmp_bitmap,
+               src_x, src_y, width, height, dst_x, dst_y, BLIT_OPAQUE);
+    sysCopyArea(tmp_bitmap, dst_bitmap,
+               src_x, src_y, width, height, dst_x, dst_y, BLIT_OPAQUE);
+
+    return;
+  }
+#endif
+#endif
+
+  sysCopyArea(src_bitmap, dst_bitmap,
+             src_x, src_y, width, height, dst_x, dst_y, BLIT_OPAQUE);
 }
 
 void FadeRectangle(Bitmap *bitmap_cross, int x, int y, int width, int height,