improved tape button logic (mainly warp modes) of the tape recorder
[rocksndiamonds.git] / src / tools.c
index ab79bcda697ba58494dc76f053567c2b9120067d..4080f2d2e2621b0c1efbad149a389ab9be829450 100644 (file)
@@ -587,14 +587,16 @@ void BackToFront()
       x2 = MAX(x2, DX + DXSIZE);
       y2 = MAX(y2, DY + DYSIZE);
     }
-    else if (redraw_mask & REDRAW_DOOR_2)
+
+    if (redraw_mask & REDRAW_DOOR_2)
     {
       x1 = MIN(x1, VX);
       y1 = MIN(y1, VY);
       x2 = MAX(x2, VX + VXSIZE);
       y2 = MAX(y2, VY + VYSIZE);
     }
-    else if (redraw_mask & REDRAW_DOOR_3)
+
+    if (redraw_mask & REDRAW_DOOR_3)
     {
       x1 = MIN(x1, EX);
       y1 = MIN(y1, EY);
@@ -737,6 +739,9 @@ static void SetScreenStates_AfterFadingIn()
 
 static void SetScreenStates_BeforeFadingOut()
 {
+  // required if "fade_mask != redraw_mask" (fading only affects fade area)
+  BackToFront();
+
   // store new target screen (to use correct masked border for fading)
   gfx.fade_border_target_status = game_status;