summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2021-05-21 08:38:11 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2021-05-21 08:38:11 -0400
commit150597d495383f09a4ee733d24b3e770c57494eb (patch)
tree180139dcf5a652e15b0ab13916a113dd340f2409
parent5c9213cb7fcfabdd3c85408f39a04314dd03e780 (diff)
through FUN_02001464
-rw-r--r--arm9/asm/unk_020010A8.s103
-rw-r--r--arm9/src/list_menu.c46
2 files changed, 41 insertions, 108 deletions
diff --git a/arm9/asm/unk_020010A8.s b/arm9/asm/unk_020010A8.s
index a6a35c2f..14603d3e 100644
--- a/arm9/asm/unk_020010A8.s
+++ b/arm9/asm/unk_020010A8.s
@@ -5,109 +5,6 @@
.text
- thumb_func_start FUN_020013C8
-FUN_020013C8: ; 0x020013C8
- push {r4, lr}
- sub sp, #0x10
- mov r4, #0x0
- str r4, [sp, #0x0]
- add r4, sp, #0x8
- ldrh r4, [r4, #0x10]
- str r4, [sp, #0x4]
- ldr r4, [sp, #0x1c]
- str r4, [sp, #0x8]
- ldr r4, [sp, #0x20]
- str r4, [sp, #0xc]
- bl FUN_02001354
- add sp, #0x10
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_020013E8
-FUN_020013E8: ; 0x020013E8
- push {r3-r6}
- add r4, r0, #0x0
- add r4, #0x20
- ldrb r6, [r4, #0x0]
- mov r4, #0xf
- mov r5, #0xf
- bic r6, r4
- and r1, r5
- orr r6, r1
- add r1, r0, #0x0
- add r1, #0x20
- strb r6, [r1, #0x0]
- add r1, r0, #0x0
- add r1, #0x20
- lsl r2, r2, #0x1c
- ldrb r1, [r1, #0x0]
- mov r6, #0xf0
- lsr r2, r2, #0x18
- bic r1, r6
- orr r2, r1
- add r1, r0, #0x0
- add r1, #0x20
- strb r2, [r1, #0x0]
- add r1, r0, #0x0
- add r1, #0x21
- ldrb r2, [r1, #0x0]
- add r1, r3, #0x0
- and r1, r5
- bic r2, r4
- orr r2, r1
- add r1, r0, #0x0
- add r1, #0x21
- strb r2, [r1, #0x0]
- add r1, r0, #0x0
- add r1, #0x24
- ldrb r2, [r1, #0x0]
- mov r1, #0x80
- add r0, #0x24
- orr r1, r2
- strb r1, [r0, #0x0]
- pop {r3-r6}
- bx lr
-
- thumb_func_start FUN_0200143C
-FUN_0200143C: ; 0x0200143C
- ldrh r2, [r0, #0x2c]
- ldrh r0, [r0, #0x2e]
- add r0, r2, r0
- strh r0, [r1, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02001448
-FUN_02001448: ; 0x02001448
- cmp r1, #0x0
- beq _02001450
- ldrh r3, [r0, #0x2c]
- strh r3, [r1, #0x0]
-_02001450:
- cmp r2, #0x0
- beq _02001458
- ldrh r0, [r0, #0x2e]
- strh r0, [r2, #0x0]
-_02001458:
- bx lr
- .balign 4
-
- thumb_func_start FUN_0200145C
-FUN_0200145C: ; 0x0200145C
- add r0, #0x33
- ldrb r0, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02001464
-FUN_02001464: ; 0x02001464
- ldr r2, [r0, #0x0]
- lsl r0, r1, #0x3
- add r0, r2, r0
- ldr r0, [r0, #0x4]
- bx lr
- .balign 4
-
thumb_func_start FUN_02001470
FUN_02001470: ; 0x02001470
push {r4, lr}
diff --git a/arm9/src/list_menu.c b/arm9/src/list_menu.c
index 2700f30e..1a46c4e2 100644
--- a/arm9/src/list_menu.c
+++ b/arm9/src/list_menu.c
@@ -125,7 +125,7 @@ THUMB_FUNC void RedrawListMenu(struct ListMenu * 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)
+THUMB_FUNC s32 FUN_02001354(struct ListMenu * list, const struct ListMenuTemplate * template, u16 cursorPos, u16 itemsAbove, u16 updateFlag, u16 input, u16 *cursorPosDest_p, u16 *itemsAboveDest_p)
{
if (template != NULL)
list->template = *template;
@@ -142,13 +142,49 @@ THUMB_FUNC s32 FUN_02001354(struct ListMenu * list, struct ListMenuTemplate * te
{
ListMenuChangeSelection(list, updateFlag, 1, TRUE);
}
- if (sp18 != NULL)
+ if (cursorPosDest_p != NULL)
{
- *sp18 = list->cursorPos;
+ *cursorPosDest_p = list->cursorPos;
}
- if (sp1C != NULL)
+ if (itemsAboveDest_p != NULL)
{
- *sp1C = list->itemsAbove;
+ *itemsAboveDest_p = list->itemsAbove;
}
return -1;
}
+
+s32 FUN_020013C8(struct ListMenu * list, const struct ListMenuTemplate * template, u16 cursorPos, u16 itemsAbove, u16 input, u16 *cursorPosDest_p, u16 *itemsAboveDest_p)
+{
+ return FUN_02001354(list, template, cursorPos, itemsAbove, FALSE, input, cursorPosDest_p, itemsAboveDest_p);
+}
+
+void FUN_020013E8(struct ListMenu * list, u8 cursorPal, u8 fillValue, u8 cursorShadowPal)
+{
+ list->cursorPal = cursorPal;
+ list->fillValue = fillValue;
+ list->cursorShadowPal = cursorShadowPal;
+ list->enabled = TRUE;
+}
+
+void FUN_0200143C(struct ListMenu * list, u16 * index_p)
+{
+ *index_p = list->cursorPos + list->itemsAbove;
+}
+
+void FUN_02001448(struct ListMenu * list, u16 * cursorPos_p, u16 * itemsAbove_p)
+{
+ if (cursorPos_p != NULL)
+ *cursorPos_p = list->cursorPos;
+ if (itemsAbove_p != NULL)
+ *itemsAbove_p = list->itemsAbove;
+}
+
+u8 FUN_0200145C(struct ListMenu * list)
+{
+ return list->unk_33;
+}
+
+s32 FUN_02001464(struct ListMenu * list, s32 index)
+{
+ return list->template.items[index].index;
+}