X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Ftape.c;h=5a879d12ac0af05f624130ea6d5adf7ed8fe4917;hp=8087860ba5b33d4a7fd2f7ec4396a3f6a7910e06;hb=8d71e6fb8309bd90ce5f2900d84c686b17950492;hpb=0f93b05731f58802973324200cfd8aecb11a4786 diff --git a/src/tape.c b/src/tape.c index 8087860b..5a879d12 100644 --- a/src/tape.c +++ b/src/tape.c @@ -889,15 +889,16 @@ unsigned int GetTapeLengthSeconds() return (GetTapeLengthFrames() * GAME_FRAME_DELAY / 1000); } -static void TapeStartWarpForward() +static void TapeStartWarpForward(int mode) { - tape.fast_forward = TRUE; - tape.warp_forward = TRUE; - tape.deactivate_display = TRUE; + tape.fast_forward = (mode & AUTOPLAY_FFWD); + tape.warp_forward = (mode & AUTOPLAY_WARP); + tape.deactivate_display = (mode & AUTOPLAY_WARP_NO_DISPLAY); tape.pausing = FALSE; - TapeDeactivateDisplayOn(); + if (tape.deactivate_display) + TapeDeactivateDisplayOn(); DrawVideoDisplayCurrentState(); } @@ -1005,7 +1006,7 @@ void TapeQuickLoad() if (!TAPE_IS_EMPTY(tape)) { TapeStartGamePlaying(); - TapeStartWarpForward(); + TapeStartWarpForward(AUTOPLAY_MODE_WARP_NO_DISPLAY); tape.quick_resume = TRUE; } @@ -1049,7 +1050,7 @@ void AutoPlayTape() if (autoplay_initialized) { /* just finished auto-playing tape */ - printf("%s.\n", tape.auto_play_level_solved ? "solved" : "NOT SOLVED"); + Print("%s.\n", tape.auto_play_level_solved ? "solved" : "NOT SOLVED"); num_levels_played++; @@ -1081,15 +1082,15 @@ void AutoPlayTape() autoplay_level_nr = autoplay_leveldir->first_level; - printf_line("=", 79); - printf("Automatically playing level tapes\n"); - printf_line("-", 79); - printf("Level series identifier: '%s'\n", autoplay_leveldir->identifier); - printf("Level series name: '%s'\n", autoplay_leveldir->name); - printf("Level series author: '%s'\n", autoplay_leveldir->author); - printf("Number of levels: %d\n", autoplay_leveldir->levels); - printf_line("=", 79); - printf("\n"); + PrintLine("=", 79); + Print("Automatically playing level tapes\n"); + PrintLine("-", 79); + Print("Level series identifier: '%s'\n", autoplay_leveldir->identifier); + Print("Level series name: '%s'\n", autoplay_leveldir->name); + Print("Level series author: '%s'\n", autoplay_leveldir->author); + Print("Number of levels: %d\n", autoplay_leveldir->levels); + PrintLine("=", 79); + Print("\n"); for (i = 0; i < MAX_TAPES_PER_SET; i++) level_failed[i] = FALSE; @@ -1106,66 +1107,64 @@ void AutoPlayTape() TapeErase(); - printf("Level %03d: ", level_nr); + Print("Level %03d: ", level_nr); LoadLevel(level_nr); if (level.no_valid_file) { - printf("(no level)\n"); + Print("(no level)\n"); continue; } #if 0 /* ACTIVATE THIS FOR LOADING/TESTING OF LEVELS ONLY */ - printf("(only testing level)\n"); + Print("(only testing level)\n"); continue; #endif - LoadSolutionTape(level_nr); + if (options.mytapes) + LoadTape(level_nr); + else + LoadSolutionTape(level_nr); if (tape.no_valid_file) { num_tape_missing++; - printf("(no tape)\n"); + Print("(no tape)\n"); continue; } - printf("playing tape ... "); + Print("playing tape ... "); TapeStartGamePlaying(); - - if (global.autoplay_mode == AUTOPLAY_FFWD) - tape.fast_forward = TRUE; - - if (global.autoplay_mode != AUTOPLAY_PLAY) - TapeStartWarpForward(); + TapeStartWarpForward(global.autoplay_mode); return; } - printf("\n"); - printf_line("=", 79); - printf("Number of levels played: %d\n", num_levels_played); - printf("Number of levels solved: %d (%d%%)\n", num_levels_solved, + Print("\n"); + PrintLine("=", 79); + Print("Number of levels played: %d\n", num_levels_played); + Print("Number of levels solved: %d (%d%%)\n", num_levels_solved, (num_levels_played ? num_levels_solved * 100 / num_levels_played :0)); - printf_line("-", 79); - printf("Summary (for automatic parsing by scripts):\n"); - printf("LEVELDIR '%s', SOLVED %d/%d (%d%%)", + PrintLine("-", 79); + Print("Summary (for automatic parsing by scripts):\n"); + Print("LEVELDIR '%s', SOLVED %d/%d (%d%%)", autoplay_leveldir->identifier, num_levels_solved, num_levels_played, (num_levels_played ? num_levels_solved * 100 / num_levels_played :0)); if (num_levels_played != num_levels_solved) { - printf(", FAILED:"); + Print(", FAILED:"); for (i = 0; i < MAX_TAPES_PER_SET; i++) if (level_failed[i]) - printf(" %03d", i); + Print(" %03d", i); } - printf("\n"); - printf_line("=", 79); + Print("\n"); + PrintLine("=", 79); CloseAllAndExit(0); }