cursor: Added preview tile
authorLukas Krickl <lukas@krickl.dev>
Tue, 1 Apr 2025 19:25:41 +0000 (21:25 +0200)
committerLukas Krickl <lukas@krickl.dev>
Tue, 1 Apr 2025 19:25:41 +0000 (21:25 +0200)
src/buildings.s
src/player.s
src/ui.s
src/wram.s

index a8d365b14b249baea81550f87510f50799b0d7e8..bd117e16498a9fcabb2f8d588bc3253e1e466534 100644 (file)
@@ -4,6 +4,8 @@
   ; e.g. not enough resources, not enough space
   ; executes cursor_state state machine update
 building_build:
+  ld de, cursor_state
+  call st_update
   ret
 
 build_warehouse:
index a67d4af1830aa0479bd91ff237b85a6096ca1f40..aa75cb0a5a7e022405782664c23d7b02b309380c 100644 (file)
@@ -12,6 +12,7 @@ player_init:
   ld hl, actor_player
   ld bc, st_size
   call memcpy
+
   ret
 
   ; update the player 
@@ -56,8 +57,26 @@ player_draw_cursor:
   xor a, a
   ld [hl+], a
 
-  ldnull bc
+  ; preview tile 
+  ld hl, PLAYER_SPRITE1+oamsize
+
+  ld a, [cursor_y]
+  add a, OBJ_OFF_Y
+  sub a, b
+  ld [hl+], a
+
+  ld a, [cursor_x]
+  add a, OBJ_OFF_X
+  sub a, c
+  ld [hl+], a
+
+  ld a, [cursor_preview_tile] 
+  ld [hl+], a
 
+  xor a, a
+  ld [hl+], a
+  
+  ldnull bc
   ret
 
 handle_inputs:
index 4c1e15d13c706c49432d64ef46516e80f4c25da4..0ed272c9e0210b0594e116f2226a6e37db73ac19 100644 (file)
--- a/src/ui.s
+++ b/src/ui.s
@@ -22,6 +22,13 @@ ui_cursor_label_table:
   dw STR_FARM
   dw STR_LUMBER
 
+  ; tile to display for each selection 
+ui_cursor_tile_table:
+  .db UI_TILE_WAREHOUSE
+  .db UI_TILE_ROAD
+  .db UI_TILE_FARM
+  .db UI_TILE_LUMBER
+
   ; converts from UI cursor position
   ; to building state 
 ui_to_building_selecction_table:
@@ -176,6 +183,15 @@ ui_building_selector_inputs:
     ld bc, st_size
     call memcpy
 
+    ; load tile for preview 
+    ld hl, ui_cursor_tile_table
+    ld d, 0
+    ld a, [ui_cursor_pos]
+    ld e, a 
+    add hl, de
+    ld a, [hl]
+    ld [cursor_preview_tile], a
+
     ld bc, st_ui_buildung_selector_exit
     ret
 @not_a:
index e9f6fa9b819e5b41bba02c869c9fef3fee873696..96193722831aa58089b1a0deccf0521dcfa14e16 100644 (file)
@@ -18,6 +18,7 @@ game_mode: .adv st_size
 
   ; cursor state
 cursor_state: .adv st_size
+cursor_preview_tile: .adv 1
 
   ; actors 
   ; actors are state machines