{
int i;
+#if 1
+ if (!tape.recording) /* record action even when tape is paused! */
+ return;
+#else
if (!tape.recording || tape.pausing)
return;
+#endif
if (tape.counter >= MAX_TAPELEN - 1)
{
return;
}
+#if 0
+ printf("::: %05d: recording action: %d\n", FrameCounter, action[0]);
+#endif
+
if (tape.pos[tape.counter].delay > 0) /* already stored action */
{
boolean changed_events = FALSE;
if (tape.pos[tape.counter].delay == 0) /* store new action */
{
+
+#if 0
+ printf("::: %05d: new sequence\n", FrameCounter);
+#endif
+
for (i = 0; i < MAX_PLAYERS; i++)
tape.pos[tape.counter].action[i] = action[i];
tape.quick_resume = FALSE;
TapeAppendRecording();
+#if 0
TapeTogglePause(toggle_manual);
+#endif
}
}
}
tape.delay_played = 0;
}
+#if 0
+ printf("::: %05d: replaying action: %d\n", FrameCounter, action[0]);
+#endif
+
return action;
}
void TapeStop()
{
+#if 0
+ if (tape.recording)
+ printf("::: stopped recording: %d\n", FrameCounter);
+ else if (tape.playing)
+ printf("::: stopped playing: %d\n\n", FrameCounter);
+#endif
+
TapeStopRecording();
TapeStopPlaying();
SetDrawDeactivationMask(REDRAW_NONE);
audio.sound_deactivated = FALSE;
- RedrawPlayfield(TRUE, 0,0,0,0);
- DrawGameDoorValues();
+#if 1
+ if (game_status == GAME_MODE_PLAYING)
+#endif
+ {
+ RedrawPlayfield(TRUE, 0,0,0,0);
+ DrawGameDoorValues();
+ }
}
static void TapeSingleStep()
}
}
+void InsertSolutionTape()
+{
+ if (!TAPE_IS_EMPTY(tape))
+ return;
+
+ LoadSolutionTape(level_nr);
+
+ if (TAPE_IS_EMPTY(tape))
+ Request("No solution tape for this level !", REQ_CONFIRM);
+
+ DrawCompleteVideoDisplay();
+}
+
/* ------------------------------------------------------------------------- *
* tape autoplay functions
printf("Level %03d: ", level_nr);
LoadLevel(level_nr);
- if (level.no_level_file)
+ if (level.no_valid_file)
{
printf("(no level)\n");
continue;
}
- LoadTape(level_nr);
+ LoadSolutionTape(level_nr);
+#if 1
+ if (tape.no_valid_file)
+#else
if (TAPE_IS_EMPTY(tape))
+#endif
{
printf("(no tape)\n");
continue;