CALLSET_ENTRY (jets, jet_hit) { // task_recreate_gid (GID_JETS, jet_hit_task); //score_copy (temp_score, current_score); flasher_pulse (FLASH_RIGHT_HELMET); /* Make a sound, based on level */ if (!free_timer_test (timer_jets_level_up)) sound_send (jet_sounds[jets_level][jets_sound_index]); jets_sound_index++; if (jets_sound_index > 2) jets_sound_index = 0; if (timed_mode_running_p (&jets_frenzy_mode)) { score (SC_500K); } else if (score_compare (total_jets_score, score_table[SC_500K]) >= 0) { timed_mode_begin (&jets_frenzy_mode); score (SC_500K); score_add (jets_frenzy_total, score_table[SC_500K]); } else { /* Score the hit, based on level */ score_add (total_jets_score, score_table[jets_hit_scores[jets_level]]); score_long (score_table[jets_hit_scores[jets_level]]); bounded_increment (jets_hit, 255); /* Level up if needed */ if (jets_hit >= jets_needed[jets_level]) { bounded_increment (jets_level, 4); score_long (score_table[jets_level_up_scores[jets_level]]); jets_hit = 0; free_timer_restart (timer_jets_level_up, TIME_2S); sound_send (SND_WHOOSH_UP_1); } if ((score_compare (total_jets_score, score_table[SC_250K]) >= 0) && !flag_test (FLAG_250K_JETS)) callset_invoke (wheel_award_jets); deff_restart (DEFF_JET_HIT); } }
void jet_hit_deff (void) { seg_alloc_clean (); if (free_timer_test (timer_jets_level_up)) { sprintf ("JETS NOW", jets_level); seg_write_row_center (0, sprintf_buffer); sprintf ("%s", jets_hit_text[jets_level]); seg_write_row_center (1, sprintf_buffer); } else { sprintf ("%d JETS", (jets_needed[jets_level] - jets_hit)); seg_write_row_center (0, sprintf_buffer); sprintf ("TILL LEVEL UP"); seg_write_row_center (1, sprintf_buffer); } seg_show (); task_sleep (TIME_500MS); deff_exit (); }
bool hurryup_timer_pause (void) { if (free_timer_test (hurryup_pause_timer)) return TRUE; return system_timer_pause (); }