if (gd_bitmap != NULL)
BlitBitmap(gd_bitmap, drawto, gd_x, gd_y, gfx->width, gfx->height,
VX + pos->x, VY + pos->y);
+
+ redraw_mask |= REDRAW_DOOR_2;
}
}
}
{
DrawVideoDisplay_Graphics(state, value);
DrawVideoDisplay_DateTime(state, value);
-
- redraw_mask |= REDRAW_DOOR_2;
}
void DrawCompleteVideoDisplay()
if (redraw_display)
{
- RedrawPlayfield(TRUE, 0,0,0,0);
+ RedrawPlayfield();
DrawGameDoorValues();
}
}
if (!CheckEngineSnapshotSingle())
SaveEngineSnapshotSingle();
+
+ // restart step/move snapshots after quick loading tape
+ SaveEngineSnapshotToListInitial();
}
}
- if (CheckEngineSnapshotList())
+ if (setup.show_snapshot_buttons &&
+ game_status == GAME_MODE_PLAYING &&
+ CheckEngineSnapshotList())
{
if (tape.pausing)
MapUndoRedoButtons();
else if (!tape.single_step)
- MapStopPlayButtons();
+ UnmapUndoRedoButtons();
}
}
TapeStopWarpForward();
TapeAppendRecording();
+ // restart step/move snapshots after quick loading tape
+ SaveEngineSnapshotToListInitial();
+
if (FrameCounter > 0)
return;
}
printf("playing tape ... ");
TapeStartGamePlaying();
- TapeStartWarpForward();
+
+ if (global.autoplay_mode == AUTOPLAY_FFWD)
+ tape.fast_forward = TRUE;
+
+ if (global.autoplay_mode != AUTOPLAY_PLAY)
+ TapeStartWarpForward();
return;
}
break;
case TAPE_CTRL_ID_PLAY:
+ if (tape.recording && tape.pausing) /* PAUSE -> RECORD */
+ {
+ // ("TAPE_IS_EMPTY(tape)" is TRUE here -- probably fix this)
+
+ TapeTogglePause(TAPE_TOGGLE_MANUAL);
+ }
+
if (TAPE_IS_EMPTY(tape))
break;