X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ftape.c;h=21a5945bc92b0519016e7029547ca96f8d5187d2;hb=329e47f3131d6d3cad97adff27db207c906f5f20;hp=3d6774dd95390f6ca92f930bfbd64f8935311978;hpb=2cfee1e01acbf98c4ff8bb0f9fc04b7b5605751f;p=rocksndiamonds.git diff --git a/src/tape.c b/src/tape.c index 3d6774dd..21a5945b 100644 --- a/src/tape.c +++ b/src/tape.c @@ -1629,18 +1629,35 @@ void AutoPlayTapes(void) if (global.autoplay_mode == AUTOPLAY_MODE_UPLOAD) { + boolean use_temporary_tape_file = FALSE; + Print("Tape %03d:\n", level_nr); AutoPlayTapes_SetScoreEntry(0, 0); if (tape_filename == NULL) + { tape_filename = (options.mytapes ? getTapeFilename(level_nr) : - getSolutionTapeFilename(level_nr)); + getDefaultSolutionTapeFilename(level_nr)); + + if (!fileExists(tape_filename)) + { + // non-standard solution tape -- save to temporary file + tape_filename = getTemporaryTapeFilename(); + + SaveTapeToFilename(tape_filename); + + use_temporary_tape_file = TRUE; + } + } SaveServerScoreFromFile(level_nr, tape_filename); AutoPlayTapes_WaitForUpload(); + if (use_temporary_tape_file) + unlink(tape_filename); + // required for uploading multiple tapes tape_filename = NULL;