From: Lukas Krickl Date: Sun, 31 Aug 2025 05:38:52 +0000 (+0200) Subject: select menu: The menu can now scroll quickly X-Git-Url: https://git.krickl.dev/?a=commitdiff_plain;h=262b84d647b782e2286482e201f150387a53c3f8;p=gbrg%2F.git select menu: The menu can now scroll quickly --- diff --git a/src/select_menu.s b/src/select_menu.s index 8db65af..9c6c32a 100644 --- a/src/select_menu.s +++ b/src/select_menu.s @@ -1,3 +1,5 @@ +#define SELECT_MENU_DELAY_FRAMES 10 + ; a select menu is any menu that allows the player to select ; a range of values ; writes current string to status line and requests an update @@ -11,15 +13,29 @@ ; b: button pressed select_menu_update: push af + + ; check if delay timer is active + ld a, [select_menu_delay] + cp a, 0 + jr z, @not_delay REL + dec a + ld [select_menu_delay], a + jp @no_select +@not_delay: + ; save table length + pop af + push af push bc cp a, 0 jr z, @notleft REL ld b, BTNLEFT - input_just + input_held jr z, @notleft REL + ld a, SELECT_MENU_DELAY_FRAMES + ld [select_menu_delay], a pop bc pop af dec a @@ -36,8 +52,10 @@ select_menu_update: jr z, @notright REL ; is a > b ld b, BTNRIGHT - input_just + input_held jr z, @notright REL + ld a, SELECT_MENU_DELAY_FRAMES + ld [select_menu_delay], a pop af inc a call select_menu_draw_status @@ -45,7 +63,7 @@ select_menu_update: ret @notright: - +@no_select: ; TODO: A to confirm SELECT to assign to B pop af ret diff --git a/src/wram.s b/src/wram.s index 9ca174c..31dd475 100644 --- a/src/wram.s +++ b/src/wram.s @@ -77,6 +77,9 @@ redraw_shadow: .adv 2 redraw_steps: .adv 1 action_menu_cursor: .adv 1 + + ; simple menu delay timer +select_menu_delay: .adv 1 ; dummy oam ; same memory as empty_unit