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);
SY + (dy == +1 ? MINI_TILEY : 0));
#endif
- printf("::: ScrollMiniLevel: A.1\n");
-
if (dx)
{
x = (dx == 1 ? 0 : ed_fieldx - 1);
DrawMiniElementOrWall(x, y, from_x, from_y);
}
- printf("::: ScrollMiniLevel: Z\n");
-
redraw_mask |= REDRAW_FIELD;
BackToFront();
}
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;
return;
#endif
-#if 1
+#if 0
+ /* (directly solved in BlitBitmap() now) */
if (bitmap_db_field2 == NULL)
bitmap_db_field2 = CreateBitmap(FXSIZE, FYSIZE, DEFAULT_DEPTH);
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,