X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ftape.c;h=689f2bf2e0dfbae9fdeacaed1392a639da5c282a;hb=a1c4feb3609b82ecfc843a1c49c7e5838753debd;hp=fa73f3f99c64b43c55421faba707a68cdc5caa82;hpb=de4a228f8a3b4889d484bc955bae463cee2c6a25;p=rocksndiamonds.git diff --git a/src/tape.c b/src/tape.c index fa73f3f9..689f2bf2 100644 --- a/src/tape.c +++ b/src/tape.c @@ -600,7 +600,7 @@ void TapeStartRecording(int random_seed) static void TapeStartGameRecording() { - StartGameActions(options.network, TRUE, level.random_seed); + StartGameActions(network.enabled, TRUE, level.random_seed); } static void TapeAppendRecording() @@ -979,7 +979,7 @@ static void TapeStopWarpForward() static void TapeSingleStep() { - if (options.network) + if (network.enabled) return; if (!tape.pausing) @@ -1079,12 +1079,18 @@ void TapeQuickLoad() } } -boolean InsertSolutionTape() +boolean hasSolutionTape() { + boolean tape_file_exists = fileExists(getSolutionTapeFilename(level_nr)); boolean level_has_tape = (level.game_engine_type == GAME_ENGINE_TYPE_SP && level.native_sp_level->demo.is_available); - if (!fileExists(getSolutionTapeFilename(level_nr)) && !level_has_tape) + return (tape_file_exists || level_has_tape); +} + +boolean InsertSolutionTape() +{ + if (!hasSolutionTape()) { Request("No solution tape for this level!", REQ_CONFIRM); @@ -1311,7 +1317,8 @@ void CreateTapeButtons() for (i = 0; i < NUM_TAPE_BUTTONS; i++) { - struct GraphicInfo *gfx = &graphic_info[tapebutton_info[i].graphic]; + int graphic = tapebutton_info[i].graphic; + struct GraphicInfo *gfx = &graphic_info[graphic]; struct XY *pos = tapebutton_info[i].pos; struct GadgetInfo *gi; int gd_x = gfx->src_x; @@ -1321,6 +1328,7 @@ void CreateTapeButtons() int id = i; gi = CreateGadget(GDI_CUSTOM_ID, id, + GDI_IMAGE_ID, graphic, GDI_INFO_TEXT, tapebutton_info[i].infotext, GDI_X, VX + pos->x, GDI_Y, VY + pos->y,