X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ftape.c;h=5e55cb0453fad9166df5de9c971aaba03950abfc;hb=43a15ee9fa750d3089d23d3e244b91d9019d81d2;hp=f8e6a5e0594214d8f29f372d70023398113b04e2;hpb=d08e78f8f8fbad82d417ef27351676753c2c9fa3;p=rocksndiamonds.git diff --git a/src/tape.c b/src/tape.c index f8e6a5e0..5e55cb04 100644 --- a/src/tape.c +++ b/src/tape.c @@ -641,7 +641,10 @@ void TapeHaltRecording() return; tape.counter++; - tape.pos[tape.counter].delay = 0; + + // initialize delay for next tape entry (to be able to continue recording) + if (tape.counter < MAX_TAPE_LEN) + tape.pos[tape.counter].delay = 0; tape.length = tape.counter; tape.length_frames = GetTapeLengthFrames(); @@ -1066,7 +1069,10 @@ void TapeQuickLoad() void InsertSolutionTape() { - if (!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) { Request("No solution tape for this level!", REQ_CONFIRM); @@ -1391,7 +1397,7 @@ static void HandleTapeButtonsExt(int id) else { if (tape.changed) - SaveTapeChecked(tape.level_nr); + SaveTapeChecked(level_nr); TapeErase(); }