-1
};
+ LevelDirTree *leveldir_current_last = leveldir_current;
boolean init_level_set = FALSE;
+ int level_nr_last = level_nr;
int i;
if (!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();
{
autoplay.num_tape_missing++;
- Print("Tape %03d: (no tape found)\n", level_nr);
+ Print("Tape %03d: (invalid tape)\n", level_nr);
continue;
}
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 and number
+ leveldir_current = leveldir_current_last;
+ level_nr = level_nr_last;
+
return num_tapes;
}