summaryrefslogtreecommitdiff
path: root/arm9/src
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2021-05-21 08:28:03 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2021-05-21 08:28:03 -0400
commit5c9213cb7fcfabdd3c85408f39a04314dd03e780 (patch)
tree4f3e93ee1d7681df6f92874ce74063e43ecbcbfc /arm9/src
parentaa152bfb68aa828481806b7399e8c521bec61187 (diff)
FUN_02001354
Diffstat (limited to 'arm9/src')
-rw-r--r--arm9/src/list_menu.c30
1 files changed, 29 insertions, 1 deletions
diff --git a/arm9/src/list_menu.c b/arm9/src/list_menu.c
index 6d440ad1..2700f30e 100644
--- a/arm9/src/list_menu.c
+++ b/arm9/src/list_menu.c
@@ -9,7 +9,7 @@ extern void DestroyListMenuCursorObj(void *);
extern void FillWindowPixelBuffer(struct Window *, u32);
void ListMenuPrintEntries(struct ListMenu *, u16, u16, u16);
void ListMenuDrawCursor(struct ListMenu *);
-BOOL ListMenuChangeSelection(struct ListMenu *, s32, u8, s32);
+BOOL ListMenuChangeSelection(struct ListMenu *, u8, u8, s32);
void ListMenuCallSelectionChangedCallback(struct ListMenu *, BOOL);
extern void CopyWindowToVram(struct Window *);
@@ -124,3 +124,31 @@ THUMB_FUNC void RedrawListMenu(struct ListMenu * list)
ListMenuDrawCursor(list);
CopyWindowToVram(list->template.window);
}
+
+THUMB_FUNC s32 FUN_02001354(struct ListMenu * list, struct ListMenuTemplate * template, u16 cursorPos, u16 itemsAbove, u16 updateFlag, u16 input, u16 * sp18, u16 * sp1C)
+{
+ if (template != NULL)
+ list->template = *template;
+ list->cursorPos = cursorPos;
+ list->itemsAbove = itemsAbove;
+ list->unk_30 = 0;
+ list->unk_31 = 0;
+
+ if (input == REG_PAD_KEYINPUT_UP_MASK)
+ {
+ ListMenuChangeSelection(list, updateFlag, 1, FALSE);
+ }
+ else if (input == REG_PAD_KEYINPUT_DOWN_MASK)
+ {
+ ListMenuChangeSelection(list, updateFlag, 1, TRUE);
+ }
+ if (sp18 != NULL)
+ {
+ *sp18 = list->cursorPos;
+ }
+ if (sp1C != NULL)
+ {
+ *sp1C = list->itemsAbove;
+ }
+ return -1;
+}