X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ftape.c;h=c0dde51942e8b862dcc1aad7456cbdb5efcb599f;hb=5eabbc4d089dcf4de6ddcc78159efd6a9ecef978;hp=128c38b0f7bd04c09ddb750465132697d55fd3c4;hpb=3629adbac7c990bb4c17e4e5b9900d4257c8e12e;p=rocksndiamonds.git diff --git a/src/tape.c b/src/tape.c index 128c38b0..c0dde519 100644 --- a/src/tape.c +++ b/src/tape.c @@ -435,6 +435,16 @@ void DrawVideoDisplay(unsigned int state, unsigned int value) DrawVideoDisplay_DateTime(state, value); } +void DrawVideoDisplayLabel(unsigned int state) +{ + DrawVideoDisplay(state, VIDEO_DISPLAY_LABEL_ONLY); +} + +void DrawVideoDisplaySymbol(unsigned int state) +{ + DrawVideoDisplay(state, VIDEO_DISPLAY_SYMBOL_ONLY); +} + void DrawCompleteVideoDisplay() { struct GraphicInfo *g_tape = &graphic_info[IMG_BACKGROUND_TAPE]; @@ -724,17 +734,17 @@ void TapeTogglePause(boolean toggle_manual) if (tape.single_step && toggle_manual) tape.single_step = FALSE; - state |= (tape.pausing ? VIDEO_STATE_PAUSE_ON : VIDEO_STATE_PAUSE_OFF); + state |= VIDEO_STATE_PAUSE(tape.pausing); if (tape.pause_before_death) - state |= (tape.pausing ? VIDEO_STATE_PBEND_OFF : VIDEO_STATE_PBEND_ON); + state |= VIDEO_STATE_PBEND(!tape.pausing); else if (tape.fast_forward) - state |= (tape.pausing ? VIDEO_STATE_FFWD_OFF : VIDEO_STATE_FFWD_ON); + state |= VIDEO_STATE_FFWD(!tape.pausing); if (tape.playing) state |= VIDEO_STATE_PLAY_ON; else - state |= (tape.single_step ? VIDEO_STATE_1STEP_ON : VIDEO_STATE_1STEP_OFF); + state |= VIDEO_STATE_1STEP(tape.single_step); DrawVideoDisplay(state, 0); @@ -744,12 +754,15 @@ void TapeTogglePause(boolean toggle_manual) { TapeDeactivateDisplayOff(game_status == GAME_MODE_PLAYING); } - else + else if (tape.deactivate_display) { - if (tape.deactivate_display) - TapeDeactivateDisplayOn(); + TapeDeactivateDisplayOn(); - DrawVideoDisplay(VIDEO_STATE_WARP_ON, VIDEO_DISPLAY_SYMBOL_ONLY); + DrawVideoDisplaySymbol(VIDEO_STATE_WARP_ON); + } + else + { + DrawVideoDisplaySymbol(VIDEO_STATE_WARP2_ON); } if (tape.quick_resume) @@ -838,8 +851,6 @@ byte *TapePlayAction() tape.fast_forward = FALSE; tape.pause_before_death = FALSE; - DrawVideoDisplay(VIDEO_STATE_PBEND_OFF, 0); - TapeStopWarpForward(); TapeTogglePause(TAPE_TOGGLE_MANUAL); @@ -850,16 +861,12 @@ byte *TapePlayAction() if (update_video_display && !tape.deactivate_display) { if (tape.pause_before_death) - DrawVideoDisplay(update_draw_label_on ? - VIDEO_STATE_PBEND_ON : - VIDEO_STATE_PBEND_OFF, VIDEO_DISPLAY_LABEL_ONLY); + DrawVideoDisplayLabel(VIDEO_STATE_PBEND(update_draw_label_on)); else if (tape.fast_forward) - DrawVideoDisplay(update_draw_label_on ? - VIDEO_STATE_FFWD_ON : - VIDEO_STATE_FFWD_OFF, VIDEO_DISPLAY_LABEL_ONLY); + DrawVideoDisplayLabel(VIDEO_STATE_FFWD(update_draw_label_on)); if (tape.warp_forward) - DrawVideoDisplay(VIDEO_STATE_WARP2_ON, VIDEO_DISPLAY_SYMBOL_ONLY); + DrawVideoDisplaySymbol(VIDEO_STATE_WARP2_ON); } if (tape.counter >= tape.length) /* end of tape reached */ @@ -954,17 +961,17 @@ static void TapeStartWarpForward() TapeDeactivateDisplayOn(); DrawVideoDisplay(VIDEO_STATE_PBEND_ON, 0); - DrawVideoDisplay(VIDEO_STATE_WARP_ON, VIDEO_DISPLAY_SYMBOL_ONLY); + DrawVideoDisplaySymbol(VIDEO_STATE_WARP_ON); } else { - DrawVideoDisplay(VIDEO_STATE_WARP2_ON, VIDEO_DISPLAY_SYMBOL_ONLY); + DrawVideoDisplaySymbol(VIDEO_STATE_WARP2_ON); } } static void TapeStopWarpForward() { - int state = (tape.pausing ? VIDEO_STATE_PAUSE_ON : VIDEO_STATE_PAUSE_OFF); + int state = VIDEO_STATE_PAUSE(tape.pausing); if (tape.deactivate_display) tape.pause_before_death = FALSE; @@ -974,12 +981,10 @@ static void TapeStopWarpForward() TapeDeactivateDisplayOff(game_status == GAME_MODE_PLAYING); - if (tape.pause_before_death) - state |= VIDEO_STATE_WARP_OFF | VIDEO_STATE_PBEND_ON; - else if (tape.fast_forward) - state |= VIDEO_STATE_WARP_OFF | VIDEO_STATE_FFWD_ON; - else - state |= VIDEO_STATE_WARP_OFF | VIDEO_STATE_PLAY_ON; + state |= VIDEO_STATE_WARP_OFF; + state |= (tape.pause_before_death ? VIDEO_STATE_PBEND_ON : + tape.fast_forward ? VIDEO_STATE_FFWD_ON : + VIDEO_STATE_PLAY_ON); DrawVideoDisplay(state, 0); } @@ -994,8 +999,7 @@ static void TapeSingleStep() tape.single_step = !tape.single_step; - DrawVideoDisplay((tape.single_step ? VIDEO_STATE_1STEP_ON : - VIDEO_STATE_1STEP_OFF), 0); + DrawVideoDisplay(VIDEO_STATE_1STEP(tape.single_step), 0); } void TapeQuickSave() @@ -1475,7 +1479,7 @@ static void HandleTapeButtonsExt(int id) DrawVideoDisplay(VIDEO_STATE_FFWD_OFF | VIDEO_STATE_PBEND_ON, 0); if (tape.warp_forward) - DrawVideoDisplay(VIDEO_STATE_WARP2_ON, VIDEO_DISPLAY_SYMBOL_ONLY); + DrawVideoDisplaySymbol(VIDEO_STATE_WARP2_ON); } else /* AUTO PAUSE -> NORMAL PLAY */ {