예제 #1
0
파일: dmd.c 프로젝트: SonnyJim/freewpc
/**
 * Initialize the DMD subsystem.
 */
void dmd_init (void)
{
	//dmd_rtt = dmd_rtt0;
	dmd_rtt = dmd_new_rtt;
	dmd_phase_ptr = dmd_phase_table;
	dmd_in_transition = FALSE;
	dmd_transition = NULL;

	/* If DMD_BLANK_PAGE_COUNT is defined, this says how
	 * many DMD pages should not be allocatable, but should be
	 * reserved and kept blank.  This is handy for some effects.
	 * Initialize those pages now.
	 */
#ifdef DMD_BLANK_PAGE_COUNT
	wpc_dmd_set_low_page (dmd_get_blank (0));
	dmd_clean_page_low ();
	wpc_dmd_set_high_page (dmd_get_blank (1));
	dmd_clean_page_high ();
#endif

	wpc_dmd_set_low_page (0);
	wpc_dmd_set_high_page (0);
	dmd_clean_page_low ();
	wpc_dmd_set_visible_page (dmd_dark_page = dmd_bright_page = 0);
	dmd_free_page = 2;

	/* Program the DMD controller to generate interrupts */
#ifdef CONFIG_DEBUG_ADJUSTMENTS
	firq_row_value = DMD_REFRESH_ROW;
#endif
	dmd_request_firq ();
}
예제 #2
0
파일: dmd.c 프로젝트: Mole23/freewpc
/**
 * Initialize the DMD subsystem.
 */
void dmd_init (void)
{
	//dmd_rtt = dmd_rtt0;
	dmd_rtt = dmd_new_rtt;
	dmd_phase_ptr = dmd_phase_table;
	dmd_in_transition = FALSE;
	dmd_transition = NULL;

	/* If DMD_BLANK_PAGE_COUNT is defined, this says how
	 * many DMD pages should not be allocatable, but should be
	 * reserved and kept blank.  This is handy for some effects.
	 * Initialize those pages now.
	 */
#ifdef DMD_BLANK_PAGE_COUNT
	pinio_dmd_window_set (PINIO_DMD_WINDOW_0, dmd_get_blank (0));
	dmd_clean_page_low ();
	pinio_dmd_window_set (PINIO_DMD_WINDOW_1, dmd_get_blank (1));
	dmd_clean_page_high ();
#endif

	pinio_dmd_window_set (PINIO_DMD_WINDOW_0, 0);
	pinio_dmd_window_set (PINIO_DMD_WINDOW_1, 0);
	dmd_clean_page_low ();
	pinio_dmd_set_visible (dmd_dark_page = dmd_bright_page = 0);
	dmd_free_page = 2;

	/* Program the DMD controller to generate interrupts */
	pinio_dmd_request_interrupt ();
}
예제 #3
0
/****************************************************************************
 *
 * DISPLAY EFFECTS
 *
 ****************************************************************************/
void eject_effect_deff(void) {
	U16 fno;
	dmd_clean_page_high ();//
	dmd_clean_page_low ();//
	switch (++ejectDeffCounter % 2) {
		default:
		case 0:
					for (fno = IMG_EYE_B_START; fno <= IMG_EYE_B_END; fno += 2) {
							dmd_alloc_pair ();
							frame_draw(fno);
							dmd_show2 ();
							task_sleep (TIME_66MS);
						}//end of inner loop

					for (fno = IMG_EYE_B_END - 2; fno >= IMG_EYE_B_START + 6; fno -= 2) {
							dmd_alloc_pair ();
							frame_draw(fno);
							dmd_show2 ();
							task_sleep (TIME_66MS);
						}//end of inner loop

					for (fno = IMG_EYE_B_START + 4; fno >= IMG_EYE_B_START + 2; fno -= 2) {
						dmd_map_overlay ();
						dmd_clean_page_low ();
							font_render_string_center (&font_halobold12, DMD_MIDDLE_X, DMD_BIG_CY_Top, "RETINA");
							font_render_string_center (&font_halobold12, DMD_MIDDLE_X, DMD_BIG_CY_Bot, "SCAN");
						dmd_text_outline ();
						dmd_alloc_pair ();
						frame_draw(fno);
						dmd_overlay_outline ();
						dmd_show2 ();
						task_sleep (TIME_66MS);
					}//end of inner loop
			break;
		case 1:
					for (fno = IMG_EYE_START; fno <= IMG_EYE_27; fno += 2) {
						dmd_alloc_pair ();
						frame_draw(fno);
						dmd_show2 ();
						task_sleep (TIME_66MS);
					}//end of inner loop

				dmd_alloc_pair_clean ();// Clean both pages
				for (fno = IMG_EYE_28; fno <= IMG_EYE_END; fno += 2) {
					dmd_map_overlay ();
					dmd_clean_page_low ();
						font_render_string_center (&font_halobold12, DMD_MIDDLE_X, DMD_BIG_CY_Top, "RETINA");
						font_render_string_center (&font_halobold12, DMD_MIDDLE_X, DMD_BIG_CY_Bot, "SCAN");
					dmd_text_outline ();
					dmd_alloc_pair ();
					frame_draw(fno);
					dmd_overlay_outline ();
					dmd_show2 ();
					task_sleep (TIME_66MS);
				}//end of inner loop
			break;
		}//end of switch
	deff_exit ();
}//end of mode_effect_deff
예제 #4
0
void clock_millions_hit_deff (void)
{	
	U16 fno;
	U16 img_start = 0;
	U16 img_end = 0;
	dmd_alloc_pair_clean ();
	switch (random_scaled (3))
	{
		case 0:
			img_start = IMG_FLASH_START;
			img_end = IMG_FLASH_END;
			break;
		case 1:
			img_start = IMG_FLASHCENTRE_START;
			img_end = IMG_FLASHCENTRE_END;
			break;
		case 2:
			img_start = IMG_FLASHLEFT_START;
			img_end = IMG_FLASHLEFT_END;
			break;
	}

	for (fno = img_start; fno < img_end; fno += 2)
	{
		U8 x = random_scaled (4);
		U8 y = random_scaled (4);
		dmd_map_overlay ();
		dmd_clean_page_low ();

		psprintf ("CLOCK HIT %d TIME", "CLOCK HIT %d TIMES", clock_mode_hits);
		font_render_string_center (&font_fixed6, 64 + x, 10 + y, sprintf_buffer);
		sprintf_score (clock_mode_score);
		font_render_string_center (&font_var5, 64, 21, sprintf_buffer);
	
		dmd_text_outline ();
		dmd_alloc_pair ();
		frame_draw (fno);
		dmd_overlay_outline ();
		dmd_show2 ();
		task_sleep (TIME_33MS);
	}
	/* Redraw it so the 'HITS' text is centred */
	dmd_clean_page_low ();
	dmd_clean_page_high ();
	dmd_alloc_low ();
	psprintf ("CLOCK HIT %d TIME", "CLOCK HIT %d TIMES", clock_mode_hits);
	font_render_string_center (&font_fixed6, 64, 10, sprintf_buffer);
	sprintf_score (clock_mode_score);
	font_render_string_center (&font_var5, 64, 21, sprintf_buffer);
	dmd_show_low ();	
	task_sleep_sec (2);
	deff_exit ();
}
예제 #5
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
예제 #6
0
void huxley_info_effect_deff(void) {
	U16 fno;
	dmd_alloc_pair_clean ();
	for (fno = IMG_HUXLEY_E_START; fno <= IMG_HUXLEY_E_END; fno += 2) {
				dmd_alloc_pair ();
				frame_draw(fno);
				dmd_show2 ();
				task_sleep (TIME_100MS);
	}//end of for loop

			dmd_map_overlay ();
			dmd_clean_page_low ();
				font_render_string_center (&font_halobold12, DMD_MIDDLE_X - 20, DMD_BIG_CY_Top, "HUXLEY");
				if (flag_test (FLAG_IS_HUXLEY_ENABLED) )
					font_render_string_center (&font_halobold12, DMD_MIDDLE_X, DMD_BIG_CY_Bot, "READY");
				else
					font_render_string_center (&font_halobold12, DMD_MIDDLE_X, DMD_BIG_CY_Bot, "1 MILLION");
				dmd_text_outline ();
				dmd_alloc_pair ();
				frame_draw(IMG_HUXLEY_E_END);
				dmd_overlay_outline ();
				dmd_show2 ();
				task_sleep (TIME_1S);
	deff_exit ();
}//end of mode_effect_deff
예제 #7
0
void huxley_hit_effect_deff(void) {
	if (DM_IN_DMD_TEST) {	if (++huxley_MessageCounter > 3) huxley_MessageCounter = 0; }
	else huxley_MessageCounter = random_scaled(4);

	dmd_clean_page_high ();//
	dmd_clean_page_low ();//

	task_create_gid1 (GID_HUXLEY_HIT_SOUND, huxley_hit_sounds_task);

	switch (huxley_MessageCounter) {
		default:
		case 0:
//			huxley_animation_display_effect (IMG_HUXLEY_A_START, IMG_HUXLEY_A_END);
			huxley_frame_with_words_display_fipps_effect (IMG_HUXLEY_A_END, DMD_MIDDLE_X, DMD_BIG_CY_Bot, "1 MILLION");
			break;
		case 1:
//			huxley_animation_display_effect (IMG_HUXLEY_B1_START, IMG_HUXLEY_B1_END);
			huxley_frame_with_words_display_fipps_effect (IMG_HUXLEY_B1_END, DMD_MIDDLE_X, DMD_BIG_CY_Bot, "HUXLEY");
			break;
		case 2:
//			huxley_animation_display_effect (IMG_HUXLEY_B2_START, IMG_HUXLEY_B2_END);
			huxley_frame_with_words_display_fipps_effect (IMG_HUXLEY_B2_END, DMD_MIDDLE_X, DMD_BIG_CY_Bot, "1 MILLION");
			break;
		case 3:
//			huxley_animation_display_effect (IMG_HUXLEY_D_START, IMG_HUXLEY_D_END);
			huxley_frame_with_words_display_fipps_effect (IMG_HUXLEY_D_END, DMD_MIDDLE_X, DMD_BIG_CY_Bot, "HUXLEY");
			break;
		}//end of switch
	task_sleep (TIME_500MS);
	deff_exit ();
}//end of mode_effect_deff
예제 #8
0
void cryoprison_jackpot_effect_deff(void) {
//	if (++cryoprison_jackpot_MessageCounter > 3) cryoprison_jackpot_MessageCounter = 0;
	 cryoprison_jackpot_MessageCounter = random_scaled(4);
	dmd_clean_page_high ();//
	dmd_clean_page_low ();//

	task_create_gid1 (GID_CRYOPRISON_JACKPOT_SOUND, cryoprison_jackpot_sounds_task);

	switch (cryoprison_jackpot_MessageCounter) {
		default:
		case 0:
			cryoprison_animation_display_effect (IMG_CAPSIMON_C_START, IMG_CAPSIMON_C_END);
			cryoprison_frame_with_words_display_steel_effect (IMG_CAPSIMON_C_END, DMD_MIDDLE_X - 20, DMD_BIG_CY_Bot, "JACKPOT");
			break;
		case 1:
			cryoprison_animation_display_effect (IMG_CRYOPRISON_E2_START, IMG_CRYOPRISON_E2_END);
			cryoprison_frame_with_words_display_steel_effect (IMG_CRYOPRISON_E2_END, DMD_MIDDLE_X - 20, DMD_BIG_CY_Bot, "JACKPOT");
			break;
		case 2:
			cryoprison_animation_display_effect (IMG_CRYOPRISON_E1_START, IMG_CRYOPRISON_E1_END);
			cryoprison_frame_with_words_display_steel_effect (IMG_CRYOPRISON_E1_END, DMD_MIDDLE_X - 20, DMD_BIG_CY_Bot, "JACKPOT");
			break;
		case 3:
			cryoprison_animation_display_effect (IMG_DR_COCTEAU_B_START, IMG_DR_COCTEAU_B_END);
			cryoprison_frame_with_words_display_steel_effect (IMG_DR_COCTEAU_B_END, DMD_MIDDLE_X - 20, DMD_BIG_CY_Bot, "JACKPOT");
			break;
		}//end of switch
	task_sleep_sec (1);
	deff_exit ();
}//end of mode_effect_deff
예제 #9
0
void cryoprison_start_effect_deff(void) {
	U16 fno;
	dmd_alloc_pair_clean ();// Clean both pages
	cryoprison_animation_display_effect (IMG_CRYOPRISON_E1_START, IMG_CRYOPRISON_E1_END);

	cryoprison_frame_bitfade_fast(IMG_CRYOPRISON_E2_START);

	cryoprison_animation_display_effect (IMG_CRYOPRISON_E2_START, IMG_CRYOPRISON_E2_END);

	cryoprison_frame_bitfade_fast(IMG_CAPSIMON_C_START);

		dmd_alloc_pair_clean ();// Clean both pages
	for (fno = IMG_CAPSIMON_C_START; fno <= IMG_CAPSIMON_C_END; fno += 2) {
		dmd_map_overlay ();
		dmd_clean_page_low ();
		font_render_string_center (&font_steel, DMD_MIDDLE_X - 30, DMD_BIG_CY_Top, "CRYO");
		font_render_string_center (&font_steel, DMD_MIDDLE_X - 20, DMD_BIG_CY_Bot, "PRISON");
		dmd_text_outline ();
		dmd_alloc_pair ();
		frame_draw(fno);
		dmd_overlay_outline ();
		dmd_show2 ();
		task_sleep (TIME_100MS);
	}//end of inner loop
	task_sleep_sec (2);
	deff_exit ();
}//end of mode_effect_deff
예제 #10
0
void huxley_hit_effect_deff(void) {
	U8 			huxley_MessageCounter;
	huxley_MessageCounter = random_scaled(5);
	dmd_clean_page_high ();//
	dmd_clean_page_low ();//

	task_create_gid1 (GID_HUXLEY_HIT_SOUND, huxley_hit_sounds_task);

	switch (huxley_MessageCounter) {
		default:
		case 0:
			huxley_animation_display_effect (IMG_HUXLEY_A_START, IMG_HUXLEY_A_END);
			huxley_frame_with_words_display_fipps_effect (IMG_HUXLEY_A_END, DMD_MIDDLE_X - 30, DMD_BIG_CY_Bot, "1 MILLION");
			break;
		case 1:
			huxley_animation_display_effect (IMG_HUXLEY_B1_START, IMG_HUXLEY_B1_END);
			huxley_frame_with_words_display_fipps_effect (IMG_HUXLEY_B1_END, DMD_MIDDLE_X - 30, DMD_BIG_CY_Bot, "HUXLEY");
			break;
		case 2:
			huxley_animation_display_effect (IMG_HUXLEY_B2_START, IMG_HUXLEY_B2_END);
			huxley_frame_with_words_display_fipps_effect (IMG_HUXLEY_B2_END, DMD_MIDDLE_X - 30, DMD_BIG_CY_Bot, "1 MILLION");
			break;
		case 3:
			huxley_animation_display_effect (IMG_HUXLEY_D_START, IMG_HUXLEY_D_END);
			huxley_frame_with_words_display_fipps_effect (IMG_HUXLEY_D_END, DMD_MIDDLE_X + 30, DMD_BIG_CY_Bot, "HUXLEY");
			break;
		case 4:
			huxley_animation_display_effect (IMG_HUXLEY_E_START, IMG_HUXLEY_E_END);
			huxley_frame_with_words_display_fipps_effect (IMG_HUXLEY_E_END, DMD_MIDDLE_X - 30, DMD_BIG_CY_Bot, "HUXLEY");
			break;
		}//end of switch
	task_sleep_sec (1);
	deff_exit ();
}//end of mode_effect_deff
예제 #11
0
파일: slot.c 프로젝트: SonnyJim/freewpc
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 ();

}
예제 #12
0
void laser_shot_deff(void) {
	U16 fno;
	dmd_alloc_pair_clean ();// Clean both pages
	task_create_gid1 (GID_laser_shot_SOUND, laser_shot_sounds_task);

	for (fno = IMG_LASER_SHOT1; fno <= IMG_LASER_SHOT6; fno += 2) {
				dmd_alloc_pair ();
				frame_draw(fno);
				dmd_show2 ();
				task_sleep (TIME_100MS);
	}//end of for loop

	for (fno = IMG_LASER_SHOT4; fno <= IMG_LASER_SHOT6; fno += 2) {
				dmd_alloc_pair ();
				frame_draw(fno);
				dmd_show2 ();
				task_sleep (TIME_100MS);
	}//end of for loop

	dmd_map_overlay ();
	dmd_clean_page_low ();
	font_render_string_center (&font_fixed6, DMD_MIDDLE_X, DMD_BIG_CY_Top, "LASER");
	font_render_string_center (&font_fixed6, DMD_MIDDLE_X, DMD_BIG_CY_Bot, "SHOT");
		dmd_text_outline ();
		dmd_alloc_pair ();
		frame_draw(IMG_LASER_SHOT6);
		dmd_overlay_outline ();
		dmd_show2 ();

		task_sleep (TIME_500MS);
	deff_exit ();
}//end of deff
예제 #13
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
예제 #14
0
파일: sharpe.c 프로젝트: SonnyJim/freewpc
void sharpe_running_deff (void)
{
	for (;;)
	{
		score_update_start ();
		dmd_alloc_pair ();
		dmd_clean_page_low ();

		font_render_string_center (&font_term6, 64, 4, "SKILL MULTIBALL");

		sprintf_current_score ();
		font_render_string_center (&font_fixed6, 64, 16, sprintf_buffer);

		dmd_copy_low_to_high ();

		sprintf ("%d RAMPS FOR SKILL SHOT", sssmb_ramps_to_divert);
		font_render_string_center (&font_var5, 64, 26, sprintf_buffer);

		dmd_show_low ();
		while (!score_update_required ())
		{
			task_sleep (TIME_66MS);
			dmd_show_other ();
		}
	}
}
예제 #15
0
void vm_effect_deff(void) {
	U16 fno;
	sound_start (ST_EFFECT, SUBWAY2, SL_2S, SP_NORMAL);
	for (fno = IMG_COMBO1_START; fno <= IMG_COMBO1_END; fno += 2) {
				dmd_alloc_pair ();
				frame_draw(fno);
				dmd_show2 ();
				task_sleep (TIME_100MS);
	}//end of for loop
	sound_start (ST_EFFECT, SUBWAY2, SL_2S, SP_NORMAL);

	dmd_map_overlay ();
			dmd_clean_page_low ();
			font_render_string_center (&font_term6, DMD_MIDDLE_X - 20, DMD_MED_CY_2 + 6, "VIDEO MODE");
			font_render_string_center (&font_term6, DMD_MIDDLE_X + 45, DMD_MED_CY_3, "READY");

			sprintf ("%d", combo_counter);
			font_render_string_center (&font_fixed10, DMD_MIDDLE_X - 15, DMD_MED_CY_1 + 4, sprintf_buffer);

			dmd_text_outline ();
				dmd_alloc_pair ();
				frame_draw(IMG_COMBO1_END);
				dmd_overlay_outline ();
				dmd_show2 ();
				task_sleep_sec (2);
	deff_exit ();
}//end of deff
예제 #16
0
void prison_break_start_effect_deff(void) {
	U8 			prison_break_MessageCounter;
	prison_break_MessageCounter = random_scaled(2);
	dmd_clean_page_high ();//
	dmd_clean_page_low ();//
	switch (prison_break_MessageCounter) {
		default:
		case 0:
			prison_break_animation_display_effect (IMG_CHIEF_EARLE2_START, IMG_CHIEF_EARLE2_END);
			prison_break_frame_bitfade_fast(IMG_JAIL_BREAK_START);
			prison_break_animation_display_effect (IMG_JAIL_BREAK_START, IMG_JAIL_BREAK_END);
			prison_break_frame_bitfade_fast(IMG_ASSOC_BOB_START);
			prison_break_animation_display_effect (IMG_ASSOC_BOB_START, IMG_ASSOC_BOB_END);
			frame_with_words_display_v5prc_effect (IMG_ASSOC_BOB_END, DMD_MIDDLE_X, DMD_BIG_CY_Bot, "BREAKOUT");
			break;
		case 1:
			prison_break_animation_display_effect (IMG_ASSOC_BOB_START, IMG_ASSOC_BOB_END);
			prison_break_frame_bitfade_fast(IMG_PRISON_BREAKOUT_B_START);
			prison_break_animation_display_effect (IMG_PRISON_BREAKOUT_B_START, IMG_PRISON_BREAKOUT_B_MID);
			prison_break_animation_display_effect (IMG_PRISON_BREAKOUT_B_MID, IMG_PRISON_BREAKOUT_B_END);
			prison_break_frame_bitfade_fast(IMG_CHIEF_EARLE2_START);
			prison_break_animation_display_effect (IMG_CHIEF_EARLE2_START, IMG_CHIEF_EARLE2_END);
			frame_with_words_display_v5prc_effect (IMG_CHIEF_EARLE2_END, DMD_MIDDLE_X, DMD_BIG_CY_Top, "PRISON");
			frame_with_words_display_v5prc_effect (IMG_CHIEF_EARLE2_END, DMD_MIDDLE_X, DMD_BIG_CY_Bot, "BREAK");
			break;
	}//end of switch
	task_sleep_sec (2);
	deff_exit ();
}//end of mode_effect_deff
예제 #17
0
void clock_millions_explode_deff (void)
{	
	dmd_alloc_pair_clean ();
	U16 fno;
	sound_send (SND_GREED_MODE_BOOM);
	for (fno = IMG_EXPLODE_START; fno <= IMG_EXPLODE_END; fno += 2)
	{
		dmd_map_overlay ();
		dmd_clean_page_low ();
		font_render_string_center (&font_fixed6, 64, 10, "CLOCK DESTROYED");
		font_render_string_center (&font_var5, 64, 21, "20 MILLION");
		dmd_text_outline ();
		dmd_alloc_pair ();
		frame_draw (fno);
		dmd_overlay_outline ();
		dmd_show2 ();
		task_sleep (TIME_33MS);
	}
	dmd_alloc_pair_clean ();
	font_render_string_center (&font_fixed6, 64, 10, "CLOCK DESTROYED");
	font_render_string_center (&font_var5, 64, 21, "20 MILLION");
	dmd_copy_low_to_high ();
	dmd_show2 ();
	task_sleep_sec (2);
	deff_exit ();
}
예제 #18
0
파일: pb_lock.c 프로젝트: SonnyJim/freewpc
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 ();
}
예제 #19
0
파일: tz_amode.c 프로젝트: SonnyJim/freewpc
/* We have to inline these so the return skips the page properly */
static inline void show_silverball (const char *line1, const char *line2)
{
	amode_page_start ();
	U16 fno;
	for (fno = IMG_SILVERBALL_START; fno <= IMG_SILVERBALL_END; fno += 2)
	{
		dmd_alloc_pair ();
		frame_draw (fno);
		dmd_show2 ();
		task_sleep (TIME_66MS);
		if (amode_page_changed)
			break;
	}
	amode_sleep_sec (1);
	for (fno = 0; fno < 7; fno++)
	{
		dmd_alloc_pair_clean ();
		dmd_map_overlay ();
		dmd_clean_page_low ();
		font_render_string_center (&font_steel, 64, 12, line1);
		if (fno > 2)
			font_render_string_center (&font_var5, 64, 24, line2);
		dmd_text_outline ();
		dmd_alloc_pair ();
		frame_draw (IMG_SILVERBALL_END);
		dmd_overlay_outline ();
		dmd_show2 ();
		amode_sleep_sec (1);
	}
	dmd_sched_transition (&trans_bitfade_slow);
}
예제 #20
0
파일: tnf.c 프로젝트: SonnyJim/freewpc
void tnf_exit_deff (void)
{	
	dmd_alloc_pair_clean ();
	U16 fno;
	sound_send (SND_CLOCK_CHAOS_END_BOOM);
	for (fno = IMG_EXPLODE_START; fno <= IMG_EXPLODE_END; fno += 2)
	{
		dmd_map_overlay ();
		dmd_clean_page_low ();
		
		sprintf_score (tnf_score);
		font_render_string_center (&font_fixed6, 64, 8, sprintf_buffer);
		font_render_string_center (&font_var5, 64, 20, "POINTS EARNED FROM DOINKS");
		dmd_text_outline ();
		dmd_alloc_pair ();
		frame_draw (fno);
		dmd_overlay_outline ();
		dmd_show2 ();
		task_sleep (TIME_33MS);
	}
	if (tnf_buttons_pressed >= tnf_target)
		sound_send (SND_OOH_GIMME_SHELTER);
	else
		sound_send (SND_RETURN_TO_YOUR_HOMES);
	dmd_alloc_pair_clean ();
	sprintf_score (tnf_score);
	font_render_string_center (&font_fixed6, 64, 8, sprintf_buffer);
	font_render_string_center (&font_var5, 64, 20, "POINTS EARNED FROM DOINKS");
	dmd_copy_low_to_high ();
	dmd_show2 ();
	task_sleep_sec (2);
	deff_exit ();
}
예제 #21
0
파일: effect.c 프로젝트: Dmilo/freewpc
/** Draw the current credits full screen */
void credits_draw (void)
{
	dmd_alloc_pair ();
	dmd_clean_page_low ();

	credits_render ();
	font_render_string_center (&font_fixed6, 64, 9, sprintf_buffer);
	dmd_copy_low_to_high ();

	if (!has_credits_p ())
	{
		if (price_config.payment_method == PAY_COIN)
			sprintf ("INSERT COINS");
		else if (price_config.payment_method == PAY_TOKEN)
			sprintf ("INSERT TOKENS");
		else if (price_config.payment_method == PAY_CARD)
			sprintf ("SWIPE CARD");
		else if (price_config.payment_method == PAY_BILL)
			sprintf ("INSERT BILLS");
	}
	else
	{
		sprintf ("PRESS START");
	}
	font_render_string_center (&font_fixed6, 64, 22, sprintf_buffer);
}
예제 #22
0
파일: deffs2.c 프로젝트: SonnyJim/freewpc
void shoot_camera_deff (void)
{
	if (timed_mode_running_p (&hitch_mode))
			sprintf ("SHOOT HITCH");
		else
			sprintf ("SHOOT CAMERA");

	if (event_did_follow (loop, ball_grab))
	{
		dmd_alloc_pair_clean ();
		U16 fno;
		for (fno = IMG_LOOP_START; fno < IMG_LOOP_END; fno += 2)
		{
			dmd_map_overlay ();
			dmd_clean_page_low ();
			font_render_string_center (&font_bitoutline, 64, 16, sprintf_buffer);
			dmd_text_outline ();
			dmd_alloc_pair ();
			frame_draw (fno);
			dmd_overlay_outline ();
			dmd_show2 ();
			task_sleep (TIME_66MS);
		}
		/* Get rid of the last dirty frame */
		dmd_alloc_pair_clean ();
		font_render_string_center (&font_bitoutline, 64, 16, sprintf_buffer);
		dmd_copy_low_to_high ();
		dmd_show2 ();
		flash_and_exit_deff2 (10, TIME_66MS);
	}
	else
	{
		flash_and_exit_deff2 (15, TIME_66MS);
	}
}
예제 #23
0
void car_chase_hit_effect_deff(void) {
	U8 car_chase_SoundCounter;
	car_chase_SoundCounter = random_scaled(car_chase_TotalNumOfSounds);//from kernal/random.c
	dmd_clean_page_high ();//
	dmd_clean_page_low ();//

	//NOTE: skid sound is played on ramp enter at ramps.c
	//these sounds are on ramp exit
	sound_start (ST_SPEECH, car_chase_SoundsArray[car_chase_SoundCounter], SL_4S, PRI_GAME_QUICK2);
	sound_start (ST_EFFECT, CAR_GEAR_CHANGE, SL_2S, PRI_GAME_QUICK2);

	if (IN_TEST) {	if (++carchase_MessageCounter > 8) carchase_MessageCounter = 0; }
	else			carchase_MessageCounter = random_scaled(9);


	switch (carchase_MessageCounter) {
		default:
		case 0:
			car_chase_animation_display_effect (IMG_CARCHASE_B_START, IMG_CARCHASE_B_END);
			car_chase_animation_display_effect (IMG_CARCHASE_A_START, IMG_CARCHASE_A_END);
			break;
		case 1:
			car_chase_animation_display_effect (IMG_CARCHASE_C_START, IMG_CARCHASE_C_END);
			car_chase_animation_display_effect (IMG_CARCHASE_B_START, IMG_CARCHASE_B_END);
			break;
		case 2:
			car_chase_animation_display_effect (IMG_CARCHASE_D_START, IMG_CARCHASE_D_END);
			car_chase_animation_display_effect (IMG_CARCHASE_C_START, IMG_CARCHASE_C_END);
			break;
		case 3:
			car_chase_animation_display_effect (IMG_CARCHASE_H_START, IMG_CARCHASE_H_END);
			car_chase_animation_display_effect (IMG_CARCHASE_D_START, IMG_CARCHASE_D_END);
			break;
		case 4:
			car_chase_animation_display_effect (IMG_CARCHASE_F1_START, IMG_CARCHASE_F1_END);
			car_chase_animation_display_effect (IMG_CARCHASE_E_START, IMG_CARCHASE_E_END);
			break;
		case 5:
			car_chase_animation_display_effect (IMG_CARCHASE_F2_START, IMG_CARCHASE_F2_END);
			car_chase_animation_display_effect (IMG_CARCHASE_H_START, IMG_CARCHASE_H_END);
			break;
		case 6:
			car_chase_animation_display_effect (IMG_CARCHASE_F2_START, IMG_CARCHASE_F2_END);
			car_chase_animation_display_effect (IMG_CARCHASE_F1_START, IMG_CARCHASE_F1_END);
			break;
		case 7:
			car_chase_animation_display_effect (IMG_CARCHASE_A_START, IMG_CARCHASE_A_END);
			car_chase_animation_display_effect (IMG_CARCHASE_J_START, IMG_CARCHASE_J_END);
			break;
		case 8:
			car_chase_animation_display_effect (IMG_CARCHASE_J_START, IMG_CARCHASE_J_END);
			car_chase_animation_display_effect (IMG_CARCHASE_E_START, IMG_CARCHASE_E_END);
			break;
		}//end of switch
	task_sleep (TIME_100MS);
	deff_exit ();
}//end of function
예제 #24
0
파일: deffs.c 프로젝트: Dmilo/freewpc
void martian_spelled_deff (void)
{
	dmd_alloc_pair ();
	dmd_clean_page_low ();
	martian_spell (TRUE);
	font_render_string_center (&font_var5, 64, 25, "EXTRA TIME ADDED");
	dmd_copy_low_to_high ();
	dmd_show2 ();
	task_sleep (TIME_2S+TIME_500MS);
	deff_exit ();
}
예제 #25
0
파일: deffs2.c 프로젝트: SonnyJim/freewpc
static inline void flash_and_exit_deff2 (U8 flash_count, task_ticks_t flash_delay)
{
	dmd_alloc_pair ();
	dmd_clean_page_low ();
	font_render_string_center (&font_bitoutline, 64, 16, sprintf_buffer);
	dmd_show_low ();
	dmd_copy_low_to_high ();
	dmd_invert_page (dmd_low_buffer);
	deff_swap_low_high (flash_count, flash_delay);
	deff_exit ();
}
예제 #26
0
void frame_with_words_display_v5prc_effect (U16 frame, U8 x, U8 y, char *words){
	dmd_alloc_pair_clean ();// Clean both pages
	dmd_map_overlay ();
	dmd_clean_page_low ();
		font_render_string_center (&font_halobold12, x, y, words);
	dmd_text_outline ();
	dmd_alloc_pair ();
	frame_draw(frame);
	dmd_overlay_outline ();
	dmd_show2 ();
	task_sleep (TIME_100MS);
}
예제 #27
0
파일: effect.c 프로젝트: Dmilo/freewpc
void ball_save_deff (void)
{
	dmd_alloc_pair ();
	dmd_clean_page_low ();
	sprintf ("PLAYER %d", player_up);
	font_render_string_center (&font_fixed6, 64, 8, sprintf_buffer);
	dmd_copy_low_to_high ();
	font_render_string_center (&font_fixed6, 64, 22, "BALL SAVED");
	dmd_show_low ();
	deff_swap_low_high (24, TIME_100MS);
	deff_exit ();
}
예제 #28
0
파일: deffs2.c 프로젝트: SonnyJim/freewpc
void shoot_power_payoff_deff (void)
{
	dmd_alloc_pair ();
	dmd_clean_page_low ();
	font_render_string_center (&font_fireball, 64, 9, "SHOOT");
	font_render_string_center (&font_fireball, 64, 24, "POWER PAYOFF");
	dmd_show_low ();
	dmd_copy_low_to_high ();
	dmd_invert_page (dmd_low_buffer);
	deff_swap_low_high (20, TIME_100MS);
	deff_exit ();
}
예제 #29
0
void car_frame_with_words_display_fipps_effect (U16 frame, U8 x, U8 y, char *words){
	dmd_alloc_pair_clean ();// Clean both pages
	dmd_map_overlay ();
	dmd_clean_page_low ();
	font_render_string_center (&font_fipps, x, y, words);
	dmd_text_outline ();
	dmd_alloc_pair ();
	frame_draw(frame);
	dmd_overlay_outline ();
	dmd_show2 ();
	task_sleep (TIME_100MS);
}//end of mode_effect_deff
예제 #30
0
void fortress_frame_with_words_display_steel_effect (U16 frame, U8 x, U8 y, char *words){
	dmd_alloc_pair_clean ();// Clean both pages
	dmd_map_overlay ();
	dmd_clean_page_low ();
		font_render_string_center (&font_halobold12, DMD_MIDDLE_X, DMD_BIG_CY_Top,  "FORTRESS");
		font_render_string_center (&font_halobold12, x, y, words);
	dmd_text_outline ();
	dmd_alloc_pair ();
	frame_draw(frame);
	dmd_overlay_outline ();
	dmd_show2 ();
}