diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2021-05-21 08:28:03 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2021-05-21 08:28:03 -0400 |
commit | 5c9213cb7fcfabdd3c85408f39a04314dd03e780 (patch) | |
tree | 4f3e93ee1d7681df6f92874ce74063e43ecbcbfc /arm9/src | |
parent | aa152bfb68aa828481806b7399e8c521bec61187 (diff) |
FUN_02001354
Diffstat (limited to 'arm9/src')
-rw-r--r-- | arm9/src/list_menu.c | 30 |
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; +} |