CALLSET_ENTRY (lock_freeze_mbstart, start_ball) {
	multiball_light_off();//goto orbits.c to turn off light and flag
	if (NumBallsFrozen > (NumMBsDone % 4) ) {
		multiball_light_on();//goto orbits.c
		flag_on(FLAG_IS_MULTIBALL_ENABLED);
	}


	lamp_tristate_off (LM_FREEZE_1);
	lamp_tristate_off (LM_FREEZE_2);
	lamp_tristate_off (LM_FREEZE_3);
	lamp_tristate_off (LM_FREEZE_4);

	switch (NumBallsFrozen) {
		case 1:	lamp_tristate_on (LM_FREEZE_1);	break;
		case 2:
				lamp_tristate_on (LM_FREEZE_1);
				lamp_tristate_on (LM_FREEZE_2);
				break;
		case 3:
				lamp_tristate_on (LM_FREEZE_1);
				lamp_tristate_on (LM_FREEZE_2);
				lamp_tristate_on (LM_FREEZE_3);
				break;
		case 4:
				lamp_tristate_on (LM_FREEZE_1);
				lamp_tristate_on (LM_FREEZE_2);
				lamp_tristate_on (LM_FREEZE_3);
				lamp_tristate_on (LM_FREEZE_4);
		break;
	}//end of switch
}
CALLSET_ENTRY (lock_freeze_mbstart, end_ball) {
	multiball_light_off();//goto orbits.c to turn off light and flag
	lamp_tristate_off (LM_FREEZE_1);
	lamp_tristate_off (LM_FREEZE_2);
	lamp_tristate_off (LM_FREEZE_3);
	lamp_tristate_off (LM_FREEZE_4);
}
Пример #3
0
void midnight_mb_update_lamps (void)
{
	if (midnight_mb_trunk_count == 0)
	{
		lamp_tristate_flash (LM_TRUNK_1);
		lamp_tristate_off (LM_TRUNK_2);
		lamp_tristate_off (LM_TRUNK_3);
	}
	else if (midnight_mb_trunk_count == 1)
	{
		lamp_tristate_on (LM_TRUNK_1);
		lamp_tristate_flash (LM_TRUNK_2);
		lamp_tristate_off (LM_TRUNK_3);
	}
	else if (midnight_mb_trunk_count == 2)
	{
		lamp_tristate_on (LM_TRUNK_1);
		lamp_tristate_on (LM_TRUNK_2);
		lamp_tristate_flash (LM_TRUNK_3);
	}
	else if (midnight_mb_trunk_count == 3)
	{
		lamp_tristate_on (LM_TRUNK_1);
		lamp_tristate_on (LM_TRUNK_2);
		lamp_tristate_on (LM_TRUNK_3);
	}
}
Пример #4
0
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);
}
Пример #5
0
void fortress_start(U8 num) {
	computer_light_temp_off();
	is_fortress_running = TRUE;
	task_create_gid1 (GID_FORTRESS_START_NOISE, fortress_start_sounds);
	fortress_display_counter = 0;
	FORT_TOGGLE = 0;
	fortress_ballsave  = system_config.mb_ballsave;

	mb_mode_start(&fortress_mode);
	score_add (fortress_score, score_table[FORTRESS_MB_SCORE]);
	score (FORTRESS_MB_SCORE);

	if (!in_tilt) deff_start (DEFF_FORTRESS_START_EFFECT);
	multiball_started();//reset all MB start criteria for next time
	diverter_stop();//defined in divhold2.ct

	//LIGHTS
	if (!in_tilt) {
		leff_start (LEFF_MB_START);
			lamp_tristate_flash(LM_FORTRESS_MULTIBALL);
			task_sleep (TIME_2S);
			lamp_tristate_on (LM_FORTRESS_MULTIBALL);
			lamp_tristate_off (LM_FREEZE_1);
			lamp_tristate_off (LM_FREEZE_2);
			lamp_tristate_off (LM_FREEZE_3);
			lamp_tristate_off (LM_FREEZE_4);
	}
	//SOUNDS
	if (!in_tilt) {
			U8 	fortress_SoundCounter;
			fortress_SoundCounter = random_scaled(2);//from kernal/random.c - pick number from 0 to 2
			if (fortress_SoundCounter == 0)
				sound_start (ST_SPEECH, SPCH_SOMETHING_RIGHT_PREV_LIFE, SL_4S, PRI_GAME_QUICK3);
			else
				sound_start (ST_SPEECH, SPCH_SEND_MANIAC, SL_4S, PRI_GAME_QUICK3);
			task_sleep (TIME_3S);
	}

	//serve balls
	if (!in_tilt) {
		if (num + live_balls >= 5) set_ball_count (5);
		else set_ball_count (num + live_balls);
		//task_sleep (TIME_3S);
		set_all_jackpots(); //all 6 lit

		//start the ball save timer
		task_create_gid1 (GID_FORTRESS_BALLSAVE_TIMER, fortress_ballsave_task);
		//recount the trough every 5 secs - this is to handle situations
		//where too many drains in rapid succession cause the game to lose
		//count of live balls - this only happens during MB
		callset_invoke (mb_trough_recount_timer_start);
	}
	//just in case - make sure this is running
	ball_search_monitor_start ();
	set_dm_mode2(FORTRESS_COMPLETED); //for BONUS
}//end of function
//after we are sure we have a valid MB start, we reset everything for next time
void multiball_started(void) {
	NumMBsDone++;
	flag_off(FLAG_IS_MULTIBALL_ENABLED);
	NumBallsFrozen = 0;
	multiball_light_off();//goto orbits.c to turn off light and flag
	lamp_tristate_off (LM_FREEZE_1);
	lamp_tristate_off (LM_FREEZE_2);
	lamp_tristate_off (LM_FREEZE_3);
	lamp_tristate_off (LM_FREEZE_4);
}//end of function
/****************************************************************************
 * initialize  and exit
 ***************************************************************************/
CALLSET_ENTRY (lock_freeze_mbstart, start_player) {
	NumBallsFrozen = 0;
	lock_SoundCounter = 0;
	NumMBsDone = 0;
	freeze_MessageCounter = 0;
	lamp_tristate_off (LM_FREEZE_1);
	lamp_tristate_off (LM_FREEZE_2);
	lamp_tristate_off (LM_FREEZE_3);
	lamp_tristate_off (LM_FREEZE_4);
}
Пример #8
0
void wasteland_start(U8 num) {
//	kill_combos();
	computer_light_temp_off();
	task_create_gid1 (GID_WASTELAND_START_NOISE, wasteland_start_sounds);
	is_wasteland_running = TRUE;
	mb_mode_start(&wasteland_mode);

	score_add (wasteland_score, score_table[WASTELAND_MB_SCORE]);
	score (WASTELAND_MB_SCORE);

	wasteland_display_counter = 0;
	WL_TOGGLE = 0;
	wasteland_ballsave = TRUE;

	multiball_started();//reset all MB start criteria for next time
	deff_start (DEFF_WASTELAND_START_EFFECT);
	diverter_stop();//defined in divhold2.ct

	//LIGHTS
	leff_start (LEFF_MB_START);
			lamp_tristate_flash(LM_WASTELAND_MULTIBALL);
			task_sleep (TIME_2S);
			lamp_tristate_on (LM_WASTELAND_MULTIBALL);
			lamp_tristate_off (LM_FREEZE_1);
			lamp_tristate_off (LM_FREEZE_2);
			lamp_tristate_off (LM_FREEZE_3);
			lamp_tristate_off (LM_FREEZE_4);

	//SOUNDS
			U8 	wasteland_SoundCounter;
			wasteland_SoundCounter = random_scaled(2);//from kernal/random.c - pick number from 0 to 2
			if (wasteland_SoundCounter == 0)
				sound_start (ST_SPEECH, SPCH_IN_THIS_CENTURY, SL_4S, PRI_GAME_QUICK2);
			else
				sound_start (ST_SPEECH, SPCH_FEEL_GOOD_TOO, SL_4S, PRI_GAME_QUICK2);
	task_sleep (TIME_3S);
	wasteland_start_music = FALSE; //for to kill the music

	//serve balls
	if (num + live_balls >= 5) set_ball_count (5);
	else set_ball_count (num + live_balls);
	task_create_gid1 (GID_WASTELAND_BALL_SAVE, wasteland_ballsave_task);

	//task_sleep (TIME_3S);

	set_all_jackpots(); //all 6 lit
	//recount the trough every 5 secs - this is to handle situations
	//where too many drains in rapid succession cause the game to lose
	//count of live balls - this only happens during MB
	callset_invoke (mb_trough_recount_timer_start);

	//just in case - make sure this is running
	ball_search_monitor_start ();
	set_dm_mode2(WASTELAND_COMPLETED); //for BONUS
}//end of function
Пример #9
0
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);
}
Пример #10
0
void rules_spiralaward_leff (void)
{
	for (;;)
	{
		lamp_tristate_off (LM_LEFT_INLANE2);
		lamp_tristate_flash (LM_LEFT_INLANE1);
		task_sleep (TIME_500MS);
		lamp_tristate_off (LM_LEFT_INLANE1);
		lamp_tristate_flash (LM_LEFT_INLANE2);
		task_sleep (TIME_500MS);
	}
}
Пример #11
0
/****************************************************************************
 * initialize  and exit
 ***************************************************************************/
void rollover_reset (void) {
	rollover_SoundCounter = 0;
	rollover_MessageCounter = 0;
	middle_rollover_activated = TRUE;
	top_rollover_activated = FALSE;
	lower_rollover_activated = FALSE;
	rollover_bonus_multiplier = 1;

	lamp_tristate_on(LM_MIDDLE_ROLLOVER);
	lamp_tristate_off(LM_TOP_ROLLOVER);
	lamp_tristate_off(LM_LOWER_ROLLOVER);
}//end of rollover_reset
Пример #12
0
void rules_oddchange2_leff (void)
{
	for (;;)
	{
		lamp_tristate_flash (LM_PIANO_JACKPOT);
		task_sleep_sec (1);
		lamp_tristate_off (LM_PIANO_JACKPOT);

		lamp_tristate_flash (LM_SLOT_MACHINE);
		task_sleep_sec (1);
		lamp_tristate_off (LM_SLOT_MACHINE);
	}
}
Пример #13
0
CALLSET_ENTRY (dragrace, lamp_update) {
	if (!global_flag_test(GLOBAL_FLAG_DRAGRACE_ENABLED)) {
		return;
	}

	if (multi_ball_play()) {
		lamp_tristate_off(LM_RACE_TODAY);
		lamp_tristate_off(LM_ROUTE_66_ARROW);
	} else {
		lamp_tristate_flash(LM_RACE_TODAY);
		lamp_tristate_flash(LM_ROUTE_66_ARROW);
	}
}
Пример #14
0
void rules_hitchhiker_leff (void)
{
	for (;;)
	{
		lamp_tristate_flash (LM_RIGHT_JET);
		lamp_tristate_flash (LM_CAMERA);
		task_sleep_sec (2);
		lamp_tristate_off (LM_RIGHT_JET);
		lamp_tristate_off (LM_CAMERA);
		sol_request (SOL_UR_FLIP_POWER);
		task_sleep (TIME_500MS);
	}
}
Пример #15
0
void rules_spiralaward2_leff (void)
{
	for (;;)
	{
		lamplist_apply (LAMPLIST_SPIRAL_AWARDS, lamp_flash_on);
		lamp_tristate_flash (LM_RIGHT_SPIRAL);
		lamp_tristate_flash (LM_RIGHT_POWERBALL);
		task_sleep_sec (1);
		sol_request (SOL_LL_FLIP_POWER);
		lamp_tristate_off (LM_RIGHT_SPIRAL);
		lamp_tristate_off (LM_RIGHT_POWERBALL);
		task_sleep (TIME_500MS);
	}
}
Пример #16
0
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);
}
Пример #17
0
/****************************************************************************
 *
 * lighting effects
 *
 ****************************************************************************/
void eject_leff (void){
	lamp_tristate_flash(LM_RETINA_SCAN);
	flasher_pulse (FLASH_EJECT_FLASHER);
	task_sleep (TIME_100MS);
	flasher_pulse (FLASH_EJECT_FLASHER);
	task_sleep (TIME_100MS);
	flasher_pulse (FLASH_EJECT_FLASHER);
	task_sleep (TIME_100MS);
	flasher_pulse (FLASH_EJECT_FLASHER);
	task_sleep (TIME_100MS);
	flasher_pulse (FLASH_EJECT_FLASHER);
	task_sleep (TIME_100MS);
	flasher_pulse (FLASH_EJECT_FLASHER);
	task_sleep (TIME_100MS);
	flasher_pulse (FLASH_EJECT_FLASHER);
	task_sleep (TIME_100MS);
	flasher_pulse (FLASH_EJECT_FLASHER);
	task_sleep (TIME_100MS);
	flasher_pulse (FLASH_EJECT_FLASHER);
	task_sleep (TIME_100MS);
	flasher_pulse (FLASH_EJECT_FLASHER);
	task_sleep (TIME_100MS);
	flasher_pulse (FLASH_EJECT_FLASHER);
	task_sleep (TIME_100MS);
	flasher_pulse (FLASH_EJECT_FLASHER);
	task_sleep (TIME_100MS);
	flasher_pulse (FLASH_EJECT_FLASHER);
	task_sleep (TIME_100MS);
	flasher_pulse (FLASH_EJECT_FLASHER);
	task_sleep (TIME_100MS);
	lamp_tristate_off(LM_RETINA_SCAN);
	leff_exit();
}//end of function
Пример #18
0
void rules_sssmb_leff (void)
{
	triac_disable (TRIAC_GI_MASK);
	for (;;)
	{
		lamp_tristate_off (LM_BONUS_X);
		lamp_tristate_flash (LM_SUPER_SKILL);
		task_sleep (TIME_500MS);
		lamp_tristate_off (LM_SUPER_SKILL);
		lamp_tristate_flash (LM_MULTIBALL);
		task_sleep (TIME_500MS);
		lamp_tristate_off (LM_MULTIBALL);
		lamp_tristate_flash (LM_BONUS_X);
		task_sleep (TIME_500MS);
	}
}
Пример #19
0
void rules_rollover_leff (void)
{
	triac_disable (TRIAC_GI_MASK);
	for (;;)
	{
		lamp_tristate_off (LM_RIGHT_INLANE);
		lamp_tristate_on (LM_LEFT_INLANE1);
		task_sleep_sec (1);
		lamp_tristate_off (LM_LEFT_INLANE1);
		lamp_tristate_on (LM_LEFT_INLANE2);
		task_sleep_sec (1);
		lamp_tristate_off (LM_LEFT_INLANE2);
		lamp_tristate_on (LM_RIGHT_INLANE);
		task_sleep_sec (1);
	}
}
Пример #20
0
CALLSET_ENTRY (left_ramp, lamp_update)
{
	if (timer_find_gid (GID_TNF_READY))
		lamp_tristate_flash (LM_BONUS_X);
	else
		lamp_tristate_off (LM_BONUS_X);
}
Пример #21
0
//rotate rollovers when buttons pressed
CALLSET_ENTRY (rollovers, sw_right_button, sw_upper_right_button) {
	if (valid_playfield && 	!flag_test(FLAG_VIDEO_MODE_RUNNING) ) {
			if (top_rollover_activated && lower_rollover_activated) { //left not activated
				lamp_tristate_on(LM_MIDDLE_ROLLOVER);
				lamp_tristate_off(LM_TOP_ROLLOVER);
				lamp_tristate_on(LM_LOWER_ROLLOVER);
				middle_rollover_activated = TRUE;
				top_rollover_activated = FALSE;
				lower_rollover_activated = TRUE;
				}
			else if (middle_rollover_activated && lower_rollover_activated) { //center not activated
				lamp_tristate_on(LM_MIDDLE_ROLLOVER);
				lamp_tristate_on(LM_TOP_ROLLOVER);
				lamp_tristate_off(LM_LOWER_ROLLOVER);
				middle_rollover_activated = TRUE;
				top_rollover_activated = TRUE;
				lower_rollover_activated = FALSE;
				}
			else if (middle_rollover_activated && top_rollover_activated) { //right not activated
				lamp_tristate_off(LM_MIDDLE_ROLLOVER);
				lamp_tristate_on(LM_TOP_ROLLOVER);
				lamp_tristate_on(LM_LOWER_ROLLOVER);
				middle_rollover_activated = FALSE;
				top_rollover_activated = TRUE;
				lower_rollover_activated = TRUE;
				}
			else if (middle_rollover_activated) { //center and right not activated
				lamp_tristate_off(LM_MIDDLE_ROLLOVER);
				lamp_tristate_on(LM_TOP_ROLLOVER);
				lamp_tristate_off(LM_LOWER_ROLLOVER);
				middle_rollover_activated = FALSE;
				top_rollover_activated = TRUE;
				lower_rollover_activated = FALSE;
				}
			else if (top_rollover_activated) { //left and right not activated
				lamp_tristate_off(LM_MIDDLE_ROLLOVER);
				lamp_tristate_off(LM_TOP_ROLLOVER);
				lamp_tristate_on(LM_LOWER_ROLLOVER);
				middle_rollover_activated = FALSE;
				top_rollover_activated = FALSE;
				lower_rollover_activated = TRUE;
				}
			else if (lower_rollover_activated) { //left and center not activated
				lamp_tristate_on(LM_MIDDLE_ROLLOVER);
				lamp_tristate_off(LM_TOP_ROLLOVER);
				lamp_tristate_off(LM_LOWER_ROLLOVER);
				middle_rollover_activated = TRUE;
				top_rollover_activated = FALSE;
				lower_rollover_activated = FALSE;
				}
	}//end of 	if (in_live_game)
}//end of function to rotate right
Пример #22
0
void cryoprison_start(U8 num) {
	kill_combos();
//	cryoprison_start_music = TRUE; //for to play the helicopter instead of the music
	task_create_gid1 (GID_CRYOPRISON_START_NOISE, cryoprison_start_sounds);
	flag_on(FLAG_IS_CRYOPRISON_MB_RUNNING);
	cryoprison_display_counter = 0;
	CRYO_TOGGLE = 0;
	snake_pos = 0;
	cryoprison_ballsave = TRUE;
	mb_mode_start(&cryoprison_mode);
	multiball_started();//reset all MB start criteria for next time

	score_add (cryoprison_score, score_table[CRYOPRISON_MB_SCORE]);
	score (CRYOPRISON_MB_SCORE);

	deff_start (DEFF_CRYOPRISON_START_EFFECT);
	diverter_stop();//defined in divhold2.ct
	task_kill_gid (GID_CR_LIGHTS);

	//LIGHTS
			lamp_tristate_flash(LM_CRYOPRISON_MULTIBALL);
			task_sleep (TIME_2S);
			lamp_tristate_on (LM_CRYOPRISON_MULTIBALL);
			lamp_tristate_off (LM_FREEZE_1);
			lamp_tristate_off (LM_FREEZE_2);
			lamp_tristate_off (LM_FREEZE_3);
			lamp_tristate_off (LM_FREEZE_4);

	//SOUNDS
			U8 	cryoprison_SoundCounter;
			cryoprison_SoundCounter = random_scaled(2);//from kernal/random.c - pick number from 0 to 2
			if (cryoprison_SoundCounter == 0)
				sound_start (ST_SPEECH, SPCH_SIMON_SAYS_SLY, SL_4S, PRI_GAME_QUICK5);
			else
				sound_start (ST_SPEECH, SPCH_PHOENIX_SHORT, SL_4S, PRI_GAME_QUICK5);
	task_sleep (TIME_3S);
	sound_start (ST_SPEECH, SPCH_SIMON_SAYS, SL_4S, PRI_GAME_QUICK5);
	cryoprison_start_music = FALSE; //for to kill the music

	//serve balls
	set_ball_count (5);
	task_create_gid1 (GID_CRYOPRISON_BALL_SAVE, cryoprison_ballsave_task);

	task_sleep (TIME_3S);
	set_all_jackpots(); //all 6 lit
}//end of function
Пример #23
0
void rules_chaosmb_leff (void)
{
	lamp_tristate_flash (LM_CLOCK_MILLIONS);
	task_sleep_sec (3);
	for (;;)
	{
		lamp_tristate_flash (LM_SUPER_SKILL);
		task_sleep (TIME_500MS);
		lamp_tristate_off (LM_SUPER_SKILL);
		lamp_tristate_flash (LM_MULTIBALL);
		task_sleep (TIME_500MS);
		lamp_tristate_off (LM_MULTIBALL);
		lamp_tristate_flash (LM_BONUS_X);
		task_sleep (TIME_500MS);
		lamp_tristate_off (LM_BONUS_X);

		lamp_tristate_flash (LM_RAMP_BATTLE);
		task_sleep (TIME_500MS);
		lamp_tristate_off (LM_RAMP_BATTLE);
		lamp_tristate_flash (LM_PIANO_JACKPOT);
		task_sleep (TIME_500MS);
		lamp_tristate_off (LM_PIANO_JACKPOT);
		lamp_tristate_flash (LM_CAMERA);
		task_sleep (TIME_500MS);
		lamp_tristate_off (LM_CAMERA);
		lamp_tristate_flash (LM_POWER_PAYOFF);
		task_sleep (TIME_500MS);
		lamp_tristate_off (LM_POWER_PAYOFF);
	}
}
Пример #24
0
void rules_oddchange1_leff (void)
{
	for (;;)
	{
		lamp_tristate_flash (LM_LL_5M);
		task_sleep (TIME_200MS);
		lamp_tristate_off (LM_LL_5M);

		lamp_tristate_flash (LM_ML_5M);
		task_sleep (TIME_200MS);
		lamp_tristate_off (LM_ML_5M);

		lamp_tristate_flash (LM_UL_5M);
		task_sleep (TIME_200MS);
		lamp_tristate_off (LM_UL_5M);

		lamp_tristate_flash (LM_UR_5M);
		task_sleep (TIME_200MS);
		lamp_tristate_off (LM_UR_5M);
		
		lamp_tristate_flash (LM_MR1_5M);
		task_sleep (TIME_200MS);
		lamp_tristate_off (LM_MR1_5M);

		lamp_tristate_flash (LM_MR2_5M);
		task_sleep (TIME_200MS);
		lamp_tristate_off (LM_MR2_5M);

		lamp_tristate_flash (LM_LR_5M);
		task_sleep (TIME_200MS);
		lamp_tristate_off (LM_LR_5M);
	}
}
Пример #25
0
CALLSET_ENTRY (gumball, lamp_update)
{
	if (gumball_load_is_enabled ())
	{
		lamp_tristate_flash (LM_GUMBALL_LANE);
	}
	else
		lamp_tristate_off (LM_GUMBALL_LANE);
}
Пример #26
0
void jets_active_task (void)
{
	while (timed_mode_running_p (&tsm_mode))
	{
		lamp_tristate_off (LM_RIGHT_JET);
		lamp_tristate_on (LM_LEFT_JET);
		task_sleep (TIME_100MS);	
		lamp_tristate_off (LM_LEFT_JET);
		lamp_tristate_on (LM_LOWER_JET);
		task_sleep (TIME_100MS);	
		lamp_tristate_off (LM_LOWER_JET);
		lamp_tristate_on (LM_RIGHT_JET);
		task_sleep (TIME_100MS);	
	}
	lamp_tristate_on (LM_LEFT_JET);
	lamp_tristate_on (LM_LOWER_JET);
	lamp_tristate_on (LM_RIGHT_JET);
	task_exit ();
}
Пример #27
0
void dragrace_winner_anim(void) {

	dragracedbprintf ("dragrace_winner_anim: start\n");
	//ball_search_timer_reset();

	// TODO sound
	// TODO animation/graphics
	lamp_tristate_on(LM_LEFT_TREE_GREEN);
	lamp_tristate_off(LM_RIGHT_TREE_GREEN);
	lamp_tristate_off(LM_LEFT_TREE_RED);
	lamp_tristate_on(LM_RIGHT_TREE_RED);

	dmd_alloc_low_clean ();
	font_render_string_center (&font_supercar9, 64, 16, "WINNER");
	dmd_show_low ();

	task_sleep_sec(3);
	dragracedbprintf ("dragrace_winner_anim: exit\n");
}
Пример #28
0
void rules_doinks_leff (void)
{
	for (;;)
	{
		lamp_tristate_flash (LM_RIGHT_INLANE);
		task_sleep_sec (1);
		sol_request (SOL_LR_FLIP_POWER);
		lamp_tristate_off (LM_RIGHT_INLANE);
		lamp_tristate_flash (LM_SUPER_SKILL);
		task_sleep (TIME_500MS);
		lamp_tristate_off (LM_SUPER_SKILL);
		lamp_tristate_flash (LM_MULTIBALL);
		task_sleep (TIME_500MS);
		lamp_tristate_off (LM_MULTIBALL);
		lamp_tristate_flash (LM_BONUS_X);
		task_sleep (TIME_500MS);
		lamp_tristate_off (LM_BONUS_X);
	}
}
Пример #29
0
/****************************************************************************
 * body
 ***************************************************************************/
void all_rollover_made (void){
	lamp_tristate_flash(LM_MIDDLE_ROLLOVER);
	lamp_tristate_flash(LM_TOP_ROLLOVER);
	lamp_tristate_flash(LM_LOWER_ROLLOVER);
	if (rollover_bonus_multiplier < max_rollover_bonus_multiplier) {
		++rollover_bonus_multiplier;
		deff_start (DEFF_ALL_ROLLOVERS_EFFECT);
	}
	else if (rollover_bonus_multiplier == max_rollover_bonus_multiplier) start_extraball();
	task_sleep (TIME_2S);
	lamp_tristate_off(LM_MIDDLE_ROLLOVER);
	lamp_tristate_off(LM_TOP_ROLLOVER);
	lamp_tristate_off(LM_LOWER_ROLLOVER);
	middle_rollover_activated = FALSE;
	top_rollover_activated = FALSE;
	lower_rollover_activated = FALSE;
	score (ALL_ROLLOVERS_SCORE);
	//light access claw
	increment_access_claw_light_on();//at inlanes.c
}//end of function
Пример #30
0
void sslot_award (void)
{
	sslot_award_index_stored = sslot_award_index;
	task_kill_gid (GID_SSLOT_AWARD_ROTATE);
	
	/* Don't allow awarding the eb if we can't do so */
	if (!can_award_extra_ball ())
	{
		/* Pick another until it's not an EB */
		while (sslot_award_index_stored == 0)
		{
			sslot_award_index_stored = random_scaled(5);
		}
	}

	switch (sslot_award_index_stored)
	{
		case 0:
			sound_send (SND_GET_THE_EXTRA_BALL);
			light_easy_extra_ball ();
			break;
		case 1:
			sound_send (SND_THIS_IS_NO_ORDINARY_GUMBALL);
			gumball_enable_count++;
			break;
		case 2:
			sound_send (SND_ARE_YOU_READY_TO_BATTLE);
			mpf_enable_count++;
			break;
		case 3:
			sound_send (SND_MOST_UNUSUAL_CAMERA);
			cameras_lit++;
			break;
		case 4:
			sound_send (SND_TEN_MILLION_POINTS);
			score (SC_10M);
			if (!lamp_test (LM_PANEL_10M))
			{
				lamp_on (LM_PANEL_10M);
				door_panels_started++;
			}
			break;
		case 5:
			sound_send (SND_SEE_WHAT_GREED);
			score (SC_5M);
			break;
		default:
			score (SC_5M);
	}

	deff_start (DEFF_SSLOT_AWARD);
	sound_send (SND_SLOT_PAYOUT);
	lamp_tristate_off (LM_SLOT_MACHINE);
}