Beispiel #1
0
void special_award (void)
{
	callset_invoke (special_award);
	switch (system_config.special_award)
	{
		case FREE_AWARD_CREDIT:
			add_credit ();
			break;

		case FREE_AWARD_EB:
			increment_extra_balls ();
			break;

		case FREE_AWARD_OFF:
			break;
	}

#ifdef DEFF_SPECIAL
	deff_start (DEFF_SPECIAL);
#endif
#ifdef LEFF_SPECIAL
	leff_start (LEFF_SPECIAL);
#endif
	knocker_fire ();
	audit_increment (&system_audits.specials);
}
Beispiel #2
0
void pitstop_award_task(void) {

    deff_start_sync(DEFF_PITSTOP_AWARD);

    switch (pitstop_award) {
    case AWARD_SCORE_50M:
        score(SC_50M);
        break;
    case AWARD_SCORE_5M:
        score(SC_5M);
        break;
    case AWARD_CAR:
        award_car();
        break;
    case AWARD_EXTRA_BALL:
        increment_extra_balls();
        break;
    case AWARD_LITE_LOCK:
        zr1_mb_award_lite_lock();
        break;
    case AWARD_LITE_DRAGRACE:
        award_lite_dragrace();
        break;
    case AWARD_LITE_KICKBACK:
        award_kickback ();
        break;
    default:
        // TODO handle remaining awards
        break;
    }
    task_exit();
}
Beispiel #3
0
//sw_top_popper
CALLSET_ENTRY (top_popper, dev_top_sol_enter) {
	ball_search_monitor_stop ();

				//BACK IN FRIDGE WIZARD MODE
				if (flag_test(FLAG_BACK_IN_THE_FRIDGE_ACTIVATED)) {
					start_back_in_the_fridge ();
					task_sleep_sec(1);
					leff_start (LEFF_TOP_POPPER);
					sol_request_async(SOL_TOP_POPPER);
				}

				//EXTRABALL AWARD OR MULTIBALL START OR BOTH
				else if (flag_test(FLAG_IS_EXTRABALL_LIT)
						|| (!flag_test(FLAG_BACK_IN_THE_FRIDGE_RUNNING)
								&&	flag_test (FLAG_IS_MULTIBALL_ENABLED) )) {

						//EXTRABALL AWARD
							if (flag_test(FLAG_IS_EXTRABALL_LIT) ) {
								increment_extra_balls();
								end_extraball();
								leff_start (LEFF_EXTRABALL);
								deff_start_sync (DEFF_EXTRA_BALL_EFFECT);
								task_sleep_sec(1);
							}//end of EB

						//START MULTIBALL
							if (	!flag_test(FLAG_BACK_IN_THE_FRIDGE_RUNNING)
								&&	flag_test (FLAG_IS_MULTIBALL_ENABLED) ) {
								multiball_start();
								task_sleep_sec(1);
							}//end of multiball start

						//do for both
							leff_start (LEFF_TOP_POPPER);
							sol_request_async(SOL_TOP_POPPER);
				}//END of EB or MB

				//START VIDEO MODE
				else if (  !flag_test(FLAG_BACK_IN_THE_FRIDGE_RUNNING)
						&& !flag_test(FLAG_IS_FORTRESS_MB_RUNNING)
						&& !flag_test(FLAG_IS_MUSEUM_MB_RUNNING)
						&& !flag_test(FLAG_IS_CRYOPRISON_MB_RUNNING)
						&& !flag_test(FLAG_IS_WASTELAND_MB_RUNNING)
						&& !flag_test(FLAG_IS_DEMOTIME_RUNNING)
						&&	flag_test (FLAG_VIDEO_MODE_ENABLED) )//this is set at combos
												start_video_mode(1);

				//NOTHING SPECIAL
				else {
					score (TOP_POP_SCORE);//located in kernal/score.c
					//LIGHTING EFFECTS
					//	leff_start (LEFF_UNDERGROUND_KICKOUT);
					deff_start_sync (DEFF_TOP_POPPER_EFFECT); //if nothing special, do normal display effects
					leff_start (LEFF_TOP_POPPER);
					sol_request_async(SOL_TOP_POPPER);
				}//end of else NOTHING SPECIAL

	ball_search_monitor_start ();
}//end of function
Beispiel #4
0
void score_extraball(void) {
	ball_search_monitor_stop ();
	flag_off(FLAG_IS_EXTRABALL_LIT);
	extraball_light_off ();
	task_kill_gid(GID_EXTRA_BALL_REMINDER);
	increment_extra_balls();
	leff_start (LEFF_EXTRABALL);
	deff_start (DEFF_EXTRA_BALL_EFFECT);
	ball_search_monitor_start ();
}//end of function