void redtgt_off (void) { global_flag_off (GLOBAL_FLAG_REDTGT1); global_flag_off (GLOBAL_FLAG_REDTGT2); global_flag_off (GLOBAL_FLAG_REDTGT3); lamp_tristate_off (LM_3BANK_TOP); lamp_tristate_off (LM_3BANK_CENTER); lamp_tristate_off (LM_3BANK_BOTTOM); }
void dragrace_disable( void ) { if (!global_flag_test(GLOBAL_FLAG_DRAGRACE_ENABLED)) { return; } lamp_tristate_off(LM_RACE_TODAY); lamp_tristate_off(LM_ROUTE_66_ARROW); global_flag_off(GLOBAL_FLAG_DRAGRACE_ENABLED); global_flag_off(GLOBAL_FLAG_DIVERTER_ENABLED); }
void dragrace_stop( void ) { flipper_enable(); ball_search_monitor_start(); racetrack_car_return(); global_flag_off(GLOBAL_FLAG_DRAGRACE_IN_PROGRESS); task_kill_gid(GID_DRAGRACE_TASK); }
void prison_break_mode_init (void) { prison_break_suspend = FALSE; //the claw mode can expire on its own and since it is a lower priority it will not display //callset_invoke (end_claw_mode); // this seemed to cause occasional crashes clawmagnet_off (); global_flag_off(GLOBAL_FLAG_IS_BALL_ON_CLAW); flipper_enable (); ballsave_add_time (system_config.mode_ballsave); //reset counter if first time run, otherwise do not - player may restart prison_break while currently running if (! get_dm_mode(BREAKOUT_COMPLETED) ) { prison_break_mode_shots_made = 0; score_zero(prison_break_mode_score); score_zero(prison_break_mode_last_score); } sound_start (ST_SPEECH, SPCH_CRYO_PRISON_BREAKOUT, SL_4S, PRI_GAME_QUICK3); //flash lamp for a time lamp_tristate_flash(LM_CLAW_PRISON_BREAK); task_sleep(TIME_500MS); lamp_tristate_on(LM_CLAW_PRISON_BREAK); score_add(prison_break_mode_last_score, score_table[PRIS_BREAK_HIT_SCORE]); score_zero(prison_break_mode_next_score); if (get_dm_mode(BREAKOUT_COMPLETED)) { score(PRIS_BREAK_START_SCORE2); score_add(prison_break_mode_score, score_table[PRIS_BREAK_START_SCORE2]); } else { score(PRIS_BREAK_START_SCORE1); score_add(prison_break_mode_score, score_table[PRIS_BREAK_START_SCORE1]); } set_dm_mode(BREAKOUT_COMPLETED); //for next time }//end of function
void racetrack_reset(void) { disable_interrupts(); // initialise the lanes memset(racetrack_lanes, 0, sizeof(racetrack_lanes)); racetrack_lanes[LANE_LEFT].solenoid = SOL_LEFT_RACE_ENABLE; racetrack_lanes[LANE_RIGHT].solenoid = SOL_RIGHT_RACE_ENABLE; racetrack_lanes[LANE_LEFT].start_switch = SW_LEFT_RACE_START; racetrack_lanes[LANE_RIGHT].start_switch = SW_RIGHT_RACE_START; set_lane_speed(LANE_LEFT, RACETRACK_SPEED_MEDIUM); set_lane_speed(LANE_RIGHT, RACETRACK_SPEED_MEDIUM); // set flags racetrack_calibrated = FALSE; racetrack_calibration_attempted = FALSE; racetrack_last_calibration_result_code = CC_NOT_CALIBRATED; // set states racetrack_reset_track_state(); racetrack_state = RACETRACK_INITIALIZE; racetrack_previous_state = RACETRACK_INITIALIZE; global_flag_off(GLOBAL_FLAG_RACETRACK_WORKING); enable_interrupts(); }
void superjets_mode_init (void) { //the claw mode can expire on its own and since it is a lower priority it will not display // callset_invoke (end_claw_mode); // this seemed to cause occasional crashes clawmagnet_off (); global_flag_off(GLOBAL_FLAG_IS_BALL_ON_CLAW); flipper_enable (); //reset counter if first time run, otherwise do not - player may restart acmag while currently running sound_start (ST_SPEECH, SPCH_SUPERJETS_ACTIVATED, SL_4S, PRI_GAME_QUICK3); ballsave_add_time (system_config.mode_ballsave); //flash lamp for a time lamp_tristate_flash(LM_CLAW_SUPER_JETS); task_sleep(TIME_500MS); lamp_tristate_on(LM_CLAW_SUPER_JETS); if (get_dm_mode(SJETS_COMPLETED)) { score_add(superjets_mode_next_score, score_table[SUPERJETS_HIT_SCORE2]); score_add(superjets_mode_score, score_table[SUPERJETS_START_SCORE2]); score(SUPERJETS_START_SCORE2); } else { superjets_mode_shots_made = 0; score_zero(superjets_mode_score); score_zero(superjets_mode_next_score); score_add(superjets_mode_next_score, score_table[SUPERJETS_HIT_SCORE1]); score_add(superjets_mode_score, score_table[SUPERJETS_START_SCORE1]); score(SUPERJETS_START_SCORE1); } }//end of function
void shooter_clear_monitor (void) { task_add_duration (TASK_DURATION_INF); task_sleep_sec (4); /* this could be machine-specific */ global_flag_off (GLOBAL_FLAG_BALL_AT_PLUNGER); task_exit (); }
CALLSET_ENTRY (gumball, init) { global_flag_off (GLOBAL_FLAG_SUPER_MB_RUNNING); gumball_enable_from_trough = FALSE; gumball_pending_releases = 0; gumball_count = 3; powerball_loaded_into_gumball = FALSE; }
CALLSET_ENTRY (gumball, start_ball) { task_recreate_gid (GID_FAR_LEFT_TROUGH_MONITOR, sw_far_left_trough_monitor); gumball_score = 0; gumball_collected_count = 0; gumball_enable_from_trough = FALSE; global_flag_off (GLOBAL_FLAG_SUPER_MB_RUNNING); }
void sssmb_stop (void) { if (!global_flag_test (GLOBAL_FLAG_SSSMB_RUNNING)) return; if (mball_jackpot_uncollected == TRUE) sound_send (SND_NOOOOOOOO); global_flag_off (GLOBAL_FLAG_SSSMB_RUNNING); global_flag_off (GLOBAL_FLAG_SSSMB_RED_JACKPOT); global_flag_off (GLOBAL_FLAG_SSSMB_ORANGE_JACKPOT); global_flag_off (GLOBAL_FLAG_SSSMB_YELLOW_JACKPOT); timer_kill_gid (GID_SSSMB_DIVERT_DEBOUNCE); task_kill_gid (GID_SSSMB_JACKPOT_READY); deff_stop (DEFF_SSSMB_RUNNING); lamp_tristate_off (LM_SUPER_SKILL); effect_update_request (); }
CALLSET_ENTRY (sssmb, skill_yellow) { if (global_flag_test (GLOBAL_FLAG_SSSMB_RUNNING) && global_flag_test (GLOBAL_FLAG_SSSMB_YELLOW_JACKPOT)) { global_flag_off (GLOBAL_FLAG_SSSMB_YELLOW_JACKPOT); sssmb_award_jackpot (); } }
CALLSET_ENTRY (plunger, valid_playfield) { #ifdef INCLUDE_AUTOPLUNGER task_kill_gid (GID_TIMED_PLUNGER_MONITOR); #endif task_kill_gid (GID_SHOOTER_CLEAR); global_flag_off (GLOBAL_FLAG_BALL_AT_PLUNGER); }
CALLSET_ENTRY (sssmb, skill_orange) { if (global_flag_test (GLOBAL_FLAG_SSSMB_RUNNING) && global_flag_test (GLOBAL_FLAG_SSSMB_ORANGE_JACKPOT)) { global_flag_off (GLOBAL_FLAG_SSSMB_ORANGE_JACKPOT); sssmb_award_jackpot (); } }
CALLSET_ENTRY (multiball, award_scoop_jackpot) { if (multi_ball_play () && global_flag_test (GLOBAL_FLAG_MB_JACKPOT_LIT)) { global_flag_off (GLOBAL_FLAG_MB_JACKPOT_LIT); sound_send (SND_JACKPOT); score (SC_1M); deff_start (DEFF_JACKPOT); } }
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 sssmb_stop (void) { callset_invoke (sssmb_stop); if (!global_flag_test (GLOBAL_FLAG_SSSMB_RUNNING)) return; if (mball_jackpot_uncollected == TRUE) { sound_send (SND_NOOOOOOOO); callset_invoke (start_hurryup); } global_flag_off (GLOBAL_FLAG_SSSMB_RUNNING); global_flag_off (GLOBAL_FLAG_SSSMB_RED_JACKPOT); global_flag_off (GLOBAL_FLAG_SSSMB_ORANGE_JACKPOT); global_flag_off (GLOBAL_FLAG_SSSMB_YELLOW_JACKPOT); timer_kill_gid (GID_SSSMB_DIVERT_DEBOUNCE); task_kill_gid (GID_SSSMB_JACKPOT_READY); deff_stop (DEFF_SSSMB_RUNNING); lamp_tristate_off (LM_SUPER_SKILL); music_refresh (); }
void skillshot_rollover_disable( void ) { if (!global_flag_test (GLOBAL_FLAG_SKILLSHOT_ROLLOVER_ENABLED)) { return; } global_flag_off ( GLOBAL_FLAG_SKILLSHOT_ROLLOVER_ENABLED ); lamp_tristate_off (LM_LEFT_ROLLOVER); lamp_tristate_off (LM_MIDDLE_ROLLOVER); lamp_tristate_off (LM_RIGHT_ROLLOVER); flag_on (FLAG_LOOP_GATE_OPENED); task_kill_gid (GID_SKILLSHOT_ROLLOVER_TIMER); }
void racetrack_state_calibrate_enter(void) { // reset flags racetrack_calibrated = FALSE; racetrack_calibration_attempted = FALSE; racetrack_last_calibration_result_code = CC_NOT_CALIBRATED; global_flag_off(GLOBAL_FLAG_RACETRACK_WORKING); // initialise the first calibration state racetrack_calibrate_counter = 0; racetrack_calibrate_previous_state = RT_CALIBRATE_INITIALISE; racetrack_calibrate_state = RT_CALIBRATE_CAR_RETURN; racetrack_calibrate_ticks = RACETRACK_CALIBRATE_TICKS; racetrack_calibrate_ticks_remaining = racetrack_calibrate_ticks; }
void coin_door_closed (void) { global_flag_off (GLOBAL_FLAG_COIN_DOOR_OPENED); if (in_live_game && system_config.coin_door_ball_save) { #ifdef DEVNO_TROUGH dbprintf ("resetting to %d balls\n", live_balls_before_door_open); if (live_balls_before_door_open != live_balls) { set_ball_count (live_balls_before_door_open); #ifdef DEFF_BALL_SAVE deff_start (DEFF_BALL_SAVE); #endif } #endif ball_search_monitor_start (); live_balls_before_door_open = 0; } }
void trunk_reset (void) { global_flag_off (GLOBAL_FLAG_TRUNK_ERROR); trunk_time_since_last_sw = 0; trunk_curr_pos = 0; }
CALLSET_ENTRY (gumball, single_ball_play) { global_flag_off (GLOBAL_FLAG_SUPER_MB_RUNNING); }
CALLSET_ENTRY (multiball, score_super_jackpot) { score_long (super_jackpot_value); deff_start (DEFF_SUPER_JACKPOT); global_flag_off (GLOBAL_FLAG_SUPER_JACKPOT_LIT); }
CALLSET_ENTRY (sharpe, sharpe_end, stop_game, end_ball) { global_flag_off (GLOBAL_FLAG_SHARPE_RUNNING); }