CALLSET_ENTRY (multiball, multiball_start) { global_flag_on (GLOBAL_FLAG_SUPER_JACKPOT_LIT); global_flag_on (GLOBAL_FLAG_MB_JACKPOT_LIT); callset_invoke (head_enable_divert); calculate_super_jackpot_value (); deff_start (DEFF_SUPER_JACKPOT_VALUE); mb_jackpot_collected = FALSE; }
void skillshot_rollover_enable( void ) { current_rollover = SW_MIDDLE_ROLLOVER; global_flag_on(GLOBAL_FLAG_SKILLSHOT_ROLLOVER_ENABLED); flag_off (FLAG_LOOP_GATE_OPENED); // kill any existing task, just to make sure task_kill_gid (GID_SKILLSHOT_ROLLOVER_TIMER); task_create_gid1 (GID_SKILLSHOT_ROLLOVER_TIMER, skillshot_rollover_timer); }
CALLSET_ENTRY (trunk_drv, idle_every_100ms) { if (trunk_time_since_last_sw) { if (--trunk_time_since_last_sw == 0) { trunk_motor_stop (); global_flag_on (GLOBAL_FLAG_TRUNK_ERROR); } } }
/* light next unlit target */ void redtgt_addtgt (void) { if (!global_flag_test (GLOBAL_FLAG_REDTGT1)) { global_flag_on (GLOBAL_FLAG_REDTGT1); // lamp_tristate_on (LM_3BANK_TOP); } else if (!global_flag_test (GLOBAL_FLAG_REDTGT2)) { global_flag_on (GLOBAL_FLAG_REDTGT2); // lamp_tristate_on (LM_3BANK_CENTER); } else if (!global_flag_test (GLOBAL_FLAG_REDTGT3)) { global_flag_on (GLOBAL_FLAG_REDTGT3); // lamp_tristate_on (LM_3BANK_BOTTOM); } redtgt_check (); }
CALLSET_ENTRY (dragrace, device_update) { if (!global_flag_test(GLOBAL_FLAG_DRAGRACE_ENABLED)) { return; } if (multi_ball_play()) { global_flag_off(GLOBAL_FLAG_DIVERTER_ENABLED); } else { global_flag_on(GLOBAL_FLAG_DIVERTER_ENABLED); } }
void dragrace_start( U8 starter_gid ) { if (global_flag_test(GLOBAL_FLAG_DRAGRACE_IN_PROGRESS)) { return; } dragrace_starter_gid = starter_gid; global_flag_on(GLOBAL_FLAG_DRAGRACE_IN_PROGRESS); flipper_disable(); ball_search_monitor_stop(); racetrack_car_return(); task_kill_gid(GID_DRAGRACE_TASK); task_create_gid1(GID_DRAGRACE_TASK, dragrace_task); }
CALLSET_ENTRY (sssmb, sssmb_start) { if (!global_flag_test (GLOBAL_FLAG_SSSMB_RUNNING)) { magnet_reset (); callset_invoke (mball_restart_stop); mball_jackpot_uncollected = TRUE; unlit_shot_count = 0; effect_update_request (); global_flag_on (GLOBAL_FLAG_SSSMB_RUNNING); global_flag_on (GLOBAL_FLAG_SSSMB_RED_JACKPOT); global_flag_on (GLOBAL_FLAG_SSSMB_ORANGE_JACKPOT); global_flag_on (GLOBAL_FLAG_SSSMB_YELLOW_JACKPOT); sssmb_initial_ramps_to_divert = 1; sssmb_ramps_to_divert = 0; sssmb_jackpot_value = 20; if (!global_flag_test (GLOBAL_FLAG_SUPER_MB_RUNNING)) { callset_invoke (mball_start_3_ball); } } }
CALLSET_ENTRY (gumball, sw_gumball_enter) { /* Ball has entered the gumball machine. */ dbprintf ("Gumball entered.\n"); gumball_enable_from_trough = FALSE; gumball_count++; if (in_live_game) { if (!multi_ball_play ()) leff_start (LEFF_GUMBALL_STROBE); gumball_running = TRUE; gumball_collected_count++; award_gumball_score (); gumball_release (); if (powerball_loaded_into_gumball == TRUE) { powerball_loaded_into_gumball = FALSE; leff_start (LEFF_FLASH_GI2); callset_invoke (mball_start); callset_invoke (mball_start_3_ball); callset_invoke (powerball_in_gumball); /* Do a dodgy multiball combo */ global_flag_on (GLOBAL_FLAG_SUPER_MB_RUNNING); ballsave_add_time (5); if (!global_flag_test (GLOBAL_FLAG_CHAOSMB_RUNNING) && !global_flag_test (GLOBAL_FLAG_SSSMB_RUNNING)) { /* random_scaled (N) returns from 0 - N-1 */ switch (random_scaled (2)) { case 0: callset_invoke (sssmb_start); break; case 1: callset_invoke (chaosmb_start); break; } } } else { bounded_decrement (gumball_enable_count, 0); } if (!global_flag_test (GLOBAL_FLAG_SUPER_MB_RUNNING)) deff_start (DEFF_GUMBALL); } }
void coin_door_opened (void) { global_flag_on (GLOBAL_FLAG_COIN_DOOR_OPENED); if (in_live_game && system_config.coin_door_ball_save) { dbprintf ("%d balls before coin door drain\n", live_balls); live_balls_before_door_open = live_balls; ball_search_monitor_stop (); } /* Print a message that high power coils are disabled */ if (!in_test) { deff_start (DEFF_COIN_DOOR_POWER); } }
void shooter_update (void) { #ifdef MACHINE_SHOOTER_SWITCH /* A ball seen on the shooter switch means it is definitely there. * If not seen, it might be out of the plunger lane, or it may just be * "on its way up". During that interval, still consider the ball * at the plunger, so delay clearing the flag. */ if (switch_poll_logical (MACHINE_SHOOTER_SWITCH)) { task_kill_gid (GID_SHOOTER_CLEAR); global_flag_on (GLOBAL_FLAG_BALL_AT_PLUNGER); } else { task_create_gid1 (GID_SHOOTER_CLEAR, shooter_clear_monitor); } #endif }
CALLSET_ENTRY (sharpe, sharpe_start) { global_flag_on (GLOBAL_FLAG_SHARPE_RUNNING); }
static void sssmb_relight_all_jackpots (void) { global_flag_on (GLOBAL_FLAG_SSSMB_RED_JACKPOT); global_flag_on (GLOBAL_FLAG_SSSMB_ORANGE_JACKPOT); global_flag_on (GLOBAL_FLAG_SSSMB_YELLOW_JACKPOT); }
void dragrace_enable( void ) { global_flag_on(GLOBAL_FLAG_DRAGRACE_ENABLED); }
void racetrack_calibration_complete(void) { racetrack_calibrated = TRUE; racetrack_last_calibration_result_code = CC_SUCCESS; global_flag_on(GLOBAL_FLAG_RACETRACK_WORKING); racetrack_state_calibrate_exit(); }