From b2f6c3118e486bd3630d7a4690239a87e5e20a21 Mon Sep 17 00:00:00 2001 From: Lukas Krickl Date: Sun, 6 Oct 2024 10:37:29 +0200 Subject: [PATCH] Combined single and multi bar drawing logic --- src/ui.s | 39 +++++++++++---------------------------- tiles/tileset1.inc | 40 ++++++++++++++++++++-------------------- 2 files changed, 31 insertions(+), 48 deletions(-) diff --git a/src/ui.s b/src/ui.s index efa3bb2..f148f49 100644 --- a/src/ui.s +++ b/src/ui.s @@ -1,11 +1,11 @@ #define THP_ICON 0x33 #define TMP_ICON 0x37 -#define TATK_ICON 0x3B +#define TATK_ICON 0x3D #define TDEF_ICON 0x3C #define THP_BAR_START 0x34 -#define THP_BAR_SINGLE_EMPTY 0x3E -#define THP_BAR_SINGLE_FULL 0x3D +#define THP_BAR_SINGLE_EMPTY 0x3F +#define THP_BAR_SINGLE_FULL 0x3B ; difference between start and empty bar #define THP_BAR_EMPTY_DIFF 4 @@ -40,24 +40,6 @@ ui_init: ret - ; draw a single item only - ; inputs: - ; b: current bar value (either 1 or 0) - ; hl: screen location -ui_draw_bar_single: - ld a, b ; b = current - - cp a, 0 - jp z, @draw_empty -@draw_full: - ld a, THP_BAR_SINGLE_FULL - ld [hl+], a - ret -@draw_empty: - ld a, THP_BAR_SINGLE_EMPTY - ld [hl+], a - ret - ; decides if a bar should be empty or filled ; inputs: ; b: current @@ -95,17 +77,18 @@ ui_draw_bar: ; check if we only need a single obj ld a, [de] ; a = max value - - ; <= 1 -> jp to special case code - cp a, 1 - jr c, ui_draw_bar_single REL - jr z, ui_draw_bar_single REL - ; now c = max ; and b = current ld c, a - ld e, 0 ; e = total drawn + + ; <= 1 -> jp to special case code + cp a, 1 ; a = max + ; load single tile for the possible jumps + ld a, THP_BAR_SINGLE_FULL + jr c, ui_draw_bar_empty_or_filled REL + jr z, ui_draw_bar_empty_or_filled REL + ; draw left most bar tile ld a, THP_BAR_START diff --git a/tiles/tileset1.inc b/tiles/tileset1.inc index 7619e45..3df4e80 100644 --- a/tiles/tileset1.inc +++ b/tiles/tileset1.inc @@ -1683,13 +1683,13 @@ .chr 00000000 ; tile 187 .chr 00000000 -.chr 00000011 -.chr 00000112 -.chr 00001120 -.chr 00311200 -.chr 00332000 -.chr 03333000 -.chr 03300000 +.chr 00333300 +.chr 03111130 +.chr 03111130 +.chr 03111130 +.chr 00333300 +.chr 00000000 +.chr 00000000 ; tile 188 .chr 00000000 .chr 03333330 @@ -1701,29 +1701,29 @@ .chr 00033000 ; tile 189 .chr 00000000 -.chr 00333300 -.chr 03111130 -.chr 03111130 -.chr 03111130 -.chr 00333300 -.chr 00000000 -.chr 00000000 +.chr 00000011 +.chr 00000112 +.chr 00001120 +.chr 00311200 +.chr 00332000 +.chr 03333000 +.chr 03300000 ; tile 190 .chr 00000000 -.chr 00333300 -.chr 03000030 -.chr 03000030 -.chr 03000030 -.chr 00333300 .chr 00000000 .chr 00000000 -; tile 191 .chr 00000000 .chr 00000000 .chr 00000000 .chr 00000000 .chr 00000000 +; tile 191 .chr 00000000 +.chr 00333300 +.chr 03000030 +.chr 03000030 +.chr 03000030 +.chr 00333300 .chr 00000000 .chr 00000000 ; tile 192 -- 2.30.2