X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ftape.c;h=8087860ba5b33d4a7fd2f7ec4396a3f6a7910e06;hb=eb51a78900b95e3f7c9c3fbc9e4cf9360b374188;hp=919bd418455f9749b5490bf4445de947b3371a05;hpb=a5a80a3aeba9c0c91d52ce1e3ec3860a55ccf4d3;p=rocksndiamonds.git diff --git a/src/tape.c b/src/tape.c index 919bd418..8087860b 100644 --- a/src/tape.c +++ b/src/tape.c @@ -672,11 +672,21 @@ void TapeRecordAction(byte action_raw[MAX_PLAYERS]) } } -void TapeTogglePause(boolean toggle_manual) +void TapeTogglePause(boolean toggle_mode) { + if (tape.playing && tape.pausing && (toggle_mode & TAPE_TOGGLE_PLAY_PAUSE)) + { + // continue playing in normal mode + tape.fast_forward = FALSE; + tape.warp_forward = FALSE; + tape.deactivate_display = FALSE; + + tape.pause_before_end = FALSE; + } + tape.pausing = !tape.pausing; - if (tape.single_step && toggle_manual) + if (tape.single_step && (toggle_mode & TAPE_TOGGLE_MANUAL)) tape.single_step = FALSE; DrawVideoDisplayCurrentState(); @@ -1367,14 +1377,7 @@ static void HandleTapeButtonsExt(int id) { if (tape.pausing) /* PAUSE -> PLAY */ { - // continue playing in normal mode - tape.fast_forward = FALSE; - tape.warp_forward = FALSE; - tape.deactivate_display = FALSE; - - tape.pause_before_end = FALSE; - - TapeTogglePause(TAPE_TOGGLE_MANUAL); + TapeTogglePause(TAPE_TOGGLE_MANUAL | TAPE_TOGGLE_PLAY_PAUSE); } else if (!tape.fast_forward) /* PLAY -> FFWD */ {