Beispiel #1
0
/** Like above, but the global score multiplier is in effect and
an additional multiplier can be specified too. */
void score_long_multiple (const score_t score, U8 multiplier)
{
	score_copy (last_score, score);
	last_multiplier = multiplier;
	score_mul (last_score, multiplier);
	score_mul (last_score, global_score_multiplier);
	score_award (last_score);
}
Beispiel #2
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
Beispiel #3
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
Beispiel #4
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 ();
}
Beispiel #5
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;
	}


}