+#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
; 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
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
ret
@notright:
-
+@no_select:
; TODO: A to confirm SELECT to assign to B
pop af
ret
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