ui: added stub for UI draw request
authorLukas Krickl <lukas@krickl.dev>
Sat, 1 Nov 2025 17:41:10 +0000 (18:41 +0100)
committerLukas Krickl <lukas@krickl.dev>
Sat, 1 Nov 2025 17:41:10 +0000 (18:41 +0100)
src/defs.s
src/ui.s
src/update.s
src/wram.s

index a36c2f0ae740ed4ff5b6149669b4e5fd102e615e..d9ff0c4f35321af27524871ed8272d3a3f1d80d0 100644 (file)
@@ -23,7 +23,9 @@
 
 #define UI_TILE_WIDTH 32
 #define UI_TILE_HEIGHT 4
-
+       
+       ; player position offset to get center of tile
+#define PLAYER_TILE_OFFSET 8
 #define MAP_W 16
 #define MAP_H 16
 #define MAP_TILES (MAP_W * MAP_H)
index 79ed47645870eee5cab25e30694140b6c771c5d8..b7ab11dd689bdc1609873147c912922c1c30a1eb 100644 (file)
--- a/src/ui.s
+++ b/src/ui.s
@@ -23,6 +23,41 @@ ui_init:
        call ui_draw_all
   ret
        
+       ; updates UI
+       ; checks if a UI draw is required
+       ; usually this occurs when
+       ; the player cursor enters a new tile
+ui_update:
+       ; check y
+       ld a, [ui_prev_tile_y]
+       ld b, a
+       ld a, [player+act_pos_y]
+       add a, PLAYER_TILE_OFFSET
+       div16 a
+       ld [ui_prev_tile_y], a
+       cp a, b ; are they differnet?
+       jr nz, @draw_new REL
+
+       ; check x
+       ld a, [ui_prev_tile_x]
+       ld b, a
+       ld a, [player+act_pos_x]
+       add a, PLAYER_TILE_OFFSET
+       div16 a
+       ld [ui_prev_tile_x], a
+       cp a, b ; ar they dfifernet?
+       ret z ; no need to proceed
+
+@draw_new:
+       
+       call ui_request_draw
+       ret
+       
+       ; requests a draw
+       ; for UI information about the current tile
+ui_request_draw:
+       ret
+
        ; draws the entire UI
        ; only call during blank
 ui_draw_all:
index 824249e87fb66c246818dca3659b62cb0806393c..a5cf3d1f518327535ee849b7d7670ca71fc43a54 100644 (file)
@@ -14,6 +14,8 @@ update_game:
        call player_draw
 
        call enemy_update
+
+       call ui_update
        
 
        ; TODO: update map routine
index d099a18cb423e2d2dfb3ebe095f0834f5a5dee47..0d07427c9227a41b97710d7e8a7c77717982bbfa 100644 (file)
@@ -79,4 +79,5 @@ map: .adv 2
 tile_curr: .adv 2
 tiles: .adv t_size * MAP_TILES
 
-
+ui_prev_tile_y: .adv 1
+ui_prev_tile_x: .adv 1