rnd-20061101-1-src
[rocksndiamonds.git] / src / libgame / system.c
index f3696277749fe3c6a987c18e77118d1306a0247d..5ccb5eb71257414f36e6dba3ae7d1a6682fcbdde 100644 (file)
@@ -321,8 +321,7 @@ void CloseVideoDisplay(void)
 #endif
 }
 
-void InitVideoBuffer(DrawBuffer **backbuffer, DrawWindow **window,
-                    int width, int height, int depth, boolean fullscreen)
+void InitVideoBuffer(int width, int height, int depth, boolean fullscreen)
 {
   video.width = width;
   video.height = height;
@@ -334,10 +333,12 @@ void InitVideoBuffer(DrawBuffer **backbuffer, DrawWindow **window,
   video.fullscreen_mode_current = NULL;
 
 #if defined(TARGET_SDL)
-  SDLInitVideoBuffer(backbuffer, window, fullscreen);
+  SDLInitVideoBuffer(&backbuffer, &window, fullscreen);
 #else
-  X11InitVideoBuffer(backbuffer, window);
+  X11InitVideoBuffer(&backbuffer, &window);
 #endif
+
+  drawto = backbuffer;
 }
 
 Bitmap *CreateBitmapStruct(void)
@@ -424,13 +425,16 @@ inline static boolean CheckDrawingArea(int x, int y, int width, int height,
   if (draw_mask & REDRAW_ALL)
     return TRUE;
 
-  if ((draw_mask & REDRAW_FIELD) && x < gfx.real_sx + gfx.full_sxsize)
+  if ((draw_mask & REDRAW_FIELD) &&
+      x >= gfx.real_sx && x < gfx.real_sx + gfx.full_sxsize)
     return TRUE;
 
-  if ((draw_mask & REDRAW_DOOR_1) && x >= gfx.dx && y < gfx.dy + gfx.dysize)
+  if ((draw_mask & REDRAW_DOOR_1) &&
+      x >= gfx.dx && y < gfx.dy + gfx.dysize)
     return TRUE;
 
-  if ((draw_mask & REDRAW_DOOR_2) && x >= gfx.dx && y >= gfx.vy)
+  if ((draw_mask & REDRAW_DOOR_2) &&
+      x >= gfx.dx && y >= gfx.vy)
     return TRUE;
 
   return FALSE;
@@ -459,14 +463,15 @@ void BlitBitmap(Bitmap *src_bitmap, Bitmap *dst_bitmap,
 }
 
 void FadeRectangle(Bitmap *bitmap_cross, int x, int y, int width, int height,
-                  int fade_mode, int fade_delay, int post_delay)
+                  int fade_mode, int fade_delay, int post_delay,
+                  void (*draw_border_function)(void))
 {
 #if defined(TARGET_SDL)
   SDLFadeRectangle(bitmap_cross, x, y, width, height,
-                  fade_mode, fade_delay, post_delay);
+                  fade_mode, fade_delay, post_delay, draw_border_function);
 #else
   X11FadeRectangle(bitmap_cross, x, y, width, height,
-                  fade_mode, fade_delay, post_delay);
+                  fade_mode, fade_delay, post_delay, draw_border_function);
 #endif
 }