summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arm9/arm9.lsf1
-rw-r--r--arm9/asm/unk_020010A8.s127
-rw-r--r--arm9/asm/unk_02001B80.s6
-rw-r--r--arm9/asm/unk_0200CABC.s2
-rw-r--r--arm9/asm/unk_02012CC8.s8
-rw-r--r--arm9/asm/unk_02016B94.s2
-rw-r--r--arm9/asm/unk_02035068.s12
-rw-r--r--arm9/asm/unk_02050E48.s2
-rw-r--r--arm9/asm/unk_02053750.s12
-rw-r--r--arm9/asm/unk_02057380.s8
-rw-r--r--arm9/asm/unk_0205AD98.s2
-rw-r--r--arm9/asm/unk_0205C598.s2
-rw-r--r--arm9/asm/unk_020625EC.s2
-rw-r--r--arm9/asm/unk_020643C0.s8
-rw-r--r--arm9/asm/unk_020653EC.s8
-rw-r--r--arm9/asm/unk_0206F3FC.s6
-rw-r--r--arm9/asm/unk_02073DA8.s2
-rw-r--r--arm9/asm/unk_020772F0.s8
-rw-r--r--arm9/asm/unk_02079C70.s2
-rw-r--r--arm9/asm/unk_0208A338.s2
-rw-r--r--arm9/global.inc20
-rw-r--r--arm9/modules/04/asm/thumb_04.s6
-rw-r--r--arm9/modules/05/asm/mod05_021DB44C.s6
-rw-r--r--arm9/modules/05/asm/mod05_021DBA00.s2
-rw-r--r--arm9/modules/05/asm/mod05_021DBABC.s2
-rw-r--r--arm9/modules/05/asm/mod05_021DC0B8.s8
-rw-r--r--arm9/modules/05/asm/mod05_021E1374.s2
-rw-r--r--arm9/modules/05/asm/mod05_021E1AD8.s8
-rw-r--r--arm9/modules/05/asm/mod05_021E5FD8.s4
-rw-r--r--arm9/modules/05/asm/module_05.s52
-rw-r--r--arm9/modules/05/src/mod05_021E72FC.c2
-rw-r--r--arm9/modules/06/asm/module_06.s28
-rw-r--r--arm9/modules/15/asm/module_15.s2
-rw-r--r--arm9/modules/18/asm/module_18.s62
-rw-r--r--arm9/modules/20/asm/module_20.s18
-rw-r--r--arm9/modules/55/asm/module_55.s2
-rw-r--r--arm9/modules/56/asm/module_56.s14
-rw-r--r--arm9/modules/65/asm/module_65.s2
-rw-r--r--arm9/modules/67/asm/module_67.s2
-rw-r--r--arm9/modules/68/asm/module_68.s2
-rw-r--r--arm9/modules/71/asm/module_71.s2
-rw-r--r--arm9/modules/75/asm/module_75.s36
-rw-r--r--arm9/modules/76/asm/module_76.s6
-rw-r--r--arm9/modules/80/asm/module_80.s2
-rw-r--r--arm9/modules/83/asm/module_83.s2
-rw-r--r--arm9/src/game_init.c2
-rw-r--r--arm9/src/heap.c2
-rw-r--r--arm9/src/itemtool.c2
-rw-r--r--arm9/src/list_menu.c98
-rw-r--r--include/heap.h2
-rw-r--r--include/list_menu.h4
51 files changed, 276 insertions, 348 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf
index 18ed6d18..24908839 100644
--- a/arm9/arm9.lsf
+++ b/arm9/arm9.lsf
@@ -7,7 +7,6 @@ Static arm9
Address 0x02000000
Object main.o
Object list_menu.o
- Object unk_020010A8.o
Object unk_02001B80.o
Object string_util.o
Object unk_020023C0.o
diff --git a/arm9/asm/unk_020010A8.s b/arm9/asm/unk_020010A8.s
deleted file mode 100644
index 37faa5e7..00000000
--- a/arm9/asm/unk_020010A8.s
+++ /dev/null
@@ -1,127 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .extern gMain
- .extern ListMenuPrint
- .extern ListMenuPrintEntries
- .extern ListMenuDrawCursor
- .extern ListMenuErasePrintedCursor
- .extern ListMenuUpdateSelectedRowIndexAndScrollOffset
- .extern ListMenuScroll
-
- .text
-
- thumb_func_start ListMenuChangeSelection
-ListMenuChangeSelection: ; 0x02001AA4
- push {r3-r7, lr}
- sub sp, #0x10
- str r1, [sp, #0x0]
- str r2, [sp, #0x4]
- add r4, r0, #0x0
- str r3, [sp, #0x8]
- ldrh r0, [r4, #0x2e]
- mov r6, #0x0
- add r5, r6, #0x0
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x4]
- add r7, r6, #0x0
- cmp r0, #0x0
- bls _02001AF6
-_02001AC0:
- ldr r1, [sp, #0x8]
- add r0, r4, #0x0
- bl ListMenuUpdateSelectedRowIndexAndScrollOffset
- orr r5, r0
- cmp r0, #0x2
- bne _02001AEA
- add r0, r6, #0x1
- lsl r0, r0, #0x18
- lsr r6, r0, #0x18
- ldrh r1, [r4, #0x2c]
- ldrh r0, [r4, #0x2e]
- ldr r2, [r4, #0x0]
- add r0, r1, r0
- lsl r0, r0, #0x3
- add r0, r2, r0
- ldr r1, [r0, #0x4]
- mov r0, #0x2
- mvn r0, r0
- cmp r1, r0
- beq _02001AC0
-_02001AEA:
- add r0, r7, #0x1
- lsl r0, r0, #0x18
- lsr r7, r0, #0x18
- ldr r0, [sp, #0x4]
- cmp r7, r0
- blo _02001AC0
-_02001AF6:
- ldr r0, [sp, #0x0]
- cmp r0, #0x0
- beq _02001B5E
- cmp r5, #0x3
- bhi _02001B14
- add r0, r5, r5
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02001B0C: ; jump table (using 16-bit offset)
- .short _02001B14 - _02001B0C - 2; case 0
- .short _02001B1A - _02001B0C - 2; case 1
- .short _02001B38 - _02001B0C - 2; case 2
- .short _02001B38 - _02001B0C - 2; case 3
-_02001B14:
- add sp, #0x10
- mov r0, #0x1
- pop {r3-r7, pc}
-_02001B1A:
- ldr r1, [sp, #0xc]
- add r0, r4, #0x0
- bl ListMenuErasePrintedCursor
- add r0, r4, #0x0
- bl ListMenuDrawCursor
- add r0, r4, #0x0
- mov r1, #0x0
- bl ListMenuCallSelectionChangedCallback
- ldr r0, [r4, #0xc]
- bl CopyWindowToVram
- b _02001B5E
-_02001B38:
- ldr r1, [sp, #0xc]
- add r0, r4, #0x0
- bl ListMenuErasePrintedCursor
- ldr r2, [sp, #0x8]
- add r0, r4, #0x0
- add r1, r6, #0x0
- bl ListMenuScroll
- add r0, r4, #0x0
- bl ListMenuDrawCursor
- add r0, r4, #0x0
- mov r1, #0x0
- bl ListMenuCallSelectionChangedCallback
- ldr r0, [r4, #0xc]
- bl CopyWindowToVram
-_02001B5E:
- mov r0, #0x0
- add sp, #0x10
- pop {r3-r7, pc}
-
- thumb_func_start ListMenuCallSelectionChangedCallback
-ListMenuCallSelectionChangedCallback: ; 0x02001B64
- push {r3-r5, lr}
- ldr r3, [r0, #0x4]
- add r2, r1, #0x0
- cmp r3, #0x0
- beq _02001B7E
- ldrh r5, [r0, #0x2c]
- ldrh r4, [r0, #0x2e]
- ldr r1, [r0, #0x0]
- add r4, r5, r4
- lsl r4, r4, #0x3
- add r1, r1, r4
- ldr r1, [r1, #0x4]
- blx r3
-_02001B7E:
- pop {r3-r5, pc}
diff --git a/arm9/asm/unk_02001B80.s b/arm9/asm/unk_02001B80.s
index c2e1a245..6e08d1db 100644
--- a/arm9/asm/unk_02001B80.s
+++ b/arm9/asm/unk_02001B80.s
@@ -41,7 +41,7 @@ FUN_02001B8C: ; 0x02001B8C
ldr r0, [r3, #0x0]
str r0, [r2, #0x0]
ldr r0, [sp, #0x4]
- bl FUN_02013690
+ bl ListMenuCursorNew
str r0, [r4, #0xc]
ldr r0, [sp, #0x24]
str r0, [r4, #0x10]
@@ -133,7 +133,7 @@ _02001C68:
bl DestroyListMenuCursorObj
ldrb r0, [r4, #0x1c]
add r1, r4, #0x0
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
pop {r4, pc}
thumb_func_start FUN_02001C78
@@ -894,7 +894,7 @@ FUN_020021EC: ; 0x020021EC
bl FUN_02019178
ldr r1, [r5, #0x4]
add r0, r4, #0x0
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
ldr r0, [r5, #0x0]
bl ListMenu_dtor
add r0, r5, #0x0
diff --git a/arm9/asm/unk_0200CABC.s b/arm9/asm/unk_0200CABC.s
index 57462727..69afdbe7 100644
--- a/arm9/asm/unk_0200CABC.s
+++ b/arm9/asm/unk_0200CABC.s
@@ -1098,7 +1098,7 @@ FUN_0200D300: ; 0x0200D300
bl FUN_02017FB4
ldr r1, [sp, #0x14]
add r0, r4, #0x0
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
add r0, sp, #0x20
ldrb r3, [r0, #0x10]
cmp r3, #0x1
diff --git a/arm9/asm/unk_02012CC8.s b/arm9/asm/unk_02012CC8.s
index c3ed22aa..781d1d6d 100644
--- a/arm9/asm/unk_02012CC8.s
+++ b/arm9/asm/unk_02012CC8.s
@@ -1488,8 +1488,8 @@ _02013688:
strh r0, [r4, #0x0]
pop {r4, pc}
- thumb_func_start FUN_02013690
-FUN_02013690: ; 0x02013690
+ thumb_func_start ListMenuCursorNew
+ListMenuCursorNew: ; 0x02013690
push {r3-r5, lr}
mov r1, #0x8
add r5, r0, #0x0
@@ -1530,8 +1530,8 @@ _020136D8:
_020136DE:
pop {r4, pc}
- thumb_func_start CreateListMenuCursorObj
-CreateListMenuCursorObj: ; 0x020136E0
+ thumb_func_start ListMenuCursorSetColor
+ListMenuCursorSetColor: ; 0x020136E0
push {r3-r5, lr}
add r5, r0, #0x0
add r4, r1, #0x0
diff --git a/arm9/asm/unk_02016B94.s b/arm9/asm/unk_02016B94.s
index 6f46943c..73330a71 100644
--- a/arm9/asm/unk_02016B94.s
+++ b/arm9/asm/unk_02016B94.s
@@ -2716,7 +2716,7 @@ FUN_02017F18: ; 0x02017F18
bl FUN_02017E84
ldr r0, [sp, #0x0]
add r1, r4, #0x0
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
pop {r3-r7, pc}
thumb_func_start FUN_02017F48
diff --git a/arm9/asm/unk_02035068.s b/arm9/asm/unk_02035068.s
index 38fb3842..1123d9f5 100644
--- a/arm9/asm/unk_02035068.s
+++ b/arm9/asm/unk_02035068.s
@@ -1731,7 +1731,7 @@ FUN_02035DC8: ; 0x02035DC8
cmp r1, #0x0
beq _02035DF0
mov r0, #0xb
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
_02035DF0:
mov r0, #0xc
strh r0, [r4, #0x2a]
@@ -3193,7 +3193,7 @@ FUN_02036A14: ; 0x02036A14
lsl r1, r1, #0x2
ldr r1, [r4, r1]
mov r0, #0xb
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
mov r1, #0x73
lsl r1, r1, #0x2
add r0, r5, #0x0
@@ -3223,7 +3223,7 @@ FUN_02036A78: ; 0x02036A78
lsl r1, r1, #0x2
ldr r1, [r4, r1]
mov r0, #0xb
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
mov r1, #0x73
lsl r1, r1, #0x2
add r0, r5, #0x0
@@ -3255,7 +3255,7 @@ FUN_02036AB8: ; 0x02036AB8
ldr r1, [r4, r0]
mov r0, #0xb
ldr r7, [r1, #0x0]
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
mov r0, #0x7e
lsl r0, r0, #0x2
ldr r5, [r4, r0]
@@ -3264,7 +3264,7 @@ FUN_02036AB8: ; 0x02036AB8
bne _02036B0E
mov r0, #0xb
add r1, r5, #0x0
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
mov r1, #0x7a
lsl r1, r1, #0x2
lsl r2, r7, #0x18
@@ -3320,7 +3320,7 @@ _02036B0E:
lsl r1, r1, #0x2
ldr r1, [r4, r1]
mov r0, #0xb
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
add r0, r6, #0x0
bl FUN_0204649C
mov r0, #0x72
diff --git a/arm9/asm/unk_02050E48.s b/arm9/asm/unk_02050E48.s
index 70ba73b0..d7eb4bc4 100644
--- a/arm9/asm/unk_02050E48.s
+++ b/arm9/asm/unk_02050E48.s
@@ -1333,7 +1333,7 @@ _0205188E:
add r0, #0x64
bl FUN_0201901C
mov r0, #0xb
- bl FUN_02013690
+ bl ListMenuCursorNew
str r0, [r4, #0x78]
bl FUN_02033534
add r1, r4, #0x0
diff --git a/arm9/asm/unk_02053750.s b/arm9/asm/unk_02053750.s
index 6ab54142..4724c308 100644
--- a/arm9/asm/unk_02053750.s
+++ b/arm9/asm/unk_02053750.s
@@ -1291,7 +1291,7 @@ FUN_020540C8: ; 0x020540C8
bl FUN_0201FFC8
ldr r1, [r4, #0x0]
mov r0, #0x4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
mov r0, #0x0
str r0, [r4, #0x0]
_020540E4:
@@ -1408,7 +1408,7 @@ FUN_020541A4: ; 0x020541A4
bl FUN_0201FFC8
ldr r1, [r4, #0x0]
mov r0, #0x4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
mov r0, #0x0
str r0, [r4, #0x0]
_020541C0:
@@ -1481,7 +1481,7 @@ FUN_02054228: ; 0x02054228
bl FUN_0201FFC8
ldr r1, [r4, #0x0]
mov r0, #0x4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
mov r0, #0x0
str r0, [r4, #0x0]
_02054244:
@@ -1581,7 +1581,7 @@ FUN_020542E8: ; 0x020542E8
bl FUN_0201FFC8
ldr r1, [r4, #0x0]
mov r0, #0x4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
mov r0, #0x0
str r0, [r4, #0x0]
_02054304:
@@ -1749,7 +1749,7 @@ FUN_0205442C: ; 0x0205442C
bl FUN_0201FFC8
ldr r1, [r4, #0x0]
mov r0, #0x4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
mov r0, #0x0
str r0, [r4, #0x0]
_02054448:
@@ -1900,7 +1900,7 @@ FUN_0205454C: ; 0x0205454C
bl FUN_0201FFC8
ldr r1, [r4, #0x0]
mov r0, #0x4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
mov r0, #0x0
str r0, [r4, #0x0]
_02054568:
diff --git a/arm9/asm/unk_02057380.s b/arm9/asm/unk_02057380.s
index c6a25876..ef4050e3 100644
--- a/arm9/asm/unk_02057380.s
+++ b/arm9/asm/unk_02057380.s
@@ -33,10 +33,10 @@ FUN_020573AC: ; 0x020573AC
bl FUN_020583CC
add r1, r0, #0x0
mov r0, #0xb
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
mov r0, #0xb
add r1, r4, #0x0
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
pop {r4, pc}
.balign 4
@@ -1035,10 +1035,10 @@ _02057C42:
blt _02057C1A
ldr r1, [r5, #0x10]
mov r0, #0xb
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
mov r0, #0xb
add r1, r5, #0x0
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
pop {r3-r7, pc}
thumb_func_start FUN_02057C64
diff --git a/arm9/asm/unk_0205AD98.s b/arm9/asm/unk_0205AD98.s
index bc0fa0dd..54448e61 100644
--- a/arm9/asm/unk_0205AD98.s
+++ b/arm9/asm/unk_0205AD98.s
@@ -212,7 +212,7 @@ _0205AF14:
bl FUN_0205AE50
mov r0, #0x4
add r1, r4, #0x0
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
add r0, r5, #0x0
bl FUN_0200CAB4
pop {r3-r5, pc}
diff --git a/arm9/asm/unk_0205C598.s b/arm9/asm/unk_0205C598.s
index ac7a6808..d80c26b4 100644
--- a/arm9/asm/unk_0205C598.s
+++ b/arm9/asm/unk_0205C598.s
@@ -723,7 +723,7 @@ FUN_0205CAE0: ; 0x0205CAE0
bl FUN_0201B6C8
add r1, r0, #0x0
mov r0, #0x4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
add r0, r4, #0x0
bl FUN_0200CAB4
pop {r4, pc}
diff --git a/arm9/asm/unk_020625EC.s b/arm9/asm/unk_020625EC.s
index 5147f099..48f512e9 100644
--- a/arm9/asm/unk_020625EC.s
+++ b/arm9/asm/unk_020625EC.s
@@ -1552,7 +1552,7 @@ FUN_020631C8: ; 0x020631C8
add r0, r5, #0x0
add r1, #0x2
add r2, sp, #0x0
- bl FUN_02001448
+ bl ListMenuGetScrollAndRow
add r0, r5, #0x0
mov r1, #0x2
bl ListMenuGetTemplateField
diff --git a/arm9/asm/unk_020643C0.s b/arm9/asm/unk_020643C0.s
index bc843c82..4a7b92d3 100644
--- a/arm9/asm/unk_020643C0.s
+++ b/arm9/asm/unk_020643C0.s
@@ -292,12 +292,12 @@ _020645F2:
thumb_func_start FUN_02064600
FUN_02064600: ; 0x02064600
- ldr r3, _02064608 ; =FUN_02016A8C
+ ldr r3, _02064608 ; =FreeToHeapExplicit
add r1, r0, #0x0
ldr r0, [r1, #0x8]
bx r3
.balign 4
-_02064608: .word FUN_02016A8C
+_02064608: .word FreeToHeapExplicit
thumb_func_start FUN_0206460C
FUN_0206460C: ; 0x0206460C
@@ -320,13 +320,13 @@ _02064622:
thumb_func_start FUN_02064630
FUN_02064630: ; 0x02064630
- ldr r3, _0206463C ; =FUN_02016A8C
+ ldr r3, _0206463C ; =FreeToHeapExplicit
add r1, r0, #0x0
ldr r0, [r1, #0x8]
ldr r1, [r1, #0xc]
bx r3
nop
-_0206463C: .word FUN_02016A8C
+_0206463C: .word FreeToHeapExplicit
thumb_func_start FUN_02064640
FUN_02064640: ; 0x02064640
diff --git a/arm9/asm/unk_020653EC.s b/arm9/asm/unk_020653EC.s
index 003e1330..69cc0dbd 100644
--- a/arm9/asm/unk_020653EC.s
+++ b/arm9/asm/unk_020653EC.s
@@ -1177,7 +1177,7 @@ FUN_02065CFC: ; 0x02065CFC
mov r1, #0x1
mov r2, #0xf
mov r3, #0x2
- bl FUN_020013E8
+ bl ListMenuOverrideSetColors
pop {r3-r5, pc}
_02065D1C:
mov r1, #0xc
@@ -1191,14 +1191,14 @@ _02065D1C:
mov r1, #0x3
mov r2, #0xf
mov r3, #0x4
- bl FUN_020013E8
+ bl ListMenuOverrideSetColors
pop {r3-r5, pc}
_02065D38:
add r0, r5, #0x0
mov r1, #0x7
mov r2, #0xf
mov r3, #0x8
- bl FUN_020013E8
+ bl ListMenuOverrideSetColors
pop {r3-r5, pc}
nop
_02065D48: .word 0x0000FFFF
@@ -1216,7 +1216,7 @@ FUN_02065D4C: ; 0x02065D4C
add r0, r4, #0x0
add r1, #0x2
add r2, sp, #0x0
- bl FUN_02001448
+ bl ListMenuGetScrollAndRow
add r0, r4, #0x0
mov r1, #0x2
bl ListMenuGetTemplateField
diff --git a/arm9/asm/unk_0206F3FC.s b/arm9/asm/unk_0206F3FC.s
index b1a1edbd..772480ed 100644
--- a/arm9/asm/unk_0206F3FC.s
+++ b/arm9/asm/unk_0206F3FC.s
@@ -1237,7 +1237,7 @@ FUN_0206FCD4: ; 0x0206FCD4
bl FUN_020178A0
mov r0, #0xc
add r1, r4, #0x0
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
pop {r4, pc}
.balign 4
@@ -1293,7 +1293,7 @@ FUN_0206FD24: ; 0x0206FD24
bl memcpy
mov r0, #0xc
add r1, r4, #0x0
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
mov r1, #0x1a
mov r0, #0x0
lsl r1, r1, #0x4
@@ -3729,7 +3729,7 @@ _02071146:
bl FUN_02072844
mov r0, #0xc
add r1, r4, #0x0
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
add r0, r5, #0x0
bl FUN_0207295C
mov r1, #0x0
diff --git a/arm9/asm/unk_02073DA8.s b/arm9/asm/unk_02073DA8.s
index a854727b..6dd1bf64 100644
--- a/arm9/asm/unk_02073DA8.s
+++ b/arm9/asm/unk_02073DA8.s
@@ -1672,7 +1672,7 @@ _02074B6A:
add r1, r7, #0x0
str r0, [r3, #0x0]
mov r0, #0xc
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
mov r1, #0x3
lsl r1, r1, #0x8
ldrb r3, [r4, r1]
diff --git a/arm9/asm/unk_020772F0.s b/arm9/asm/unk_020772F0.s
index 7a074186..80d633bb 100644
--- a/arm9/asm/unk_020772F0.s
+++ b/arm9/asm/unk_020772F0.s
@@ -1509,18 +1509,18 @@ _02077982:
ldr r1, _02077A70 ; =0x000004AC
mov r0, #0x12
ldr r1, [r4, r1]
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
ldr r0, [r4, #0x0]
cmp r0, #0x1
bne _020779C2
ldr r1, _02077A74 ; =0x000004B4
mov r0, #0x12
ldr r1, [r4, r1]
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
ldr r1, _02077A78 ; =0x000004BC
mov r0, #0x12
ldr r1, [r4, r1]
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
_020779C2:
mov r0, #0x16
lsl r0, r0, #0x4
@@ -2250,7 +2250,7 @@ _02077FB0:
bl FUN_020178A0
mov r0, #0x12
add r1, r6, #0x0
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
pop {r4-r6, pc}
thumb_func_start FUN_02077FE8
diff --git a/arm9/asm/unk_02079C70.s b/arm9/asm/unk_02079C70.s
index 722c8144..617a122a 100644
--- a/arm9/asm/unk_02079C70.s
+++ b/arm9/asm/unk_02079C70.s
@@ -533,7 +533,7 @@ FUN_0207A08C: ; 0x0207A08C
bl FUN_020178A0
mov r0, #0x13
add r1, r4, #0x0
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
pop {r4, pc}
.balign 4
diff --git a/arm9/asm/unk_0208A338.s b/arm9/asm/unk_0208A338.s
index 3b40567c..2005be3e 100644
--- a/arm9/asm/unk_0208A338.s
+++ b/arm9/asm/unk_0208A338.s
@@ -36,7 +36,7 @@ FUN_0208A338: ; 0x0208A338
bl NewMsgDataFromNarc
str r0, [r4, #0x10]
mov r0, #0x20
- bl FUN_02013690
+ bl ListMenuCursorNew
str r0, [r4, #0x14]
ldr r2, [r4, #0x0]
mov r0, #0x2
diff --git a/arm9/global.inc b/arm9/global.inc
index 684b5163..c93890f2 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -192,13 +192,13 @@
.extern ListMenu_ProcessInput
.extern DestroyListMenu
.extern RedrawListMenu
-.extern FUN_02001354
-.extern FUN_020013C8
-.extern FUN_020013E8
-.extern FUN_0200143C
-.extern FUN_02001448
-.extern FUN_0200145C
-.extern FUN_02001464
+.extern ListMenuTestInputInternal
+.extern ListMenuTestInput
+.extern ListMenuOverrideSetColors
+.extern ListMenuGetCurrentItemArrayId
+.extern ListMenuGetScrollAndRow
+.extern ListMenuGetUnk33
+.extern ListMenuGetValueByArrayId
.extern ListMenuGetTemplateField
.extern ListMenuSetTemplateField
.extern ListMenuGetItemStr
@@ -882,9 +882,9 @@
.extern FUN_02013628
.extern FUN_0201365C
.extern FUN_02013674
-.extern FUN_02013690
+.extern ListMenuCursorNew
.extern DestroyListMenuCursorObj
-.extern CreateListMenuCursorObj
+.extern ListMenuCursorSetColor
.extern ListMenuUpdateCursorObj
.extern MailMsg_init
.extern MailMsg_init_withBank
@@ -1029,7 +1029,7 @@
.extern AllocFromHeap
.extern AllocFromHeapAtEnd
.extern FreeToHeap
-.extern FUN_02016A8C
+.extern FreeToHeapExplicit
.extern FUN_02016AF8
.extern FUN_02016B20
.extern FUN_02016B44
diff --git a/arm9/modules/04/asm/thumb_04.s b/arm9/modules/04/asm/thumb_04.s
index 6b6a6f27..12374ec5 100644
--- a/arm9/modules/04/asm/thumb_04.s
+++ b/arm9/modules/04/asm/thumb_04.s
@@ -202,13 +202,13 @@ MOD04_021D7660: ; 0x021D7660
ldr r0, [r2, r1]
sub r1, #0x50
ldr r1, [r2, r1]
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
ldr r1, _021D76A0 ; =UNK04_0220FBC0
ldr r0, _021D76A8 ; =0x00001F54
ldr r2, [r1]
ldr r1, [r1, #4]
ldr r0, [r2, r0]
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
ldr r0, _021D76A0 ; =UNK04_0220FBC0
mov r1, #0
str r1, [r0, #4]
@@ -3065,7 +3065,7 @@ MOD04_021D8C6C: ; 0x021D8C6C
lsl r0, r0, #8
ldr r0, [r2, r0]
ldr r1, [r1]
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
mov r1, #0
ldr r0, _021D8CBC ; =UNK04_0220FBC8
cmp r4, #0
diff --git a/arm9/modules/05/asm/mod05_021DB44C.s b/arm9/modules/05/asm/mod05_021DB44C.s
index b606312e..039db6a9 100644
--- a/arm9/modules/05/asm/mod05_021DB44C.s
+++ b/arm9/modules/05/asm/mod05_021DB44C.s
@@ -67,7 +67,7 @@ _021DB4BA:
bl MOD05_021DB7A0
ldr r1, [r4]
mov r0, #4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
mov r0, #0
str r0, [r4]
pop {r4, pc}
@@ -419,7 +419,7 @@ _021DB73E:
_021DB78A:
ldr r1, [sp, #0x14]
mov r0, #4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
ldr r0, [sp, #8]
add sp, #0x1fc
add sp, #0x20
@@ -433,7 +433,7 @@ MOD05_021DB7A0: ; 0x021DB7A0
add r4, r0, #0
ldr r1, [r4]
mov r0, #4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
mov r0, #0
str r0, [r4]
pop {r4, pc}
diff --git a/arm9/modules/05/asm/mod05_021DBA00.s b/arm9/modules/05/asm/mod05_021DBA00.s
index 22e64df5..d0d97f37 100644
--- a/arm9/modules/05/asm/mod05_021DBA00.s
+++ b/arm9/modules/05/asm/mod05_021DBA00.s
@@ -24,7 +24,7 @@ MOD05_021DBA1C: ; 0x021DBA1C
add r4, r0, #0
ldr r1, [r4]
mov r0, #4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
mov r0, #0
str r0, [r4]
pop {r4, pc}
diff --git a/arm9/modules/05/asm/mod05_021DBABC.s b/arm9/modules/05/asm/mod05_021DBABC.s
index 28a15fb2..0481b9eb 100644
--- a/arm9/modules/05/asm/mod05_021DBABC.s
+++ b/arm9/modules/05/asm/mod05_021DBABC.s
@@ -24,7 +24,7 @@ MOD05_021DBAD8: ; 0x021DBAD8
add r4, r0, #0
ldr r1, [r4]
mov r0, #4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
mov r0, #0
str r0, [r4]
pop {r4, pc}
diff --git a/arm9/modules/05/asm/mod05_021DC0B8.s b/arm9/modules/05/asm/mod05_021DC0B8.s
index ab06fed1..1714cbec 100644
--- a/arm9/modules/05/asm/mod05_021DC0B8.s
+++ b/arm9/modules/05/asm/mod05_021DC0B8.s
@@ -692,7 +692,7 @@ _021DC5A2:
bl NARC_dtor
ldr r1, [r4]
mov r0, #4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
mov r0, #0
str r0, [r4]
_021DC5FE:
@@ -1362,7 +1362,7 @@ _021DCAD2:
bl MOD05_021DC880
ldr r1, [r4, #0x10]
mov r0, #4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
mov r0, #0
str r0, [r4, #0x10]
ldr r0, [r4, #0x1c]
@@ -1390,7 +1390,7 @@ _021DCB14:
cmp r1, #0
beq _021DCB2C
mov r0, #4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
ldr r1, [r4, #0xc]
ldr r0, _021DCB64 ; =0x00000F58
mov r2, #0
@@ -1414,7 +1414,7 @@ _021DCB3E:
_021DCB4C:
ldr r1, [r4, #0xc]
mov r0, #4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
mov r0, #0
str r0, [r4, #0xc]
_021DCB58:
diff --git a/arm9/modules/05/asm/mod05_021E1374.s b/arm9/modules/05/asm/mod05_021E1374.s
index df43ddb9..a0192db6 100644
--- a/arm9/modules/05/asm/mod05_021E1374.s
+++ b/arm9/modules/05/asm/mod05_021E1374.s
@@ -533,7 +533,7 @@ _021E1770:
bl FUN_0200CAB4
mov r0, #4
add r1, r4, #0
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
_021E178E:
pop {r4, pc}
.balign 4, 0
diff --git a/arm9/modules/05/asm/mod05_021E1AD8.s b/arm9/modules/05/asm/mod05_021E1AD8.s
index 36e4432a..5a7f759b 100644
--- a/arm9/modules/05/asm/mod05_021E1AD8.s
+++ b/arm9/modules/05/asm/mod05_021E1AD8.s
@@ -1012,13 +1012,13 @@ MOD05_021E2278: ; 0x021E2278
mov r1, #3
mov r2, #0xf
mov r3, #4
- bl FUN_020013E8
+ bl ListMenuOverrideSetColors
pop {r3, pc}
_021E228E:
mov r1, #1
mov r2, #0xf
mov r3, #2
- bl FUN_020013E8
+ bl ListMenuOverrideSetColors
pop {r3, pc}
.balign 4, 0
@@ -1054,7 +1054,7 @@ _021E22B8:
ldrh r6, [r5, r1]
ldr r0, [r5, r0]
add r1, r5, r1
- bl FUN_0200143C
+ bl ListMenuGetCurrentItemArrayId
mov r0, #0xb5
lsl r0, r0, #2
ldrh r0, [r5, r0]
@@ -1226,7 +1226,7 @@ MOD05_021E2434: ; 0x021E2434
ldr r0, [r4, r1]
add r1, r1, #6
add r1, r4, r1
- bl FUN_0200143C
+ bl ListMenuGetCurrentItemArrayId
ldr r0, _021E2460 ; =0x000001BA
ldrh r1, [r4, r0]
add r0, #0xe2
diff --git a/arm9/modules/05/asm/mod05_021E5FD8.s b/arm9/modules/05/asm/mod05_021E5FD8.s
index 8ce2cd0f..ab5f7010 100644
--- a/arm9/modules/05/asm/mod05_021E5FD8.s
+++ b/arm9/modules/05/asm/mod05_021E5FD8.s
@@ -2409,12 +2409,12 @@ _021E72CC:
thumb_func_start MOD05_021E72DC
MOD05_021E72DC: ; 0x021E72DC
- ldr r3, _021E72E4 ; =FUN_02016A8C
+ ldr r3, _021E72E4 ; =FreeToHeapExplicit
add r1, r0, #0
mov r0, #4
bx r3
.balign 4, 0
-_021E72E4: .word FUN_02016A8C
+_021E72E4: .word FreeToHeapExplicit
thumb_func_start MOD05_021E72E8
MOD05_021E72E8: ; 0x021E72E8
diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s
index 0528681a..e1f83467 100644
--- a/arm9/modules/05/asm/module_05.s
+++ b/arm9/modules/05/asm/module_05.s
@@ -339,7 +339,7 @@ MOD05_021E88C0: ; 0x021E88C0
bl GX_EngineAToggleLayers
ldr r1, [r4]
mov r0, #4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
pop {r4, pc}
thumb_func_start MOD05_021E88E8
@@ -513,7 +513,7 @@ _021E8A42:
bl MOD05_021E37A4
ldr r1, [r4, #0xc]
mov r0, #4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
add r0, r6, #0
bl FUN_0200621C
_021E8A56:
@@ -695,7 +695,7 @@ _021E8BC2:
bl MOD05_021E37A4
ldr r1, [r4, #0xc]
mov r0, #4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
add r0, r6, #0
bl FUN_0200621C
_021E8BD6:
@@ -851,7 +851,7 @@ _021E8CE6:
_021E8D00:
ldr r1, [r4, #0xc]
mov r0, #4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
add r0, r6, #0
bl FUN_0200621C
mov r0, #1
@@ -1008,7 +1008,7 @@ _021E8E1C:
_021E8E36:
ldr r1, [r4, #0xc]
mov r0, #4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
add r0, r6, #0
bl FUN_0200621C
mov r0, #1
@@ -1256,7 +1256,7 @@ _021E8FFC:
_021E9010:
ldr r1, [r4, #0xc]
mov r0, #4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
add r0, r6, #0
bl FUN_0200621C
mov r0, #1
@@ -1391,7 +1391,7 @@ _021E910C:
_021E9120:
ldr r1, [r4, #0xc]
mov r0, #4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
add r0, r6, #0
bl FUN_0200621C
mov r0, #1
@@ -1794,7 +1794,7 @@ _021E944E:
bl MOD05_021E37A4
ldr r1, [r7, #0xc]
mov r0, #4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
ldr r0, [sp, #0x10]
bl FUN_0200621C
_021E948A:
@@ -2151,7 +2151,7 @@ _021E974A:
bl MOD05_021E3A48
ldr r1, [r6, #0xc]
mov r0, #4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
ldr r0, [sp, #0x10]
bl FUN_0200621C
_021E9786:
@@ -2594,7 +2594,7 @@ _021E9AF0:
bl MOD05_021E3E44
ldr r1, [r7, #0xc]
mov r0, #4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
ldr r0, [sp, #0x14]
bl FUN_0200621C
add sp, #0x58
@@ -3183,7 +3183,7 @@ _021E9FA4:
ldr r1, [sp, #0x1c]
mov r0, #4
ldr r1, [r1, #0xc]
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
ldr r0, [sp, #0x18]
bl FUN_0200621C
add sp, #0x44
@@ -3594,7 +3594,7 @@ _021EA354:
bl MOD05_021E3E44
ldr r1, [r5, #0xc]
mov r0, #4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
add r0, r6, #0
bl FUN_0200621C
_021EA382:
@@ -4116,7 +4116,7 @@ _021EA76C:
ldr r1, [sp, #0x18]
mov r0, #4
ldr r1, [r1, #0xc]
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
ldr r0, [sp, #0x14]
bl FUN_0200621C
_021EA7DE:
@@ -4472,7 +4472,7 @@ _021EAA98:
bl MOD05_021E3E44
ldr r1, [r4, #0xc]
mov r0, #4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
add r0, r6, #0
bl FUN_0200621C
_021EAAC6:
@@ -4781,7 +4781,7 @@ _021EAD1A:
bl MOD05_021E3E44
ldr r1, [r6, #0xc]
mov r0, #4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
ldr r0, [sp, #0x10]
bl FUN_0200621C
_021EAD4C:
@@ -5156,7 +5156,7 @@ _021EB01A:
ldr r1, [sp, #0x14]
mov r0, #4
ldr r1, [r1, #0xc]
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
ldr r0, [sp, #0x10]
bl FUN_0200621C
_021EB04A:
@@ -5586,7 +5586,7 @@ _021EB394:
strb r1, [r0]
ldr r1, [r5, #0xc]
mov r0, #4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
add r0, r6, #0
bl FUN_0200621C
_021EB3F2:
@@ -5797,7 +5797,7 @@ _021EB56C:
_021EB58A:
ldr r1, [r4, #0xc]
mov r0, #4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
add r0, r6, #0
bl FUN_0200621C
mov r0, #1
@@ -6008,7 +6008,7 @@ _021EB720:
_021EB73E:
ldr r1, [r4, #0xc]
mov r0, #4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
add r0, r6, #0
bl FUN_0200621C
mov r0, #1
@@ -6506,7 +6506,7 @@ _021EBB60:
str r0, [r2]
ldr r1, [r5, #0xc]
mov r0, #4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
add sp, #0x30
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
@@ -7514,7 +7514,7 @@ _021EC37A:
bl MOD05_021E3E44
ldr r1, [r5, #0xc]
mov r0, #4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
add sp, #0x4c
mov r0, #1
pop {r4, r5, r6, r7, pc}
@@ -19600,11 +19600,11 @@ MOD05_021F21AC: ; 0x021F21AC
add r1, #0xe4
ldr r1, [r1]
mov r0, #4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
add r4, #0xf4
ldr r1, [r4]
mov r0, #4
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
pop {r4, pc}
thumb_func_start MOD05_021F21CC
@@ -22552,12 +22552,12 @@ _021F37C2:
thumb_func_start MOD05_021F37D0
MOD05_021F37D0: ; 0x021F37D0
- ldr r3, _021F37D8 ; =FUN_02016A8C
+ ldr r3, _021F37D8 ; =FreeToHeapExplicit
add r1, r0, #0
ldr r0, [r1]
bx r3
.balign 4, 0
-_021F37D8: .word FUN_02016A8C
+_021F37D8: .word FreeToHeapExplicit
thumb_func_start MOD05_021F37DC
MOD05_021F37DC: ; 0x021F37DC
@@ -22588,7 +22588,7 @@ _021F37FC:
bne _021F37F0
ldr r0, [r5]
ldr r1, [r5, #0xc]
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
_021F380E:
pop {r3, r4, r5, pc}
diff --git a/arm9/modules/05/src/mod05_021E72FC.c b/arm9/modules/05/src/mod05_021E72FC.c
index c24a7bd3..7284224c 100644
--- a/arm9/modules/05/src/mod05_021E72FC.c
+++ b/arm9/modules/05/src/mod05_021E72FC.c
@@ -156,5 +156,5 @@ THUMB_FUNC UnkStruct021E7358 *MOD05_021E74D4(u32 param0)
THUMB_FUNC void MOD05_021E74F8(UnkStruct021E7358 *param0)
{
- FUN_02016A8C(4, param0);
+ FreeToHeapExplicit(4, param0);
}
diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s
index 2c8e92bf..92922fba 100644
--- a/arm9/modules/06/asm/module_06.s
+++ b/arm9/modules/06/asm/module_06.s
@@ -9328,7 +9328,7 @@ _0223DDBA:
ldr r0, [sp, #0x10]
add r1, #2
add r2, sp, #0x14
- bl FUN_02001448
+ bl ListMenuGetScrollAndRow
add r0, sp, #0x14
ldrh r0, [r0, #2]
cmp r0, #0
@@ -9558,14 +9558,14 @@ MOD06_0223DFB4: ; 0x0223DFB4
ldr r0, [r5, #0x78]
mov r1, #0
add r2, #2
- bl FUN_02001448
+ bl ListMenuGetScrollAndRow
ldr r0, [r5, #0x78]
bl ListMenu_ProcessInput
add r4, r0, #0
ldr r0, [r5, #0x78]
mov r1, #0
add r2, sp, #0
- bl FUN_02001448
+ bl ListMenuGetScrollAndRow
add r0, sp, #0
ldrh r2, [r0]
ldrh r0, [r0, #2]
@@ -11655,7 +11655,7 @@ MOD06_0223F0F8: ; 0x0223F0F8
cmp r0, #0
beq _0223F11A
add r1, sp, #0xc
- bl FUN_02001448
+ bl ListMenuGetScrollAndRow
_0223F11A:
add r0, sp, #0xc
ldrh r1, [r0]
@@ -12105,7 +12105,7 @@ _0223F4D8:
add r1, r4, #0
ldr r0, [r4, #0x5c]
add r1, #0x8e
- bl FUN_0200143C
+ bl ListMenuGetCurrentItemArrayId
add r0, r4, #0
add r0, #0x8e
ldrh r5, [r0]
@@ -12451,7 +12451,7 @@ MOD06_0223F7C4: ; 0x0223F7C4
cmp r0, #0
beq _0223F7E0
add r1, sp, #0xc
- bl FUN_02001448
+ bl ListMenuGetScrollAndRow
_0223F7E0:
add r0, sp, #0xc
ldrh r1, [r0]
@@ -14717,14 +14717,14 @@ MOD06_02240A64: ; 0x02240A64
ldr r0, [r5]
mov r1, #0
add r2, #0x78
- bl FUN_02001448
+ bl ListMenuGetScrollAndRow
add r0, r5, #0
add r0, #0x80
ldrh r6, [r0]
add r1, r5, #0
ldr r0, [r5]
add r1, #0x80
- bl FUN_0200143C
+ bl ListMenuGetCurrentItemArrayId
add r0, r5, #0
add r0, #0x80
ldrh r0, [r0]
@@ -14879,14 +14879,14 @@ MOD06_02240BB8: ; 0x02240BB8
ldr r0, [r5, #4]
mov r1, #0
add r2, #0x7a
- bl FUN_02001448
+ bl ListMenuGetScrollAndRow
add r0, r5, #0
add r0, #0x82
ldrh r6, [r0]
add r1, r5, #0
ldr r0, [r5, #4]
add r1, #0x82
- bl FUN_0200143C
+ bl ListMenuGetCurrentItemArrayId
add r0, r5, #0
add r0, #0x82
ldrh r0, [r0]
@@ -19219,13 +19219,13 @@ MOD06_02242E9C: ; 0x02242E9C
mov r1, #3
mov r2, #0xf
mov r3, #4
- bl FUN_020013E8
+ bl ListMenuOverrideSetColors
pop {r3, pc}
_02242EB2:
mov r1, #1
mov r2, #0xf
mov r3, #2
- bl FUN_020013E8
+ bl ListMenuOverrideSetColors
pop {r3, pc}
.align 2, 0
@@ -42471,7 +42471,7 @@ MOD06_0224E1E4: ; 0x0224E1E4
bne _0224E22A
ldr r0, [r5, #8]
add r1, sp, #0
- bl FUN_0200143C
+ bl ListMenuGetCurrentItemArrayId
mov r2, #0x4b
add r0, sp, #0
lsl r2, r2, #2
@@ -42685,7 +42685,7 @@ MOD06_0224E39C: ; 0x0224E39C
ldr r0, [r4, #8]
add r1, sp, #0
mov r2, #0
- bl FUN_02001448
+ bl ListMenuGetScrollAndRow
add r0, sp, #0
ldrh r0, [r0]
cmp r0, #0
diff --git a/arm9/modules/15/asm/module_15.s b/arm9/modules/15/asm/module_15.s
index fbf19499..beb5863b 100644
--- a/arm9/modules/15/asm/module_15.s
+++ b/arm9/modules/15/asm/module_15.s
@@ -4345,7 +4345,7 @@ MOD15_021D95E8: ; 0x021D95E8
bl NewMsgDataFromNarc
str r0, [r4, #0x48]
mov r0, #0x23
- bl FUN_02013690
+ bl ListMenuCursorNew
str r0, [r4, #0x50]
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s
index 76c91cca..d8d29d24 100644
--- a/arm9/modules/18/asm/module_18.s
+++ b/arm9/modules/18/asm/module_18.s
@@ -22033,11 +22033,11 @@ MOD18_02244028: ; 0x02244028
ldr r1, [sp, #0x30]
strb r1, [r0, #0x1e]
ldr r0, [sp, #8]
- bl FUN_02013690
+ bl ListMenuCursorNew
ldr r1, [sp, #0xc]
str r0, [r1, #0x10]
ldr r1, _022440C0 ; =0x0008090F
- bl CreateListMenuCursorObj
+ bl ListMenuCursorSetColor
ldr r1, [sp, #8]
ldr r0, [sp, #0xc]
strb r1, [r0, #0x1d]
@@ -22165,7 +22165,7 @@ MOD18_02244140: ; 0x02244140
ldr r0, [sp, #4]
add r1, #2
add r2, sp, #0xc
- bl FUN_02001448
+ bl ListMenuGetScrollAndRow
ldrb r0, [r5, #0x1c]
cmp r0, #0
bne _0224416E
@@ -22361,7 +22361,7 @@ _022442CA:
ldr r0, [sp, #4]
add r1, #0x20
ldrh r6, [r5, #0x20]
- bl FUN_0200143C
+ bl ListMenuGetCurrentItemArrayId
ldrh r0, [r5, #0x20]
cmp r6, r0
beq _022442EA
@@ -31304,7 +31304,7 @@ MOD18_022488F0: ; 0x022488F0
ldr r0, [r5, #0x1c]
add r1, #0x36
ldrh r6, [r5, #0x36]
- bl FUN_0200143C
+ bl ListMenuGetCurrentItemArrayId
ldrh r0, [r5, #0x36]
cmp r6, r0
beq _02248916
@@ -32213,7 +32213,7 @@ MOD18_02248FEC: ; 0x02248FEC
ldr r0, [r5, #0x20]
add r1, #0x3a
ldrh r4, [r5, #0x3a]
- bl FUN_0200143C
+ bl ListMenuGetCurrentItemArrayId
ldrh r0, [r5, #0x3a]
cmp r4, r0
beq _02249008
@@ -33853,7 +33853,7 @@ MOD18_02249CC8: ; 0x02249CC8
ldr r0, [r0, #0xc]
add r1, #2
add r2, sp, #0
- bl FUN_02001448
+ bl ListMenuGetScrollAndRow
add r2, sp, #0
ldrh r1, [r2]
ldrh r2, [r2, #2]
@@ -33964,7 +33964,7 @@ MOD18_02249DB8: ; 0x02249DB8
ldrh r6, [r5, r1]
ldr r0, [r5, #0x50]
add r1, r5, r1
- bl FUN_0200143C
+ bl ListMenuGetCurrentItemArrayId
mov r0, #0x93
lsl r0, r0, #2
ldrh r0, [r5, r0]
@@ -34343,7 +34343,7 @@ MOD18_0224A0EC: ; 0x0224A0EC
ldr r0, [r0, #0xc]
add r1, #2
add r2, sp, #0
- bl FUN_02001448
+ bl ListMenuGetScrollAndRow
add r2, sp, #0
ldrh r1, [r2]
ldrh r2, [r2, #2]
@@ -34441,7 +34441,7 @@ MOD18_0224A1C0: ; 0x0224A1C0
ldrh r6, [r5, r1]
ldr r0, [r5, #0x50]
add r1, r5, r1
- bl FUN_0200143C
+ bl ListMenuGetCurrentItemArrayId
mov r0, #0x93
lsl r0, r0, #2
ldrh r0, [r5, r0]
@@ -34767,7 +34767,7 @@ MOD18_0224A47C: ; 0x0224A47C
ldr r0, [r0, #0xc]
add r1, #2
add r2, sp, #0
- bl FUN_02001448
+ bl ListMenuGetScrollAndRow
add r2, sp, #0
ldrh r1, [r2]
ldrh r2, [r2, #2]
@@ -34865,7 +34865,7 @@ MOD18_0224A550: ; 0x0224A550
ldrh r6, [r5, r1]
ldr r0, [r5, #0x50]
add r1, r5, r1
- bl FUN_0200143C
+ bl ListMenuGetCurrentItemArrayId
mov r0, #0x93
lsl r0, r0, #2
ldrh r0, [r5, r0]
@@ -35443,14 +35443,14 @@ MOD18_0224A9EC: ; 0x0224A9EC
mov r1, #1
mov r2, #0xf
mov r3, #2
- bl FUN_020013E8
+ bl ListMenuOverrideSetColors
pop {r3, r4, r5, pc}
_0224AA1A:
mov r1, #2
add r0, r5, #0
mov r2, #0xf
add r3, r1, #0
- bl FUN_020013E8
+ bl ListMenuOverrideSetColors
pop {r3, r4, r5, pc}
thumb_func_end MOD18_0224A9EC
@@ -35706,7 +35706,7 @@ MOD18_0224AC24: ; 0x0224AC24
ldr r0, [r0, #0xc]
add r1, #2
add r2, sp, #0
- bl FUN_02001448
+ bl ListMenuGetScrollAndRow
add r2, sp, #0
ldrh r1, [r2]
ldrh r2, [r2, #2]
@@ -35807,7 +35807,7 @@ MOD18_0224AD04: ; 0x0224AD04
ldrh r6, [r5, r1]
ldr r0, [r5, #0x50]
add r1, r5, r1
- bl FUN_0200143C
+ bl ListMenuGetCurrentItemArrayId
mov r0, #0x93
lsl r0, r0, #2
ldrh r0, [r5, r0]
@@ -36492,7 +36492,7 @@ MOD18_0224B250: ; 0x0224B250
ldr r0, [r4, #0x48]
add r1, #2
add r2, sp, #0
- bl FUN_02001448
+ bl ListMenuGetScrollAndRow
add r2, sp, #0
ldrh r1, [r2]
ldrh r2, [r2, #2]
@@ -36868,7 +36868,7 @@ MOD18_0224B560: ; 0x0224B560
ldr r0, [r5, #0x48]
add r1, #2
add r2, sp, #0
- bl FUN_02001448
+ bl ListMenuGetScrollAndRow
add r2, sp, #0
ldrh r1, [r2]
ldrh r2, [r2, #2]
@@ -36964,7 +36964,7 @@ MOD18_0224B614: ; 0x0224B614
ldr r0, [r0, #0xc]
add r1, #2
add r2, sp, #0
- bl FUN_02001448
+ bl ListMenuGetScrollAndRow
add r2, sp, #0
ldrh r1, [r2]
ldrh r2, [r2, #2]
@@ -37057,7 +37057,7 @@ MOD18_0224B6E0: ; 0x0224B6E0
ldr r0, [r0, #0xc]
add r1, #2
add r2, sp, #0
- bl FUN_02001448
+ bl ListMenuGetScrollAndRow
add r2, sp, #0
ldrh r1, [r2]
ldrh r2, [r2, #2]
@@ -38067,7 +38067,7 @@ MOD18_0224BF84: ; 0x0224BF84
ldr r0, [r5, #0x48]
ldrh r4, [r5, r1]
add r1, r5, r1
- bl FUN_0200143C
+ bl ListMenuGetCurrentItemArrayId
ldr r0, _0224BFA4 ; =0x0000024A
ldrh r0, [r5, r0]
cmp r4, r0
@@ -39686,7 +39686,7 @@ _0224CC8E:
ldr r0, [r4, #0x48]
add r1, #2
add r2, sp, #4
- bl FUN_02001448
+ bl ListMenuGetScrollAndRow
add r2, sp, #4
ldrh r1, [r2]
ldrh r2, [r2, #2]
@@ -39696,7 +39696,7 @@ _0224CC8E:
ldr r0, [r4, #0x48]
ldrh r6, [r4, r1]
add r1, r4, r1
- bl FUN_0200143C
+ bl ListMenuGetCurrentItemArrayId
ldr r0, _0224CF54 ; =0x0000024A
ldrh r0, [r4, r0]
cmp r6, r0
@@ -39777,7 +39777,7 @@ _0224CD48:
ldr r0, [r4, #0x48]
add r1, #2
add r2, sp, #4
- bl FUN_02001448
+ bl ListMenuGetScrollAndRow
mov r0, #0x92
lsl r0, r0, #2
ldrb r0, [r4, r0]
@@ -39792,7 +39792,7 @@ _0224CD48:
ldr r0, [r4, #0x48]
ldrh r6, [r4, r1]
add r1, r4, r1
- bl FUN_0200143C
+ bl ListMenuGetCurrentItemArrayId
ldr r0, _0224CF54 ; =0x0000024A
ldrh r0, [r4, r0]
cmp r6, r0
@@ -39916,7 +39916,7 @@ _0224CE68:
ldr r0, [r0, #0xc]
add r1, #2
add r2, sp, #4
- bl FUN_02001448
+ bl ListMenuGetScrollAndRow
add r2, sp, #4
ldrh r1, [r2]
ldrh r2, [r2, #2]
@@ -40138,7 +40138,7 @@ _0224D046:
ldr r0, [r0, #0xc]
add r1, #2
add r2, sp, #4
- bl FUN_02001448
+ bl ListMenuGetScrollAndRow
mov r0, #0x92
lsl r0, r0, #2
ldrb r0, [r4, r0]
@@ -42512,13 +42512,13 @@ MOD18_0224E2B4: ; 0x0224E2B4
add r1, r2, #0
mov r2, #0xf
mov r3, #2
- bl FUN_020013E8
+ bl ListMenuOverrideSetColors
pop {r3, pc}
_0224E2CC:
mov r1, #2
mov r2, #0xf
add r3, r1, #0
- bl FUN_020013E8
+ bl ListMenuOverrideSetColors
pop {r3, pc}
thumb_func_end MOD18_0224E2B4
@@ -42639,7 +42639,7 @@ _0224E384:
ldr r0, [r0, #0xc]
add r1, #2
add r2, sp, #0
- bl FUN_02001448
+ bl ListMenuGetScrollAndRow
ldr r0, [r5, #0x2c]
mov r1, #2
ldr r0, [r0, #0xc]
@@ -43078,7 +43078,7 @@ MOD18_0224E73C: ; 0x0224E73C
add r1, r5, #0
ldr r0, [r5, #0x28]
add r1, #0x40
- bl FUN_0200143C
+ bl ListMenuGetCurrentItemArrayId
add r5, #0x40
ldrh r0, [r5]
cmp r4, r0
diff --git a/arm9/modules/20/asm/module_20.s b/arm9/modules/20/asm/module_20.s
index 67f4c29a..ee93d317 100644
--- a/arm9/modules/20/asm/module_20.s
+++ b/arm9/modules/20/asm/module_20.s
@@ -3279,23 +3279,23 @@ _02253C0E:
cmp r1, #0
beq _02253C22
add r0, r5, #0
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
_02253C22:
ldr r1, [r4, #0xc]
cmp r1, #0
beq _02253C2E
add r0, r5, #0
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
_02253C2E:
ldr r1, [r4, #4]
cmp r1, #0
beq _02253C3A
add r0, r5, #0
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
_02253C3A:
add r0, r5, #0
add r1, r4, #0
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
_02253C42:
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
@@ -3848,7 +3848,7 @@ MOD20_02254014: ; 0x02254014
cmp r1, #0
beq _02254028
ldr r0, [r4, #0x10]
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
mov r0, #0
str r0, [r4]
_02254028:
@@ -3856,7 +3856,7 @@ _02254028:
cmp r1, #0
beq _02254038
ldr r0, [r4, #0x10]
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
mov r0, #0
str r0, [r4, #4]
_02254038:
@@ -4072,7 +4072,7 @@ _02254176:
_02254188:
add r0, r5, #0
add r1, r4, #0
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
mov r4, #0
_02254192:
add r0, r4, #0
@@ -4089,10 +4089,10 @@ MOD20_02254198: ; 0x02254198
_022541A2:
ldr r0, [r4, #8]
ldr r1, [r4, #0x14]
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
ldr r0, [r4, #8]
add r1, r4, #0
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
pop {r4, pc}
thumb_func_end MOD20_02254198
diff --git a/arm9/modules/55/asm/module_55.s b/arm9/modules/55/asm/module_55.s
index 704cf6de..957465b9 100644
--- a/arm9/modules/55/asm/module_55.s
+++ b/arm9/modules/55/asm/module_55.s
@@ -3382,7 +3382,7 @@ _021D9002:
ldrh r7, [r5, r1]
ldr r0, [r5, r0]
add r1, r5, r1
- bl FUN_0200143C
+ bl ListMenuGetCurrentItemArrayId
ldr r0, _021D90D0 ; =0x00000418
ldrh r0, [r5, r0]
cmp r7, r0
diff --git a/arm9/modules/56/asm/module_56.s b/arm9/modules/56/asm/module_56.s
index 2d066c8d..9eac53b8 100644
--- a/arm9/modules/56/asm/module_56.s
+++ b/arm9/modules/56/asm/module_56.s
@@ -3840,7 +3840,7 @@ _02213C5E:
ldr r0, [r0]
add r1, #2
add r2, sp, #0xc
- bl FUN_02001448
+ bl ListMenuGetScrollAndRow
cmp r4, #3
blt _02213C84
add r0, sp, #0xc
@@ -3860,7 +3860,7 @@ _02213C84:
ldrh r2, [r3, #2]
ldrh r3, [r3]
ldr r0, [r0]
- bl FUN_020013C8
+ bl ListMenuTestInput
add r0, r5, #0
add r0, #0xb4
ldr r0, [r0]
@@ -3873,7 +3873,7 @@ _02213CA8:
ldr r0, [r0]
add r1, #2
add r2, sp, #0xc
- bl FUN_02001448
+ bl ListMenuGetScrollAndRow
add r0, sp, #0xc
ldr r1, [r5, #8]
ldrh r3, [r0]
@@ -3913,7 +3913,7 @@ _02213CF0:
str r1, [sp, #8]
add r0, #0xb4
ldr r0, [r0]
- bl FUN_020013C8
+ bl ListMenuTestInput
add r0, r5, #0
add r0, #0xb4
ldr r0, [r0]
@@ -5554,7 +5554,7 @@ MOD56_022149D8: ; 0x022149D8
add r0, #0xb4
ldr r0, [r0]
add r1, sp, #0x28
- bl FUN_0200143C
+ bl ListMenuGetCurrentItemArrayId
add r0, sp, #0x28
ldrh r0, [r0]
add r0, r5, r0
@@ -5878,7 +5878,7 @@ _02214C66:
add r0, #0xb4
ldr r0, [r0]
add r1, sp, #0xc
- bl FUN_0200143C
+ bl ListMenuGetCurrentItemArrayId
add r0, sp, #0xc
ldrh r0, [r0]
add r0, r4, r0
@@ -7024,7 +7024,7 @@ _02215532:
add r0, #0xb4
ldr r0, [r0]
add r1, sp, #0x14
- bl FUN_0200143C
+ bl ListMenuGetCurrentItemArrayId
add r0, sp, #0x14
ldrh r0, [r0]
add r0, r5, r0
diff --git a/arm9/modules/65/asm/module_65.s b/arm9/modules/65/asm/module_65.s
index e74ab236..df2185cc 100644
--- a/arm9/modules/65/asm/module_65.s
+++ b/arm9/modules/65/asm/module_65.s
@@ -2083,7 +2083,7 @@ _021D850C:
add r0, r7, #0
add r1, #2
add r2, sp, #0x10
- bl FUN_02001448
+ bl ListMenuGetScrollAndRow
add r2, sp, #0x10
ldrh r2, [r2]
mov r0, #7
diff --git a/arm9/modules/67/asm/module_67.s b/arm9/modules/67/asm/module_67.s
index 2d417cd2..f67a1817 100644
--- a/arm9/modules/67/asm/module_67.s
+++ b/arm9/modules/67/asm/module_67.s
@@ -327,7 +327,7 @@ MOD67_021D777C: ; 0x021D777C
bl FUN_020178A0
mov r0, #0x2a
add r1, r4, #0
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
pop {r4, pc}
.align 2, 0
thumb_func_end MOD67_021D777C
diff --git a/arm9/modules/68/asm/module_68.s b/arm9/modules/68/asm/module_68.s
index 9f0a99ee..ebb66d25 100644
--- a/arm9/modules/68/asm/module_68.s
+++ b/arm9/modules/68/asm/module_68.s
@@ -320,7 +320,7 @@ MOD68_021D7774: ; 0x021D7774
bl FUN_020178A0
mov r0, #0x24
add r1, r4, #0
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
pop {r4, pc}
.align 2, 0
thumb_func_end MOD68_021D7774
diff --git a/arm9/modules/71/asm/module_71.s b/arm9/modules/71/asm/module_71.s
index 1ae20a7e..171b49d7 100644
--- a/arm9/modules/71/asm/module_71.s
+++ b/arm9/modules/71/asm/module_71.s
@@ -1750,7 +1750,7 @@ MOD71_0222E438: ; 0x0222E438
lsl r1, r1, #2
ldr r1, [r4, r1]
mov r0, #0x1a
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
mov r0, #0x61
lsl r0, r0, #2
ldr r0, [r4, r0]
diff --git a/arm9/modules/75/asm/module_75.s b/arm9/modules/75/asm/module_75.s
index 51a9bfa5..cdef5e27 100644
--- a/arm9/modules/75/asm/module_75.s
+++ b/arm9/modules/75/asm/module_75.s
@@ -759,7 +759,7 @@ MOD75_021E71BC: ; 0x021E71BC
bl FUN_020178A0
mov r0, #6
add r1, r4, #0
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
pop {r4, pc}
.align 2, 0
thumb_func_end MOD75_021E71BC
@@ -1773,14 +1773,14 @@ MOD75_021E797C: ; 0x021E797C
mov r1, #8
mov r2, #0
mov r3, #9
- bl FUN_020013E8
+ bl ListMenuOverrideSetColors
b _021E79C6
_021E79BA:
ldr r0, [sp]
mov r1, #1
mov r2, #0
mov r3, #2
- bl FUN_020013E8
+ bl ListMenuOverrideSetColors
_021E79C6:
ldrb r0, [r6, #8]
cmp r0, #7
@@ -2019,7 +2019,7 @@ MOD75_021E7B7C: ; 0x021E7B7C
ldr r0, [r5, r0]
add r1, r4, #6
add r2, r4, #4
- bl FUN_02001448
+ bl ListMenuGetScrollAndRow
ldr r0, _021E7CD8 ; =gMain
ldr r1, [r0, #0x48]
mov r0, #4
@@ -2046,7 +2046,7 @@ _021E7BC0:
ldr r0, [r5, r0]
add r1, #2
add r2, sp, #0
- bl FUN_02001448
+ bl ListMenuGetScrollAndRow
add r0, sp, #0
ldrh r2, [r0]
ldrh r0, [r4, #4]
@@ -2085,7 +2085,7 @@ _021E7BFC:
lsl r1, r1, #0x10
ldr r0, [r5, r0]
lsr r1, r1, #0x10
- bl FUN_02001464
+ bl ListMenuGetValueByArrayId
add r6, r0, #0
mov r0, #0x49
mov r1, #1
@@ -2102,7 +2102,7 @@ _021E7C38:
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r5, r0]
- bl FUN_0200145C
+ bl ListMenuGetUnk33
cmp r0, #1
bne _021E7C5E
add r0, r5, #0
@@ -3643,7 +3643,7 @@ MOD75_021E8808: ; 0x021E8808
add r1, r2, r1
lsl r1, r1, #0x10
lsr r1, r1, #0x10
- bl FUN_02001464
+ bl ListMenuGetValueByArrayId
mov r1, #1
mvn r1, r1
cmp r0, r1
@@ -3701,7 +3701,7 @@ MOD75_021E8864: ; 0x021E8864
lsl r0, r0, #2
ldrb r1, [r4, r1]
ldr r0, [r4, r0]
- bl FUN_02001464
+ bl ListMenuGetValueByArrayId
ldr r1, _021E88B8 ; =0x0000047C
str r0, [r4, r1]
add r0, r4, #0
@@ -3744,7 +3744,7 @@ _021E88D0:
ldr r0, [r5, r0]
add r1, r4, #6
add r2, r4, #4
- bl FUN_02001448
+ bl ListMenuGetScrollAndRow
add r0, r5, #0
bl MOD75_021E87B8
cmp r0, #1
@@ -3784,7 +3784,7 @@ _021E892E:
ldr r0, [r5, r0]
add r1, #2
add r2, sp, #0
- bl FUN_02001448
+ bl ListMenuGetScrollAndRow
add r0, sp, #0
ldrh r2, [r0]
ldrh r0, [r4, #4]
@@ -3816,7 +3816,7 @@ _021E896A:
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r5, r0]
- bl FUN_0200145C
+ bl ListMenuGetUnk33
cmp r0, #1
bne _021E899A
add r0, r5, #0
@@ -7055,7 +7055,7 @@ MOD75_021EA328: ; 0x021EA328
ldrh r3, [r3]
ldr r0, [r4, r0]
mov r1, #0
- bl FUN_02001354
+ bl ListMenuTestInputInternal
add r0, r4, #0
add r0, #0xc4
ldr r0, [r0]
@@ -7207,7 +7207,7 @@ MOD75_021EA444: ; 0x021EA444
ldrh r3, [r3]
ldr r0, [r4, r0]
mov r1, #0
- bl FUN_02001354
+ bl ListMenuTestInputInternal
add r0, r4, #0
add r0, #0xc4
ldr r0, [r0]
@@ -7904,7 +7904,7 @@ _021EA9A8:
bl FUN_02019220
mov r0, #6
add r1, r7, #0
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
.align 2, 0
@@ -7993,7 +7993,7 @@ _021EAA8C:
bl FUN_02019220
ldr r1, [sp, #0x18]
mov r0, #6
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@@ -8620,7 +8620,7 @@ MOD75_021EAF70: ; 0x021EAF70
bl FUN_02019658
mov r0, #6
add r1, r6, #0
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
add sp, #0x1c
pop {r3, r4, r5, r6, pc}
thumb_func_end MOD75_021EAF70
@@ -8695,7 +8695,7 @@ MOD75_021EB004: ; 0x021EB004
bl FUN_02019658
mov r0, #6
add r1, r6, #0
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
add sp, #0x1c
pop {r3, r4, r5, r6, pc}
.align 2, 0
diff --git a/arm9/modules/76/asm/module_76.s b/arm9/modules/76/asm/module_76.s
index 86989ca3..8e883a1d 100644
--- a/arm9/modules/76/asm/module_76.s
+++ b/arm9/modules/76/asm/module_76.s
@@ -382,7 +382,7 @@ MOD76_021D77E4: ; 0x021D77E4
bl FUN_020178A0
mov r0, #0x43
add r1, r4, #0
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
pop {r4, pc}
.align 2, 0
thumb_func_end MOD76_021D77E4
@@ -596,7 +596,7 @@ _021D799C:
ldr r0, [r5, r0]
add r1, #2
add r2, sp, #0
- bl FUN_02001448
+ bl ListMenuGetScrollAndRow
mov r0, #0x41
lsl r0, r0, #2
ldr r0, [r5, r0]
@@ -609,7 +609,7 @@ _021D799C:
ldr r0, [r5, r0]
add r1, #0x12
add r2, #0x10
- bl FUN_02001448
+ bl ListMenuGetScrollAndRow
ldr r2, [r5]
add r1, sp, #0
ldrh r1, [r1, #2]
diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s
index 5982ed76..70ab6d08 100644
--- a/arm9/modules/80/asm/module_80.s
+++ b/arm9/modules/80/asm/module_80.s
@@ -14093,7 +14093,7 @@ MOD80_02234698: ; 0x02234698
add r6, r0, #0
add r0, r5, #0
add r1, sp, #0
- bl FUN_0200143C
+ bl ListMenuGetCurrentItemArrayId
add r0, sp, #0
ldrh r1, [r4]
ldrh r0, [r0]
diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s
index a36fe53c..64ff452b 100644
--- a/arm9/modules/83/asm/module_83.s
+++ b/arm9/modules/83/asm/module_83.s
@@ -4538,7 +4538,7 @@ MOD83_0222F9DC: ; 0x0222F9DC
ldr r1, _0222F9F4 ; =MOD83_0223B884
mov r0, #0xf
ldr r1, [r1]
- bl FUN_02016A8C
+ bl FreeToHeapExplicit
ldr r0, _0222F9F4 ; =MOD83_0223B884
mov r1, #0
str r1, [r0]
diff --git a/arm9/src/game_init.c b/arm9/src/game_init.c
index a9e0b94e..f52a6659 100644
--- a/arm9/src/game_init.c
+++ b/arm9/src/game_init.c
@@ -203,7 +203,7 @@ void * FUN_020161A4(u32 heap_id, const char * path)
{
if (size != FS_ReadFile(&file, ret, (s32)size))
{
- FUN_02016A8C(heap_id, ret);
+ FreeToHeapExplicit(heap_id, ret);
ret = NULL;
}
}
diff --git a/arm9/src/heap.c b/arm9/src/heap.c
index 895ce808..f28b4f88 100644
--- a/arm9/src/heap.c
+++ b/arm9/src/heap.c
@@ -309,7 +309,7 @@ void FreeToHeap(void *ptr)
ErrorHandling();
}
-void FUN_02016A8C(u32 param0, void *param1)
+void FreeToHeapExplicit(u32 param0, void *param1)
{
GF_ASSERT (OS_GetProcMode() != OS_PROCMODE_IRQ);
diff --git a/arm9/src/itemtool.c b/arm9/src/itemtool.c
index 6b892d6d..9982ff40 100644
--- a/arm9/src/itemtool.c
+++ b/arm9/src/itemtool.c
@@ -778,7 +778,7 @@ u32 GetItemAttr(u16 item, u32 attr, u32 heap_id)
u32 ret;
struct ItemData * itemData = (struct ItemData *)LoadItemDataOrGfx(item, 0, heap_id);
ret = GetItemAttr_PreloadedItemData(itemData, attr);
- FUN_02016A8C(heap_id, itemData);
+ FreeToHeapExplicit(heap_id, itemData);
return ret;
}
diff --git a/arm9/src/list_menu.c b/arm9/src/list_menu.c
index 59de2813..7b663eca 100644
--- a/arm9/src/list_menu.c
+++ b/arm9/src/list_menu.c
@@ -3,21 +3,21 @@
#include "main.h"
#include "list_menu.h"
-extern void * FUN_02013690(u32 heap_id);
+extern void * ListMenuCursorNew(u32 heap_id);
extern void * ListMenuUpdateCursorObj(struct ListMenuCursor *, struct Window *, u8 x, u8 y);
-extern void CreateListMenuCursorObj(void *, u32);
+extern void ListMenuCursorSetColor(void *, u32);
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 *, u8, u8, s32);
-void ListMenuCallSelectionChangedCallback(struct ListMenu *, BOOL);
extern void CopyWindowToVram(struct Window *);
extern s32 GetFontAttribute(u8 fontId, s32 attr);
extern void FillWindowPixelRect(struct Window *, u32 fillValue, u16 x, u16 y, u16 width, u16 height);
extern void ScrollWindow(struct Window *, u8, u8, u8);
extern u16 GetWindowWidth(struct Window *);
extern u16 GetWindowHeight(struct Window *);
+void ListMenuPrintEntries(struct ListMenu * list, u16 startIndex, u16 yOffset, u16 count);
+void ListMenuDrawCursor(struct ListMenu * list);
+BOOL ListMenuChangeSelection(struct ListMenu * list, u8 updateCursorAndCallCallback, u8 count, u8 movingDown);
+void ListMenuCallSelectionChangedCallback(struct ListMenu * list, u8 onInit);
static inline u32 MakeFontColor(u32 fgPal, u32 shdwPal, u32 bgPal)
{
@@ -32,7 +32,7 @@ THUMB_FUNC struct ListMenu * ListMenuInit(const struct ListMenuTemplate * templa
{
struct ListMenu * list = AllocFromHeap(heap_id, sizeof(struct ListMenu));
list->template = *template;
- list->cursor = FUN_02013690(heap_id);
+ list->cursor = ListMenuCursorNew(heap_id);
list->cursorPos = cursorPos;
list->itemsAbove = itemsAbove;
list->unk_30 = 0;
@@ -48,7 +48,7 @@ THUMB_FUNC struct ListMenu * ListMenuInit(const struct ListMenuTemplate * templa
list->overrideEnabled = FALSE;
if (list->template.totalItems < list->template.maxShowed)
list->template.maxShowed = list->template.totalItems;
- CreateListMenuCursorObj(
+ ListMenuCursorSetColor(
list->cursor,
// MakeFontColor(list->template.cursorPal, list->template.cursorShadowPal, list->fillValue)
(u32)(
@@ -130,7 +130,7 @@ THUMB_FUNC void DestroyListMenu(struct ListMenu * list, u16 * cursorPos, u16 * i
if (itemsAbove != NULL)
*itemsAbove = list->itemsAbove;
DestroyListMenuCursorObj(list->cursor);
- FUN_02016A8C(list->heap_id, list);
+ FreeToHeapExplicit(list->heap_id, list);
}
THUMB_FUNC void RedrawListMenu(struct ListMenu * list)
@@ -141,7 +141,7 @@ THUMB_FUNC void RedrawListMenu(struct ListMenu * list)
CopyWindowToVram(list->template.window);
}
-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)
+THUMB_FUNC s32 ListMenuTestInputInternal(struct ListMenu * list, const struct ListMenuTemplate * template, u16 cursorPos, u16 itemsAbove, u16 updateFlag, u16 input, u16 *newCursorPos, u16 *newItemsAbove)
{
if (template != NULL)
list->template = *template;
@@ -158,23 +158,23 @@ THUMB_FUNC s32 FUN_02001354(struct ListMenu * list, const struct ListMenuTemplat
{
ListMenuChangeSelection(list, updateFlag, 1, TRUE);
}
- if (cursorPosDest_p != NULL)
+ if (newCursorPos != NULL)
{
- *cursorPosDest_p = list->cursorPos;
+ *newCursorPos = list->cursorPos;
}
- if (itemsAboveDest_p != NULL)
+ if (newItemsAbove != NULL)
{
- *itemsAboveDest_p = list->itemsAbove;
+ *newItemsAbove = list->itemsAbove;
}
return -1;
}
-THUMB_FUNC s32 FUN_020013C8(struct ListMenu * list, const struct ListMenuTemplate * template, u16 cursorPos, u16 itemsAbove, u16 input, u16 *cursorPosDest_p, u16 *itemsAboveDest_p)
+THUMB_FUNC s32 ListMenuTestInput(struct ListMenu * list, const struct ListMenuTemplate * template, u16 cursorPos, u16 itemsAbove, u16 input, u16 *newCursorPos, u16 *newItemsAbove)
{
- return FUN_02001354(list, template, cursorPos, itemsAbove, FALSE, input, cursorPosDest_p, itemsAboveDest_p);
+ return ListMenuTestInputInternal(list, template, cursorPos, itemsAbove, FALSE, input, newCursorPos, newItemsAbove);
}
-THUMB_FUNC void FUN_020013E8(struct ListMenu * list, u8 cursorPal, u8 fillValue, u8 cursorShadowPal)
+THUMB_FUNC void ListMenuOverrideSetColors(struct ListMenu * list, u8 cursorPal, u8 fillValue, u8 cursorShadowPal)
{
list->cursorPal = cursorPal;
list->fillValue = fillValue;
@@ -182,12 +182,12 @@ THUMB_FUNC void FUN_020013E8(struct ListMenu * list, u8 cursorPal, u8 fillValue,
list->overrideEnabled = TRUE;
}
-THUMB_FUNC void FUN_0200143C(struct ListMenu * list, u16 * index_p)
+THUMB_FUNC void ListMenuGetCurrentItemArrayId(struct ListMenu * list, u16 * index_p)
{
*index_p = list->cursorPos + list->itemsAbove;
}
-THUMB_FUNC void FUN_02001448(struct ListMenu * list, u16 * cursorPos_p, u16 * itemsAbove_p)
+THUMB_FUNC void ListMenuGetScrollAndRow(struct ListMenu * list, u16 * cursorPos_p, u16 * itemsAbove_p)
{
if (cursorPos_p != NULL)
*cursorPos_p = list->cursorPos;
@@ -195,12 +195,12 @@ THUMB_FUNC void FUN_02001448(struct ListMenu * list, u16 * cursorPos_p, u16 * it
*itemsAbove_p = list->itemsAbove;
}
-THUMB_FUNC u8 FUN_0200145C(struct ListMenu * list)
+THUMB_FUNC u8 ListMenuGetUnk33(struct ListMenu * list)
{
return list->unk_33;
}
-THUMB_FUNC s32 FUN_02001464(struct ListMenu * list, s32 index)
+THUMB_FUNC s32 ListMenuGetValueByArrayId(struct ListMenu * list, s32 index)
{
return list->template.items[index].index;
}
@@ -519,3 +519,59 @@ THUMB_FUNC void ListMenuScroll(struct ListMenu * list, u8 count, u8 movingDown)
}
}
}
+
+THUMB_FUNC BOOL ListMenuChangeSelection(struct ListMenu * list, u8 updateCursorAndCallCallback, u8 count, u8 movingDown)
+{
+ u16 oldSelectedRow;
+ u8 selectionChange, i, cursorCount;
+
+ oldSelectedRow = list->itemsAbove;
+ cursorCount = 0;
+ selectionChange = 0;
+ for (i = 0; i < count; i++)
+ {
+ do
+ {
+ u8 ret = ListMenuUpdateSelectedRowIndexAndScrollOffset(list, movingDown);
+
+ selectionChange |= ret;
+ if (ret != 2)
+ break;
+ cursorCount++;
+ }
+ while (list->template.items[list->cursorPos + list->itemsAbove].index == LIST_HEADER);
+ }
+
+ if (updateCursorAndCallCallback)
+ {
+ switch (selectionChange)
+ {
+ case 0:
+ default:
+ return TRUE;
+ case 1:
+ ListMenuErasePrintedCursor(list, oldSelectedRow);
+ ListMenuDrawCursor(list);
+ ListMenuCallSelectionChangedCallback(list, FALSE);
+ CopyWindowToVram(list->template.window);
+ break;
+ case 2:
+ case 3:
+ ListMenuErasePrintedCursor(list, oldSelectedRow);
+ ListMenuScroll(list, cursorCount, movingDown);
+ ListMenuDrawCursor(list);
+ ListMenuCallSelectionChangedCallback(list, FALSE);
+ CopyWindowToVram(list->template.window);
+ break;
+ }
+ }
+ return FALSE;
+}
+
+void ListMenuCallSelectionChangedCallback(struct ListMenu * list, u8 onInit)
+{
+ if (list->template.moveCursorFunc != NULL)
+ {
+ list->template.moveCursorFunc(list, list->template.items[list->cursorPos + list->itemsAbove].index, onInit);
+ }
+}
diff --git a/include/heap.h b/include/heap.h
index 69aedd9e..5dc51795 100644
--- a/include/heap.h
+++ b/include/heap.h
@@ -28,7 +28,7 @@ THUMB_FUNC void FUN_02016988();
void *AllocFromHeap(u32 heap_id, u32 size);
void *AllocFromHeapAtEnd(u32 heap_id, u32 size);
void FreeToHeap(void *ptr);
-void FUN_02016A8C(u32 heap_id, void * ptr);
+void FreeToHeapExplicit(u32 heap_id, void * ptr);
THUMB_FUNC u32 FUN_02016AF8(u32 param0);
THUMB_FUNC void FUN_02016B20(u32 param0, u32 param1, u32 param2);
THUMB_FUNC void FUN_02016B44(void *ptr, u32 param1);
diff --git a/include/list_menu.h b/include/list_menu.h
index 966a942a..35fc44e6 100644
--- a/include/list_menu.h
+++ b/include/list_menu.h
@@ -28,8 +28,8 @@ struct ListMenuItem
// TODO: Document remaining fields.
// A lot of these are named based on similar fields in gen 3.
-typedef void (*LM_MOVECURSORFUNC)(s32, u8, struct ListMenu *);
-typedef void (*LM_ITEMPRINTFUNC)(struct ListMenu *, s32, u8);
+typedef void (*LM_MOVECURSORFUNC)(struct ListMenu *list, s32 index, u8 onInit);
+typedef void (*LM_ITEMPRINTFUNC)(struct ListMenu *list, s32 index, u8 y);
struct ListMenuTemplate
{