ld hl, actor_player
ld bc, st_size
call memcpy
+
ret
; update the player
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:
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:
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:
; cursor state
cursor_state: .adv st_size
+cursor_preview_tile: .adv 1
; actors
; actors are state machines