From 541b8652d5dc0dd4d29730ceeeae1289c059be81 Mon Sep 17 00:00:00 2001 From: Holger Schemel Date: Thu, 6 May 2021 00:29:28 +0200 Subject: [PATCH] added support for playing/testing tape by filename --- src/tape.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) 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); -- 2.34.1