rnd-20040512-1-src
[rocksndiamonds.git] / src / tape.c
index 34474bde1eba4b333a6ba1c7e7c7b8457cdccc3f..fb705a9f9204bfea3fa3aaed7a6b27b5c9428cdf 100644 (file)
@@ -734,7 +734,7 @@ static void TapeStartGameRecording()
 {
   TapeStartRecording();
 
-#if defined(PLATFORM_UNIX)
+#if defined(NETWORK_AVALIABLE)
   if (options.network)
     SendToServer_StartPlaying();
   else
@@ -962,7 +962,7 @@ byte *TapePlayAction()
        DrawVideoDisplay(VIDEO_STATE_WARP2_ON, VIDEO_DISPLAY_SYMBOL_ONLY);
     }
 
-    if (TimePlayed > tape.length_seconds - TAPE_PAUSE_SECONDS_BEFORE_DEATH)
+    if (TapeTime > tape.length_seconds - TAPE_PAUSE_SECONDS_BEFORE_DEATH)
     {
       TapeTogglePause(TAPE_TOGGLE_MANUAL);
       return NULL;
@@ -1152,6 +1152,17 @@ void TapeQuickSave()
 
 void TapeQuickLoad()
 {
+  if (tape.recording && !Request("Stop recording and load tape ?",
+                                REQ_ASK | REQ_STAY_CLOSED))
+  {
+    BlitBitmap(bitmap_db_door, bitmap_db_door,
+              DOOR_GFX_PAGEX2, DOOR_GFX_PAGEY1, DXSIZE, DYSIZE,
+              DOOR_GFX_PAGEX1, DOOR_GFX_PAGEY1);
+    OpenDoor(DOOR_OPEN_1);
+
+    return;
+  }
+
   if (game_status == GAME_MODE_PLAYING || game_status == GAME_MODE_MAIN)
   {
     TapeStop();
@@ -1547,9 +1558,15 @@ static void HandleTapeButtons(struct GadgetInfo *gi)
        }
        else                                    /* AUTO PAUSE -> NORMAL PLAY */
        {
+#if 1
+         if (tape.warp_forward)
+           TapeStopWarpForward();
+#else
+         tape.warp_forward = FALSE;
+#endif
          tape.fast_forward = FALSE;
          tape.pause_before_death = FALSE;
-         tape.warp_forward = FALSE;
+
 #if 1
          DrawVideoDisplay(VIDEO_STATE_PBEND_OFF | VIDEO_STATE_PLAY_ON, 0);
 #else