added setup option to continue recording after replaying tape
[rocksndiamonds.git] / src / tape.c
index 3fb22a8d598369b9f6fbb3791fa8c33317c52829..4efba84a76f7c05072ca49121845334cc744b940 100644 (file)
@@ -664,6 +664,7 @@ void TapeErase(void)
   tape.level_nr = level_nr;
   tape.pos[tape.counter].delay = 0;
   tape.changed = TRUE;
+  tape.solved = FALSE;
 
   tape.random_seed = InitRND(level.random_seed);
 
@@ -760,6 +761,7 @@ static void TapeAppendRecording(void)
   // start recording
   tape.recording = TRUE;
   tape.changed = TRUE;
+  tape.solved = FALSE;
 
   // set current delay (for last played move)
   tape.pos[tape.counter].delay = tape.delay_played;
@@ -992,16 +994,22 @@ byte *TapePlayAction(void)
       TapeStopWarpForward();
       TapeTogglePause(TAPE_TOGGLE_MANUAL);
 
+      if (setup.autorecord_after_replay)
+       TapeAppendRecording();
+
       return NULL;
     }
   }
 
   if (tape.counter >= tape.length)     // end of tape reached
   {
-    if (tape.warp_forward && !tape.auto_play)
+    if (!tape.auto_play)
     {
       TapeStopWarpForward();
       TapeTogglePause(TAPE_TOGGLE_MANUAL);
+
+      if (setup.autorecord_after_replay)
+       TapeAppendRecording();
     }
     else
     {