rnd-20060819-1-src
[rocksndiamonds.git] / src / tools.c
index 72b5a2902aa290a0dc57f47b64a98cefaf1d2826..c808a904b5bb6955c8fbb713ed1cb14861735153 100644 (file)
@@ -140,6 +140,11 @@ void RedrawPlayfield(boolean force_redraw, int x, int y, int width, int height)
     /* currently there is no partial redraw -- always redraw whole playfield */
 
     RedrawPlayfield_EM(TRUE);
+
+#if 1
+    /* blit playfield from scroll buffer to normal back buffer for fading in */
+    BlitScreenToBitmap_EM(backbuffer);
+#endif
   }
   else if (game_status == GAME_MODE_PLAYING && !game.envelope_active)
   {
@@ -438,11 +443,9 @@ void FadeExt(int fade_mask, int fade_mode)
 
   redraw_mask |= fade_mask;
 
-  if (fade_delay == 0)
+  if (!setup.fading || fade_delay == 0)
   {
-    if (fade_mode == FADE_MODE_CROSSFADE)
-      BlitBitmap(bitmap, backbuffer, x, y, width, height, x, y);
-    else if (fade_mode == FADE_MODE_FADE_OUT)
+    if (fade_mode == FADE_MODE_FADE_OUT)
       ClearRectangle(backbuffer, x, y, width, height);
 
     BackToFront();
@@ -470,6 +473,11 @@ void FadeCross(int fade_mask)
   FadeExt(fade_mask, FADE_MODE_CROSSFADE);
 }
 
+void FadeCrossSaveBackbuffer()
+{
+  BlitBitmap(backbuffer, bitmap_db_cross, 0, 0, WIN_XSIZE, WIN_YSIZE, 0, 0);
+}
+
 void SetMainBackgroundImageIfDefined(int graphic)
 {
   if (graphic_info[graphic].bitmap)