fixed redraw bug if gadget buttons are defined outside viewports
[rocksndiamonds.git] / src / tape.c
index 852b82d77701274131a566cfab4cf807c55eed3b..6cf797198dcf20bf456c1b76c75f5b1e64d52619 100644 (file)
@@ -596,6 +596,10 @@ void TapeStartRecording(int random_seed)
 
   SetDrawDeactivationMask(REDRAW_NONE);
   audio.sound_deactivated = FALSE;
+
+  // required here to update video display if tape door is closed
+  if (GetDoorState() & DOOR_CLOSE_2)
+    OpenDoor(GetDoorState() | DOOR_NO_DELAY | DOOR_FORCE_REDRAW);
 }
 
 static void TapeStartGameRecording(void)
@@ -1407,7 +1411,8 @@ void RedrawTapeButtons(void)
     RedrawGameButtonsOnTape();
 
   // RedrawGadget() may have set REDRAW_ALL if buttons are defined off-area
-  redraw_mask &= ~REDRAW_ALL;
+  if (redraw_mask & REDRAW_ALL)
+    redraw_mask = REDRAW_FIELD | REDRAW_DOORS;
 }
 
 void RedrawOrRemapTapeButtons(void)