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();
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);
else
{
if (tape.changed)
- SaveTapeChecked(tape.level_nr);
+ SaveTapeChecked(level_nr);
TapeErase();
}