Exemplo n.º 1
0
void dragrace_start_anim (void) {
	//ball_search_timer_reset();

	// TODO show graphic of racetrack starting grid or something suitable

	// ready
	lamp_tristate_on(LM_TREE_TOP_YELLOW);
	dmd_alloc_low_clean ();
	font_render_string_center (&font_supercar9, 64, 16, "READY");
	dmd_show_low ();
	sample_start (SND_RACE_STARTER_01, SL_500MS);
	task_sleep_sec(1);

	// set
	lamp_tristate_on(LM_TREE_BOTTOM_YELLOW);
	dmd_alloc_low_clean ();
	font_render_string_center (&font_supercar9, 64, 16, "SET");
	dmd_show_low ();
	sample_start (SND_RACE_STARTER_01, SL_500MS);
	task_sleep_sec(1);

	// go
	lamp_tristate_flash(LM_LEFT_TREE_GREEN);
	lamp_tristate_flash(LM_RIGHT_TREE_GREEN);
	dmd_alloc_low_clean ();
	font_render_string_center (&font_supercar9, 64, 16, "GO");
	dmd_show_low ();
	sample_start (SND_RACE_STARTER_02, SL_2S);
}
Exemplo n.º 2
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);
	}
}
Exemplo n.º 3
0
CALLSET_ENTRY (skillshot_skidpad, lamp_update)
{
	if (!task_find_gid(GID_SKILLSHOT_SKIDPAD_TIMER)) {
		return;
	}

	lamp_tristate_flash (LM_SKID_PAD_ARROW);
	lamp_tristate_flash (LM_SKID_PAD_JACKPOT);
}
Exemplo n.º 4
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);
	}
}
Exemplo n.º 5
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);
	}
}
Exemplo n.º 6
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);
	}
}
Exemplo n.º 7
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);
	}
}
Exemplo n.º 8
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);
	}
}
Exemplo n.º 9
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);
	}
}
Exemplo n.º 10
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
Exemplo n.º 11
0
void clock_millions_mode_init (void)
{
	clock_mode_hits = 0;
	score_zero (clock_mode_score);
	lamp_tristate_flash (LM_CLOCK_MILLIONS);
	tz_clock_start_forward ();
}
Exemplo n.º 12
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);
	}
}
Exemplo n.º 13
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);
}
Exemplo n.º 14
0
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
Exemplo n.º 15
0
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
Exemplo n.º 16
0
CALLSET_ENTRY (sssmb, lamp_update)
{
	if (global_flag_test (GLOBAL_FLAG_SSSMB_RUNNING) && sssmb_ramps_to_divert > 0)
		lamp_tristate_on (LM_SUPER_SKILL);
	else if (sssmb_can_divert_to_plunger ())
		lamp_tristate_flash (LM_SUPER_SKILL);
}
Exemplo n.º 17
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);
	}
}
Exemplo n.º 18
0
CALLSET_ENTRY (gumball, lamp_update)
{
	if (gumball_load_is_enabled ())
	{
		lamp_tristate_flash (LM_GUMBALL_LANE);
	}
	else
		lamp_tristate_off (LM_GUMBALL_LANE);
}
Exemplo n.º 19
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
Exemplo n.º 20
0
void finale_start (void)
{
	if (finale_can_be_started ())
	{
		flag_off (FLAG_FINALE_LIT);
		lamp_tristate_flash (LM_GRAND_FINALE);
		lamplist_apply (LAMPLIST_MODES, lamp_flash_on);
		finale_level = 1;
	}
}
Exemplo n.º 21
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);
	}
}
Exemplo n.º 22
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
Exemplo n.º 23
0
//flashing overides being on solid, so if multiple modes
//are running, lamp will flash, but when timer ends, will go back to solid
void flash_combos(void){
	if (flag_test (FLAG_IS_COMBO_SIDERAMP_ACTIVATED) ) 		lamp_tristate_flash (LM_SIDE_RAMP_ARROW);
	if (flag_test (FLAG_IS_COMBO_LEFTRAMP_ACTIVATED) ) 		lamp_tristate_flash (LM_LEFT_RAMP_ARROW);
	if (flag_test (FLAG_IS_COMBO_RIGHTRAMP_ACTIVATED) ) 	lamp_tristate_flash (LM_RIGHT_RAMP_ARROW);
	if (flag_test (FLAG_IS_COMBO_UNDER_ACTIVATED) ) 		lamp_tristate_flash (LM_UNDERGROUND_ARROW);
	if (flag_test (FLAG_IS_COMBO_CENTERRAMP_ACTIVATED) ) 	lamp_tristate_flash (LM_CENTER_RAMP_ARROW);
	if (flag_test (FLAG_IS_COMBO_LEFTORB_ACTIVATED) ) 		lamp_tristate_flash (LM_LEFT_LOOP_ARROW);
	if (flag_test (FLAG_IS_COMBO_RIGHTORB_ACTIVATED) ) 		lamp_tristate_flash (LM_RIGHT_LOOP_ARROW);
}//end of function
Exemplo n.º 24
0
void increment_freeze(void) {
	sound_start (ST_EFFECT, LOCK_FREEZE_PLOINK, SL_1S, PRI_GAME_QUICK1);
	if (NumBallsFrozen < 5)
			switch (++NumBallsFrozen) {
			case 1:
					lamp_tristate_flash(LM_FREEZE_1);
					task_sleep (TIME_500MS);
					lamp_tristate_on (LM_FREEZE_1);
					break;
			case 2:
					lamp_tristate_flash(LM_FREEZE_2);
					task_sleep (TIME_500MS);
					lamp_tristate_on (LM_FREEZE_1);
					lamp_tristate_on (LM_FREEZE_2);
					break;
			case 3:
					lamp_tristate_flash(LM_FREEZE_3);
					task_sleep (TIME_500MS);
					lamp_tristate_on (LM_FREEZE_1);
					lamp_tristate_on (LM_FREEZE_2);
					lamp_tristate_on (LM_FREEZE_3);
					break;
			case 4:
					lamp_tristate_flash(LM_FREEZE_4);
					task_sleep (TIME_500MS);
					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;
			case 5://THERE ARE ONLY 4 LIGHTS, this is just here of for the case of maximize freezes, to prevent any from flashing
					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
	deactivate_left_ramp_quickfreeze();//goto ramps.c
	light_quick_freeze_light_off();//goto inlanes.c
	if (	!get_back_in_the_fridge_running()
		&&	!get_back_in_the_fridge_ending() ) check_multiball_requirements();
}//end of function
Exemplo n.º 25
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
Exemplo n.º 26
0
void gangway_init (U8 spots)
{
	lamplist_apply (LAMPLIST_GANGWAYS, lamp_off);
	lamplist_apply (LAMPLIST_GANGWAYS, lamp_flash_off);
	gangway_count = spots;
	while (spots > 0)
	{
		lamplist_build_increment (LAMPLIST_GANGWAYS, lamp_matrix);
		spots--;
	}
	lamp_tristate_flash (lamplist_index (LAMPLIST_GANGWAYS, gangway_count));
}
Exemplo n.º 27
0
void rules_ramp_battle_leff (void)
{
	for (;;)
	{
		triac_disable (GI_POWERFIELD);
		lamp_tristate_flash (LM_RAMP_BATTLE);
		task_sleep_sec (4);
		lamp_tristate_off (LM_RAMP_BATTLE);
		triac_enable (GI_POWERFIELD);
		task_sleep_sec (3);
	}
}
Exemplo n.º 28
0
void million_lamp_update (void)
{
	if (flag_test (FLAG_MILLION_LIT) ||
		flag_test (FLAG_MULTIBALL_LIT) ||
		flag_test (FLAG_QUICK_MB_RUNNING))
	{
		lamp_tristate_flash (LM_MILLION);
	}
	else
	{
		lamp_tristate_off (LM_MILLION);
	}
}
Exemplo n.º 29
0
void trick_update_lamp (U8 n)
{
	const struct trick_info *trinfo = trick_info_table + n;
	U8 bit = TR_BIT(n);

	/* For each shot, there are two lamps updated: the
	'mode' lamp in the 4x2 grid at the bottom, and the
	'shot' lamp which is near the shot itself. */

	/* Logic for the shot lamp:
		1. If skill shot is active, then all remaining skill shots will
			be flashing.  Other lamps will be off.
		2. Else, during Trick Multiball, these lamps continuously flash
			for Jackpots.
		3. Else, during normal play when Tricks are available, they show
			which shots have been made this ball.
		4. Else, if Tricks are not available, then they will all be off. */
	if (trick_shots_this_ball & bit)
		lamp_tristate_on (trinfo->shot_lamp);
	else
		lamp_tristate_flash (trinfo->shot_lamp);

	/* Logic for the mode shots:
		(Skill shot has no effect on these.)
		1. If Trick MB running, shots which have not been collected will
			flash, others will be lit.
		2. Else, they show status towards next Trick MB:
			- If a shot has been finished this ball, it flashes
			- If finished earlier, it is solid
			- Else, it is off.
			This state is drawn even when Tricks are not available.
		*/
	if (tricks_finished_this_ball & bit)
		lamp_tristate_flash (trinfo->mode_lamp);
	else if (tricks_finished & bit)
		lamp_tristate_on (trinfo->mode_lamp);
	else
		lamp_tristate_off (trinfo->mode_lamp);
}
Exemplo n.º 30
0
Arquivo: coin.c Projeto: hydra/freewpc
/** Update the start button lamp.  It will flash when a new game
 * can be started, or be solid on during a game.   It will be
 * off only when there are no credits. */
void lamp_start_update (void)
{
#ifdef MACHINE_START_LAMP
	if (has_credits_p ())
	{
		if (!in_game)
			lamp_tristate_flash (MACHINE_START_LAMP);
		else
			lamp_tristate_on (MACHINE_START_LAMP);
	}
	else
		lamp_tristate_off (MACHINE_START_LAMP);
#endif
}