/** 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); }
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
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
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 (); }
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; } }