Beispiel #1
0
/****************************************************************************
 *
 * display effects
 *
 ****************************************************************************/
void superjets_effect_deff(void) {
	U8 sj_swap = 0;
	U8 TOGGLE = 0;
	dmd_alloc_pair_clean ();// Clean both pages
	for (;;) {
		dmd_map_overlay ();
		dmd_clean_page_low ();
//right side status display
		ll_score_draw_ball ();

//left side display
		sprintf_score (superjets_mode_score);
		font_render_string_right (&font_var5, 98, 25, sprintf_buffer);

		if (ballsave_test_active()) {
			sprintf ("%d BALL SAVE", ballsave_get_timer());
		}
		else {
		sprintf ("%d SEC,  %d TO GOAL", superjets_mode_timer, superjets_goal - superjets_mode_shots_made);
		}
		font_render_string_right (&font_var5, 98, 0, sprintf_buffer);
		dmd_text_outline ();
		dmd_alloc_pair ();
		sj_counter++;
		if (sj_counter % 3 == 1) 	frame_draw(IMG_SUPERJETS_1);
		if (sj_counter % 3 == 2)	frame_draw(IMG_SUPERJETS_2);
		if (sj_counter % 3 == 0) 	frame_draw(IMG_SUPERJETS_3);
		dmd_overlay_outline ();
		dmd_show2 ();
		task_sleep (TIME_500MS);
		if (++sj_swap % 4 == 0) { if (++TOGGLE > 1) TOGGLE = 0; } //change TOGGLE once xx second
		dmd_alloc_pair_clean ();// Clean both pages
	}//END OF ENDLESS LOOP
	deff_exit();
}//end of mode_effect_deff
Beispiel #2
0
void wasteland_effect_deff (void) {
	for (;;) {
		dmd_clean_page_low ();
//right side status display
		ll_score_draw_ball ();

//left side display
		sprintf_score(current_score);
		font_render_string_center (&font_var5, 50, 13, sprintf_buffer);
		font_render_string_right (&font_halobold12, 84, 1, "WASTE");
		if (ballsave_test_active()) {
			sprintf ("%d BALL SAVE", ballsave_get_timer());
			font_render_string_center (&font_var5, 50, DMD_MED_CY_BOTTOM_LINE + 3, sprintf_buffer);
		}
		else {
			if (WL_TOGGLE == 0) 		{ sprintf ("15 MILLION"); font_render_string_right (&font_fixed6, 85, 21, sprintf_buffer); }
			else if (WL_TOGGLE == 1)	{ sprintf ("JACKPOT LIT"); font_render_string_right (&font_fixed6, 92, 21, sprintf_buffer); }
			else if (WL_TOGGLE == 2)	{
				sprintf ("%d JACKPOTS MADE", wasteland_jackpot_shots_made);
				font_render_string_right (&font_var5, 85, 19, sprintf_buffer);

				if (get_is_super_jackpot_lit()) sprintf ("SUPER LIT");
				else sprintf ("SHOOT %d ENABLE SUPER", 5 - (wasteland_jackpot_shots_made % 5) );
				font_render_string_right (&font_var5, 95, 26, sprintf_buffer);
			}
		}
		dmd_show_low ();
		task_sleep (TIME_1S);
		if (++wasteland_display_counter % 5 == 0) { if (++WL_TOGGLE > 2) WL_TOGGLE = 0; } //change WL_TOGGLE once per second
	}//END OF ENDLESS LOOP
}//end of function
Beispiel #3
0
void fastlock_mode_deff (void)
{
    for (;;)
    {
        /* Fudge loop time in ms into
         * something semi-meaningful to display */
        U8 display_loop_time;
        display_loop_time = 100;
        display_loop_time -= loop_time;
        if (display_loop_time < 1)
            display_loop_time = 1;

        dmd_alloc_low_clean ();
        font_render_string_center (&font_var5, 64, 5, "SHOOT FAST LOOPS");
        sprintf("%d MILLION", fastlock_award);
        font_render_string_center (&font_fixed6, 64, 16, sprintf_buffer);
        sprintf ("LAST LOOP WAS %dMPH", display_loop_time);
        font_render_string_center (&font_var5, 64, 27, sprintf_buffer);
        sprintf ("%d", fastlock_mode_timer);
        font_render_string (&font_var5, 2, 2, sprintf_buffer);
        font_render_string_right (&font_var5, 126, 2, sprintf_buffer);
        dmd_show_low ();
        task_sleep (TIME_200MS);
    }
}
void prison_break_effect_deff(void) {
	U8 i = 0;
	U8 toggle = 0;
	for (;;) {
		i++;
		if (i % 5 == 0) if (++toggle >= 3) toggle = 0;//change TOGGLE once per n seconds
		dmd_alloc_pair_clean();
		//right side status display
		ll_score_draw_ball ();


		//left side display

			font_render_string_left (&font_halobold12, 1, 0, "BREAK");
			font_render_string_right (&font_halobold12, 99, 9, "OUT");

			if (ballsave_test_active()) {
				sprintf ("%d BALL SAVE", ballsave_get_timer());
			}
			else
			if (toggle == 1) 		sprintf ("%d SEC LEFT", prison_break_mode_timer);
		else if (toggle == 2)	sprintf ("%d HIT", prison_break_mode_shots_made);
		else if (toggle == 0)	sprintf ("SHOOT EVERYTHING");
		font_render_string_center (&font_var5, 50, DMD_MED_CY_BOTTOM_LINE + 3, sprintf_buffer);

		sprintf_score (prison_break_mode_score);
		font_render_string_center (&font_var5, 50, 28, sprintf_buffer);
		dmd_show_low ();
		task_sleep (TIME_1S);
	}//END OF ENDLESS LOOP
}//end of mode_effect_deff
Beispiel #5
0
void sslot_mode_deff (void)
{
	U16 fno;
	dmd_alloc_pair_clean ();
	for (;;)
	{
		for (fno = IMG_REELSTRIP_START; fno <= IMG_REELSTRIP_END; fno += 2)
		{
			dmd_map_overlay ();
			dmd_clean_page_low ();
		
			font_render_string_center (&font_nayupixel10, 64, 5, "SHOOT SLOT MACHINE");
			sprintf_current_score ();
			font_render_string_center (&font_cowboy, 64, 14, sprintf_buffer);
			font_render_string_center (&font_bitcube10, 64, 25, sslot_award_names[sslot_award_index]);
			sprintf ("%d", sslot_mode_timer);
			font_render_string (&font_var5, 8, 16, sprintf_buffer);
			font_render_string_right (&font_var5, 120, 16, sprintf_buffer);
			
			dmd_text_outline ();
			dmd_alloc_pair ();
			frame_draw (fno);
			dmd_overlay_outline ();
			dmd_show2 ();
			task_sleep (TIME_66MS);
		}
	}
	deff_exit ();

}
Beispiel #6
0
void lock_powerball_deff (void)
{
	sound_send (SND_TOO_HOT_TO_HANDLE);
	U16 fno;
	dmd_alloc_pair_clean ();
	timer_restart_free (GID_LOCK_POWERBALL, TIME_5S);
	while (task_find_gid (GID_LOCK_POWERBALL))
	{
		ball_search_timer_reset ();
		for (fno = IMG_POWERBALL_START; fno <= IMG_POWERBALL_END; fno += 2)
		{
			dmd_map_overlay ();
			dmd_clean_page_low ();
			font_render_string_center (&font_fireball, 64, 9, "LOCK BALL");
			font_render_string_left (&font_var5, 10, 24, "LEFT: NO");
			font_render_string_right (&font_var5, 118, 24, "RIGHT: YES");
			dmd_text_outline ();

			dmd_alloc_pair ();
			frame_draw (fno);
			dmd_overlay_outline ();
			dmd_show2 ();
			task_sleep (TIME_33MS);
		}
	}
	deff_exit ();
}
Beispiel #7
0
void clock_millions_mode_deff (void)
{
	//U16 fno;
	for (;;)
	{
//		for (fno = IMG_CLOCK_START; fno <= IMG_CLOCK_END; fno += 2)
//		{
			dmd_alloc_pair_clean ();
	//		dmd_map_overlay ();
	//		dmd_clean_page_low ();
	
			font_render_string_center (&font_nayupixel10, 64, 5, "CLOCK MILLIONS");
			sprintf_current_score ();
			font_render_string_center (&font_quadrit, 64, 16, sprintf_buffer);
			psprintf ("SHOOT CLOCK 1 MORE TIME", "SHOOT CLOCK %d MORE TIMES", 6 - clock_mode_hits);
			font_render_string_center (&font_var5, 64, 27, sprintf_buffer);
			sprintf ("%d", clock_millions_mode_timer);
			font_render_string (&font_var5, 2, 2, sprintf_buffer);
			font_render_string_right (&font_var5, 126, 2, sprintf_buffer);
	//		dmd_text_outline ();
		//	dmd_alloc_pair ();
			//frame_draw (fno);
			dmd_copy_low_to_high ();
			callset_invoke (score_overlay);
		//	dmd_overlay_outline ();
			dmd_show2 ();
			task_sleep (TIME_66MS);
//		}
	}
}
Beispiel #8
0
/**
 * The display effect for the enter initials screen.
 *
 * It continuously redraws itself whenever the timer, the selected
 * character, or the entered characters change.
 */
void enter_initials_deff (void)
{
	while (in_test || task_find_gid (GID_ENTER_INITIALS))
	{
		if (score_update_required ())
		{
#if (MACHINE_DMD == 1)
			U8 n;
			dmd_alloc_low_clean ();
			font_render_string_left (&font_var5, 0, 1, "ENTER INITIALS");
			font_render_string_left (&font_fixed10, 0, 9, initials_data);

			if (initials_selection < MAX_INITIAL_INITIAL+1)
			{
				sprintf ("%12s", initial_chars + initials_selection);
				font_render_string_left (&font_bitmap8, 0, 23, sprintf_buffer);
			}
			else
			{
				U8 x;

				x = ALPHABET_LEN - initials_selection;
				sprintf ("%*s", x, initial_chars + initials_selection);
				font_render_string_left (&font_bitmap8, 0, 23, sprintf_buffer);

				x = MAX_LETTERS_SHOWN - x;
				sprintf ("%*s", x, initial_chars);
				x = MAX_LETTERS_SHOWN - x;
				font_render_string_left (&font_bitmap8, x * FONT_WIDTH, 23, sprintf_buffer);
			}

			for (n = 22; n <= 30; n++)
			{
				dmd_low_buffer[16UL * n + SELECT_OFFSET - 1] ^= 0x80;
				dmd_low_buffer[16UL * n + SELECT_OFFSET] ^= 0x7F;
			}

			sprintf ("%d", initials_enter_timer);
			font_render_string_right (&font_fixed6, 126, 3, sprintf_buffer);
			dmd_show_low ();
#else
			seg_alloc_clean ();
			seg_write_string (0, 0, "ENTER INITIALS");
			sprintf ("%c", initial_chars[initials_selection]);
			seg_write_string (0, 15, sprintf_buffer);
			seg_write_string (1, 0, initials_data);
			sprintf ("%d", initials_enter_timer);
			seg_write_string (1, 14, sprintf_buffer);
			seg_show ();
#endif
		}
		task_sleep (TIME_66MS);
	}
	task_sleep (TIME_500MS);
	deff_exit ();
}
Beispiel #9
0
/** Display effect for system reset */
void system_reset_deff (void)
{
	/* On DMD machines display the full copyright screen.  Alphanumerics
	aren't large enough to do this. */
#if (MACHINE_DMD == 1)
	dmd_alloc_low_clean ();
	font_render_string_center (&font_var5, 64, 3, "FREEWPC (C) COPYRIGHT " C_STRING(BUILD_YEAR));
	font_render_string_center (&font_var5, 64, 11, "THIS SOFTWARE IS NOT");
	font_render_string_center (&font_var5, 64, 17, "SUPPORTED BY BALLY/WILLIAMS");
	font_render_string_center (&font_var5, 64, 25, "WWW.ODDCHANGE.COM/FREEWPC");
	dmd_show_low ();
#endif
#if (MACHINE_ALPHANUMERIC == 1)
	seg_alloc_clean ();
	seg_write_row_center (0, "FREEWPC <C>" C_STRING(BUILD_YEAR));
	seg_write_row_center (1, "WWW.ODDCHANGE.COM");
	seg_show ();
#endif
	task_sleep_sec (3);
#ifdef CONFIG_DMD_OR_ALPHA
	dmd_alloc_low_clean ();
	font_render_string_left (&font_mono5, 1, 1, MACHINE_NAME);

#ifdef DEBUGGER
	sprintf ("D%s.%s", C_STRING(MACHINE_MAJOR_VERSION), C_STRING(MACHINE_MINOR_VERSION));
#else
	sprintf ("R%s.%s", C_STRING(MACHINE_MAJOR_VERSION), C_STRING(MACHINE_MINOR_VERSION));
#endif
	font_render_string_right (&font_mono5, 127, 1, sprintf_buffer);

	SECTION_VOIDCALL (__common__, render_build_date);
	font_render_string_left (&font_mono5, 1, 9, sprintf_buffer);

#if (MACHINE_PIC == 1)
	pic_render_serial_number ();
	font_render_string_left (&font_mono5, 1, 18, sprintf_buffer);
#endif

	font_render_string_left (&font_mono5, 1, 26, "TESTING...");
	dmd_show_low ();
#endif

	/* Keep the reset display for at least 3 seconds (so
	 * it is readable), keep it longer if any of the
	 * asynchronous initializations are still running. */
	task_sleep_sec (3);
	while (sys_init_pending_tasks != 0)
		task_sleep (TIME_66MS);

	/* If there were any diagnostic errors discovered, announce
	this fact. */
	diag_announce_if_errors ();

	dbprintf ("System initialized.\n");
	deff_exit ();
}
Beispiel #10
0
static inline void show_sonny_jim (void)
{
	amode_page_start ();
	dmd_alloc_pair_clean ();
	/* Draw a 'white' background for the transition */
	dmd_invert_page (dmd_low_buffer);
	dmd_invert_page (dmd_high_buffer);
	dmd_show2 ();
	/* sonny_jim should emerge from the bottom */
	dmd_sched_transition (&trans_scroll_up);
	dmd_alloc_pair ();
	frame_draw (IMG_SONNY_JIM);
	/* Start the transition */
	dmd_show2 ();
	/* Paint the text on */
	dmd_map_overlay ();
	dmd_clean_page_low ();
	font_render_string_right (&font_var5, 126, 7, "NOT AN ORDINARY DAY OR");
	font_render_string_right (&font_var5, 122, 18, "AN ORDINARY PLAYER");
	dmd_text_outline ();
	dmd_alloc_pair ();
	frame_draw (IMG_SONNY_JIM);
	dmd_overlay_outline ();
	dmd_show2 ();
	task_create_anon (amode_talking_task);
	amode_sleep_sec (4);
	/* Now just draw sonny_jim again */
	dmd_alloc_pair ();
	frame_draw (IMG_SONNY_JIM);
	dmd_show2 ();
	/* Exit stage right */
	dmd_sched_transition (&trans_scroll_down);
	/* Draw a 'white' background for the transition again */
	dmd_alloc_pair_clean ();
	dmd_invert_page (dmd_low_buffer);
	dmd_invert_page (dmd_high_buffer);
	dmd_show2 ();
	
	dmd_sched_transition (&trans_bitfade_slow);
}
Beispiel #11
0
void fortress_effect_deff (void) {
	for (;;) {
			dmd_clean_page_low ();
//right side status display
			ll_score_draw_ball ();

//left side display
			sprintf_score(current_score);
			font_render_string_center (&font_var5, 50, 13, sprintf_buffer);
			font_render_string_right (&font_halobold12, 100, 1, "FORTRESS");

			if (fortress_ballsave) {
				sprintf ("%d BALL SAVE", fortress_ballsave);
				font_render_string_center (&font_var5, 50, DMD_MED_CY_BOTTOM_LINE + 3, sprintf_buffer);
			}
			else
			if (fortress_display_counter % 4 != 0) { //draw for 9/10 and blank for 1/10
				if (FORT_TOGGLE == 0) 		{ sprintf ("10 MILLION"); font_render_string_right (&font_fixed6, 85, 21, sprintf_buffer); }
				else if (FORT_TOGGLE == 1)	{ sprintf ("JACKPOT LIT"); font_render_string_right (&font_fixed6, 92, 21, sprintf_buffer); }
				else if (FORT_TOGGLE == 2)	{
					sprintf ("%d JACKPOTS MADE", fortress_jackpot_shots_made);
					font_render_string_right (&font_var5, 85, 19, sprintf_buffer);

					if (get_is_super_jackpot_lit()) sprintf ("SUPER JACKPOT LIT");
					else sprintf ("SHOOT %d ENABLE SUPER", 5 - (fortress_jackpot_shots_made % 5) );
					font_render_string_right (&font_var5, 95, 26, sprintf_buffer);
				}
			} else 						  sprintf ("");
			dmd_show_low();
			task_sleep (TIME_1S);

		if (++fortress_display_counter >= 30) fortress_display_counter  = 0;
		if (fortress_display_counter % 20 == 0) {
			if (++FORT_TOGGLE > 2) FORT_TOGGLE = 0; //change FORT_TOGGLE once per
			if (DM_IN_DMD_TEST) 	score (FORTRESS_MB_SCORE);
		}
	}//END OF ENDLESS LOOP
}//end of function
Beispiel #12
0
/** The display effect that runs to show the match.
 * This is a default effect that could be overriden with something
 * more flashy. */
void
match_deff (void)
{
	U8 value;
	U8 n;
	U8 last_value = 0xFF;

#if (MACHINE_DMD == 1)
	match_draw_scores ();
#endif

	for (n=0; n < 20; n++)
	{
		if (n == 19)
			value = match_value;
		else
		{
			do {
				value = random_scaled (10) * 0x10;
			} while (value == last_value);
		}
		last_value = value;

#ifdef MACHINE_TZ
		if (n == 19 && match_count)
			sound_send (SND_JET_BUMPER_ADDED);
		else
			sound_send (SND_HITCHHIKER_COUNT);
#endif

		dmd_alloc_low_clean ();
#if (MACHINE_DMD == 1)
		dmd_overlay ();
#else
		match_draw_scores ();
#endif
		sprintf ("%02X", value);
		font_render_string_right (&font_fixed6, 126, 22, sprintf_buffer);
		dmd_show_low ();
		task_sleep (TIME_100MS);
	}

	if (match_count)
	{
		callset_invoke (match_awarded);
	}

	task_sleep_sec (2);
	deff_exit ();
}
Beispiel #13
0
void huxley_effect_deff(void) {
	for (;;) {
		dmd_clean_page_low ();
		//right side status display
		ll_score_draw_ball ();

		//left side display
				sprintf_score(current_score);
				font_render_string_right (&font_var5, 98, 26, sprintf_buffer);
				font_render_string_center (&font_halobold12, 50, 5, "HUXLEY");
				if (ballsave_test_active()) {
					sprintf ("%d BALL SAVE", ballsave_get_timer());
					font_render_string_right (&font_var5, 88, 27, sprintf_buffer);
				}
				else
					font_render_string_right (&font_term6, 98, 14, "1 MILLION");

				sprintf ("%d", huxley_mode_timer);
				font_render_string_left (&font_halobold12, 1, 14, sprintf_buffer);
				dmd_show_low();
				task_sleep (TIME_1S);
	}//END OF ENDLESS LOOP
	deff_exit ();
}//end of mode_effect_deff
Beispiel #14
0
void challenge_running_deff (void)
{
	bool flash = FALSE;
	while (in_live_game)
	{
		U8 time_minutes, time_seconds;
		time_minutes = 0;
		time_seconds = timed_game_timer;
		while (time_seconds >= 60)
		{
			time_minutes++;
			time_seconds -= 60;
		}

		dmd_alloc_low_clean ();
		font_render_string_center (&font_fixed6, 64, 7, "SHOOT");
		if (flash)
		{
			if (challenge_shot_1_active && challenge_shot_2_active)
			{
				sprintf("%s", challenge_shots[challenge_shot_1].shot_name);
				font_render_string_left (&font_var5, 8, 16, sprintf_buffer);
				sprintf("%s", challenge_shots[challenge_shot_2].shot_name);
				font_render_string_right (&font_var5, 120, 16, sprintf_buffer);
			}
			else if (challenge_shot_1_active)
			{
				sprintf("%s", challenge_shots[challenge_shot_1].shot_name);
				font_render_string_center (&font_var5, 64, 16, sprintf_buffer);
			}
			else if (challenge_shot_2_active)
			{
				sprintf("%s", challenge_shots[challenge_shot_2].shot_name);
				font_render_string_center (&font_var5, 64, 16, sprintf_buffer);
			}
			flash = FALSE;
		}
		else
		{
			flash = TRUE;
		}

		sprintf ("TIME: %d:%02d  SHOTS MADE: %d", time_minutes, time_seconds, shots_made);
		font_render_string_center (&font_var5, 64, 26, sprintf_buffer);
		dmd_show_low ();
		task_sleep (TIME_100MS);
		}
}
Beispiel #15
0
void tsm_mode_deff (void)
{
	for (;;)
	{
		dmd_alloc_low_clean ();
		font_render_string_center (&font_var5, 64, 5, "TOWN SQUARE MADNESS");
		sprintf_current_score ();
		font_render_string_center (&font_fixed6, 64, 16, sprintf_buffer);
		font_render_string_center (&font_var5, 64, 27, "JETS AT 500K");
		sprintf ("%d", tsm_mode_timer);
		font_render_string (&font_var5, 2, 2, sprintf_buffer);
		font_render_string_right (&font_var5, 126, 2, sprintf_buffer);
		dmd_show_low ();
		task_sleep (TIME_200MS);
	}
}
Beispiel #16
0
void sslot_mode_deff (void)
{
	for (;;)
	{
		dmd_alloc_low_clean ();
		font_render_string_center (&font_var5, 64, 5, "SHOOT SLOT MACHINE");
		sprintf_current_score ();
		font_render_string_center (&font_fixed6, 64, 16, sprintf_buffer);
		font_render_string_center (&font_var5, 64, 27, sslot_award_names[sslot_award_index]);
		sprintf ("%d", sslot_mode_timer);
		font_render_string (&font_var5, 2, 2, sprintf_buffer);
		font_render_string_right (&font_var5, 126, 2, sprintf_buffer);
		dmd_show_low ();
		task_sleep (TIME_200MS);
	}
}
Beispiel #17
0
void pb_test_draw (void)
{
	dmd_alloc_low_clean ();
	font_render_string_center (&font_mono5, 64, 0, "POWERBALL TEST");

	if (pb_location == PB_MISSING)
		sprintf ("LOST");
	else if (pb_location & PB_IN_LOCK)
		sprintf ("LOCK");
	else if (pb_location & PB_IN_TROUGH)
		sprintf ("TROUGH");
	else if (pb_location & PB_IN_GUMBALL)
		sprintf ("GUMBALL");
	else if (pb_location & PB_IN_PLAY)
		sprintf ("P.F.");
	else if (pb_location & PB_MAYBE_IN_PLAY)
		sprintf ("NOT SURE");
	else
		sprintf ("ERROR");
	font_render_string_left (&font_mono5, 0, 6, sprintf_buffer);

	if (pb_location & (PB_IN_LOCK | PB_IN_TROUGH))
	{
		sprintf ("POS. %d", pb_depth);
		font_render_string_right (&font_mono5, 127, 6, sprintf_buffer);
	}

	sprintf ("TROUGH SW. %s",
		switch_poll_logical (SW_TROUGH_PROXIMITY) ? "CLOSED" : "OPEN");
	font_render_string_left (&font_mono5, 0, 12, sprintf_buffer);

	sprintf ("SLOT SW. %s",
		switch_poll_logical (SW_SLOT_PROXIMITY) ? "CLOSED" : "OPEN");
	font_render_string_left (&font_mono5, 0, 18, sprintf_buffer);

	switch (pb_test_command)
	{
		case KICK_TROUGH: sprintf ("REL. TROUGH"); break;
		case KICK_LOCK: sprintf ("REL. LOCK"); break;
		case RELEASE_GUMBALL: sprintf ("REL. GUMBALL"); break;
		case LOAD_GUMBALL: sprintf ("LOAD GUMBALL"); break;
	}
	font_render_string_left (&font_mono5, 0, 24, sprintf_buffer);

	dmd_show_low ();
}
Beispiel #18
0
/*
 * Draw the constant part of the match animation once.
 */
static void
match_draw_scores (void)
{
	U8 n;

#if (MACHINE_DMD == 1)
	dmd_map_overlay ();
#endif
	dmd_clean_page_low ();
	font_render_string_right (&font_fixed6, 126, 1, "MATCH");

	for (n = 0; n < num_players; n++)
	{
		sprintf ("%2b", &scores[n][BYTES_PER_SCORE-1]);
		font_render_string_left (&font_mono5, 0, 6*n, sprintf_buffer);
	}
}
Beispiel #19
0
/** Display effect that runs during the extra ball buyin */
void buyin_offer_deff (void)
{
	U8 prev_timer;
	extern U8 buyin_offer_timer;

#if (MACHINE_DMD == 1)
	dmd_sched_transition (&trans_bitfade_slow);
#else
	seg_sched_transition (&seg_trans_fast_center_out);
#endif
	while (buyin_offer_timer > 0)
	{
		prev_timer = buyin_offer_timer;
		dmd_alloc_low_clean ();
		dmd_draw_border (dmd_low_buffer);
		font_render_string_center (&font_term6, 64, 5, "CONTINUE GAME");
#if (MACHINE_DMD == 1)
		sprintf ("%d", buyin_offer_timer);
		font_render_string_left (&font_mono5, 4, 3, sprintf_buffer);
		font_render_string_right (&font_mono5, 123, 3, sprintf_buffer);
		if (buyin_offer_timer % 2)
		{
			font_render_string_center (&font_bitmap8, 64, 16, "INSERT COINS");
			font_render_string_center (&font_bitmap8, 64, 26, "FOR EXTRA BALL");
		}
		else
		{
			font_render_string_center (&font_bitmap8, 64, 16, "THEN PRESS");
			font_render_string_center (&font_bitmap8, 64, 26, "BUY EXTRA BALL");
		}
#else
		sprintf ("%d SECS", buyin_offer_timer);
		seg_write_row_center (1, sprintf_buffer);
#endif
		dmd_show_low ();
		while (prev_timer == buyin_offer_timer)
			task_sleep (TIME_133MS);
	}
	task_sleep (TIME_1500MS);
	deff_exit ();
}
Beispiel #20
0
void hitch_mode_deff (void)
{
	dmd_alloc_pair_clean ();
	for (;;)
	{
		dmd_map_overlay ();
		dmd_clean_page_low ();
		font_render_string_center (&font_nayupixel10, 64, 5, "SHOOT HITCHHIKER");
		sprintf_current_score ();
		font_render_string_center (&font_antiqua, 64, 13, sprintf_buffer);
		font_render_string_center (&font_nayupixel10, 64, 27, "FOR 10M");
		sprintf ("%d", hitch_mode_timer);
		font_render_string (&font_var5, 2, 2, sprintf_buffer);
		font_render_string_right (&font_var5, 126, 2, sprintf_buffer);
		dmd_text_outline ();
		dmd_alloc_pair ();
		frame_draw (IMG_HITCHHIKER_START);
		dmd_overlay_outline ();
		dmd_show2 ();
		task_sleep (TIME_200MS);
	}
}
Beispiel #21
0
void match_loop_deff (void)
{
	U16 fno;
	dmd_alloc_pair_clean ();
	for (;;)
	{
		for (fno = IMG_MATCH_START; fno <= IMG_MATCH_END; fno += 2)
		{
			dmd_map_overlay ();
			dmd_clean_page_low ();
			font_render_string_right (&font_fixed6, 126, 1, "MATCH");
			dmd_text_outline ();
			
			dmd_alloc_pair ();
			frame_draw (fno);
			dmd_overlay_outline ();
			dmd_show2 ();
			task_sleep (TIME_33MS);
		}
	}
	deff_exit ();
}
Beispiel #22
0
void tsm_mode_deff (void)
{	
	dmd_alloc_pair_clean ();
	for (;;)
	{
		dmd_map_overlay ();
		dmd_clean_page_low ();
		font_render_string_center (&font_var5, 64, 5, "TOWN SQUARE MADNESS");
		sprintf_current_score ();
		font_render_string_center (&font_fixed6, 64, 16, sprintf_buffer);
		font_render_string_center_ytop (&font_nayupixel10, 64, 22, "JETS AT 500K");
		sprintf ("%d", tsm_mode_timer);
		font_render_string (&font_var5, 2, 2, sprintf_buffer);
		font_render_string_right (&font_var5, 126, 2, sprintf_buffer);
		dmd_text_outline ();
		dmd_alloc_pair ();
		frame_draw (IMG_CITY);
		dollar_overlay ();
		dmd_overlay_outline ();

		dmd_show2 ();
		task_sleep (TIME_66MS);
	}
}