X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ftape.c;h=68eeaccf0cd1267159d239005ce76870d7b1e6a6;hb=08064fe872e3dd46ce0850b82fc535944f9bd0c2;hp=d5d07236ea392c22910f4e17c0845f216b3c5819;hpb=6f5d13e1d289522630e9f5f4827420a2229876af;p=rocksndiamonds.git diff --git a/src/tape.c b/src/tape.c index d5d07236..68eeaccf 100644 --- a/src/tape.c +++ b/src/tape.c @@ -1466,6 +1466,7 @@ static int AutoPlayTapesExt(boolean initialize) }; LevelDirTree *leveldir_current_last = leveldir_current; boolean init_level_set = FALSE; + int level_nr_last = level_nr; int i; if (!initialize) @@ -1695,17 +1696,18 @@ static int AutoPlayTapesExt(boolean initialize) if (!global.autoplay_all && !global.autoplay_level[level_nr]) continue; - if (global.autoplay_mode == AUTOPLAY_MODE_UPLOAD) + char *tape_filename = (autoplay.tape_filename ? autoplay.tape_filename : + options.mytapes ? getTapeFilename(level_nr) : + getSolutionTapeFilename(level_nr)); + + // speed things up in case of missing tapes (by skipping loading level) + if (!fileExists(tape_filename)) { - // speed things up when uploading all existing private tapes - if (autoplay.all_levelsets && !fileExists(getTapeFilename(level_nr))) - { - autoplay.num_tape_missing++; + autoplay.num_tape_missing++; - Print("Tape %03d: (no tape found)\n", level_nr); + Print("Tape %03d: (no tape found)\n", level_nr); - continue; - } + continue; } TapeErase(); @@ -1737,7 +1739,7 @@ static int AutoPlayTapesExt(boolean initialize) { autoplay.num_tape_missing++; - Print("Tape %03d: (no tape found)\n", level_nr); + Print("Tape %03d: (invalid tape)\n", level_nr); continue; } @@ -1851,14 +1853,24 @@ static int AutoPlayTapesExt(boolean initialize) return num_tapes; } + if (global.autoplay_mode == AUTOPLAY_MODE_UPLOAD) + { + Print("\n"); + PrintLine("=", 79); + Print("SUMMARY: %d tapes uploaded.\n", num_tapes); + PrintLine("=", 79); + } + // clear timestamp for batch tape upload (required after interactive upload) global.autoplay_time = 0; - if (program.headless) + // exit if running headless or if visually auto-playing tapes + if (program.headless || global.autoplay_mode != AUTOPLAY_MODE_UPLOAD) CloseAllAndExit(0); - // when running interactively, restore last selected level set + // when running interactively, restore last selected level set and number leveldir_current = leveldir_current_last; + level_nr = level_nr_last; return num_tapes; }