X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ftape.c;h=0a63b79578c0aee5f24dacbd32c1fe7348d1a4e4;hb=11a3a18aa641fddf965bed8c0ad550512fb78cf9;hp=03ecf68944bc6cec9726be31cd6e6ff808d70b49;hpb=8f4f3f1000bfa5a9433b369d5de8f4552102847c;p=rocksndiamonds.git diff --git a/src/tape.c b/src/tape.c index 03ecf689..0a63b795 100644 --- a/src/tape.c +++ b/src/tape.c @@ -1381,8 +1381,10 @@ static TreeInfo *getFirstValidAutoPlayEntry(TreeInfo *node) static void AutoPlayTapes_SetScoreEntry(int score, int time) { + char *name = (options.mytapes ? setup.player_name : options.player_name); + // set unique basename for score tape (for uploading to score server) - strcpy(tape.score_tape_basename, getScoreTapeBasename(setup.player_name)); + strcpy(tape.score_tape_basename, getScoreTapeBasename(name)); // store score in first score entry scores.last_added = 0; @@ -1668,6 +1670,41 @@ static int AutoPlayTapesExt(boolean initialize) 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++; @@ -1681,6 +1718,9 @@ static int AutoPlayTapesExt(boolean initialize) 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); @@ -1841,7 +1881,7 @@ static int AutoPlayTapesExt(boolean initialize) if (!success) { - num_tapes = -1; + num_tapes = -num_tapes; break; }