X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ftape.c;h=08ea8f8036b046ee3e28ff8ddd13ce0f95845c77;hb=541b8652d5dc0dd4d29730ceeeae1289c059be81;hp=15be125214d49ff1bf163a85e7901056af9ce198;hpb=936fb8234557301d8c2b01f0e8cf9613583e0500;p=rocksndiamonds.git diff --git a/src/tape.c b/src/tape.c index 15be1252..08ea8f80 100644 --- a/src/tape.c +++ b/src/tape.c @@ -1235,6 +1235,7 @@ void AutoPlayTapes(void) static int num_tapes_patched = 0; static int num_tape_missing = 0; static boolean level_failed[MAX_TAPES_PER_SET]; + static char *tape_filename = NULL; static int patch_nr = 0; static char *patch_name[] = { @@ -1327,6 +1328,20 @@ void AutoPlayTapes(void) audio.sound_enabled = FALSE; setup.engine_snapshot_mode = getStringCopy(STR_SNAPSHOT_MODE_OFF); + if (strSuffix(global.autoplay_leveldir, ".tape")) + { + tape_filename = global.autoplay_leveldir; + + LoadTapeFromFilename(tape_filename); + + global.autoplay_leveldir = tape.level_identifier; + + if (tape.level_nr >= 0 && tape.level_nr < MAX_TAPES_PER_SET) + global.autoplay_level[tape.level_nr] = TRUE; + + global.autoplay_all = FALSE; + } + autoplay_leveldir = getTreeInfoFromIdentifier(leveldir_first, global.autoplay_leveldir); @@ -1399,7 +1414,9 @@ void AutoPlayTapes(void) continue; #endif - if (options.mytapes) + if (tape_filename) + LoadTapeFromFilename(tape_filename); + else if (options.mytapes) LoadTape(level_nr); else LoadSolutionTape(level_nr);