-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 long random_seed;
- unsigned long date;
- unsigned long counter;
- unsigned long length;
- unsigned long length_seconds;
- unsigned int delay_played;
- boolean pause_before_death;
- 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;
-
- struct
- {
- byte action[MAX_PLAYERS];
- byte delay;
- } pos[MAX_TAPE_LEN];
-
- boolean no_valid_file; /* set when tape file missing or invalid */
-};
-
-struct GameInfo
-{
- /* values for engine initialization */
- int default_push_delay_fixed;
- int default_push_delay_random;
-
- /* constant within running game */
- int engine_version;
- int emulation;
- int initial_move_delay;
- int initial_move_delay_value;
- int initial_push_delay_value;
-
- /* flags to handle bugs in and changes between different engine versions */
- /* (for the latest engine version, these flags should always be "FALSE") */
- boolean use_change_when_pushing_bug;
- boolean use_block_last_field_bug;
- boolean max_num_changes_per_frame;
- boolean use_reverse_scan_direction;
-
- /* variable within running game */
- int yamyam_content_nr;
- boolean magic_wall_active;
- int magic_wall_time_left;
- int light_time_left;
- int timegate_time_left;
- int belt_dir[4];
- int belt_dir_nr[4];
- int switchgate_pos;
- int wind_direction;
- boolean gravity;
- boolean explosions_delayed;
- boolean envelope_active;
-
-#if 1
- /* values for the new EMC elements */
- int lenses_time_left;
- int magnify_time_left;
- boolean ball_state;
- int ball_content_nr;
-#endif
-
- /* values for player idle animation (no effect on engine) */
- int player_boring_delay_fixed;
- int player_boring_delay_random;
- int player_sleeping_delay_fixed;
- int player_sleeping_delay_random;
-
- /* values for special game initialization control */
- boolean restart_level;
-};
-