If anyone was wondering what it takes to code the Met show, lines of code now up to about 3,400 (and that's just the game code and not counting who knows how many hundreds of lines for the low level drivers). Here is just the list of declarations..
unsigned curr_time = timer_get_ticks();
static bool attract_mode_on = false;
static unsigned attract_loop;
int i;
int j;
int k;
static int drops_down = 0;
static bool normal_play = true;
static bool drain_ready = true;
static bool drain_time = false;
static bool lady_justice_active = false;
static bool ramp_check = false;
static bool new_ball_light_set = false;
static bool ball_in_play = false;
static bool single_ball_play = false;
static bool multiball_play = false;
static bool drain_sequence = false;
static unsigned ball_in_play_time;
static bool drain_grave = false;
static bool drain_chair = false;
static bool drain_coffin = false;
static bool drain_snake = false;
static unsigned drain_sequence_length;
static unsigned drain_grave_time;
static unsigned drain_chair_time;
static unsigned drain_coffin_time;
static unsigned drain_snake_time;
static bool left_loop_ready = true;
static bool left_loop_reject_ready = true;
static bool right_loop_ready = true;
static bool right_loop_reject_ready = true;
static bool right_loop_ready_from_plunge = true;
static bool left_loop_ready_from_plunge = true;
static bool plunge_ready = false;
static unsigned right_orbit_exclusion_time;
static unsigned left_orbit_exclusion_time;
static unsigned right_orbit_reject_time;
static unsigned left_orbit_reject_time;
static unsigned plunge_exclusion_time;
static bool wait_for_drop_bot_hit = true;
static bool wait_for_drop_mid_hit = false;
static bool wait_for_drop_top_hit = false;
static unsigned drop_progress_time;
static bool left_loop_inserts_complete = false;
static bool grave_lane_inserts_complete = false;
static bool left_ramp_inserts_complete = false;
static bool right_ramp_inserts_complete = false;
static bool right_loop_inserts_complete = false;
static unsigned inserts_complete_bonus_flash_time;
static unsigned captive_ball_flash_time;
static bool captive_ball_hit = false;
static unsigned sparky_hit_flash_time;
static bool sparky_hit = false;
static unsigned sparky_su_hit_flash_time;
static bool sparky_su_hit = false;
static bool coffin_lock_one_ready = false;
static bool coffin_lock_two_ready = false;
static bool coffin_lock_one_locked = false;
static bool coffin_lock_two_locked = false;
static unsigned coffin_lock_flash_time;
static bool mystery_ready = false;
static bool mystery_active = false;
static unsigned mystery_time;
static bool ramp_hit = false;
static bool lady_justice_flash = false;
static unsigned ramp_red_standard_flash_time;
static unsigned combo_time;
static unsigned ramp_hit_check_time;
static unsigned lady_justice_flash_time;
static unsigned lady_justice_sequence_start_time;
static bool grave_multiball_start = false;
static bool ciu_mode_ready = false;
static bool ciu_mode_active = false;
static bool fwtbt_mode_active = false;
static bool ftb_mode_active = false;
static bool extra_ball_ready = false;
static unsigned extra_ball_exclusion_time;
static bool fuel_is_lit = false;
static bool fuel_active = false;
static bool fuel_end_ready = false;
static bool fuel_hit = false;
static unsigned fuel_flash_time;
static unsigned fuel_jackpot_flash_time;
static bool grave_multiball_ready = false;
static bool grave_mb_on_long_enough_to_drain = false;
static unsigned grave_mb_start_check_time;
static unsigned grave_mb_active_flash_time;
static bool grave_mb_active = false;
static bool fuel_start_light_pattern_exclude = false;
static bool grave_super_jackpot = false;
static bool coffin_mb_ready = false;
static bool coffin_mb_active = false;
static bool coffin_mb_shot_ready = false;
static bool coffin_mb_on_long_enough_to_drain = false;
static bool lone_flash_left_loop_arrow = false;
static bool lone_flash_grave_lane_arrow = false;
static bool lone_flash_left_ramp_arrow = false;
static bool lone_flash_right_ramp_arrow = false;
static bool lone_flash_right_loop_arrow = false;
static bool coffin_mb_shot_setup = false;
static bool coffin_mb_shot_made = false;
static bool coffin_mb_shot_to_make = false;
static unsigned coffin_mb_shot_made_flash_time;
static unsigned coffin_mb_start_time;
static unsigned coffin_mb_shot_flash_time;
static bool electric_chair_mb_start = false;
static bool electric_chair_mb_active = false;
static bool electric_chair_mb_active_long_enough_to_drain = false;
static bool electric_chair_mb_jackpot_hit = false;
static bool electric_chair_mb_super_jackpot_hit = false;
static bool electric_chair_mb_super_jackpot_ready = false;
static unsigned electric_chair_mb_on_time;
static unsigned electric_chair_mb_jackpot_time;
static unsigned electric_chair_mb_super_jackpot_time;
static bool playfield_insert_disruption_free = true;
static bool ball_save_active = false;
static unsigned ball_save_active_time;
static bool fuel_lane_ready = true;
static unsigned fuel_lane_exclusion_time;
static bool fuel_jackpot_is_lit = false;
static bool fuel_jackpot_hit = false;
static bool fuel_setup_ready = false;
static bool fuel_bank_complete = false;
static unsigned fuel_bank_complete_time;
static bool inlane_exclude = false;
static unsigned inlane_exclusion_time;
static bool blackened_ready = false;
static bool blackened_active = false;
static bool blackened_setup = false;
static bool band_collect_start = false;
static bool blackened_super_jackpot_ready = false;
static bool blackened_super_jackpot_paid = false;
static int band_collect_number = -1;
static unsigned blackened_loop;
static bool blackened_full_set = false;
static bool blackened_jackpot_ready = false;
static unsigned blackened_jackpot_flash_time;
static bool blackened_loop_play = false;
static unsigned blackened_end_timer;