|
@@ -47,7 +47,6 @@ uint8_t debug_menu_index = 0;
|
47
|
47
|
BANKREF(main)
|
48
|
48
|
|
49
|
49
|
const struct debug_entry debug_entries[DEBUG_ENTRY_COUNT] = {
|
50
|
|
- { .name = "menu", .flag = DBG_MENU },
|
51
|
50
|
{ .name = "marker", .flag = DBG_MARKER },
|
52
|
51
|
{ .name = "invuln", .flag = DBG_GOD_MODE },
|
53
|
52
|
{ .name = "cl score", .flag = DBG_CLEAR_SCORE },
|
|
@@ -108,18 +107,78 @@ static void splash_win(void) NONBANKED {
|
108
|
107
|
// initially show the top 1 scores
|
109
|
108
|
int32_t low = score_lowest(0).score;
|
110
|
109
|
int32_t high = score_highest(0).score;
|
|
110
|
+ win_splash_draw(-low, high);
|
111
|
111
|
|
112
|
|
- // only show on splash if they fit
|
113
|
|
- if ((low >= -99999) && (high <= 99999)) {
|
114
|
|
- win_splash_draw(-low, high);
|
115
|
|
- }
|
116
|
|
-
|
117
|
|
- move_win(MINWNDPOSX, MINWNDPOSY + DEVICE_SCREEN_PX_HEIGHT - 16);
|
|
112
|
+ move_win(MINWNDPOSX, MINWNDPOSY + DEVICE_SCREEN_PX_HEIGHT - (8 * 4));
|
118
|
113
|
}
|
119
|
114
|
|
120
|
115
|
SHOW_WIN;
|
121
|
116
|
}
|
122
|
117
|
|
|
118
|
+static void splash_anim(uint8_t *hiwater) NONBANKED {
|
|
119
|
+ static uint8_t frame = 0;
|
|
120
|
+ static uint8_t state = 0;
|
|
121
|
+
|
|
122
|
+ if (++frame >= 60) {
|
|
123
|
+ frame = 0;
|
|
124
|
+ if (++state >= 10) {
|
|
125
|
+ state = 0;
|
|
126
|
+ }
|
|
127
|
+ }
|
|
128
|
+
|
|
129
|
+ int16_t spd_off_x = 0;
|
|
130
|
+ int16_t spd_off_y = 0;
|
|
131
|
+ int32_t score = 0;
|
|
132
|
+ obj_do(&spd_off_x, &spd_off_y, &score, hiwater);
|
|
133
|
+
|
|
134
|
+ switch (state) {
|
|
135
|
+ case 0:
|
|
136
|
+ case 2:
|
|
137
|
+ spr_draw(SPR_SHIP, FLIP_NONE, -4, -42 - 1, 4, hiwater);
|
|
138
|
+ break;
|
|
139
|
+
|
|
140
|
+ case 1:
|
|
141
|
+ spr_draw(SPR_SHIP, FLIP_NONE, -4, -42 - 1, 4, hiwater);
|
|
142
|
+ if (frame == 0) {
|
|
143
|
+ obj_add(SPR_SHOT, SHIP_OFF, -42, SHOT_SPEED, 0);
|
|
144
|
+ snd_shot();
|
|
145
|
+ }
|
|
146
|
+ break;
|
|
147
|
+
|
|
148
|
+ case 3:
|
|
149
|
+ if (frame == 30) {
|
|
150
|
+ obj_add(SPR_LIGHT, 42, -42, 0, 0);
|
|
151
|
+ }
|
|
152
|
+ spr_draw(SPR_SHIP, FLIP_NONE, -1, -42 + 4, 0, hiwater);
|
|
153
|
+ break;
|
|
154
|
+
|
|
155
|
+ case 8:
|
|
156
|
+ if (frame == 30) {
|
|
157
|
+ obj_add(SPR_DARK, -42, -42, 0, 0);
|
|
158
|
+ }
|
|
159
|
+ spr_draw(SPR_SHIP, FLIP_NONE, -1, -42 + 4, 0, hiwater);
|
|
160
|
+ break;
|
|
161
|
+
|
|
162
|
+ case 4:
|
|
163
|
+ case 9:
|
|
164
|
+ spr_draw(SPR_SHIP, FLIP_NONE, -1, -42 + 4, 0, hiwater);
|
|
165
|
+ break;
|
|
166
|
+
|
|
167
|
+ case 5:
|
|
168
|
+ case 7:
|
|
169
|
+ spr_draw(SPR_SHIP, FLIP_X, 4, -42, 4, hiwater);
|
|
170
|
+ break;
|
|
171
|
+
|
|
172
|
+ case 6:
|
|
173
|
+ spr_draw(SPR_SHIP, FLIP_X, 4, -42, 4, hiwater);
|
|
174
|
+ if (frame == 0) {
|
|
175
|
+ obj_add(SPR_SHOT, -SHIP_OFF, -42, -SHOT_SPEED, 0);
|
|
176
|
+ snd_shot();
|
|
177
|
+ }
|
|
178
|
+ break;
|
|
179
|
+ }
|
|
180
|
+}
|
|
181
|
+
|
123
|
182
|
static void splash(void) NONBANKED {
|
124
|
183
|
disable_interrupts();
|
125
|
184
|
DISPLAY_OFF;
|
|
@@ -186,6 +245,9 @@ static void splash(void) NONBANKED {
|
186
|
245
|
SWITCH_ROM(BANK(main));
|
187
|
246
|
debug_flags ^= debug_entries[debug_menu_index].flag;
|
188
|
247
|
splash_win();
|
|
248
|
+ } else if (key_pressed(J_B)) {
|
|
249
|
+ debug_flags &= ~DBG_MENU;
|
|
250
|
+ splash_win();
|
189
|
251
|
}
|
190
|
252
|
}
|
191
|
253
|
}
|
|
@@ -193,7 +255,7 @@ static void splash(void) NONBANKED {
|
193
|
255
|
uint8_t hiwater = SPR_NUM_START;
|
194
|
256
|
|
195
|
257
|
if (!(debug_flags & DBG_MENU)) {
|
196
|
|
- obj_draw(&hiwater);
|
|
258
|
+ splash_anim(&hiwater);
|
197
|
259
|
}
|
198
|
260
|
|
199
|
261
|
hide_sprites_range(hiwater, MAX_HARDWARE_SPRITES);
|