Browse Source

add a small indicator for hp and fuel

Thomas B 1 month ago
parent
commit
a7f4f2596c
4 changed files with 18 additions and 3 deletions
  1. BIN
      data/status_spr8.png
  2. 5
    3
      src/game.c
  3. 12
    0
      src/sprite_data.c
  4. 1
    0
      src/sprites.h

BIN
data/status_spr8.png View File


+ 5
- 3
src/game.c View File

@@ -120,6 +120,9 @@ static void status(uint8_t health, uint8_t power, uint8_t *hiwater) NONBANKED {
120 120
                          ((power >> 6) == 0) ? 7 - ((power >> 3) & 7) : 0, hiwater);
121 121
         }
122 122
     }
123
+
124
+    spr_draw(SPR_STATUS, FLIP_NONE, BAR_OFFSET_X, HEALTH_OFFSET_Y - 24 - 9, 0, hiwater);
125
+    spr_draw(SPR_STATUS, FLIP_NONE, BAR_OFFSET_X, POWER_OFFSET_Y + 0 - 9, 1, hiwater);
123 126
 }
124 127
 
125 128
 static void show_explosion(uint16_t power) NONBANKED {
@@ -132,7 +135,6 @@ static void show_explosion(uint16_t power) NONBANKED {
132 135
         if (n < (4 * 4)) {
133 136
             spr_draw(SPR_EXPL, FLIP_NONE, 0, 0, n >> 2, &hiwater);
134 137
         }
135
-        status(0, power >> POWER_SHIFT, &hiwater);
136 138
         hide_sprites_range(hiwater, MAX_HARDWARE_SPRITES);
137 139
         vsync();
138 140
     }
@@ -350,6 +352,8 @@ int32_t game(void) NONBANKED {
350 352
 
351 353
         uint8_t hiwater = SPR_NUM_START;
352 354
 
355
+        status(health >> HEALTH_SHIFT, power >> POWER_SHIFT, &hiwater);
356
+
353 357
         if (conf_get()->debug_flags & DBG_MARKER) {
354 358
             spr_draw(SPR_DEBUG, FLIP_NONE, 0, 0, 0, &hiwater);
355 359
             spr_draw(SPR_DEBUG_LARGE, FLIP_NONE, 0, 0, 0, &hiwater);
@@ -382,8 +386,6 @@ int32_t game(void) NONBANKED {
382 386
             }
383 387
         }
384 388
 
385
-        status(health >> HEALTH_SHIFT, power >> POWER_SHIFT, &hiwater);
386
-
387 389
         hide_sprites_range(hiwater, MAX_HARDWARE_SPRITES);
388 390
 
389 391
         prev_acc = acc;

+ 12
- 0
src/sprite_data.c View File

@@ -29,6 +29,7 @@
29 29
 #include "bar_spr8.h"
30 30
 #include "expl_spr16.h"
31 31
 #include "pause.h"
32
+#include "status_spr8.h"
32 33
 #include "debug_marker.h"
33 34
 #include "debug_marker_spr32.h"
34 35
 
@@ -164,6 +165,17 @@ struct sprites metasprites[SPRITE_COUNT] = {
164 165
         .off = TILE_NUM_START,
165 166
         .bank = BANK(pause),
166 167
     },
168
+    { // SPR_STATUS
169
+        .ms = status_spr8_metasprites,
170
+        .ms_n = ARR_LEN(status_spr8_metasprites),
171
+        .ti = status_spr8_tiles,
172
+        .pa = status_spr8_palettes,
173
+        .pa_n = status_spr8_PALETTE_COUNT,
174
+        .pa_i = OAMF_CGB_PAL7 | PALETTE_DYNAMIC_LOAD_IP,
175
+        .cnt = status_spr8_TILE_COUNT,
176
+        .off = TILE_NUM_START,
177
+        .bank = BANK(status_spr8),
178
+    },
167 179
     { // SPR_DEBUG
168 180
         .ms = debug_marker_metasprites,
169 181
         .ms_n = ARR_LEN(debug_marker_metasprites),

+ 1
- 0
src/sprites.h View File

@@ -36,6 +36,7 @@ enum SPRITES {
36 36
     SPR_POWER,
37 37
     SPR_EXPL,
38 38
     SPR_PAUSE,
39
+    SPR_STATUS,
39 40
     SPR_DEBUG,
40 41
     SPR_DEBUG_LARGE,
41 42
 

Loading…
Cancel
Save