summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arm9/asm/unk_020010A8.s44
-rw-r--r--arm9/asm/unk_02001B80.s2
-rw-r--r--arm9/asm/unk_02012CC8.s8
-rw-r--r--arm9/asm/unk_02050E48.s2
-rw-r--r--arm9/asm/unk_020625EC.s2
-rw-r--r--arm9/asm/unk_020653EC.s4
-rw-r--r--arm9/asm/unk_0208A338.s2
-rw-r--r--arm9/global.inc8
-rw-r--r--arm9/modules/05/asm/mod05_021E1AD8.s2
-rw-r--r--arm9/modules/05/asm/module_05.s2
-rw-r--r--arm9/modules/06/asm/module_06.s14
-rw-r--r--arm9/modules/15/asm/module_15.s2
-rw-r--r--arm9/modules/18/asm/module_18.s18
-rw-r--r--arm9/modules/55/asm/module_55.s2
-rw-r--r--arm9/modules/56/asm/module_56.s20
-rw-r--r--arm9/modules/59/asm/mod59_021D74E0_asm.s2
-rw-r--r--arm9/modules/65/asm/module_65.s4
-rw-r--r--arm9/modules/71/asm/module_71.s2
-rw-r--r--arm9/modules/75/asm/module_75.s14
-rw-r--r--arm9/modules/76/asm/module_76.s2
-rw-r--r--arm9/modules/77/asm/module_77.s2
-rw-r--r--arm9/modules/80/asm/module_80.s32
-rw-r--r--arm9/modules/83/asm/module_83.s8
-rw-r--r--arm9/src/list_menu.c33
-rw-r--r--include/list_menu.h13
25 files changed, 114 insertions, 130 deletions
diff --git a/arm9/asm/unk_020010A8.s b/arm9/asm/unk_020010A8.s
index 0551ad9c..dba61431 100644
--- a/arm9/asm/unk_020010A8.s
+++ b/arm9/asm/unk_020010A8.s
@@ -5,50 +5,6 @@
.text
- thumb_func_start FUN_02001300
-FUN_02001300: ; 0x02001300
- push {r4, lr}
- add r4, r0, #0x0
- cmp r1, #0x0
- beq _0200130C
- ldrh r0, [r4, #0x2c]
- strh r0, [r1, #0x0]
-_0200130C:
- cmp r2, #0x0
- beq _02001314
- ldrh r0, [r4, #0x2e]
- strh r0, [r2, #0x0]
-_02001314:
- ldr r0, [r4, #0x28]
- bl FUN_020136C0
- add r0, r4, #0x0
- add r0, #0x34
- ldrb r0, [r0, #0x0]
- add r1, r4, #0x0
- bl FUN_02016A8C
- pop {r4, pc}
-
- thumb_func_start FUN_02001328
-FUN_02001328: ; 0x02001328
- push {r4, lr}
- add r4, r0, #0x0
- ldrb r1, [r4, #0x18]
- ldr r0, [r4, #0xc]
- lsl r1, r1, #0x1c
- lsr r1, r1, #0x1c
- bl FillWindowPixelBuffer
- ldrh r1, [r4, #0x2c]
- ldrh r3, [r4, #0x12]
- add r0, r4, #0x0
- mov r2, #0x0
- bl ListMenuPrintEntries
- add r0, r4, #0x0
- bl ListMenuDrawCursor
- ldr r0, [r4, #0xc]
- bl CopyWindowToVram
- pop {r4, pc}
- .balign 4
-
thumb_func_start FUN_02001354
FUN_02001354: ; 0x02001354
push {r4-r6, lr}
diff --git a/arm9/asm/unk_02001B80.s b/arm9/asm/unk_02001B80.s
index c00d6dd7..65ba52af 100644
--- a/arm9/asm/unk_02001B80.s
+++ b/arm9/asm/unk_02001B80.s
@@ -130,7 +130,7 @@ FUN_02001C5C: ; 0x02001C5C
strb r0, [r1, #0x0]
_02001C68:
ldr r0, [r4, #0xc]
- bl FUN_020136C0
+ bl DestroyListMenuCursorObj
ldrb r0, [r4, #0x1c]
add r1, r4, #0x0
bl FUN_02016A8C
diff --git a/arm9/asm/unk_02012CC8.s b/arm9/asm/unk_02012CC8.s
index b77e441c..92e460b6 100644
--- a/arm9/asm/unk_02012CC8.s
+++ b/arm9/asm/unk_02012CC8.s
@@ -1511,8 +1511,8 @@ _020136B2:
_020136B8: .word 0x0001020F
_020136BC: .word UNK_020ED548
- thumb_func_start FUN_020136C0
-FUN_020136C0: ; 0x020136C0
+ thumb_func_start DestroyListMenuCursorObj
+DestroyListMenuCursorObj: ; 0x020136C0
push {r4, lr}
add r4, r0, #0x0
bne _020136CA
@@ -1530,8 +1530,8 @@ _020136D8:
_020136DE:
pop {r4, pc}
- thumb_func_start FUN_020136E0
-FUN_020136E0: ; 0x020136E0
+ thumb_func_start CreateListMenuCursorObj
+CreateListMenuCursorObj: ; 0x020136E0
push {r3-r5, lr}
add r5, r0, #0x0
add r4, r1, #0x0
diff --git a/arm9/asm/unk_02050E48.s b/arm9/asm/unk_02050E48.s
index b5eed02a..95b46dc5 100644
--- a/arm9/asm/unk_02050E48.s
+++ b/arm9/asm/unk_02050E48.s
@@ -1442,7 +1442,7 @@ _020519BA:
ldr r0, [r4, #0x10]
bl String_dtor
ldr r0, [r4, #0x78]
- bl FUN_020136C0
+ bl DestroyListMenuCursorObj
add r0, r4, #0x0
mov r1, #0x1
bl FUN_02051810
diff --git a/arm9/asm/unk_020625EC.s b/arm9/asm/unk_020625EC.s
index 024e66de..bf248464 100644
--- a/arm9/asm/unk_020625EC.s
+++ b/arm9/asm/unk_020625EC.s
@@ -1515,7 +1515,7 @@ FUN_02063178: ; 0x02063178
ldr r0, [r0, #0x0]
add r1, #0x22
add r2, #0x24
- bl FUN_02001300
+ bl DestroyListMenu
add r0, r4, #0x0
add r0, #0xc4
ldr r0, [r0, #0x0]
diff --git a/arm9/asm/unk_020653EC.s b/arm9/asm/unk_020653EC.s
index e2feaf96..50cb5318 100644
--- a/arm9/asm/unk_020653EC.s
+++ b/arm9/asm/unk_020653EC.s
@@ -1418,7 +1418,7 @@ FUN_02065EF8: ; 0x02065EF8
ldr r0, [r4, r0]
add r1, #0x2
add r2, sp, #0x0
- bl FUN_02001300
+ bl DestroyListMenu
mov r0, #0x59
lsl r0, r0, #0x2
ldr r0, [r4, r0]
@@ -1495,7 +1495,7 @@ FUN_02065F8C: ; 0x02065F8C
ldr r0, [r4, r0]
add r1, #0x2
add r2, sp, #0x0
- bl FUN_02001300
+ bl DestroyListMenu
mov r0, #0x59
lsl r0, r0, #0x2
ldr r0, [r4, r0]
diff --git a/arm9/asm/unk_0208A338.s b/arm9/asm/unk_0208A338.s
index 94714e95..f1e7c357 100644
--- a/arm9/asm/unk_0208A338.s
+++ b/arm9/asm/unk_0208A338.s
@@ -73,7 +73,7 @@ FUN_0208A3C8: ; 0x0208A3C8
ldr r0, [r4, #0x50]
bl FUN_020853A8
ldr r0, [r4, #0x14]
- bl FUN_020136C0
+ bl DestroyListMenuCursorObj
ldr r0, [r4, #0x4]
bl String_dtor
ldr r0, [r4, #0x8]
diff --git a/arm9/global.inc b/arm9/global.inc
index c6cbbced..e826f9ce 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -190,8 +190,8 @@
.extern HandleDSLidAction
.extern ListMenuInit
.extern ListMenu_ProcessInput
-.extern FUN_02001300
-.extern FUN_02001328
+.extern DestroyListMenu
+.extern RedrawListMenu
.extern FUN_02001354
.extern FUN_020013C8
.extern FUN_020013E8
@@ -883,8 +883,8 @@
.extern FUN_0201365C
.extern FUN_02013674
.extern FUN_02013690
-.extern FUN_020136C0
-.extern FUN_020136E0
+.extern DestroyListMenuCursorObj
+.extern CreateListMenuCursorObj
.extern FUN_020136F8
.extern MailMsg_init
.extern MailMsg_init_withBank
diff --git a/arm9/modules/05/asm/mod05_021E1AD8.s b/arm9/modules/05/asm/mod05_021E1AD8.s
index 74ef40cf..d9ec58bf 100644
--- a/arm9/modules/05/asm/mod05_021E1AD8.s
+++ b/arm9/modules/05/asm/mod05_021E1AD8.s
@@ -1134,7 +1134,7 @@ MOD05_021E2368: ; 0x021E2368
mov r1, #0
ldr r0, [r6, r0]
add r2, r1, #0
- bl FUN_02001300
+ bl DestroyListMenu
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r6, r0]
diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s
index 4e5e67fe..0528681a 100644
--- a/arm9/modules/05/asm/module_05.s
+++ b/arm9/modules/05/asm/module_05.s
@@ -15366,7 +15366,7 @@ _021F0056:
mov r1, #0
ldr r0, [r5, #4]
add r2, r1, #0
- bl FUN_02001300
+ bl DestroyListMenu
ldr r0, [r5]
bl ListMenu_dtor
mov r0, #0
diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s
index 1974440b..9336c826 100644
--- a/arm9/modules/06/asm/module_06.s
+++ b/arm9/modules/06/asm/module_06.s
@@ -9595,7 +9595,7 @@ _0223E006:
mov r1, #0
ldr r0, [r5, #0x78]
add r2, r1, #0
- bl FUN_02001300
+ bl DestroyListMenu
ldr r0, [r5, #0x7c]
bl ListMenu_dtor
add r0, r5, #0
@@ -12966,7 +12966,7 @@ _0223FBDA:
strb r0, [r2]
ldr r0, [r1]
ldr r0, [r0, #0x5c]
- bl FUN_02001328
+ bl RedrawListMenu
ldr r0, _0223FCF0 ; =0x02252420
mov r1, #3
ldr r0, [r0]
@@ -13853,7 +13853,7 @@ MOD06_02240364: ; 0x02240364
mov r1, #0
ldr r0, [r4, #0x5c]
add r2, r1, #0
- bl FUN_02001300
+ bl DestroyListMenu
add r0, r4, #0
add r0, #0x20
bl FUN_02019570
@@ -14686,7 +14686,7 @@ MOD06_02240A28: ; 0x02240A28
beq _02240A62
mov r1, #0
add r2, r1, #0
- bl FUN_02001300
+ bl DestroyListMenu
add r0, r4, #0
add r0, #0x34
mov r1, #1
@@ -14921,7 +14921,7 @@ _02240C1A:
beq _02240C50
mov r1, #0
add r2, r1, #0
- bl FUN_02001300
+ bl DestroyListMenu
add r0, r5, #0
add r0, #0x44
mov r1, #1
@@ -19439,7 +19439,7 @@ MOD06_02243024: ; 0x02243024
mov r1, #0
ldr r0, [r0]
add r2, r1, #0
- bl FUN_02001300
+ bl DestroyListMenu
ldr r0, [r6, #0x74]
mov r1, #0
bl FUN_0200CCF8
@@ -42445,7 +42445,7 @@ _0224E1C0:
mov r1, #0
ldr r0, [r6, #8]
add r2, r1, #0
- bl FUN_02001300
+ bl DestroyListMenu
ldr r0, [r6, #4]
bl FUN_02019570
ldr r0, [r6, #4]
diff --git a/arm9/modules/15/asm/module_15.s b/arm9/modules/15/asm/module_15.s
index e994d6da..0b2abaab 100644
--- a/arm9/modules/15/asm/module_15.s
+++ b/arm9/modules/15/asm/module_15.s
@@ -4359,7 +4359,7 @@ MOD15_021D9634: ; 0x021D9634
ldr r0, [r4, #0x50]
cmp r0, #0
beq _021D9642
- bl FUN_020136C0
+ bl DestroyListMenuCursorObj
_021D9642:
ldr r0, [r4, #0x3c]
cmp r0, #0
diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s
index 78cc2220..99b0d4ca 100644
--- a/arm9/modules/18/asm/module_18.s
+++ b/arm9/modules/18/asm/module_18.s
@@ -22037,7 +22037,7 @@ MOD18_02244028: ; 0x02244028
ldr r1, [sp, #0xc]
str r0, [r1, #0x10]
ldr r1, _022440C0 ; =0x0008090F
- bl FUN_020136E0
+ bl CreateListMenuCursorObj
ldr r1, [sp, #8]
ldr r0, [sp, #0xc]
strb r1, [r0, #0x1d]
@@ -22316,7 +22316,7 @@ _02244268:
mov r0, #0
strb r0, [r5, #0x1c]
ldr r0, [sp, #4]
- bl FUN_02001328
+ bl RedrawListMenu
mov r0, #0
add sp, #0x10
mvn r0, r0
@@ -22397,12 +22397,12 @@ MOD18_02244318: ; 0x02244318
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0xc]
- bl FUN_02001300
+ bl DestroyListMenu
ldr r0, [r4]
cmp r0, #0
beq _02244334
ldr r0, [r4, #0x10]
- bl FUN_020136C0
+ bl DestroyListMenuCursorObj
ldr r0, [r4, #8]
bl FreeToHeap
_02244334:
@@ -30159,7 +30159,7 @@ MOD18_02247FC0: ; 0x02247FC0
mov r1, #0
ldr r0, [r4, #0x20]
add r2, r1, #0
- bl FUN_02001300
+ bl DestroyListMenu
add r0, r4, #0
add r0, #0xc
bl FUN_02019570
@@ -31135,7 +31135,7 @@ MOD18_02248784: ; 0x02248784
mov r1, #0
ldr r0, [r4, #0x1c]
add r2, r1, #0
- bl FUN_02001300
+ bl DestroyListMenu
add r0, r4, #0
add r0, #8
bl FUN_02019570
@@ -33377,7 +33377,7 @@ _02249902:
beq _02249916
mov r1, #0
add r2, r1, #0
- bl FUN_02001300
+ bl DestroyListMenu
mov r0, #0
str r0, [r4, #0x48]
b _02249936
@@ -33552,7 +33552,7 @@ MOD18_02249A64: ; 0x02249A64
beq _02249A8C
mov r1, #0
add r2, r1, #0
- bl FUN_02001300
+ bl DestroyListMenu
add r1, r4, #0
add r1, #0x24
ldrb r1, [r1]
@@ -42483,7 +42483,7 @@ MOD18_0224E26C: ; 0x0224E26C
ldr r0, [r4, #0x28]
ldr r1, [r4, #0x30]
ldr r2, [r4, #0x34]
- bl FUN_02001300
+ bl DestroyListMenu
add r0, r4, #4
mov r1, #1
bl FUN_0200CCF8
diff --git a/arm9/modules/55/asm/module_55.s b/arm9/modules/55/asm/module_55.s
index d2fdf544..704cf6de 100644
--- a/arm9/modules/55/asm/module_55.s
+++ b/arm9/modules/55/asm/module_55.s
@@ -3458,7 +3458,7 @@ _021D9098:
mov r1, #0
ldr r0, [r5, r0]
add r2, r1, #0
- bl FUN_02001300
+ bl DestroyListMenu
ldr r0, [r5, #0x14]
bl ListMenu_dtor
add r0, r6, #0
diff --git a/arm9/modules/56/asm/module_56.s b/arm9/modules/56/asm/module_56.s
index 3ba5c1be..ba3275fa 100644
--- a/arm9/modules/56/asm/module_56.s
+++ b/arm9/modules/56/asm/module_56.s
@@ -1450,7 +1450,7 @@ _022129D8:
beq _022129EA
mov r1, #0
add r2, r1, #0
- bl FUN_02001300
+ bl DestroyListMenu
_022129EA:
add r0, r4, #0
add r0, #0xb0
@@ -2479,7 +2479,7 @@ MOD56_02213194: ; 0x02213194
mov r1, #0
ldr r0, [r0]
add r2, r1, #0
- bl FUN_02001300
+ bl DestroyListMenu
add r0, r6, #0
mov r1, #0
add r0, #0xb4
@@ -3675,7 +3675,7 @@ _02213AF0:
mov r1, #0
ldr r0, [r0]
add r2, r1, #0
- bl FUN_02001300
+ bl DestroyListMenu
add r0, r5, #0
mov r1, #0
add r0, #0xb4
@@ -3864,7 +3864,7 @@ _02213C84:
add r0, r5, #0
add r0, #0xb4
ldr r0, [r0]
- bl FUN_02001328
+ bl RedrawListMenu
str r4, [r5, #8]
_02213CA8:
add r0, r5, #0
@@ -3917,7 +3917,7 @@ _02213CF0:
add r0, r5, #0
add r0, #0xb4
ldr r0, [r0]
- bl FUN_02001328
+ bl RedrawListMenu
_02213D0C:
add r1, sp, #0xc
ldrh r1, [r1, #2]
@@ -4099,7 +4099,7 @@ _02213E5C:
mov r1, #0
ldr r0, [r0]
add r2, r1, #0
- bl FUN_02001300
+ bl DestroyListMenu
add r0, r5, #0
mov r1, #0
add r0, #0xb4
@@ -5257,7 +5257,7 @@ _0221476E:
ldr r0, [r0]
mov r1, #0
add r2, r5, r2
- bl FUN_02001300
+ bl DestroyListMenu
add r0, r5, #0
add r0, #0xb8
ldr r0, [r0]
@@ -5298,7 +5298,7 @@ _022147CE:
ldr r0, [r0]
mov r1, #0
add r2, r5, r2
- bl FUN_02001300
+ bl DestroyListMenu
add r5, #0xb8
ldr r0, [r5]
bl ListMenu_dtor
@@ -5521,7 +5521,7 @@ _02214994:
lsl r3, r3, #1
mov r1, #0
add r2, r2, r3
- bl FUN_02001300
+ bl DestroyListMenu
add r5, #0xb8
ldr r0, [r5]
bl ListMenu_dtor
@@ -6074,7 +6074,7 @@ _02214DEC:
mov r1, #0
ldr r0, [r0]
add r2, r1, #0
- bl FUN_02001300
+ bl DestroyListMenu
add r4, #0xb8
ldr r0, [r4]
bl ListMenu_dtor
diff --git a/arm9/modules/59/asm/mod59_021D74E0_asm.s b/arm9/modules/59/asm/mod59_021D74E0_asm.s
index b4cc612f..dbad5e9c 100644
--- a/arm9/modules/59/asm/mod59_021D74E0_asm.s
+++ b/arm9/modules/59/asm/mod59_021D74E0_asm.s
@@ -1133,7 +1133,7 @@ _021D7E66:
mov r1, #0
ldr r0, [r5, #0x40]
add r2, r1, #0
- bl FUN_02001300
+ bl DestroyListMenu
ldr r0, [r5, #0x44]
bl ListMenu_dtor
ldr r0, _021D7EC8 ; =0x000005DC
diff --git a/arm9/modules/65/asm/module_65.s b/arm9/modules/65/asm/module_65.s
index 9d2d4c83..c8d4ac1a 100644
--- a/arm9/modules/65/asm/module_65.s
+++ b/arm9/modules/65/asm/module_65.s
@@ -1725,7 +1725,7 @@ _021D823E:
ldr r0, [r0]
add r1, #0x80
add r2, #0x82
- bl FUN_02001300
+ bl DestroyListMenu
add r0, r5, #0
add r0, #0xcc
ldr r0, [r0]
@@ -2304,7 +2304,7 @@ MOD65_021D86BC: ; 0x021D86BC
ldr r0, [r0]
add r1, sp, #0
add r2, #2
- bl FUN_02001300
+ bl DestroyListMenu
add r0, r4, #0
add r0, #0xd0
ldr r0, [r0]
diff --git a/arm9/modules/71/asm/module_71.s b/arm9/modules/71/asm/module_71.s
index 5a669930..1ae20a7e 100644
--- a/arm9/modules/71/asm/module_71.s
+++ b/arm9/modules/71/asm/module_71.s
@@ -4383,7 +4383,7 @@ _0222F9E4:
mov r1, #0
ldr r0, [r5, r0]
add r2, r1, #0
- bl FUN_02001300
+ bl DestroyListMenu
ldr r0, _0222FA34 ; =0x0000367C
ldr r0, [r5, r0]
bl ListMenu_dtor
diff --git a/arm9/modules/75/asm/module_75.s b/arm9/modules/75/asm/module_75.s
index e9293c4e..8ecfcb91 100644
--- a/arm9/modules/75/asm/module_75.s
+++ b/arm9/modules/75/asm/module_75.s
@@ -1911,7 +1911,7 @@ MOD75_021E7AA4: ; 0x021E7AA4
add r3, #8
add r1, r1, r2
add r2, r3, r2
- bl FUN_02001300
+ bl DestroyListMenu
mov r0, #0x16
lsl r0, r0, #4
ldr r0, [r4, r0]
@@ -2830,7 +2830,7 @@ _021E81D2:
add r3, #8
add r1, r1, r2
add r2, r3, r2
- bl FUN_02001300
+ bl DestroyListMenu
mov r0, #0x16
lsl r0, r0, #4
ldr r0, [r5, r0]
@@ -3709,7 +3709,7 @@ MOD75_021E8864: ; 0x021E8864
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r4, r0]
- bl FUN_02001328
+ bl RedrawListMenu
add r0, r4, #0
bl MOD75_021E8AAC
pop {r4, pc}
@@ -3928,7 +3928,7 @@ MOD75_021E8A48: ; 0x021E8A48
ldr r0, [r5, r0]
add r1, r4, #6
add r2, r4, #4
- bl FUN_02001300
+ bl DestroyListMenu
mov r0, #0x57
mov r1, #0
lsl r0, r0, #2
@@ -5022,7 +5022,7 @@ MOD75_021E92BC: ; 0x021E92BC
add r3, #8
add r1, r1, r2
add r2, r3, r2
- bl FUN_02001300
+ bl DestroyListMenu
mov r0, #0x16
lsl r0, r0, #4
ldr r0, [r4, r0]
@@ -5608,7 +5608,7 @@ MOD75_021E97A8: ; 0x021E97A8
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r4, r0]
- bl FUN_02001328
+ bl RedrawListMenu
add r0, r4, #0
bl MOD75_021EB344
add r0, r4, #0
@@ -5633,7 +5633,7 @@ MOD75_021E97E4: ; 0x021E97E4
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r4, r0]
- bl FUN_02001328
+ bl RedrawListMenu
add r0, r4, #0
bl MOD75_021EB344
add r0, r4, #0
diff --git a/arm9/modules/76/asm/module_76.s b/arm9/modules/76/asm/module_76.s
index a1b276d4..9f7f7745 100644
--- a/arm9/modules/76/asm/module_76.s
+++ b/arm9/modules/76/asm/module_76.s
@@ -1365,7 +1365,7 @@ MOD76_021D7FAC: ; 0x021D7FAC
ldr r0, [r4, r0]
add r1, #0x12
add r2, #0x10
- bl FUN_02001300
+ bl DestroyListMenu
mov r0, #0x42
lsl r0, r0, #2
ldr r0, [r4, r0]
diff --git a/arm9/modules/77/asm/module_77.s b/arm9/modules/77/asm/module_77.s
index b47670c4..01cab9b7 100644
--- a/arm9/modules/77/asm/module_77.s
+++ b/arm9/modules/77/asm/module_77.s
@@ -1937,7 +1937,7 @@ MOD77_021D84D8: ; 0x021D84D8
mov r1, #0
ldr r0, [r4, r0]
add r2, r1, #0
- bl FUN_02001300
+ bl DestroyListMenu
ldr r0, _021D850C ; =0x0000C058
ldr r0, [r4, r0]
bl ListMenu_dtor
diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s
index 60122fa9..5982ed76 100644
--- a/arm9/modules/80/asm/module_80.s
+++ b/arm9/modules/80/asm/module_80.s
@@ -7626,7 +7626,7 @@ _02231240:
add r1, r2, #6
ldr r0, [r4, r0]
add r2, r2, #4
- bl FUN_02001300
+ bl DestroyListMenu
ldr r0, _022312B8 ; =0x00000FC8
ldr r0, [r4, r0]
bl ListMenu_dtor
@@ -7643,7 +7643,7 @@ _02231266:
add r1, r2, #6
ldr r0, [r4, r0]
add r2, r2, #4
- bl FUN_02001300
+ bl DestroyListMenu
ldr r0, _022312B8 ; =0x00000FC8
ldr r0, [r4, r0]
bl ListMenu_dtor
@@ -7747,7 +7747,7 @@ _02231342:
ldr r0, [r4, r0]
add r1, #0xa
add r2, #8
- bl FUN_02001300
+ bl DestroyListMenu
ldr r0, _02231468 ; =0x00000FC8
ldr r0, [r4, r0]
bl ListMenu_dtor
@@ -7780,7 +7780,7 @@ _0223138C:
ldr r0, [r4, r0]
add r1, #0xa
add r2, #8
- bl FUN_02001300
+ bl DestroyListMenu
ldr r0, _02231468 ; =0x00000FC8
ldr r0, [r4, r0]
bl ListMenu_dtor
@@ -7980,7 +7980,7 @@ _0223154A:
mov r1, #0
ldr r0, [r5, r0]
add r2, r1, #0
- bl FUN_02001300
+ bl DestroyListMenu
ldr r0, _022315F4 ; =0x00000FC8
ldr r0, [r5, r0]
bl ListMenu_dtor
@@ -8005,7 +8005,7 @@ _0223158E:
mov r1, #0
ldr r0, [r5, r0]
add r2, r1, #0
- bl FUN_02001300
+ bl DestroyListMenu
ldr r0, _022315F4 ; =0x00000FC8
ldr r0, [r5, r0]
bl ListMenu_dtor
@@ -8153,7 +8153,7 @@ _022316D0:
mov r1, #0
ldr r0, [r5, r0]
add r2, r1, #0
- bl FUN_02001300
+ bl DestroyListMenu
ldr r0, _02231770 ; =0x00000FC8
ldr r0, [r5, r0]
bl ListMenu_dtor
@@ -8178,7 +8178,7 @@ _0223170C:
mov r1, #0
ldr r0, [r5, r0]
add r2, r1, #0
- bl FUN_02001300
+ bl DestroyListMenu
ldr r0, _02231770 ; =0x00000FC8
ldr r0, [r5, r0]
bl ListMenu_dtor
@@ -12260,7 +12260,7 @@ _022337FA:
add r1, r2, #6
ldr r0, [r4, r0]
add r2, r2, #4
- bl FUN_02001300
+ bl DestroyListMenu
ldr r0, _0223387C ; =0x00000FC8
ldr r0, [r4, r0]
bl ListMenu_dtor
@@ -12277,7 +12277,7 @@ _02233820:
add r1, r2, #6
ldr r0, [r4, r0]
add r2, r2, #4
- bl FUN_02001300
+ bl DestroyListMenu
ldr r0, _0223387C ; =0x00000FC8
ldr r0, [r4, r0]
bl ListMenu_dtor
@@ -12415,7 +12415,7 @@ _02233932:
ldr r0, [r4, r0]
add r1, #0xa
add r2, #8
- bl FUN_02001300
+ bl DestroyListMenu
ldr r0, _02233A50 ; =0x00000FC8
ldr r0, [r4, r0]
bl ListMenu_dtor
@@ -12454,7 +12454,7 @@ _0223398C:
ldr r0, [r4, r0]
add r1, #0xa
add r2, #8
- bl FUN_02001300
+ bl DestroyListMenu
ldr r0, _02233A50 ; =0x00000FC8
ldr r0, [r4, r0]
bl ListMenu_dtor
@@ -12644,7 +12644,7 @@ _02233B26:
mov r1, #0
ldr r0, [r5, r0]
add r2, r1, #0
- bl FUN_02001300
+ bl DestroyListMenu
ldr r0, _02233BD0 ; =0x00000FC8
ldr r0, [r5, r0]
bl ListMenu_dtor
@@ -12669,7 +12669,7 @@ _02233B6A:
mov r1, #0
ldr r0, [r5, r0]
add r2, r1, #0
- bl FUN_02001300
+ bl DestroyListMenu
ldr r0, _02233BD0 ; =0x00000FC8
ldr r0, [r5, r0]
bl ListMenu_dtor
@@ -12816,7 +12816,7 @@ _02233CA4:
mov r1, #0
ldr r0, [r5, r0]
add r2, r1, #0
- bl FUN_02001300
+ bl DestroyListMenu
ldr r0, _02233D70 ; =0x00000FC8
ldr r0, [r5, r0]
bl ListMenu_dtor
@@ -12856,7 +12856,7 @@ _02233CFA:
mov r1, #0
ldr r0, [r5, r0]
add r2, r1, #0
- bl FUN_02001300
+ bl DestroyListMenu
ldr r0, _02233D70 ; =0x00000FC8
ldr r0, [r5, r0]
bl ListMenu_dtor
diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s
index 67165632..8551901e 100644
--- a/arm9/modules/83/asm/module_83.s
+++ b/arm9/modules/83/asm/module_83.s
@@ -4616,7 +4616,7 @@ _0222FA62:
beq _0222FA70
mov r1, #0
add r2, r1, #0
- bl FUN_02001300
+ bl DestroyListMenu
_0222FA70:
add r0, r7, #0
add r0, #0x18
@@ -5863,7 +5863,7 @@ _022303FE:
beq _02230436
mov r1, #0
add r2, r1, #0
- bl FUN_02001300
+ bl DestroyListMenu
_02230436:
mov r1, #0
add r0, sp, #8
@@ -8150,7 +8150,7 @@ _02231708:
beq _02231718
mov r1, #0
add r2, r1, #0
- bl FUN_02001300
+ bl DestroyListMenu
_02231718:
add r0, r7, #0
mov r1, #0x57
@@ -8510,7 +8510,7 @@ MOD83_02231A00: ; 0x02231A00
str r1, [r4, r0]
sub r0, r0, #4
ldr r0, [r4, r0]
- bl FUN_02001300
+ bl DestroyListMenu
ldr r0, _02231A44 ; =0x00002B68
mov r1, #0
str r1, [r4, r0]
diff --git a/arm9/src/list_menu.c b/arm9/src/list_menu.c
index a0069e32..6d440ad1 100644
--- a/arm9/src/list_menu.c
+++ b/arm9/src/list_menu.c
@@ -1,12 +1,11 @@
-#pragma thumb on
-
#include "global.h"
#include "heap.h"
#include "main.h"
#include "list_menu.h"
extern void * FUN_02013690(u32 heap_id);
-extern void FUN_020136E0(void *, u32);
+extern void CreateListMenuCursorObj(void *, u32);
+extern void DestroyListMenuCursorObj(void *);
extern void FillWindowPixelBuffer(struct Window *, u32);
void ListMenuPrintEntries(struct ListMenu *, u16, u16, u16);
void ListMenuDrawCursor(struct ListMenu *);
@@ -14,11 +13,11 @@ BOOL ListMenuChangeSelection(struct ListMenu *, s32, u8, s32);
void ListMenuCallSelectionChangedCallback(struct ListMenu *, BOOL);
extern void CopyWindowToVram(struct Window *);
-struct ListMenu * ListMenuInit(const struct ListMenuTemplate * template, u16 cursorPos, u16 itemsAbove, u32 heap_id)
+THUMB_FUNC struct ListMenu * ListMenuInit(const struct ListMenuTemplate * template, u16 cursorPos, u16 itemsAbove, u32 heap_id)
{
struct ListMenu * list = AllocFromHeap(heap_id, sizeof(struct ListMenu));
list->template = *template;
- list->unk_28 = FUN_02013690(heap_id);
+ list->cursor = FUN_02013690(heap_id);
list->cursorPos = cursorPos;
list->itemsAbove = itemsAbove;
list->unk_30 = 0;
@@ -34,8 +33,8 @@ struct ListMenu * ListMenuInit(const struct ListMenuTemplate * template, u16 cur
list->enabled = 0;
if (list->template.totalItems < list->template.maxShowed)
list->template.maxShowed = list->template.totalItems;
- FUN_020136E0(
- list->unk_28,
+ CreateListMenuCursorObj(
+ list->cursor,
(u32)(
((u32)(list->template.cursorPal << 24) >> 8)
| ((u32)(list->template.cursorShadowPal << 24) >> 16)
@@ -50,7 +49,7 @@ struct ListMenu * ListMenuInit(const struct ListMenuTemplate * template, u16 cur
return list;
}
-s32 ListMenu_ProcessInput(struct ListMenu * list)
+THUMB_FUNC s32 ListMenu_ProcessInput(struct ListMenu * list)
{
list->unk_33 = 0;
@@ -107,3 +106,21 @@ s32 ListMenu_ProcessInput(struct ListMenu * list)
}
}
}
+
+THUMB_FUNC void DestroyListMenu(struct ListMenu * list, u16 * cursorPos, u16 * itemsAbove)
+{
+ if (cursorPos != NULL)
+ *cursorPos = list->cursorPos;
+ if (itemsAbove != NULL)
+ *itemsAbove = list->itemsAbove;
+ DestroyListMenuCursorObj(list->cursor);
+ FUN_02016A8C(list->heap_id, list);
+}
+
+THUMB_FUNC void RedrawListMenu(struct ListMenu * list)
+{
+ FillWindowPixelBuffer(list->template.window, list->template.fillValue);
+ ListMenuPrintEntries(list, list->cursorPos, 0, list->template.maxShowed);
+ ListMenuDrawCursor(list);
+ CopyWindowToVram(list->template.window);
+}
diff --git a/include/list_menu.h b/include/list_menu.h
index ed47d21d..67b73893 100644
--- a/include/list_menu.h
+++ b/include/list_menu.h
@@ -18,6 +18,12 @@ struct Window
u8 unk_04;
};
+// TODO: Move to its own header, and fill it out
+struct ListMenuCursor
+{
+ // ???
+};
+
struct ListMenuItem
{
const u16 * text;
@@ -59,7 +65,7 @@ struct ListMenu
/*0x23*/ u8 unk_23;
/*0x24*/ u8 fontId:7;
u8 enabled:1;
- /*0x28*/ void * unk_28;
+ /*0x28*/ struct ListMenuCursor *cursor;
/*0x2c*/ u16 cursorPos;
/*0x2e*/ u16 itemsAbove;
/*0x30*/ u8 unk_30;
@@ -69,4 +75,9 @@ struct ListMenu
/*0x34*/ u8 heap_id;
};
+THUMB_FUNC struct ListMenu * ListMenuInit(const struct ListMenuTemplate * template, u16 cursorPos, u16 itemsAbove, u32 heap_id);
+THUMB_FUNC s32 ListMenu_ProcessInput(struct ListMenu * list);
+THUMB_FUNC void DestroyListMenu(struct ListMenu * list, u16 * cursorPos, u16 * itemsAbove);
+THUMB_FUNC void RedrawListMenu(struct ListMenu * list);
+
#endif // POKEDIAMOND_LIST_MENU_H