void InsertSolutionTape()
{
- if (!TAPE_IS_EMPTY(tape))
+ 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);
+
return;
+ }
+
+ // if tape recorder already contains a tape, remove it without asking
+ TapeErase();
LoadSolutionTape(level_nr);
if (TAPE_IS_EMPTY(tape))
- Request("No solution tape for this level!", REQ_CONFIRM);
+ Request("Loading solution tape for this level failed!", REQ_CONFIRM);
DrawCompleteVideoDisplay();
}
else
{
if (tape.changed)
- SaveTapeChecked(tape.level_nr);
+ SaveTapeChecked(level_nr);
TapeErase();
}