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