From 6d73c8c86a15e02051dfba65e436d38e4ebc3a36 Mon Sep 17 00:00:00 2001 From: Holger Schemel Date: Sat, 26 Nov 2022 11:09:29 +0100 Subject: [PATCH] added setup option to continue recording after replaying tape --- src/files.c | 5 +++++ src/libgame/system.h | 1 + src/screens.c | 3 ++- src/tape.c | 6 ++++++ 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/files.c b/src/files.c index de501719..cd275d56 100644 --- a/src/files.c +++ b/src/files.c @@ -9458,6 +9458,10 @@ static struct TokenInfo global_setup_tokens[] = TYPE_SWITCH, &setup.autorecord, "automatic_tape_recording" }, + { + TYPE_SWITCH, + &setup.autorecord_after_replay, "autorecord_after_replay" + }, { TYPE_SWITCH, &setup.auto_pause_on_start, "auto_pause_on_start" @@ -10340,6 +10344,7 @@ static void setSetupInfoToDefaults(struct SetupInfo *si) si->engine_snapshot_memory = SNAPSHOT_MEMORY_DEFAULT; si->fade_screens = TRUE; si->autorecord = TRUE; + si->autorecord_after_replay = TRUE; si->auto_pause_on_start = FALSE; si->show_titlescreen = TRUE; si->quick_doors = FALSE; diff --git a/src/libgame/system.h b/src/libgame/system.h index 79eeb0b4..3378be4f 100644 --- a/src/libgame/system.h +++ b/src/libgame/system.h @@ -1511,6 +1511,7 @@ struct SetupInfo int engine_snapshot_memory; boolean fade_screens; boolean autorecord; + boolean autorecord_after_replay; boolean auto_pause_on_start; boolean show_titlescreen; boolean quick_doors; diff --git a/src/screens.c b/src/screens.c index 567ffa8b..dbbdf0c9 100644 --- a/src/screens.c +++ b/src/screens.c @@ -7206,7 +7206,8 @@ static struct TokenInfo setup_info_game[] = { TYPE_YES_NO, &setup.ask_on_game_over, "Ask on Game Over:" }, { TYPE_YES_NO, &setup.ask_on_quit_game, "Ask on Quit Game:" }, { TYPE_YES_NO, &setup.ask_on_quit_program, "Ask on Quit Program:" }, - { TYPE_SWITCH, &setup.autorecord, "Auto-Record Tapes:" }, + { TYPE_SWITCH, &setup.autorecord, "Auto-Record When Playing:" }, + { TYPE_SWITCH, &setup.autorecord_after_replay, "Auto-Record After Replay:" }, { TYPE_SWITCH, &setup.auto_pause_on_start, "Start Game in Pause Mode:" }, { TYPE_ENTER_LIST, execSetupChooseGameSpeed, "Game Speed:" }, { TYPE_STRING, &game_speed_text, "" }, diff --git a/src/tape.c b/src/tape.c index eb825c8d..4efba84a 100644 --- a/src/tape.c +++ b/src/tape.c @@ -994,6 +994,9 @@ byte *TapePlayAction(void) TapeStopWarpForward(); TapeTogglePause(TAPE_TOGGLE_MANUAL); + if (setup.autorecord_after_replay) + TapeAppendRecording(); + return NULL; } } @@ -1004,6 +1007,9 @@ byte *TapePlayAction(void) { TapeStopWarpForward(); TapeTogglePause(TAPE_TOGGLE_MANUAL); + + if (setup.autorecord_after_replay) + TapeAppendRecording(); } else { -- 2.34.1