#define UI_TILE_FARM 130
#define UI_TILE_LUMBER 131
+#define UI_BUILDING_TEXT_X 2
+#define UI_BUILDING_TEXT_Y 120
+
#define UI_CURSOR_BUILDING_BASE_X 2
-#define UI_CURSOR_BUILDING_BASE_Y 120
+#define UI_CURSOR_BUILDING_BASE_Y 128
-#define UI_TEXT_SPRITE_0 shadow_oam+4
+#define UI_TEXT_SPRITE_LEN oamsize*10
+#define UI_TEXT_SPRITE_0 shadow_oam+oamsize
; lookup table for
; labels displayed when hovering
; over a building
ui_cursor_label_table:
dw STR_WAREHOUSE
+ dw STR_ROAD
+ dw STR_FARM
+ dw STR_LUMBER
; inits UI
ui_init:
; this should only be called
; during blanking
ui_draw:
- ld hl, SCRN1
+ ld hl, SCRN1+32
inc hl
ld a, UI_TILE_WAREHOUSE
pop bc
ret
+ ; draw building selector cursor
+ ; and text
ui_building_selector_draw:
+ ; draw cursor
ld hl, PLAYER_SPRITE1
ld a, UI_CURSOR_BUILDING_BASE_Y
ld a, CURSOR_TILE
ld [hl+], a
- ; TODO: print based on cursor location
+ ; clear text objects
+ ld hl, UI_TEXT_SPRITE_0
+ ld bc, UI_TEXT_SPRITE_LEN
+ ld d, 0
+ call memset
+
+ ; draw text
ld a, [ui_cursor_pos]
sla a ; * 2
ld hl, ui_cursor_label_table
ld h, a
; hl = string ptr
- ld b, 10
- ld c, 10
+ ld b, UI_BUILDING_TEXT_Y
+ ld c, UI_BUILDING_TEXT_X
ld de, UI_TEXT_SPRITE_0
call objputs
ldnull bc
ret
+ ; building selectr input reader
ui_building_selector_inputs:
input_just BTNSELECT
jr z, @not_select REL