示例#1
0
void huxley_mode_init (void) {
	huxley_suspend = FALSE;
	ball_search_monitor_stop ();
	flag_off (FLAG_IS_HUXLEY_ENABLED);
	task_kill_gid(GID_HUXLEY_REMINDER);
	huxley_mode_shots_made = 0;

	score_zero(huxley_mode_score);
	score_zero(huxley_mode_last_score);
	score_zero(huxley_mode_next_score);

	score(HUXLEY_START_SCORE);
	score_add(huxley_mode_score, score_table[HUXLEY_START_SCORE]);
	score_add(huxley_mode_next_score, score_table[HUXLEY_MODE_HIT_SCORE]);

	huxley_counter = 0; //reset for next time

	deff_start_sync (DEFF_HUXLEY_START_EFFECT);//under /kernel/deff.c
	ballsave_add_time (system_config.mode_ballsave);

	leff_start(LEFF_EYEBALL);

	sol_request_async (SOL_EJECT); //request to fire the eject sol
	task_sleep (TIME_300MS);
	set_normal_eject_killed_status (FALSE);
	ball_search_monitor_start ();

	set_dm_mode(HUXLEY_COMPLETED); //for BONUS
}//end of function
示例#2
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
示例#3
0
void huxley_mode_init (void) {
	ball_search_monitor_stop ();
	task_kill_gid(GID_HUXLEY_REMINDER);
	flag_on (FLAG_IS_HUXLEY_RUNNING);
	huxley_mode_shots_made = 0;
	++huxley_modes_achieved;

	score_zero(huxley_mode_score);
	score_zero(huxley_mode_last_score);
	score_zero(huxley_mode_next_score);

	score(HUXLEY_START_SCORE);
	score_add(huxley_mode_score, score_table[HUXLEY_START_SCORE]);
	score_add(huxley_mode_next_score, score_table[HUXLEY_MODE_HIT_SCORE]);

	huxley_goal += (HUXLEY_EASY_GOAL * 2);
	flag_off(FLAG_IS_HUXLEY_ENABLED);

	deff_start_sync (DEFF_HUXLEY_START_EFFECT);//under /kernel/deff.c
	ballsave_add_time (5);


	leff_start(LEFF_HUXLEY);

	sol_request_async (SOL_EJECT); //request to fire the eject sol
	task_sleep (TIME_300MS);
	flag_off(FLAG_KILL_NORMAL_EJECT);
	ball_search_monitor_start ();
}//end of function
示例#4
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
示例#5
0
文件: sharpe.c 项目: SonnyJim/freewpc
CALLSET_ENTRY (sharpe, start_game)
{
	sharpe_lives = 3;
	sharpe_timer = 10;
	sharpe_level = 0;
	score_zero (sharpe_score);
}
示例#6
0
void car_chase_player_reset (void) {
	car_chase_reset();
	car_chase_modes_achieved = 0;
	car_chase_mode_shots_made = 0;
	score_zero(car_chase_mode_score_total_score);
	carchase_MessageCounter = 0;
}//end of function
示例#7
0
CALLSET_ENTRY (wasteland, start_player) {
	score_zero(wasteland_score);
	wasteland_jackpot_shots_made = 0; //these need to be zeroed in before we enter the mode so bonus doesn't fake trigger
	wasteland_start_music = FALSE;
	is_wasteland_running = FALSE;
	wasteland_ballsave = FALSE;
}
示例#8
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 ();
}
示例#9
0
文件: format.c 项目: Mole23/freewpc
/**
 * Format a replay score adjustment.
 * The adjustment system only allows for at most 256 different settings per
 * adjustment.  For replay scores, 0 means the replay level is OFF, and
 * 1-255 refer to specific replay values.
 */
void replay_score_render (U8 val)
{
	if (val == 0)
	{
		sprintf ("OFF");
	}
	else
	{
		score_t score;
		score_zero (score);
		replay_code_to_score (score, val);
		sprintf_score (score);
	}
}
示例#10
0
文件: tnf.c 项目: SonnyJim/freewpc
CALLSET_ENTRY (tnf, tnf_start)
{
	flipper_disable ();
	tnf_buttons_pressed = 1;
	score_zero (tnf_score);
	set_tnf_target ();
	leff_start (LEFF_BONUS);
	music_request (MUS_POWERFIELD, PRI_GAME_VMODE);
	deff_start_sync (DEFF_TNF);
	task_sleep_sec (1);
	while (deff_get_active () == DEFF_TNF)
		task_sleep (TIME_500MS);
	leff_stop (LEFF_BONUS);
	callset_invoke (tnf_end);
}
示例#11
0
文件: format.c 项目: SonnyJim/freewpc
/**
 * Format a replay score adjustment.
 * The adjustment system only allows for at most 256 different settings per
 * adjustment.  For replay scores, 0 means the replay level is OFF, and
 * 1-255 refer to specific replay values.
 *
 * The machine should define a function that returns the score associated
 * with a certain level, and then define MACHINE_REPLAY_CODE_TO_SCORE
 * as an alias to that function.  It should be placed in the __machine__
 * region.
 *
 * You should also define MACHINE_REPLAY_SCORE_CHOICES as the number of
 * valid, non-zero replay levels that are acceptable as input.
 */
void replay_score_render (U8 val)
{
    if (val == 0)
    {
        sprintf ("OFF");
        return;
    }
#ifdef MACHINE_REPLAY_CODE_TO_SCORE
    extern __machine__ void MACHINE_REPLAY_CODE_TO_SCORE (score_t, U8);
    score_t score;
    score_zero (score);
    MACHINE_REPLAY_CODE_TO_SCORE (score, val);
    sprintf_score (score);
#else
#warning "machine does not define replay levels"
    sprintf ("CODE %d", val);
#endif
}
示例#12
0
void huxley_player_reset (void) {
	if (IN_TEST) huxley_goal = 1;
	else		 huxley_goal = HUXLEY_EASY_GOAL;

	flag_off(FLAG_IS_HUXLEY_ENABLED);
	flag_off(FLAG_IS_HUXLEY_RUNNING);
	huxley_reset();
	huxley_counter = 0;
	huxley_modes_achieved = 0;
	huxley_mode_shots_made = 0;
	score_zero(huxley_mode_score_total_score);
	task_kill_gid(GID_HUXLEY_REMINDER);

#ifdef CONFIG_DIFFICULTY_LEVEL
	if (system_config.difficulty == EASY) 	huxley_goal = HUXLEY_EASY_GOAL;
	else									huxley_goal = HUXLEY_HARD_GOAL;
#endif
}//end of function
示例#13
0
void car_chase_mode_init (void) {
	car_chase_mode_shots_made = 0;
	flag_on (FLAG_IS_CARCHASE_MODE_RUNNING);
	ballsave_add_time (10);
	++car_chase_modes_achieved;
	diverter_stop();//defined in divhold2.ct
	task_kill_gid (GID_CR_LIGHTS);
	carchase_mode_on(); //at ramps.c
	serve_ball_auto(); //add one ball to the playfield - NOT a multiball since doesn't change global ball count
	sound_start (ST_SPEECH, SPCH_WUSS_SPARTAN, SL_4S, PRI_GAME_QUICK5);
	task_sleep_sec (2);
	sound_start (ST_SPEECH, SPCH_EXCUSE_ME, SL_4S, PRI_GAME_QUICK5);
	task_sleep_sec (1);
	sound_start (ST_SPEECH, SPCH_BETWEEN_YOU_N_ME, SL_4S, PRI_GAME_QUICK5);
	//flash lamp for a time
	score_zero(car_chase_mode_score);

	lamp_tristate_off (LM_CLAW_READY);
}//end of function
示例#14
0
/****************************************************************************
 * initialize  and exit
 ***************************************************************************/
CALLSET_ENTRY (huxley, start_player) 	{
	if (DM_IN_CAB_TEST) huxley_goal = 1;
	else		 huxley_goal = HUXLEY_EASY_GOAL;

	huxley_counter = 0;
	huxley_mode_shots_made = 0;
	score_zero(huxley_mode_score_total_score);
	task_kill_gid(GID_HUXLEY_REMINDER);

#ifdef CONFIG_DIFFICULTY_LEVEL
	huxley_goal = system_config.num2huxley;
#endif

	if (huxley_goal == 0) flag_on(FLAG_IS_HUXLEY_ENABLED);
	else flag_off(FLAG_IS_HUXLEY_ENABLED);

	//for testing
//	huxley_increment();
	huxley_suspend = FALSE;
}//end of function
示例#15
0
void car_chase_ramp_made(void) {
	++car_chase_mode_shots_made;

	deff_start (DEFF_CAR_CHASE_HIT_EFFECT);

	score_zero(car_chase_mode_temp_score);
	switch (car_chase_modes_achieved ){
		case 1:
			score (CARCHASE_HIT_SCORE_1);
			score_add(car_chase_mode_temp_score, score_table[CARCHASE_HIT_SCORE_1]);
			break;
		case 2: //2nd time we are in car_chase - score differently
			score (CARCHASE_HIT_SCORE_2);
			score_add(car_chase_mode_temp_score, score_table[CARCHASE_HIT_SCORE_2]);
			break;
		default: //all cases past 3rd time we are in car_chase
		case 3: //3rd time we are in car_chase - score differently
			score (CARCHASE_HIT_SCORE_3);
			score_add(car_chase_mode_temp_score, score_table[CARCHASE_HIT_SCORE_3]);
			break;
	}//end of switch
	score_add (car_chase_mode_score, car_chase_mode_temp_score);
	score_add (car_chase_mode_score_total_score, car_chase_mode_temp_score);
}//end of function
示例#16
0
CALLSET_ENTRY (superjets, start_player) 	{
	superjets_mode_shots_made = 0; //these need to be zeroed in before we enter the mode so bonus doesn't fake trigger
	score_zero(superjets_mode_score_total_score);
	superjets_goal = SUPERJETS_EASY_GOAL;
}//end of function
示例#17
0
void prison_break_player_reset (void) {
	prison_break_mode_shots_made = 0;
	score_zero(prison_break_mode_score_total_score);
	prison_break_suspend = FALSE;
}//end of function
示例#18
0
CALLSET_ENTRY (eject, dev_eyeball_eject_enter) {
	//HUXLEY MADE
	if ( !flag_test(FLAG_BACK_IN_THE_FRIDGE_RUNNING)
		&&	task_kill_gid(GID_LEFT_INLANE_MADE) ) {
//		flag_on(FLAG_KILL_NORMAL_EJECT);
		huxley_made();
		return;
//		task_sleep (TIME_300MS);//give time for huxley to catch up
	}

	//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) ) {
//						flag_on(FLAG_KILL_NORMAL_EJECT);
						start_video_mode(3);

						sound_start (ST_ANY, SPCH_PLAYER_TWO, SL_1S, PRI_GAME_QUICK5);
						task_sleep (TIME_500MS);
						task_sleep (TIME_500MS);
						task_sleep (TIME_500MS);
						task_sleep (TIME_500MS);


						combo_rehit_check (); //check to see if enough combos to relight video mode
						sol_request (SOL_EJECT); //request to fire the eject sol
						ball_search_monitor_start ();
//						return;
						task_sleep (TIME_300MS);
	}//end of start video mode

	//NORMAL RETINA SCAN
	else //if (!flag_test(FLAG_KILL_NORMAL_EJECT) )
	{
						leff_start (LEFF_EJECT);

						sound_start (ST_SAMPLE, RETINA_SCAN_LONG, SL_4S, PRI_GAME_QUICK1);
						score (EJECT_SCORE);
						//100k per jet hit here
						if (jet_shots_made > 0) {
							score_zero (temp_score);//zero out temp score
							score_add (temp_score, score_table[SC_100K]);//multiply 100K by jet count
							score_mul (temp_score, jet_shots_made);//multiply 100K by jet count
							score_long (temp_score); //add temp score to player's score
						}//end of if

						if (retina_scan_multiplier == 2)	{
							sound_start(ST_SPEECH, SPCH_DOUBLE_RETINA_SCAN, SL_4S, PRI_GAME_QUICK5);
							score (EJECT_SCORE);
							score_long (temp_score); //add temp score to player's score
						}

						deff_start (DEFF_EJECT_EFFECT);
						task_sleep_sec (1);

						sol_request (SOL_EJECT); //request to fire the eject sol
	}//end of else !flag_test(FLAG_KILL_NORMAL_EJECT)
}//end of function
示例#19
0
CALLSET_ENTRY (eject, dev_eyeball_eject_enter) {
	if (!in_game) {
		sol_request (SOL_EJECT);
		task_sleep (TIME_1S);
	}
	else {
			//HUXLEY MADE
			if ( !get_back_in_the_fridge_running()
				&&	!get_back_in_the_fridge_ending()
				&&	task_kill_gid(GID_LEFT_INLANE_MADE)  && !in_tilt) {
				is_normal_eject_killed = TRUE;
				huxley_made();
				return;
			}//end of huxley made

			//START VIDEO MODE
			else if (  (system_config.disable_kaboom  == NO || system_config.disable_simon_says == NO || system_config.disable_shooter == NO)
					&&	flag_test (FLAG_VIDEO_MODE_ENABLED)
					&&  !in_tilt
					&&	!get_back_in_the_fridge_running()
					&&	!get_back_in_the_fridge_ending()
					&& !get_fortress_running ()
					&& !get_museum_running ()
					&& !get_cryoprison_running ()
					&& !get_wasteland_running ()
					&& !get_demotime_running ()
					&& !is_frenzy_running () ) {       //this is here since starting frenzy dumps ball into eject hole
					switch (get_next_video_mode() ) {
							case 0: start_kaboom(); 		break;
							case 1: start_simon_says(); 	break;
							case 2: start_shooter(); 		break;
							}//end of switch
							combo_rehit_check (); //check to see if enough combos to relight video mode
							//we just returned from video mode so flash the lights before you fire the coil
							leff_start (LEFF_EJECT);
							task_sleep (TIME_500MS);

							sol_request (SOL_EJECT); //request to fire the eject sol
							task_create_gid1 (GID_EJECT_1, eject_switch_task);
							ball_search_monitor_start ();
							task_sleep (TIME_300MS);
			}//end of start video mode

			//NORMAL RETINA SCAN
			else if (!is_normal_eject_killed ) {
					if (!in_tilt) {
						score (EJECT_SCORE);
						//100k per jet hit here
						if (jet_shots_made > 0) {
							score_zero (temp_score);//zero out temp score
							score_add (temp_score, score_table[SC_100K]);//multiply 100K by jet count
							score_mul (temp_score, jet_shots_made);//multiply 100K by jet count
							score_long (temp_score); //add temp score to player's score
						}//end of if

						if (retina_scan_multiplier == 2)	{
							sound_start(ST_SPEECH, SPCH_DOUBLE_RETINA_SCAN, SL_4S, PRI_GAME_QUICK4);
							score (EJECT_SCORE);
							score_long (temp_score); //add temp score to player's score
						}

						leff_start (LEFF_EJECT);
						sound_start (ST_SAMPLE, RETINA_SCAN_LONG, SL_4S, PRI_GAME_QUICK1);
						deff_start (DEFF_EJECT_EFFECT);
						task_sleep (TIME_300MS);
					}//end of not in tilt
						sol_request (SOL_EJECT); //request to fire the eject sol
						task_create_gid1 (GID_EJECT_1, eject_switch_task);//this is a 2 second ball save timer for eject coil
			}//end of else !is_normal_eject_killed = FALSE
	}//end of else in game
}//end of function
示例#20
0
CALLSET_ENTRY (bop_spinner, start_ball)
{
	score_zero (spinner_total);
}
示例#21
0
文件: jets.c 项目: SonnyJim/freewpc
CALLSET_ENTRY (jets, start_ball)
{
	jets_sound_index = 0;
	jets_hit = 0;
	score_zero (total_jets_score);
}
示例#22
0
文件: jets.c 项目: SonnyJim/freewpc
void jets_mode_init (void)
{
	score_zero (jets_frenzy_total);
	lamplist_apply (LAMPLIST_JETS_ENTER, lamp_off);
	leff_start (LEFF_JETS_COMPLETED);
}
示例#23
0
/****************************************************************************
 * initialize  and exit
 ***************************************************************************/
void cryoprison_player_reset (void) {
	flag_off(FLAG_IS_CRYOPRISON_MB_RUNNING);
	score_zero(cryoprison_score);
	cryoprison_jackpot_shots_made = 0; //these need to be zeroed in before we enter the mode so bonus doesn't fake trigger
	cryoprison_start_music = FALSE;
}//end of function
示例#24
0
CALLSET_ENTRY (fortress, start_player) {
	score_zero(fortress_score);
	fortress_jackpot_shots_made = 0; //these need to be zeroed in before we enter the mode so bonus doesn't fake trigger
	fortress_ballsave = FALSE;
}//end of function
示例#25
0
void super_jackpot_value_deff (void)
{
	seg_alloc_clean ();
	seg_write_row_center (0, "SUPER JACKPOT");
	seg_write_row_center (1, "VALUE");
	seg_show ();
	task_sleep_sec (1);
	
	if (total_body_parts > 0)
	{
		score_zero (super_jackpot_calc);
		score_add (super_jackpot_calc, score_table[SC_50K]);
		score_mul (super_jackpot_calc, total_body_parts);

		seg_alloc_clean ();
		psprintf ("1 BODY PART", "%d BODY PARTS", total_body_parts);
		seg_write_row_center (0, sprintf_buffer);
		sprintf_score (super_jackpot_calc);
		seg_write_row_center (1, sprintf_buffer);
		seg_show ();
		task_sleep_sec (1);
	}

	score_zero (super_jackpot_calc);
	switch (mpf_level)
	{
		case 0:
			score_add (super_jackpot_calc, score_table[SC_100K]);
			break;
		case 1:
			score_add (super_jackpot_calc, score_table[SC_200K]);
			break;
		case 2:
			score_add (super_jackpot_calc, score_table[SC_300K]);
			break;
		case 3:
			score_add (super_jackpot_calc, score_table[SC_500K]);
			break;
		default:
			break;
	}
	seg_alloc_clean ();
	sprintf ("MPF LEVEL");
	seg_write_row_center (0, sprintf_buffer);
	sprintf_score (super_jackpot_calc);
	seg_write_row_center (1, sprintf_buffer);
	seg_show ();
	task_sleep_sec (1);
	


	score_zero (super_jackpot_calc);
	switch (rightramp_level)
	{
		case 0:
			score_add (super_jackpot_calc, score_table[SC_50K]);
			break;
		case 1:
			score_add (super_jackpot_calc, score_table[SC_100K]);
			break;
		case 2:
			score_add (super_jackpot_calc, score_table[SC_500K]);
			break;
		case 3:
			score_add (super_jackpot_calc, score_table[SC_1M]);
			break;
		default:
			break;
	}
	seg_alloc_clean ();
	sprintf ("RIGHT RAMP");
	seg_write_row_center (0, sprintf_buffer);
	sprintf_score (super_jackpot_calc);
	seg_write_row_center (1, sprintf_buffer);
	seg_show ();
	task_sleep_sec (1);
	
	score_zero (super_jackpot_calc);
	if (score_compare (total_jets_score, score_table[SC_500K]) >= 0)
		score_add (super_jackpot_calc, score_table[SC_500K]);
	else if (score_compare (total_jets_score, score_table[SC_100K]) >= 0)
		score_add (super_jackpot_calc, score_table[SC_100K]);
	else if (score_compare (total_jets_score, score_table[SC_50K]) >= 0)
		score_add (super_jackpot_calc, score_table[SC_50K]);
	else if (score_compare (total_jets_score, score_table[SC_25K]) >= 0)
		score_add (super_jackpot_calc, score_table[SC_25K]);
	
	seg_alloc_clean ();
	sprintf ("JETS");
	seg_write_row_center (0, sprintf_buffer);
	sprintf_score (super_jackpot_calc);
	seg_write_row_center (1, sprintf_buffer);
	seg_show ();
	task_sleep_sec (1);
	
	score_zero (super_jackpot_calc);
	switch (left_loop_level)
	{
		case 0:
			score_add (super_jackpot_calc, score_table[SC_25K]);
			break;
		case 1:
			score_add (super_jackpot_calc, score_table[SC_50K]);
			break;
		case 2:
			score_add (super_jackpot_calc, score_table[SC_100K]);
			break;
		case 3:
			score_add (super_jackpot_calc, score_table[SC_500K]);
			break;
		default:
			break;
	}
	
	seg_alloc_clean ();
	sprintf ("LEFT LOOP");
	seg_write_row_center (0, sprintf_buffer);
	sprintf_score (super_jackpot_calc);
	seg_write_row_center (1, sprintf_buffer);
	seg_show ();
	task_sleep_sec (1);
	
	score_zero (super_jackpot_calc);
	switch (right_loop_level)
	{
		case 0:
			score_add (super_jackpot_calc, score_table[SC_25K]);
			break;
		case 1:
			score_add (super_jackpot_calc, score_table[SC_50K]);
			break;
		case 2:
			score_add (super_jackpot_calc, score_table[SC_100K]);
			break;
		case 3:
			score_add (super_jackpot_calc, score_table[SC_500K]);
			break;
		default:
			break;
	}
	seg_alloc_clean ();
	sprintf ("RIGHT LOOP");
	seg_write_row_center (0, sprintf_buffer);
	sprintf_score (super_jackpot_calc);
	seg_write_row_center (1, sprintf_buffer);
	seg_show ();
	task_sleep_sec (1);
	
	deff_exit ();
}
示例#26
0
文件: jets.c 项目: SonnyJim/freewpc
void tsm_mode_init (void)
{
	task_create_gid (GID_JETS_ACTIVE_TASK, jets_active_task);
	score_zero (tsm_mode_total);
	init_all_dollars ();
}
示例#27
0
static void calculate_super_jackpot_value (void)
{
	score_zero (super_jackpot_value);

	

	if (total_body_parts > 0)
	{
		score_add (super_jackpot_value, score_table[SC_50K]);
		score_mul (super_jackpot_value, total_body_parts);
	}

	switch (mpf_level)
	{
		case 0:
			score_add (super_jackpot_value, score_table[SC_100K]);
			break;
		case 1:
			score_add (super_jackpot_value, score_table[SC_200K]);
			break;
		case 2:
			score_add (super_jackpot_value, score_table[SC_300K]);
			break;
		case 3:
			score_add (super_jackpot_value, score_table[SC_500K]);
			break;
		default:
			break;
	}
	
	switch (rightramp_level)
	{
		case 0:
			score_add (super_jackpot_value, score_table[SC_50K]);
			break;
		case 1:
			score_add (super_jackpot_value, score_table[SC_100K]);
			break;
		case 2:
			score_add (super_jackpot_value, score_table[SC_500K]);
			break;
		case 3:
			score_add (super_jackpot_value, score_table[SC_1M]);
			break;
		default:
			break;
	}

	if (score_compare (total_jets_score, score_table[SC_500K]) >= 0)
		score_add (super_jackpot_value, score_table[SC_500K]);
	else if (score_compare (total_jets_score, score_table[SC_100K]) >= 0)
		score_add (super_jackpot_value, score_table[SC_100K]);
	else if (score_compare (total_jets_score, score_table[SC_50K]) >= 0)
		score_add (super_jackpot_value, score_table[SC_50K]);
	else if (score_compare (total_jets_score, score_table[SC_25K]) >= 0)
		score_add (super_jackpot_value, score_table[SC_25K]);
	
	switch (left_loop_level)
	{
		case 0:
			score_add (super_jackpot_value, score_table[SC_25K]);
			break;
		case 1:
			score_add (super_jackpot_value, score_table[SC_50K]);
			break;
		case 2:
			score_add (super_jackpot_value, score_table[SC_100K]);
			break;
		case 3:
			score_add (super_jackpot_value, score_table[SC_500K]);
			break;
		default:
			break;
	}

	switch (right_loop_level)
	{
		case 0:
			score_add (super_jackpot_value, score_table[SC_25K]);
			break;
		case 1:
			score_add (super_jackpot_value, score_table[SC_50K]);
			break;
		case 2:
			score_add (super_jackpot_value, score_table[SC_100K]);
			break;
		case 3:
			score_add (super_jackpot_value, score_table[SC_500K]);
			break;
		default:
			break;
	}


}