added check if loading tape file fails when auto-processing tapes
[rocksndiamonds.git] / src / tape.c
index 449e79601bd399949549390286a977873d581ac8..82792fe116b922a4cd1f30062c38129dedfe1547 100644 (file)
@@ -1373,7 +1373,10 @@ void AutoPlayTapes(void)
 
       server_scores.uploaded = FALSE;
 
-      // temporarily save score tape (as the tape filename is unknown here)
+      // save score tape to upload to server; may be required for some reasons:
+      // * level set identifier in solution tapes may differ from level set
+      // * solution tape may have native format (like Supaplex solution files)
+
       SaveScoreTape(level_nr);
       SaveServerScore(level_nr);
 
@@ -1422,6 +1425,14 @@ void AutoPlayTapes(void)
 
       LoadTapeFromFilename(tape_filename);
 
+      if (tape.no_valid_file)
+      {
+       if (!fileExists(tape_filename))
+         Fail("tape file '%s' does not exist", tape_filename);
+       else
+         Fail("cannot load tape file '%s'", tape_filename);
+      }
+
       global.autoplay_leveldir = tape.level_identifier;
 
       if (tape.level_nr >= 0 && tape.level_nr < MAX_TAPES_PER_SET)