From: Holger Schemel Date: Thu, 2 Jun 2016 06:43:58 +0000 (+0200) Subject: cleanup of tape recorder warp start/stop handling X-Git-Tag: 4.0.0.0-rc3~25 X-Git-Url: https://git.artsoft.org/?a=commitdiff_plain;h=924c7a3933d49d4fb53ad39c8f767ac259052404;p=rocksndiamonds.git cleanup of tape recorder warp start/stop handling --- diff --git a/src/tape.c b/src/tape.c index 2ddd754d..0c13baa6 100644 --- a/src/tape.c +++ b/src/tape.c @@ -765,9 +765,6 @@ byte *TapePlayAction() { if (TapeTime > tape.length_seconds - TAPE_PAUSE_SECONDS_BEFORE_DEATH) { - tape.fast_forward = FALSE; - tape.pause_before_end = FALSE; - TapeStopWarpForward(); TapeTogglePause(TAPE_TOGGLE_MANUAL); @@ -778,9 +775,14 @@ byte *TapePlayAction() if (tape.counter >= tape.length) /* end of tape reached */ { if (tape.warp_forward && !tape.auto_play) + { + TapeStopWarpForward(); TapeTogglePause(TAPE_TOGGLE_MANUAL); + } else + { TapeStop(); + } return NULL; } @@ -873,28 +875,25 @@ unsigned int GetTapeLengthSeconds() static void TapeStartWarpForward() { + tape.fast_forward = TRUE; tape.warp_forward = TRUE; + tape.deactivate_display = TRUE; - if (!tape.fast_forward && !tape.pause_before_end) - { - tape.pausing = FALSE; - tape.pause_before_end = TRUE; - tape.deactivate_display = TRUE; + tape.pausing = FALSE; - TapeDeactivateDisplayOn(); - } + TapeDeactivateDisplayOn(); DrawVideoDisplayPlayState(); } static void TapeStopWarpForward() { - if (tape.deactivate_display) - tape.pause_before_end = FALSE; - + tape.fast_forward = FALSE; tape.warp_forward = FALSE; tape.deactivate_display = FALSE; + tape.pause_before_end = FALSE; + TapeDeactivateDisplayOff(game_status == GAME_MODE_PLAYING); DrawVideoDisplayPlayState();