1 #include "over_screen.h"
2 #include "../engine/font_manager.h"
3 #include "../engine/global_manager.h"
4 #include "../engine/locale_manager.h"
5 #include "../engine/tile_manager.h"
6 #include "../engine/sprite_manager.h"
7 #include <sms.h>
8 
9 extern unsigned int screen_bases_screen_timer;
10 extern unsigned int screen_over_screen_delay;
11 extern unsigned char hacker_sound;
12 
screen_over_screen_init()13 void screen_over_screen_init()
14 {
15 	screen_over_screen_delay = 500;
16 	if (hacker_sound)
17 	{
18 		screen_over_screen_delay -= EXPLOSION;
19 	}
20 }
21 
screen_over_screen_load()22 void screen_over_screen_load()
23 {
24 	unsigned char pause;
25 	engine_font_manager_draw_text(LOCALE_OVER, GLOBAL_LFT_SIDE, GLOBAL_MID_LINE);
26 
27 	// Game over "explosion".
28 	if (!hacker_sound)
29 	{
30 		return;
31 	}
32 
33 	set_sound_freq(3, 0xE4);
34 	set_sound_volume(3, 0x0F);
35 	for (pause = 0; pause < EXPLOSION; ++pause)
36 	{
37 		wait_vblank_noint();
38 	}
39 
40 	set_sound_volume(3, 0);
41 }
42 
screen_over_screen_update(int * screen_type,int curr_joypad1,int prev_joypad1)43 void screen_over_screen_update(int *screen_type, int curr_joypad1, int prev_joypad1)
44 {
45 	unsigned char title;
46 	engine_tile_manager_update_middle();
47 
48 	screen_bases_screen_timer++;
49 	if (screen_bases_screen_timer < screen_over_screen_delay / 2)
50 	{
51 		return;
52 	}
53 
54 	title = 0;
55 	if (curr_joypad1 & JOY_FIREA && !(prev_joypad1 & JOY_FIREA) || curr_joypad1 & JOY_FIREB && !(prev_joypad1 & JOY_FIREB))
56 	{
57 		title = 1;
58 	}
59 
60 	if (screen_bases_screen_timer >= screen_over_screen_delay)
61 	{
62 		title = 1;
63 	}
64 
65 	if (title)
66 	{
67 		engine_font_manager_draw_text(LOCALE_BLANK, GLOBAL_LFT_SIDE, GLOBAL_MID_LINE);
68 		engine_sprite_manager_clear();
69 		*screen_type = 2;//screen_type_title;
70 	}
71 }
72