fixed redraw/fade bugs when redefining the playfield size or position
[rocksndiamonds.git] / src / libgame / system.c
index 25edb0effd65a959df172d43fa84f9c03d77ddcb..eec5d192960ac9e784d5232ad8e47ef5ccb90dc1 100644 (file)
@@ -170,6 +170,8 @@ void InitGfxFieldInfo(int sx, int sy, int sxsize, int sysize,
 
   gfx.field_save_buffer = field_save_buffer;
 
 
   gfx.field_save_buffer = field_save_buffer;
 
+  gfx.drawing_area_changed = FALSE;
+
   SetDrawDeactivationMask(REDRAW_NONE);                /* do not deactivate drawing */
   SetDrawBackgroundMask(REDRAW_NONE);          /* deactivate masked drawing */
 }
   SetDrawDeactivationMask(REDRAW_NONE);                /* do not deactivate drawing */
   SetDrawBackgroundMask(REDRAW_NONE);          /* deactivate masked drawing */
 }
@@ -463,6 +465,16 @@ boolean DrawingOnBackground(int x, int y)
          CheckDrawingArea(x, y, 1, 1, gfx.draw_background_mask));
 }
 
          CheckDrawingArea(x, y, 1, 1, gfx.draw_background_mask));
 }
 
+boolean DrawingAreaChanged()
+{
+  int drawing_area_changed = gfx.drawing_area_changed;
+
+  // reset flag for change of drawing area after querying it
+  gfx.drawing_area_changed = FALSE;
+
+  return drawing_area_changed;
+}
+
 static boolean InClippedRectangle(Bitmap *bitmap, int *x, int *y,
                                  int *width, int *height, boolean is_dest)
 {
 static boolean InClippedRectangle(Bitmap *bitmap, int *x, int *y,
                                  int *width, int *height, boolean is_dest)
 {