// * solution tape may have native format (like Supaplex solution files)
SaveScoreTape(level_nr);
- SaveServerScore(level_nr);
+ SaveServerScore(level_nr, TRUE);
AutoPlayTapes_WaitForUpload();
}
global.autoplay_level[tape.level_nr] = TRUE;
global.autoplay_all = FALSE;
+ options.mytapes = FALSE;
}
if (autoplay.all_levelsets)
init_level_set = FALSE;
}
+ if (autoplay.all_levelsets && global.autoplay_mode == AUTOPLAY_MODE_UPLOAD)
+ {
+ boolean skip_levelset = FALSE;
+
+ if (!directoryExists(getTapeDir(autoplay.leveldir->subdir)))
+ {
+ Print("No tape directory for this level set found -- skipping.\n");
+
+ skip_levelset = TRUE;
+ }
+
+ if (CheckTapeDirectoryUploadsComplete(autoplay.leveldir->subdir))
+ {
+ Print("All tapes for this level set already uploaded -- skipping.\n");
+
+ skip_levelset = TRUE;
+ }
+
+ if (skip_levelset)
+ {
+ PrintTapeReplaySummary(&autoplay);
+
+ // continue with next level set
+ autoplay.leveldir = getNextValidAutoPlayEntry(autoplay.leveldir);
+
+ // all level sets processed
+ if (autoplay.leveldir == NULL)
+ break;
+
+ init_level_set = TRUE;
+
+ continue;
+ }
+ }
+
if (global.autoplay_mode != AUTOPLAY_MODE_FIX || patch_nr == 0)
level_nr = autoplay.level_nr++;
if (!autoplay.all_levelsets)
break;
+ if (global.autoplay_mode == AUTOPLAY_MODE_UPLOAD)
+ MarkTapeDirectoryUploadsAsComplete(autoplay.leveldir->subdir);
+
// continue with next level set
autoplay.leveldir = getNextValidAutoPlayEntry(autoplay.leveldir);
if (!global.autoplay_all && !global.autoplay_level[level_nr])
continue;
- 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 in case of missing private tapes (skip loading level)
+ if (options.mytapes && !fileExists(getTapeFilename(level_nr)))
{
autoplay.num_tape_missing++;
{
autoplay.num_tape_missing++;
- Print("Tape %03d: (invalid tape)\n", level_nr);
+ Print("Tape %03d: (no tape found)\n", level_nr);
continue;
}
}
}
- SaveServerScoreFromFile(level_nr, autoplay.tape_filename);
+ SaveServerScoreFromFile(level_nr, TRUE, autoplay.tape_filename);
boolean success = AutoPlayTapes_WaitForUpload();
if (!success)
{
- num_tapes = -1;
+ num_tapes = -num_tapes;
break;
}