Пример #1
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
Пример #2
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
Пример #3
0
void main_mb_update (enum mb_mode_state state)
{
	if (state == MB_ACTIVE)
	{
		effect_update_request ();
		set_ball_count (3);
	}
	else if (state == MB_INACTIVE)
	{
		main_mb_level++;
	}
}
Пример #4
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
Пример #5
0
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;
	}
}
Пример #6
0
/**
 * Add COUNT balls into play from the trough.
 */
void add_ball_count (U8 count)
{
	set_ball_count (live_balls + count);
}
Пример #7
0
/* Add COUNT balls into play from the trough. */
void add_ball_count (U8 count) {
	set_ball_count (live_balls + count);
} //end of function