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
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
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++; } }
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
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; } }
/** * Add COUNT balls into play from the trough. */ void add_ball_count (U8 count) { set_ball_count (live_balls + count); }
/* Add COUNT balls into play from the trough. */ void add_ball_count (U8 count) { set_ball_count (live_balls + count); } //end of function