From b56d1a8da65df37758f1c2fc5ba19617969cc25c Mon Sep 17 00:00:00 2001 From: Lukas Krickl Date: Sat, 29 Mar 2025 16:57:43 +0100 Subject: [PATCH] ui: Added basic ui state change --- src/player.s | 8 ++++++ src/ui.s | 53 +++++++++++++++++++++++++++++++++++++-- tiles/bank8000.inc | 10 ++++---- tiles/bank8800.inc | 62 +++++++++++++++++++++++----------------------- tiles/bank9000.inc | 10 ++++---- 5 files changed, 100 insertions(+), 43 deletions(-) diff --git a/src/player.s b/src/player.s index 251c25b..a67d4af 100644 --- a/src/player.s +++ b/src/player.s @@ -124,6 +124,14 @@ handle_inputs: ld bc, st_cursor_delay ret @notright: + + input_just BTNSELECT + jr z, @not_select REL + ; select goes to build menu + + ld bc, st_ui_building_selector + ret +@not_select: @done: ldnull bc ret diff --git a/src/ui.s b/src/ui.s index a60af06..05a9ded 100644 --- a/src/ui.s +++ b/src/ui.s @@ -1,4 +1,12 @@ +#define UI_TILE_WAREHOUSE 128 +#define UI_TILE_ROAD 129 +#define UI_TILE_FARM 130 +#define UI_TILE_LUMBER 131 + +#define UI_CURSOR_BUILDING_BASE_X 2 +#define UI_CURSOR_BUILDING_BASE_Y 120 + ; inits UI ui_init: call ui_draw @@ -9,12 +17,53 @@ ui_init: ; during blanking ui_draw: ld hl, SCRN1 - ld a, 128 - ld [hl], a + inc hl + + ld a, UI_TILE_WAREHOUSE + ld [hl+], a + + ld a, UI_TILE_ROAD + ld [hl+], a + + ld a, UI_TILE_FARM + ld [hl+], a + + ld a, UI_TILE_LUMBER + ld [hl+], a ret ; ui building selector state ui_building_selector_update: + call ui_building_selector_inputs + push bc + call ui_building_selector_draw + pop bc + ret + +ui_building_selector_draw: + ld hl, PLAYER_SPRITE1 + + ld a, UI_CURSOR_BUILDING_BASE_Y + add a, OBJ_OFF_Y + ld [hl+], a + + ld a, UI_CURSOR_BUILDING_BASE_X + add a, OBJ_OFF_X + ld [hl+], a + + ld a, CURSOR_TILE + ld [hl+], a + + ret + +ui_building_selector_inputs: + input_just BTNSELECT + jr z, @not_select REL + ; select back to regular state + + ld bc, st_cursor + ret +@not_select: ldnull bc ret diff --git a/tiles/bank8000.inc b/tiles/bank8000.inc index 65d982f..7539ccb 100644 --- a/tiles/bank8000.inc +++ b/tiles/bank8000.inc @@ -1070,19 +1070,19 @@ .chr 00000000 .chr 00000000 ; tile 119 -.chr 32232223 .chr 32222223 -.chr 32232223 .chr 32222223 -.chr 32232223 .chr 32222223 -.chr 32232223 +.chr 32222223 +.chr 32222223 +.chr 32222223 +.chr 32222223 .chr 32222223 ; tile 120 .chr 33333333 .chr 22222222 .chr 22222222 -.chr 23232323 +.chr 22222222 .chr 22222222 .chr 22222222 .chr 22222222 diff --git a/tiles/bank8800.inc b/tiles/bank8800.inc index 342a388..6b1a78d 100644 --- a/tiles/bank8800.inc +++ b/tiles/bank8800.inc @@ -1,38 +1,38 @@ ; tile 0 .chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 +.chr 03333330 +.chr 03002130 +.chr 03021130 +.chr 03211130 +.chr 03111130 +.chr 03333330 .chr 00000000 ; tile 1 .chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 +.chr 03222230 +.chr 03222230 +.chr 03222230 +.chr 03222230 +.chr 03222230 +.chr 03222230 .chr 00000000 ; tile 2 .chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 +.chr 01111110 +.chr 01200210 +.chr 01020010 +.chr 01000010 +.chr 01200210 +.chr 01111110 .chr 00000000 ; tile 3 .chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 +.chr 00020000 +.chr 00111000 +.chr 00111000 +.chr 01111100 +.chr 01111100 +.chr 00030000 .chr 00000000 ; tile 4 .chr 00000000 @@ -1143,10 +1143,10 @@ .chr 00000000 ; tile 127 .chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 +.chr 00020000 +.chr 00111000 +.chr 00111000 +.chr 01111100 +.chr 01111100 +.chr 00030000 +.chr 00020000 diff --git a/tiles/bank9000.inc b/tiles/bank9000.inc index e989c93..4293a61 100644 --- a/tiles/bank9000.inc +++ b/tiles/bank9000.inc @@ -1070,19 +1070,19 @@ .chr 00000000 .chr 00000000 ; tile 119 -.chr 32232223 .chr 32222223 -.chr 32232223 .chr 32222223 -.chr 32232223 .chr 32222223 -.chr 32232223 +.chr 32222223 +.chr 32222223 +.chr 32222223 +.chr 32222223 .chr 32222223 ; tile 120 .chr 33333333 .chr 22222222 .chr 22222222 -.chr 23232323 +.chr 22222222 .chr 22222222 .chr 22222222 .chr 22222222 -- 2.30.2