+struct TapeButtonInfo
+{
+ struct XY eject;
+ struct XY stop;
+ struct XY pause;
+ struct XY record;
+ struct XY play;
+ struct XY insert_solution;
+ struct XY play_solution;
+};
+
+struct TapeSymbolInfo
+{
+ struct XY eject;
+ struct XY stop;
+ struct XY pause;
+ struct XY record;
+ struct XY play;
+ struct XY fast_forward;
+ struct XY warp_forward;
+ struct XY warp_forward_blind;
+ struct XY pause_before_end;
+ struct XY single_step;
+};
+
+struct TapeLabelInfo
+{
+ struct XY eject;
+ struct XY stop;
+ struct XY pause;
+ struct XY record;
+ struct XY play;
+ struct XY fast_forward;
+ struct XY warp_forward;
+ struct XY warp_forward_blind;
+ struct XY pause_before_end;
+ struct XY single_step;
+ struct XY date;
+ struct XY time;
+};
+
+struct TapeTextInfo
+{
+ struct TextPosInfo date;
+ struct TextPosInfo date_yyyy;
+ struct TextPosInfo date_yy;
+ struct TextPosInfo date_mon;
+ struct TextPosInfo date_mm;
+ struct TextPosInfo date_dd;
+
+ struct TextPosInfo time;
+ struct TextPosInfo time_hh;
+ struct TextPosInfo time_mm;
+ struct TextPosInfo time_ss;
+
+ struct TextPosInfo frame;
+};
+
+struct TapeInfo
+{
+ int file_version; // file format version the tape is stored with
+ int game_version; // game release version the tape was created with
+ int engine_version; // game engine version the tape was recorded with
+
+ char *level_identifier;
+ int level_nr;
+ unsigned int random_seed;
+ unsigned int date;
+ unsigned int counter;
+ unsigned int length;
+ unsigned int length_frames;
+ unsigned int length_seconds;
+ unsigned int delay_played;
+ boolean pause_before_end;
+ boolean recording, playing, pausing;
+ boolean fast_forward;
+ boolean warp_forward;
+ boolean deactivate_display;
+ boolean auto_play;
+ boolean auto_play_level_solved;
+ boolean quick_resume;
+ boolean single_step;
+ boolean changed;
+ boolean player_participates[MAX_PLAYERS];
+ int num_participating_players;
+ int centered_player_nr_next;
+ boolean set_centered_player;
+
+ boolean use_mouse;
+
+ struct
+ {
+ byte action[MAX_PLAYERS];
+ byte delay;
+ } pos[MAX_TAPE_LEN];
+
+ struct TapeButtonInfo button;
+ struct TapeSymbolInfo symbol;
+ struct TapeLabelInfo label;
+ struct TapeTextInfo text;
+
+ boolean show_game_buttons; // show game buttons in tape viewport
+
+ boolean no_valid_file; // set when tape file missing or invalid
+};
+
+
+void DrawVideoDisplay(unsigned int, unsigned int);