summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arm9/asm/unk_020010A8.s371
-rw-r--r--arm9/asm/unk_02001B80.s18
-rw-r--r--arm9/asm/unk_020023C0.s4
-rw-r--r--arm9/asm/unk_02002C14.s4
-rw-r--r--arm9/asm/unk_02012CC8.s4
-rw-r--r--arm9/asm/unk_02016B94.s4
-rw-r--r--arm9/asm/unk_02033F50.s2
-rw-r--r--arm9/asm/unk_02034188.s2
-rw-r--r--arm9/asm/unk_02050E48.s12
-rw-r--r--arm9/asm/unk_020653EC.s2
-rw-r--r--arm9/asm/unk_02072548.s10
-rw-r--r--arm9/asm/unk_020772F0.s10
-rw-r--r--arm9/asm/unk_02089498.s4
-rw-r--r--arm9/asm/unk_02089960.s4
-rw-r--r--arm9/asm/unk_02089D90.s2
-rw-r--r--arm9/asm/unk_02089F24.s4
-rw-r--r--arm9/asm/unk_0208A338.s8
-rw-r--r--arm9/global.inc8
-rw-r--r--arm9/modules/05/asm/mod05_021E1AD8.s6
-rw-r--r--arm9/modules/05/asm/mod05_021E3444.s2
-rw-r--r--arm9/modules/05/asm/mod05_021E8310.s8
-rw-r--r--arm9/modules/06/asm/module_06.s6
-rw-r--r--arm9/modules/07/asm/module_07.s6
-rw-r--r--arm9/modules/09/asm/module_09.s12
-rw-r--r--arm9/modules/11/asm/module_11_thumb2.s2
-rw-r--r--arm9/modules/14/asm/module_14.s4
-rw-r--r--arm9/modules/15/asm/module_15.s14
-rw-r--r--arm9/modules/16/asm/module_16.s18
-rw-r--r--arm9/modules/18/asm/module_18.s4
-rw-r--r--arm9/modules/24/asm/module_24.s4
-rw-r--r--arm9/modules/27/asm/module_27.s4
-rw-r--r--arm9/modules/36/asm/module_36.s2
-rw-r--r--arm9/modules/53/asm/module_53.s2
-rw-r--r--arm9/modules/57/asm/module_57.s26
-rw-r--r--arm9/modules/59/asm/mod59_021D74E0_asm.s6
-rw-r--r--arm9/modules/59/asm/mod59_021D9868.s2
-rw-r--r--arm9/modules/60/asm/module_60.s2
-rw-r--r--arm9/modules/63/asm/mod63_021D74E0.s2
-rw-r--r--arm9/modules/65/asm/module_65.s8
-rw-r--r--arm9/modules/75/asm/module_75.s4
-rw-r--r--arm9/modules/77/asm/module_77.s18
-rw-r--r--arm9/modules/83/asm/module_83.s14
-rw-r--r--arm9/modules/84/asm/module_84_thumb2.s6
-rw-r--r--arm9/modules/86/asm/module_86.s4
-rw-r--r--arm9/src/error_message_reset.c4
-rw-r--r--arm9/src/list_menu.c155
-rw-r--r--arm9/src/script_buffers.c4
-rw-r--r--include/list_menu.h4
48 files changed, 310 insertions, 516 deletions
diff --git a/arm9/asm/unk_020010A8.s b/arm9/asm/unk_020010A8.s
index d7a2c9f0..e814dda2 100644
--- a/arm9/asm/unk_020010A8.s
+++ b/arm9/asm/unk_020010A8.s
@@ -2,363 +2,14 @@
.include "global.inc"
.extern gMain
- .extern FUN_0200165C
+ .extern ListMenuPrint
+ .extern ListMenuPrintEntries
+ .extern ListMenuDrawCursor
+ .extern ListMenuErasePrintedCursor
+ .extern ListMenuUpdateSelectedRowIndexAndScrollOffset
.text
- thumb_func_start ListMenuPrintEntries
-ListMenuPrintEntries: ; 0x02001714
- push {r4-r7, lr}
- sub sp, #0x14
- add r5, r0, #0x0
- str r3, [sp, #0x0]
- ldrh r0, [r5, #0x1a]
- add r4, r1, #0x0
- mov r1, #0x1
- lsl r0, r0, #0x11
- lsr r0, r0, #0x1a
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- add r6, r2, #0x0
- bl FUN_02002E4C
- ldrh r1, [r5, #0x1a]
- lsl r1, r1, #0x19
- lsr r1, r1, #0x1c
- add r0, r1, r0
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0xc]
- mov r0, #0x0
- str r0, [sp, #0x10]
- ldr r0, [sp, #0x0]
- cmp r0, #0x0
- ble _020017A6
-_02001748:
- ldr r1, [r5, #0x0]
- lsl r0, r4, #0x3
- str r0, [sp, #0x8]
- add r0, r1, r0
- ldr r1, [r0, #0x4]
- mov r0, #0x2
- mvn r0, r0
- cmp r1, r0
- beq _02001760
- ldrb r0, [r5, #0x15]
- str r0, [sp, #0x4]
- b _02001764
-_02001760:
- ldrb r0, [r5, #0x14]
- str r0, [sp, #0x4]
-_02001764:
- ldrb r0, [r5, #0x17]
- lsl r0, r0, #0x1c
- lsr r3, r0, #0x1c
- ldr r0, [sp, #0xc]
- add r2, r0, #0x0
- mul r2, r6
- add r0, r3, r2
- lsl r0, r0, #0x18
- ldr r3, [r5, #0x8]
- lsr r7, r0, #0x18
- cmp r3, #0x0
- beq _02001782
- add r0, r5, #0x0
- add r2, r7, #0x0
- blx r3
-_02001782:
- ldr r2, [r5, #0x0]
- ldr r1, [sp, #0x8]
- add r0, r5, #0x0
- ldr r1, [r2, r1]
- ldr r2, [sp, #0x4]
- add r3, r7, #0x0
- bl FUN_0200165C
- add r0, r4, #0x1
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- ldr r0, [sp, #0x10]
- add r6, r6, #0x1
- add r1, r0, #0x1
- ldr r0, [sp, #0x0]
- str r1, [sp, #0x10]
- cmp r1, r0
- blt _02001748
-_020017A6:
- add sp, #0x14
- pop {r4-r7, pc}
- .balign 4
-
- thumb_func_start ListMenuDrawCursor
-ListMenuDrawCursor: ; 0x020017AC
- push {r3-r5, lr}
- add r4, r0, #0x0
- ldrh r0, [r4, #0x1a]
- mov r1, #0x1
- lsl r0, r0, #0x11
- lsr r0, r0, #0x1a
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_02002E4C
- ldrh r1, [r4, #0x1a]
- ldrh r5, [r4, #0x2e]
- lsl r2, r1, #0x19
- lsr r2, r2, #0x1c
- add r0, r2, r0
- lsl r0, r0, #0x18
- lsr r3, r0, #0x18
- ldrb r0, [r4, #0x17]
- mul r3, r5
- ldrb r2, [r4, #0x16]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1c
- add r0, r0, r3
- lsl r0, r0, #0x18
- lsr r3, r0, #0x18
- lsl r0, r1, #0x10
- lsr r0, r0, #0x1f
- cmp r0, #0x3
- bhi _02001802
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_020017F2: ; jump table (using 16-bit offset)
- .short _020017FA - _020017F2 - 2; case 0
- .short _02001802 - _020017F2 - 2; case 1
- .short _02001802 - _020017F2 - 2; case 2
- .short _02001802 - _020017F2 - 2; case 3
-_020017FA:
- ldr r0, [r4, #0x28]
- ldr r1, [r4, #0xc]
- bl FUN_020136F8
-_02001802:
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02001804
-FUN_02001804: ; 0x02001804
- push {r3-r5, lr}
- sub sp, #0x8
- add r4, r0, #0x0
- ldrh r0, [r4, #0x1a]
- add r5, r1, #0x0
- lsl r1, r0, #0x10
- lsr r1, r1, #0x1f
- cmp r1, #0x3
- bhi _02001868
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #0x6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02001822: ; jump table (using 16-bit offset)
- .short _0200182A - _02001822 - 2; case 0
- .short _02001868 - _02001822 - 2; case 1
- .short _02001868 - _02001822 - 2; case 2
- .short _02001868 - _02001822 - 2; case 3
-_0200182A:
- lsl r0, r0, #0x11
- lsr r0, r0, #0x1a
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- mov r1, #0x1
- bl FUN_02002E4C
- ldrh r1, [r4, #0x1a]
- lsl r1, r1, #0x19
- lsr r1, r1, #0x1c
- add r0, r1, r0
- lsl r0, r0, #0x18
- lsr r3, r0, #0x18
- mov r0, #0x8
- str r0, [sp, #0x0]
- mov r0, #0x10
- str r0, [sp, #0x4]
- ldrb r1, [r4, #0x18]
- ldr r0, [r4, #0xc]
- ldrb r2, [r4, #0x16]
- ldrb r4, [r4, #0x17]
- lsl r1, r1, #0x1c
- mul r3, r5
- lsl r4, r4, #0x1c
- lsr r4, r4, #0x1c
- add r3, r4, r3
- lsl r3, r3, #0x10
- lsr r1, r1, #0x1c
- lsr r3, r3, #0x10
- bl FUN_020196F4
-_02001868:
- add sp, #0x8
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0200186C
-FUN_0200186C: ; 0x0200186C
- push {r4-r7}
- ldrh r4, [r0, #0x2e]
- ldrh r3, [r0, #0x2c]
- cmp r1, #0x0
- ldrh r2, [r0, #0x12]
- bne _020018FE
- cmp r2, #0x1
- bne _02001880
- mov r1, #0x0
- b _02001898
-_02001880:
- lsr r7, r2, #0x1f
- lsl r6, r2, #0x1f
- sub r6, r6, r7
- mov r5, #0x1f
- ror r6, r5
- lsr r1, r2, #0x1
- add r5, r7, r6
- add r1, r1, r5
- sub r1, r2, r1
- sub r1, r1, #0x1
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
-_02001898:
- cmp r3, #0x0
- bne _020018CC
- cmp r4, #0x0
- beq _020018C6
- ldr r2, [r0, #0x0]
- lsl r1, r3, #0x3
- mov r3, #0x2
- add r1, r2, r1
- mvn r3, r3
-_020018AA:
- sub r2, r4, #0x1
- lsl r2, r2, #0x10
- lsr r4, r2, #0x10
- lsl r2, r4, #0x3
- add r2, r1, r2
- ldr r2, [r2, #0x4]
- cmp r2, r3
- beq _020018C2
- strh r4, [r0, #0x2e]
- mov r0, #0x1
- pop {r4-r7}
- bx lr
-_020018C2:
- cmp r4, #0x0
- bne _020018AA
-_020018C6:
- mov r0, #0x0
- pop {r4-r7}
- bx lr
-_020018CC:
- cmp r4, r1
- bls _020018F6
- ldr r5, [r0, #0x0]
- lsl r2, r3, #0x3
- add r2, r5, r2
- mov r5, #0x2
- mvn r5, r5
-_020018DA:
- sub r4, r4, #0x1
- lsl r4, r4, #0x10
- lsr r4, r4, #0x10
- lsl r6, r4, #0x3
- add r6, r2, r6
- ldr r6, [r6, #0x4]
- cmp r6, r5
- beq _020018F2
- strh r4, [r0, #0x2e]
- mov r0, #0x1
- pop {r4-r7}
- bx lr
-_020018F2:
- cmp r4, r1
- bhi _020018DA
-_020018F6:
- strh r1, [r0, #0x2e]
- sub r1, r3, #0x1
- strh r1, [r0, #0x2c]
- b _02001984
-_020018FE:
- cmp r2, #0x1
- bne _02001906
- mov r5, #0x0
- b _0200191A
-_02001906:
- lsr r7, r2, #0x1f
- lsl r6, r2, #0x1f
- sub r6, r6, r7
- mov r5, #0x1f
- ror r6, r5
- lsr r1, r2, #0x1
- add r5, r7, r6
- add r1, r1, r5
- lsl r1, r1, #0x10
- lsr r5, r1, #0x10
-_0200191A:
- ldrh r1, [r0, #0x10]
- sub r1, r1, r2
- cmp r3, r1
- bne _02001954
- sub r2, r2, #0x1
- cmp r4, r2
- bge _0200194E
- ldr r5, [r0, #0x0]
- lsl r1, r3, #0x3
- add r1, r5, r1
- mov r5, #0x2
- mvn r5, r5
-_02001932:
- add r3, r4, #0x1
- lsl r3, r3, #0x10
- lsr r4, r3, #0x10
- lsl r3, r4, #0x3
- add r3, r1, r3
- ldr r3, [r3, #0x4]
- cmp r3, r5
- beq _0200194A
- strh r4, [r0, #0x2e]
- mov r0, #0x1
- pop {r4-r7}
- bx lr
-_0200194A:
- cmp r4, r2
- blt _02001932
-_0200194E:
- mov r0, #0x0
- pop {r4-r7}
- bx lr
-_02001954:
- cmp r4, r5
- bhs _0200197E
- ldr r2, [r0, #0x0]
- lsl r1, r3, #0x3
- mov r6, #0x2
- add r1, r2, r1
- mvn r6, r6
-_02001962:
- add r2, r4, #0x1
- lsl r2, r2, #0x10
- lsr r4, r2, #0x10
- lsl r2, r4, #0x3
- add r2, r1, r2
- ldr r2, [r2, #0x4]
- cmp r2, r6
- beq _0200197A
- strh r4, [r0, #0x2e]
- mov r0, #0x1
- pop {r4-r7}
- bx lr
-_0200197A:
- cmp r4, r5
- blo _02001962
-_0200197E:
- strh r5, [r0, #0x2e]
- add r1, r3, #0x1
- strh r1, [r0, #0x2c]
-_02001984:
- mov r0, #0x2
- pop {r4-r7}
- bx lr
- .balign 4
-
thumb_func_start FUN_0200198C
FUN_0200198C: ; 0x0200198C
push {r3-r7, lr}
@@ -388,7 +39,7 @@ _020019B8:
lsr r0, r0, #0x1a
lsl r0, r0, #0x18
lsr r0, r0, #0x18
- bl FUN_02002E4C
+ bl GetFontAttribute
ldrh r1, [r5, #0x1a]
lsl r1, r1, #0x19
lsr r1, r1, #0x1c
@@ -444,7 +95,7 @@ _020019B8:
lsl r1, r1, #0x1c
lsr r1, r1, #0x1c
add r3, r4, #0x0
- bl FUN_020196F4
+ bl FillWindowPixelRect
add sp, #0x8
pop {r3-r7, pc}
_02001A46:
@@ -487,7 +138,7 @@ _02001A46:
ldr r0, [r5, #0xc]
lsl r1, r1, #0x1c
lsr r1, r1, #0x1c
- bl FUN_020196F4
+ bl FillWindowPixelRect
add sp, #0x8
pop {r3-r7, pc}
.balign 4
@@ -511,7 +162,7 @@ ListMenuChangeSelection: ; 0x02001AA4
_02001AC0:
ldr r1, [sp, #0x8]
add r0, r4, #0x0
- bl FUN_0200186C
+ bl ListMenuUpdateSelectedRowIndexAndScrollOffset
orr r5, r0
cmp r0, #0x2
bne _02001AEA
@@ -560,7 +211,7 @@ _02001B14:
_02001B1A:
ldr r1, [sp, #0xc]
add r0, r4, #0x0
- bl FUN_02001804
+ bl ListMenuErasePrintedCursor
add r0, r4, #0x0
bl ListMenuDrawCursor
add r0, r4, #0x0
@@ -572,7 +223,7 @@ _02001B1A:
_02001B38:
ldr r1, [sp, #0xc]
add r0, r4, #0x0
- bl FUN_02001804
+ bl ListMenuErasePrintedCursor
ldr r2, [sp, #0x8]
add r0, r4, #0x0
add r1, r6, #0x0
diff --git a/arm9/asm/unk_02001B80.s b/arm9/asm/unk_02001B80.s
index 65ba52af..c2e1a245 100644
--- a/arm9/asm/unk_02001B80.s
+++ b/arm9/asm/unk_02001B80.s
@@ -57,20 +57,20 @@ FUN_02001B8C: ; 0x02001B8C
strb r6, [r4, #0x17]
strb r7, [r4, #0x18]
ldrb r0, [r5, #0x8]
- bl FUN_02002E4C
+ bl GetFontAttribute
add r6, r0, #0x0
ldrb r0, [r5, #0x8]
mov r1, #0x2
- bl FUN_02002E4C
+ bl GetFontAttribute
add r0, r6, r0
strb r0, [r4, #0x19]
ldrb r0, [r5, #0x8]
mov r1, #0x1
- bl FUN_02002E4C
+ bl GetFontAttribute
add r6, r0, #0x0
ldrb r0, [r5, #0x8]
mov r1, #0x3
- bl FUN_02002E4C
+ bl GetFontAttribute
add r0, r6, r0
strb r0, [r4, #0x1a]
add r0, r4, #0x0
@@ -108,7 +108,7 @@ FUN_02001C34: ; 0x02001C34
add r6, r1, #0x0
add r4, r2, #0x0
mov r1, #0x0
- bl FUN_02002E4C
+ bl GetFontAttribute
add r1, r0, #0x0
str r4, [sp, #0x0]
mov r0, #0x2
@@ -420,7 +420,7 @@ FUN_02001E64: ; 0x02001E64
_02001E7C:
ldrb r0, [r5, #0x8]
mov r1, #0x6
- bl FUN_02002E4C
+ bl GetFontAttribute
add r1, sp, #0x8
add r7, r0, #0x0
add r0, r5, #0x0
@@ -437,7 +437,7 @@ _02001E7C:
ldrb r2, [r3, #0x1]
ldrb r3, [r3, #0x0]
ldr r0, [r5, #0x4]
- bl FUN_020196F4
+ bl FillWindowPixelRect
add r0, r5, #0x0
bl FUN_02002080
add r0, r6, #0x0
@@ -631,7 +631,7 @@ FUN_02001FF4: ; 0x02001FF4
add r5, r0, #0x0
ldrb r0, [r5, #0x8]
mov r1, #0x6
- bl FUN_02002E4C
+ bl GetFontAttribute
add r1, r0, #0x0
ldr r0, [r5, #0x4]
bl FillWindowPixelBuffer
@@ -718,7 +718,7 @@ FUN_02002080: ; 0x02002080
ldrb r3, [r3, #0x0]
ldr r0, [r4, #0xc]
ldr r1, [r4, #0x4]
- bl FUN_020136F8
+ bl ListMenuUpdateCursorObj
_020020AA:
add sp, #0x4
pop {r3-r4, pc}
diff --git a/arm9/asm/unk_020023C0.s b/arm9/asm/unk_020023C0.s
index 54d01d03..5b9bf77a 100644
--- a/arm9/asm/unk_020023C0.s
+++ b/arm9/asm/unk_020023C0.s
@@ -193,7 +193,7 @@ _020024F2:
mov r1, #0x1
strb r0, [r4, #0xc]
ldrb r0, [r4, #0x9]
- bl FUN_02002E4C
+ bl GetFontAttribute
ldrb r1, [r4, #0xf]
ldrb r2, [r4, #0xd]
add sp, #0xc
@@ -520,7 +520,7 @@ _02002786:
bl FUN_02002A00
ldrb r0, [r4, #0x9]
mov r1, #0x1
- bl FUN_02002E4C
+ bl GetFontAttribute
ldrb r1, [r4, #0xf]
add r1, r1, r0
add r0, r4, #0x0
diff --git a/arm9/asm/unk_02002C14.s b/arm9/asm/unk_02002C14.s
index c4049d4b..740dca10 100644
--- a/arm9/asm/unk_02002C14.s
+++ b/arm9/asm/unk_02002C14.s
@@ -327,8 +327,8 @@ _02002E2E:
.balign 4
_02002E48: .word UNK_02106FC8
- thumb_func_start FUN_02002E4C
-FUN_02002E4C: ; 0x02002E4C
+ thumb_func_start GetFontAttribute
+GetFontAttribute: ; 0x02002E4C
mov r2, #0x0
cmp r1, #0x7
bhi _02002EAC
diff --git a/arm9/asm/unk_02012CC8.s b/arm9/asm/unk_02012CC8.s
index 92e460b6..c3ed22aa 100644
--- a/arm9/asm/unk_02012CC8.s
+++ b/arm9/asm/unk_02012CC8.s
@@ -1546,8 +1546,8 @@ _020136F4:
pop {r3-r5, pc}
.balign 4
- thumb_func_start FUN_020136F8
-FUN_020136F8: ; 0x020136F8
+ thumb_func_start ListMenuUpdateCursorObj
+ListMenuUpdateCursorObj: ; 0x020136F8
push {r4-r6, lr}
sub sp, #0x10
add r6, r0, #0x0
diff --git a/arm9/asm/unk_02016B94.s b/arm9/asm/unk_02016B94.s
index a050d569..9a6e152f 100644
--- a/arm9/asm/unk_02016B94.s
+++ b/arm9/asm/unk_02016B94.s
@@ -5999,8 +5999,8 @@ _020196D6:
pop {r4-r5, pc}
.balign 4
- thumb_func_start FUN_020196F4
-FUN_020196F4: ; 0x020196F4
+ thumb_func_start FillWindowPixelRect
+FillWindowPixelRect: ; 0x020196F4
push {r3-r5, lr}
sub sp, #0x10
add r5, r1, #0x0
diff --git a/arm9/asm/unk_02033F50.s b/arm9/asm/unk_02033F50.s
index a5439dfe..ed33e084 100644
--- a/arm9/asm/unk_02033F50.s
+++ b/arm9/asm/unk_02033F50.s
@@ -198,7 +198,7 @@ _02033FA4:
add r0, sp, #0x18
mov r1, #0xf
add r3, r2, #0x0
- bl FUN_020196F4
+ bl FillWindowPixelRect
ldr r2, _0203417C ; =0x000001F7
add r0, sp, #0x18
mov r1, #0x0
diff --git a/arm9/asm/unk_02034188.s b/arm9/asm/unk_02034188.s
index 44144564..08265835 100644
--- a/arm9/asm/unk_02034188.s
+++ b/arm9/asm/unk_02034188.s
@@ -138,7 +138,7 @@ FUN_02034188: ; 0x02034188
add r0, sp, #0x14
mov r1, #0xf
add r3, r2, #0x0
- bl FUN_020196F4
+ bl FillWindowPixelRect
ldr r2, _0203438C ; =0x000001F7
add r0, sp, #0x14
mov r1, #0x0
diff --git a/arm9/asm/unk_02050E48.s b/arm9/asm/unk_02050E48.s
index 95b46dc5..70ba73b0 100644
--- a/arm9/asm/unk_02050E48.s
+++ b/arm9/asm/unk_02050E48.s
@@ -1769,14 +1769,14 @@ _02051C34:
lsr r0, r0, #0x10
str r0, [sp, #0x4]
ldr r0, [sp, #0x20]
- bl FUN_020196F4
+ bl FillWindowPixelRect
ldr r3, [sp, #0x14]
add r1, r5, #0x0
ldr r0, [r5, #0x78]
add r1, #0x54
mov r2, #0x0
lsl r3, r3, #0x4
- bl FUN_020136F8
+ bl ListMenuUpdateCursorObj
add r0, r5, #0x0
add r0, #0x54
mov r1, #0x0
@@ -1880,13 +1880,13 @@ _02051D0A:
str r0, [sp, #0x4]
add r0, r7, #0x0
add r3, r2, #0x0
- bl FUN_020196F4
+ bl FillWindowPixelRect
ldr r3, [sp, #0x14]
ldr r0, [r5, #0x78]
ldr r1, [r5, #0x7c]
mov r2, #0x0
lsl r3, r3, #0x4
- bl FUN_020136F8
+ bl ListMenuUpdateCursorObj
ldr r0, [r5, #0x7c]
mov r1, #0x0
mov r2, #0x1
@@ -1987,14 +1987,14 @@ _02051DE0:
lsr r1, r1, #0x10
str r1, [sp, #0x4]
mov r1, #0xf
- bl FUN_020196F4
+ bl FillWindowPixelRect
mov r3, #0x81
ldrsb r3, [r4, r3]
ldr r0, [r4, #0x78]
ldr r1, [r4, #0x7c]
mov r2, #0x0
lsl r3, r3, #0x4
- bl FUN_020136F8
+ bl ListMenuUpdateCursorObj
ldr r0, [r4, #0x7c]
bl FUN_02019548
mov r0, #0x0
diff --git a/arm9/asm/unk_020653EC.s b/arm9/asm/unk_020653EC.s
index 5e09d0a6..003e1330 100644
--- a/arm9/asm/unk_020653EC.s
+++ b/arm9/asm/unk_020653EC.s
@@ -2066,7 +2066,7 @@ _02066426:
add r0, r5, r1
mov r1, #0xff
add r3, r2, #0x0
- bl FUN_020196F4
+ bl FillWindowPixelRect
mov r0, #0x1
bl FUN_02002B60
mov r0, #0x0
diff --git a/arm9/asm/unk_02072548.s b/arm9/asm/unk_02072548.s
index 901eea03..03f7c540 100644
--- a/arm9/asm/unk_02072548.s
+++ b/arm9/asm/unk_02072548.s
@@ -870,7 +870,7 @@ FUN_02072BBC: ; 0x02072BBC
add r0, r5, r4
mov r2, #0x4
add r3, r1, #0x0
- bl FUN_020196F4
+ bl FillWindowPixelRect
add r0, r5, r4
bl FUN_02019220
add sp, #0x8
@@ -1000,7 +1000,7 @@ _02072CBE:
mov r1, #0xa
mov r2, #0x0
mov r3, #0x2
- bl FUN_020196F4
+ bl FillWindowPixelRect
str r5, [sp, #0x0]
mov r0, #0x2
str r0, [sp, #0x4]
@@ -1008,7 +1008,7 @@ _02072CBE:
mov r1, #0x9
mov r2, #0x0
mov r3, #0x3
- bl FUN_020196F4
+ bl FillWindowPixelRect
str r5, [sp, #0x0]
mov r0, #0x1
str r0, [sp, #0x4]
@@ -1016,7 +1016,7 @@ _02072CBE:
mov r1, #0xa
mov r2, #0x0
mov r3, #0x5
- bl FUN_020196F4
+ bl FillWindowPixelRect
add r0, r4, #0x0
bl FUN_02019220
add sp, #0xc
@@ -2158,7 +2158,7 @@ FUN_0207363C: ; 0x0207363C
mov r1, #0xf
mov r2, #0x50
mov r3, #0x0
- bl FUN_020196F4
+ bl FillWindowPixelRect
ldr r0, _020736E8 ; =0x0000069C
mov r1, #0xc0
ldr r0, [r5, r0]
diff --git a/arm9/asm/unk_020772F0.s b/arm9/asm/unk_020772F0.s
index 6ed83b14..7a074186 100644
--- a/arm9/asm/unk_020772F0.s
+++ b/arm9/asm/unk_020772F0.s
@@ -5219,7 +5219,7 @@ _0207976C:
add r1, r4, #0x0
lsr r2, r2, #0x10
mov r3, #0x0
- bl FUN_020196F4
+ bl FillWindowPixelRect
mov r0, #0x10
str r0, [sp, #0x0]
mov r0, #0x13
@@ -5229,7 +5229,7 @@ _0207976C:
add r1, r4, #0x0
lsr r2, r2, #0x10
mov r3, #0x26
- bl FUN_020196F4
+ bl FillWindowPixelRect
mov r0, #0x10
str r0, [sp, #0x0]
mov r0, #0x13
@@ -5239,7 +5239,7 @@ _0207976C:
add r1, r4, #0x0
lsr r2, r2, #0x10
mov r3, #0x4c
- bl FUN_020196F4
+ bl FillWindowPixelRect
add r7, r7, #0x1
add r6, #0x20
cmp r7, #0x6
@@ -5256,7 +5256,7 @@ _020797BA:
add r1, r4, #0x0
lsr r2, r2, #0x10
mov r3, #0x13
- bl FUN_020196F4
+ bl FillWindowPixelRect
mov r0, #0x10
str r0, [sp, #0x0]
mov r0, #0x13
@@ -5266,7 +5266,7 @@ _020797BA:
add r1, r4, #0x0
lsr r2, r2, #0x10
mov r3, #0x39
- bl FUN_020196F4
+ bl FillWindowPixelRect
add r7, r7, #0x1
add r6, #0x20
cmp r7, #0x7
diff --git a/arm9/asm/unk_02089498.s b/arm9/asm/unk_02089498.s
index b4c7a133..3facd182 100644
--- a/arm9/asm/unk_02089498.s
+++ b/arm9/asm/unk_02089498.s
@@ -360,7 +360,7 @@ FUN_02089734: ; 0x02089734
add r0, r4, #0x0
mov r1, #0xf
add r3, r2, #0x0
- bl FUN_020196F4
+ bl FillWindowPixelRect
add sp, #0x8
pop {r4, pc}
nop
@@ -539,7 +539,7 @@ _020898B8:
mov r1, #0xf
add r2, r6, #0x0
add r3, r6, #0x0
- bl FUN_020196F4
+ bl FillWindowPixelRect
add r0, r5, #0x0
ldr r2, _02089958 ; =0x000001E2
add r0, #0x1c
diff --git a/arm9/asm/unk_02089960.s b/arm9/asm/unk_02089960.s
index 4502d1f9..9c06a4ab 100644
--- a/arm9/asm/unk_02089960.s
+++ b/arm9/asm/unk_02089960.s
@@ -299,7 +299,7 @@ FUN_02089B80: ; 0x02089B80
add r0, r4, #0x0
mov r1, #0xf
add r3, r2, #0x0
- bl FUN_020196F4
+ bl FillWindowPixelRect
add sp, #0x8
pop {r4, pc}
nop
@@ -466,7 +466,7 @@ _02089CE8:
mov r1, #0xf
add r2, r6, #0x0
add r3, r6, #0x0
- bl FUN_020196F4
+ bl FillWindowPixelRect
add r0, r5, #0x0
ldr r2, _02089D88 ; =0x000001E2
add r0, #0x20
diff --git a/arm9/asm/unk_02089D90.s b/arm9/asm/unk_02089D90.s
index 92b9e987..e7b88272 100644
--- a/arm9/asm/unk_02089D90.s
+++ b/arm9/asm/unk_02089D90.s
@@ -137,7 +137,7 @@ FUN_02089D90: ; 0x02089D90
add r0, sp, #0xc
mov r1, #0xf
add r3, r2, #0x0
- bl FUN_020196F4
+ bl FillWindowPixelRect
ldr r2, _02089F18 ; =0x000001F7
add r0, sp, #0xc
mov r1, #0x0
diff --git a/arm9/asm/unk_02089F24.s b/arm9/asm/unk_02089F24.s
index b678254c..b5c93a8a 100644
--- a/arm9/asm/unk_02089F24.s
+++ b/arm9/asm/unk_02089F24.s
@@ -141,7 +141,7 @@ FUN_02089F24: ; 0x02089F24
add r0, sp, #0xc
mov r1, #0xf
add r3, r2, #0x0
- bl FUN_020196F4
+ bl FillWindowPixelRect
ldr r2, _0208A0AC ; =0x000001F7
add r0, sp, #0xc
mov r1, #0x0
@@ -310,7 +310,7 @@ _0208A0C8:
add r0, sp, #0xc
mov r1, #0xf
add r3, r2, #0x0
- bl FUN_020196F4
+ bl FillWindowPixelRect
ldr r2, _0208A24C ; =0x000001F7
add r0, sp, #0xc
mov r1, #0x0
diff --git a/arm9/asm/unk_0208A338.s b/arm9/asm/unk_0208A338.s
index f1e7c357..3b40567c 100644
--- a/arm9/asm/unk_0208A338.s
+++ b/arm9/asm/unk_0208A338.s
@@ -583,7 +583,7 @@ _0208A7D2:
ldr r0, [r5, #0x14]
add r1, r7, #0x0
add r3, r2, #0x0
- bl FUN_020136F8
+ bl ListMenuUpdateCursorObj
_0208A808:
str r7, [r5, #0x68]
mov r1, #0x0
@@ -671,7 +671,7 @@ _0208A882:
ldr r0, [r5, #0x14]
add r1, r7, #0x0
add r3, r2, #0x0
- bl FUN_020136F8
+ bl ListMenuUpdateCursorObj
_0208A8B8:
str r7, [r5, #0x68]
mov r1, #0x0
@@ -771,13 +771,13 @@ _0208A954:
lsr r1, r1, #0x10
str r1, [sp, #0x4]
mov r1, #0xf
- bl FUN_020196F4
+ bl FillWindowPixelRect
ldr r3, [r4, #0x5c]
ldr r0, [r4, #0x14]
ldr r1, [r4, #0x68]
mov r2, #0x0
lsl r3, r3, #0x4
- bl FUN_020136F8
+ bl ListMenuUpdateCursorObj
ldr r0, [r4, #0x68]
bl FUN_02019548
ldr r0, _0208A994 ; =0x000005DC
diff --git a/arm9/global.inc b/arm9/global.inc
index 8c0a01db..1debdc23 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -201,7 +201,7 @@
.extern FUN_02001464
.extern ListMenuGetTemplateField
.extern ListMenuSetTemplateField
-.extern ListMenuPrint
+.extern ListMenuGetItemStr
.extern FUN_02001B80
.extern FUN_02001B8C
.extern FUN_02001C14
@@ -236,7 +236,7 @@
.extern FontFunc
.extern FUN_02002DE0
.extern FUN_02002E14
-.extern FUN_02002E4C
+.extern GetFontAttribute
.extern FUN_02002ED0
.extern FUN_02002EEC
.extern FUN_02002F08
@@ -885,7 +885,7 @@
.extern FUN_02013690
.extern DestroyListMenuCursorObj
.extern CreateListMenuCursorObj
-.extern FUN_020136F8
+.extern ListMenuUpdateCursorObj
.extern MailMsg_init
.extern MailMsg_init_withBank
.extern MailMsg_init_default
@@ -1101,7 +1101,7 @@
.extern FillWindowPixelBuffer
.extern FUN_02019658
.extern FUN_02019684
-.extern FUN_020196F4
+.extern FillWindowPixelRect
.extern FUN_0201974C
.extern FUN_0201A8C8
.extern FUN_0201AB08
diff --git a/arm9/modules/05/asm/mod05_021E1AD8.s b/arm9/modules/05/asm/mod05_021E1AD8.s
index d9ec58bf..36e4432a 100644
--- a/arm9/modules/05/asm/mod05_021E1AD8.s
+++ b/arm9/modules/05/asm/mod05_021E1AD8.s
@@ -1259,7 +1259,7 @@ MOD05_021E2464: ; 0x021E2464
add r5, r0, #0
add r0, r4, #0
add r1, r0, #0
- bl FUN_02002E4C
+ bl GetFontAttribute
lsl r1, r0, #3
mov r0, #7
tst r0, r1
@@ -1318,7 +1318,7 @@ _021E2496:
add r0, #8
mov r1, #0xf
add r3, r2, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
mov r2, #0
add r0, r5, #0
mov r1, #0xf
@@ -1807,7 +1807,7 @@ MOD05_021E28A0: ; 0x021E28A0
mov r1, #0xf
mov r2, #0
str r3, [sp, #4]
- bl FUN_020196F4
+ bl FillWindowPixelRect
mov r2, #0x7a
mov r0, #0
mov r1, #0x1a
diff --git a/arm9/modules/05/asm/mod05_021E3444.s b/arm9/modules/05/asm/mod05_021E3444.s
index 27446591..ea709996 100644
--- a/arm9/modules/05/asm/mod05_021E3444.s
+++ b/arm9/modules/05/asm/mod05_021E3444.s
@@ -1989,7 +1989,7 @@ _021E4370:
ldrb r1, [r1, #0x14]
lsr r2, r2, #0x10
lsr r3, r3, #0x10
- bl FUN_020196F4
+ bl FillWindowPixelRect
_021E4390:
add sp, #8
pop {r3, r4, r5, pc}
diff --git a/arm9/modules/05/asm/mod05_021E8310.s b/arm9/modules/05/asm/mod05_021E8310.s
index 08407e83..5bf27853 100644
--- a/arm9/modules/05/asm/mod05_021E8310.s
+++ b/arm9/modules/05/asm/mod05_021E8310.s
@@ -139,11 +139,11 @@ MOD05_021E8410: ; 0x021E8410
add r5, r0, #0
mov r0, #0
mov r1, #1
- bl FUN_02002E4C
+ bl GetFontAttribute
add r4, r0, #0
mov r0, #0
mov r1, #3
- bl FUN_02002E4C
+ bl GetFontAttribute
add r0, r4, r0
str r0, [sp, #0x14]
mov r4, #0
@@ -204,7 +204,7 @@ _021E846E:
add r6, r0, #0
mov r0, #0
mov r1, #2
- bl FUN_02002E4C
+ bl GetFontAttribute
add r2, r0, #0
mov r0, #0
add r1, r6, #0
@@ -276,7 +276,7 @@ MOD05_021E84F4: ; 0x021E84F4
bl FUN_0200CB00
mov r0, #0
mov r1, #6
- bl FUN_02002E4C
+ bl GetFontAttribute
add r1, r0, #0
ldr r0, [r4, #0x10]
bl FillWindowPixelBuffer
diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s
index fbe98b2b..fcf63fe5 100644
--- a/arm9/modules/06/asm/module_06.s
+++ b/arm9/modules/06/asm/module_06.s
@@ -9491,7 +9491,7 @@ _0223DF1C:
mov r1, #0xf
mov r2, #0
str r3, [sp, #4]
- bl FUN_020196F4
+ bl FillWindowPixelRect
_0223DF30:
mov r0, #0x10
mov r1, #0xb
@@ -11680,7 +11680,7 @@ _0223F11A:
add r0, #0x20
mov r2, #8
lsr r3, r3, #0x10
- bl FUN_020196F4
+ bl FillWindowPixelRect
add r0, sp, #0xc
ldrh r2, [r0]
cmp r2, r4
@@ -12160,7 +12160,7 @@ _0223F53C:
mov r2, #8
add r0, #0x20
mov r3, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
ldr r0, _0223F580 ; =0x02252420
mov r1, #0
ldr r0, [r0]
diff --git a/arm9/modules/07/asm/module_07.s b/arm9/modules/07/asm/module_07.s
index 48e34649..1110fa5c 100644
--- a/arm9/modules/07/asm/module_07.s
+++ b/arm9/modules/07/asm/module_07.s
@@ -4858,7 +4858,7 @@ _0221459E:
mov r1, #0xa
mov r2, #0
mov r3, #2
- bl FUN_020196F4
+ bl FillWindowPixelRect
lsl r0, r5, #0x10
lsr r0, r0, #0x10
str r0, [sp]
@@ -4868,7 +4868,7 @@ _0221459E:
mov r1, #9
mov r2, #0
mov r3, #3
- bl FUN_020196F4
+ bl FillWindowPixelRect
lsl r0, r5, #0x10
lsr r0, r0, #0x10
str r0, [sp]
@@ -4878,7 +4878,7 @@ _0221459E:
mov r1, #0xa
mov r2, #0
mov r3, #5
- bl FUN_020196F4
+ bl FillWindowPixelRect
add sp, #0xc
pop {r4, r5, r6, r7, pc}
nop
diff --git a/arm9/modules/09/asm/module_09.s b/arm9/modules/09/asm/module_09.s
index ade67f55..9b2367ba 100644
--- a/arm9/modules/09/asm/module_09.s
+++ b/arm9/modules/09/asm/module_09.s
@@ -4419,7 +4419,7 @@ _0221415E:
add r0, r0, r5
lsr r1, r1, #0x18
lsr r3, r3, #0x10
- bl FUN_020196F4
+ bl FillWindowPixelRect
ldr r0, [sp, #0x14]
add r3, r6, #2
str r0, [sp]
@@ -4432,7 +4432,7 @@ _0221415E:
add r0, r0, r5
add r1, r7, #0
lsr r3, r3, #0x10
- bl FUN_020196F4
+ bl FillWindowPixelRect
ldr r0, [sp, #0x14]
ldr r1, [sp, #0x10]
str r0, [sp]
@@ -4447,7 +4447,7 @@ _0221415E:
add r0, r0, r5
lsr r1, r1, #0x18
lsr r3, r3, #0x10
- bl FUN_020196F4
+ bl FillWindowPixelRect
ldr r0, _022141D4 ; =0x00002070
ldr r0, [r4, r0]
add r0, r0, r5
@@ -6673,7 +6673,7 @@ MOD09_022154FC: ; 0x022154FC
mov r1, #0
lsr r2, r2, #0x10
mov r3, #0x18
- bl FUN_020196F4
+ bl FillWindowPixelRect
ldr r0, _022155C4 ; =0x00001FA8
mov r1, #0x2c
ldr r0, [r5, r0]
@@ -6828,7 +6828,7 @@ MOD09_0221567C: ; 0x0221567C
add r0, r0, r4
mov r2, #0x38
mov r3, #0x20
- bl FUN_020196F4
+ bl FillWindowPixelRect
mov r2, #0x40
str r2, [sp]
mov r0, #8
@@ -6838,7 +6838,7 @@ MOD09_0221567C: ; 0x0221567C
ldr r0, [r5, r0]
mov r3, #0x18
add r0, r0, r4
- bl FUN_020196F4
+ bl FillWindowPixelRect
mov r0, #0x20
str r0, [sp]
add r0, r5, #0
diff --git a/arm9/modules/11/asm/module_11_thumb2.s b/arm9/modules/11/asm/module_11_thumb2.s
index 6f66fe90..962280d6 100644
--- a/arm9/modules/11/asm/module_11_thumb2.s
+++ b/arm9/modules/11/asm/module_11_thumb2.s
@@ -23987,7 +23987,7 @@ _0223ADBA:
mov r2, #0x50
mov r3, #0
add r7, r0, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
mov r1, #0
str r1, [sp, #0x4c]
add r5, sp, #0xb0
diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s
index 9399db6e..8f54eb98 100644
--- a/arm9/modules/14/asm/module_14.s
+++ b/arm9/modules/14/asm/module_14.s
@@ -21221,7 +21221,7 @@ MOD14_021E1B9C: ; 0x021E1B9C
mov r1, #0xf
mov r2, #0
lsr r3, r3, #0x10
- bl FUN_020196F4
+ bl FillWindowPixelRect
add r6, #0x20
ldrb r2, [r6]
add r0, r4, #0
@@ -27058,7 +27058,7 @@ _021E47AE:
ldrh r3, [r5, #2]
add r0, r7, #0
mov r1, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
mov r0, #2
ldrsh r0, [r5, r0]
mov r1, #0
diff --git a/arm9/modules/15/asm/module_15.s b/arm9/modules/15/asm/module_15.s
index 0b2abaab..fbf19499 100644
--- a/arm9/modules/15/asm/module_15.s
+++ b/arm9/modules/15/asm/module_15.s
@@ -5135,7 +5135,7 @@ MOD15_021D9C30: ; 0x021D9C30
ldrh r3, [r3, #2]
add r0, r4, #0
mov r1, #0xe
- bl FUN_020196F4
+ bl FillWindowPixelRect
add sp, #0xc
pop {r3, r4, pc}
@@ -5509,7 +5509,7 @@ MOD15_021D9ECC: ; 0x021D9ECC
add r1, #0x2c
mov r2, #0
lsl r3, r4, #4
- bl FUN_020136F8
+ bl ListMenuUpdateCursorObj
add r5, #0x2c
add r0, r5, #0
bl CopyWindowToVram
@@ -5533,13 +5533,13 @@ MOD15_021D9F58: ; 0x021D9F58
add r0, #0x2c
mov r1, #9
add r3, r2, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
ldr r0, [r5, #0x50]
add r5, #0x2c
add r1, r5, #0
mov r2, #0
lsl r3, r4, #4
- bl FUN_020136F8
+ bl ListMenuUpdateCursorObj
add sp, #8
pop {r3, r4, r5, pc}
@@ -7291,7 +7291,7 @@ _021DAD1A:
add r0, r5, #0
add r2, r1, #0
lsr r3, r3, #0x10
- bl FUN_020196F4
+ bl FillWindowPixelRect
add sp, #8
pop {r3, r4, r5, pc}
_021DAD3E:
@@ -7308,7 +7308,7 @@ _021DAD3E:
add r0, #0x10
add r2, r1, #0
lsr r3, r3, #0x10
- bl FUN_020196F4
+ bl FillWindowPixelRect
mov r1, #0
mov r0, #0xd0
str r0, [sp]
@@ -7319,7 +7319,7 @@ _021DAD3E:
add r0, r5, #0
add r2, r1, #0
add r3, r1, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
add sp, #8
pop {r3, r4, r5, pc}
diff --git a/arm9/modules/16/asm/module_16.s b/arm9/modules/16/asm/module_16.s
index 68e9336c..0b9a1de7 100644
--- a/arm9/modules/16/asm/module_16.s
+++ b/arm9/modules/16/asm/module_16.s
@@ -17058,7 +17058,7 @@ MOD16_021DF350: ; 0x021DF350
mov r1, #0
mov r2, #0x18
mov r3, #8
- bl FUN_020196F4
+ bl FillWindowPixelRect
cmp r6, #3
bhi _021DF394
add r0, r6, r6
@@ -17135,7 +17135,7 @@ MOD16_021DF3E4: ; 0x021DF3E4
mov r1, #0
mov r2, #0x18
mov r3, #8
- bl FUN_020196F4
+ bl FillWindowPixelRect
mov r0, #0x5d
add r1, r5, #0
bl MOD16_021D8270
@@ -17387,7 +17387,7 @@ MOD16_021DF5D0: ; 0x021DF5D0
mov r1, #0
mov r2, #0x58
mov r3, #0x34
- bl FUN_020196F4
+ bl FillWindowPixelRect
add r5, #0x51
add r0, r5, #0
add r1, r6, #0
@@ -17433,7 +17433,7 @@ MOD16_021DF630: ; 0x021DF630
mov r1, #0
mov r2, #0x58
mov r3, #0x4d
- bl FUN_020196F4
+ bl FillWindowPixelRect
cmp r6, #9
bhi _021DF698
add r0, r6, r6
@@ -17529,7 +17529,7 @@ MOD16_021DF6D8: ; 0x021DF6D8
mov r1, #0
mov r2, #0x58
lsr r3, r3, #0x10
- bl FUN_020196F4
+ bl FillWindowPixelRect
cmp r6, #0x11
bhi _021DF774
add r0, r6, r6
@@ -41593,7 +41593,7 @@ MOD16_021EA858: ; 0x021EA858
add r2, r1, #0
add r0, r0, #4
add r3, r1, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
ldr r0, [r4]
mov r1, #1
ldr r0, [r0]
@@ -41901,7 +41901,7 @@ MOD16_021EAAA4: ; 0x021EAAA4
mov r1, #0
lsr r2, r2, #0x10
lsr r3, r3, #0x10
- bl FUN_020196F4
+ bl FillWindowPixelRect
ldr r1, [sp, #0x38]
ldr r0, [sp, #0xc]
mov r6, #0
@@ -42016,7 +42016,7 @@ _021EABA2:
mov r1, #6
lsr r2, r2, #0x10
lsr r3, r3, #0x10
- bl FUN_020196F4
+ bl FillWindowPixelRect
str r5, [r4]
add sp, #0xc
pop {r4, r5, r6, r7, pc}
@@ -42049,7 +42049,7 @@ MOD16_021EABC4: ; 0x021EABC4
mov r1, #0
lsr r2, r2, #0x10
lsr r3, r3, #0x10
- bl FUN_020196F4
+ bl FillWindowPixelRect
cmp r5, r6
bge _021EAC18
_021EABFE:
diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s
index 6f55f226..7810113c 100644
--- a/arm9/modules/18/asm/module_18.s
+++ b/arm9/modules/18/asm/module_18.s
@@ -22140,7 +22140,7 @@ _022440F0:
ldr r0, [r4, #0x10]
ldr r2, [sp]
add r3, r5, r3
- bl FUN_020136F8
+ bl ListMenuUpdateCursorObj
_0224413A:
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
@@ -22312,7 +22312,7 @@ _02244268:
ldr r1, [sp]
str r0, [r5, #8]
ldr r0, [sp, #4]
- bl ListMenuPrint
+ bl ListMenuGetItemStr
mov r0, #0
strb r0, [r5, #0x1c]
ldr r0, [sp, #4]
diff --git a/arm9/modules/24/asm/module_24.s b/arm9/modules/24/asm/module_24.s
index 19ece474..a069571e 100644
--- a/arm9/modules/24/asm/module_24.s
+++ b/arm9/modules/24/asm/module_24.s
@@ -987,7 +987,7 @@ _02254F80:
mov r1, #4
lsr r2, r2, #0x10
lsr r3, r3, #0x10
- bl FUN_020196F4
+ bl FillWindowPixelRect
asr r1, r5, #3
mov r2, #0x14
asr r0, r6, #3
@@ -1048,7 +1048,7 @@ _02254FF2:
mov r1, #1
lsr r2, r2, #0x10
lsr r3, r3, #0x10
- bl FUN_020196F4
+ bl FillWindowPixelRect
ldr r0, [r7, #0x70]
mov r2, #0x20
ldr r1, [r0, #0xc]
diff --git a/arm9/modules/27/asm/module_27.s b/arm9/modules/27/asm/module_27.s
index 9fa91fb4..0dac7728 100644
--- a/arm9/modules/27/asm/module_27.s
+++ b/arm9/modules/27/asm/module_27.s
@@ -834,7 +834,7 @@ MOD27_02254EAC: ; 0x02254EAC
mov r1, #4
add r3, r2, #0
add r5, r0, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
cmp r4, #0
beq _02254EE0
lsl r0, r4, #0x10
@@ -846,7 +846,7 @@ MOD27_02254EAC: ; 0x02254EAC
add r0, r5, #0
mov r1, #0xf
add r3, r2, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
_02254EE0:
add r0, r5, #0
bl FUN_02019548
diff --git a/arm9/modules/36/asm/module_36.s b/arm9/modules/36/asm/module_36.s
index 2bbabb41..6a1e0245 100644
--- a/arm9/modules/36/asm/module_36.s
+++ b/arm9/modules/36/asm/module_36.s
@@ -1205,7 +1205,7 @@ MOD36_0225510C: ; 0x0225510C
mov r1, #1
lsr r2, r2, #0x10
lsr r3, r3, #0x10
- bl FUN_020196F4
+ bl FillWindowPixelRect
ldr r1, [r4, #0x54]
lsl r0, r5, #5
add r0, r1, r0
diff --git a/arm9/modules/53/asm/module_53.s b/arm9/modules/53/asm/module_53.s
index 42385e75..93468fe6 100644
--- a/arm9/modules/53/asm/module_53.s
+++ b/arm9/modules/53/asm/module_53.s
@@ -3429,7 +3429,7 @@ _021D906C:
add r0, r4, #0
add r2, r1, #0
add r3, r1, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
add r6, r6, #1
add r4, #0x10
cmp r6, #5
diff --git a/arm9/modules/57/asm/module_57.s b/arm9/modules/57/asm/module_57.s
index 39e977cc..463396ab 100644
--- a/arm9/modules/57/asm/module_57.s
+++ b/arm9/modules/57/asm/module_57.s
@@ -2689,7 +2689,7 @@ MOD57_021D89F0: ; 0x021D89F0
add r2, r1, #0
add r3, r1, #0
add r7, r0, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
mov r1, #0
mov r0, #0x88
str r0, [sp]
@@ -2699,7 +2699,7 @@ MOD57_021D89F0: ; 0x021D89F0
add r0, #0x10
add r2, r1, #0
add r3, r1, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
mov r1, #0
mov r0, #0x88
str r0, [sp]
@@ -2709,7 +2709,7 @@ MOD57_021D89F0: ; 0x021D89F0
add r0, #0x20
add r2, r1, #0
add r3, r1, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
mov r1, #0
mov r0, #0x88
str r0, [sp]
@@ -2719,7 +2719,7 @@ MOD57_021D89F0: ; 0x021D89F0
add r0, #0x30
add r2, r1, #0
add r3, r1, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
mov r1, #0
mov r0, #0x88
str r0, [sp]
@@ -2729,7 +2729,7 @@ MOD57_021D89F0: ; 0x021D89F0
add r0, #0x40
add r2, r1, #0
add r3, r1, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
mov r1, #0
mov r0, #0xe0
str r0, [sp]
@@ -2739,7 +2739,7 @@ MOD57_021D89F0: ; 0x021D89F0
add r0, #0x50
add r2, r1, #0
add r3, r1, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
mov r1, #0
mov r0, #0xe0
str r0, [sp]
@@ -2749,7 +2749,7 @@ MOD57_021D89F0: ; 0x021D89F0
add r0, #0x60
add r2, r1, #0
add r3, r1, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
ldr r2, _021D8CEC ; =0x0000022D
mov r0, #0
mov r1, #0x1a
@@ -3042,7 +3042,7 @@ MOD57_021D8CF8: ; 0x021D8CF8
add r0, #0x70
add r2, r1, #0
add r3, r1, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
mov r1, #0
mov r0, #0xe0
str r0, [sp]
@@ -3052,7 +3052,7 @@ MOD57_021D8CF8: ; 0x021D8CF8
add r0, #0x80
add r2, r1, #0
add r3, r1, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
mov r1, #0
mov r0, #0xe0
str r0, [sp]
@@ -3062,7 +3062,7 @@ MOD57_021D8CF8: ; 0x021D8CF8
add r0, #0x90
add r2, r1, #0
add r3, r1, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
mov r1, #0
mov r0, #0xe0
str r0, [sp]
@@ -3072,7 +3072,7 @@ MOD57_021D8CF8: ; 0x021D8CF8
add r0, #0xa0
add r2, r1, #0
add r3, r1, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
ldr r2, _021D8FAC ; =0x0000022D
mov r0, #0
mov r1, #0x1a
@@ -3455,7 +3455,7 @@ _021D906E:
add r0, #0x50
mov r2, #0xb8
add r3, r1, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
ldr r2, _021D913C ; =0x0000022D
mov r0, #0
mov r1, #0x1a
@@ -3558,7 +3558,7 @@ _021D9164:
mov r1, #0
mov r2, #0xcd
add r3, r1, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
add r0, r4, #0
bl CopyWindowToVram
add sp, #0x10
diff --git a/arm9/modules/59/asm/mod59_021D74E0_asm.s b/arm9/modules/59/asm/mod59_021D74E0_asm.s
index dbad5e9c..d89153a3 100644
--- a/arm9/modules/59/asm/mod59_021D74E0_asm.s
+++ b/arm9/modules/59/asm/mod59_021D74E0_asm.s
@@ -883,7 +883,7 @@ _021D7C5E:
add r0, #0x1c
mov r1, #0xf
add r3, r2, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
add r0, r5, #0
ldr r2, _021D7D60 ; =0x000003E2
add r0, #0x1c
@@ -1234,7 +1234,7 @@ _021D7EFA:
add r0, #0x1c
add r2, r1, #0
add r3, r1, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
add r1, r5, #0
str r1, [sp]
ldr r0, _021D8048 ; =0x00010200
@@ -1273,7 +1273,7 @@ _021D7F7C:
add r0, #0x1c
add r2, r1, #0
add r3, r1, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
add r1, r5, #0
str r1, [sp]
ldr r0, _021D804C ; =0x000F0200
diff --git a/arm9/modules/59/asm/mod59_021D9868.s b/arm9/modules/59/asm/mod59_021D9868.s
index 6d2d6e6b..370d58b1 100644
--- a/arm9/modules/59/asm/mod59_021D9868.s
+++ b/arm9/modules/59/asm/mod59_021D9868.s
@@ -536,7 +536,7 @@ _021D9C9A:
add r0, #0x10
add r2, r1, #0
add r3, r1, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
add r0, r5, #0
add r1, r6, #0
add r2, r0, #0
diff --git a/arm9/modules/60/asm/module_60.s b/arm9/modules/60/asm/module_60.s
index c01c83ff..fa7752a8 100644
--- a/arm9/modules/60/asm/module_60.s
+++ b/arm9/modules/60/asm/module_60.s
@@ -1209,7 +1209,7 @@ MOD60_021D7EA4: ; 0x021D7EA4
mov r1, #0xff
lsr r2, r2, #0x10
lsr r3, r3, #0x10
- bl FUN_020196F4
+ bl FillWindowPixelRect
ldr r0, [sp, #0x14]
cmp r0, #5
bne _021D7F26
diff --git a/arm9/modules/63/asm/mod63_021D74E0.s b/arm9/modules/63/asm/mod63_021D74E0.s
index a323b642..11daacd0 100644
--- a/arm9/modules/63/asm/mod63_021D74E0.s
+++ b/arm9/modules/63/asm/mod63_021D74E0.s
@@ -2064,7 +2064,7 @@ _021D844C:
add r0, #0xac
add r2, r1, #0
add r3, r1, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
add r0, r7, #0
mov r1, #0
add r2, r4, #0
diff --git a/arm9/modules/65/asm/module_65.s b/arm9/modules/65/asm/module_65.s
index 44e0d1a2..dca4005b 100644
--- a/arm9/modules/65/asm/module_65.s
+++ b/arm9/modules/65/asm/module_65.s
@@ -1404,7 +1404,7 @@ _021D7FCA:
add r0, r5, r0
mov r1, #0xff
add r3, r2, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
mov r0, #1
bl FUN_02002B60
mov r0, #0
@@ -1711,7 +1711,7 @@ MOD65_021D8214: ; 0x021D8214
add r0, #0xe8
add r2, r1, #0
add r3, r1, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
cmp r4, #0
beq _021D823E
add r0, r5, #0
@@ -1953,7 +1953,7 @@ _021D83D2:
mov r1, #0
add r2, r1, #0
add r3, r1, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
ldrb r1, [r4, #0x1b]
cmp r1, #5
bne _021D8434
@@ -2140,7 +2140,7 @@ _021D8578:
add r0, #0xf8
add r2, r1, #0
add r3, r1, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
cmp r5, #0xff
bne _021D85B4
add r0, r4, #0
diff --git a/arm9/modules/75/asm/module_75.s b/arm9/modules/75/asm/module_75.s
index 32ceb777..51a9bfa5 100644
--- a/arm9/modules/75/asm/module_75.s
+++ b/arm9/modules/75/asm/module_75.s
@@ -8646,7 +8646,7 @@ MOD75_021EAFB0: ; 0x021EAFB0
add r0, r5, #4
add r2, r1, #0
lsr r3, r3, #0x10
- bl FUN_020196F4
+ bl FillWindowPixelRect
mov r1, #0
str r4, [sp]
mov r0, #0xff
@@ -9686,7 +9686,7 @@ _021EB854:
mov r1, #0xf
mov r2, #0
str r3, [sp, #4]
- bl FUN_020196F4
+ bl FillWindowPixelRect
_021EB866:
mov r0, #0x45
lsl r0, r0, #2
diff --git a/arm9/modules/77/asm/module_77.s b/arm9/modules/77/asm/module_77.s
index 01cab9b7..838cf1c8 100644
--- a/arm9/modules/77/asm/module_77.s
+++ b/arm9/modules/77/asm/module_77.s
@@ -601,7 +601,7 @@ _021D79D0:
add r0, r4, r0
mov r1, #0xf
add r3, r2, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
ldr r0, _021D7B7C ; =0x0000C034
ldr r2, _021D7B80 ; =0x000001D9
add r0, r4, r0
@@ -656,7 +656,7 @@ _021D7A4E:
add r0, r4, r0
mov r1, #0xf
add r3, r2, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
ldr r0, _021D7B84 ; =0x0000C314
ldr r1, [r4, r0]
cmp r1, #0
@@ -1432,7 +1432,7 @@ MOD77_021D7FAC: ; 0x021D7FAC
add r0, r5, r0
mov r1, #0xf
add r3, r2, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
ldr r0, _021D8224 ; =0x0000C014
ldr r2, _021D8214 ; =0x000001E2
add r0, r5, r0
@@ -1565,7 +1565,7 @@ MOD77_021D7FAC: ; 0x021D7FAC
add r0, r5, r0
mov r1, #0xf
add r3, r2, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
ldr r0, _021D8244 ; =0x0000C060
mov r1, #0xc
ldr r0, [r5, r0]
@@ -1671,7 +1671,7 @@ _021D82B0:
mov r1, #0xf
add r2, r4, #0
add r3, r4, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
mov r0, #1
ldr r1, [r5]
lsl r0, r0, #0xa
@@ -1978,7 +1978,7 @@ MOD77_021D8510: ; 0x021D8510
add r0, r5, r0
mov r1, #0xf
add r3, r2, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
ldr r0, _021D85CC ; =0x0000C044
ldr r2, _021D85D0 ; =0x000001D9
add r0, r5, r0
@@ -2067,7 +2067,7 @@ MOD77_021D85E0: ; 0x021D85E0
add r0, r5, r0
mov r1, #0xf
add r3, r2, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
ldr r0, _021D8690 ; =0x0000C044
ldr r2, _021D8694 ; =0x000001D9
add r0, r5, r0
@@ -2159,7 +2159,7 @@ MOD77_021D86B4: ; 0x021D86B4
add r0, r5, r0
mov r1, #0xf
add r3, r2, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
ldr r0, _021D8810 ; =0x0000C060
mov r1, #0xe
ldr r0, [r5, r0]
@@ -2245,7 +2245,7 @@ _021D8748:
add r0, r5, r0
mov r1, #0xf
add r3, r2, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
ldr r0, [r5]
add r2, r7, #0
str r0, [sp]
diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s
index 8551901e..36b862f4 100644
--- a/arm9/modules/83/asm/module_83.s
+++ b/arm9/modules/83/asm/module_83.s
@@ -901,7 +901,7 @@ MOD83_0222DCA0: ; 0x0222DCA0
add r5, r0, #0
mov r0, #0
mov r1, #2
- bl FUN_02002E4C
+ bl GetFontAttribute
add r2, r0, #0
mov r0, #0
add r1, r5, #0
@@ -2926,7 +2926,7 @@ MOD83_0222EC78: ; 0x0222EC78
add r1, #0xf8
str r0, [r1]
mov r1, #1
- bl FUN_02002E4C
+ bl GetFontAttribute
add r2, r0, #0
add r0, r5, #0
add r0, #0xf0
@@ -5990,7 +5990,7 @@ MOD83_0223050C: ; 0x0223050C
str r0, [r4, #0xc]
mov r0, #1
mov r1, #6
- bl FUN_02002E4C
+ bl GetFontAttribute
add r1, r0, #0
add r0, r5, #0
bl FillWindowPixelBuffer
@@ -6056,7 +6056,7 @@ MOD83_022305A4: ; 0x022305A4
bl CopyU16ArrayToStringN
mov r0, #0
mov r1, #6
- bl FUN_02002E4C
+ bl GetFontAttribute
add r1, r0, #0
add r0, r5, #0
bl FillWindowPixelBuffer
@@ -8235,7 +8235,7 @@ MOD83_022317A8: ; 0x022317A8
add r6, r0, #0
mov r0, #1
mov r1, #6
- bl FUN_02002E4C
+ bl GetFontAttribute
add r1, r0, #0
add r0, r5, #0
bl FillWindowPixelBuffer
@@ -9122,7 +9122,7 @@ _02231EBE:
lsl r1, r1, #0x18
lsr r0, r0, #0x18
lsr r1, r1, #0x18
- bl FUN_02002E4C
+ bl GetFontAttribute
add r1, r0, #0
add r0, r6, #0
bl FillWindowPixelBuffer
@@ -23133,7 +23133,7 @@ _022389D0:
mov r1, #2
lsl r0, r0, #0x18
lsr r0, r0, #0x18
- bl FUN_02002E4C
+ bl GetFontAttribute
add r2, r0, #0
ldr r0, [r5, #0x40]
add r1, r4, #0
diff --git a/arm9/modules/84/asm/module_84_thumb2.s b/arm9/modules/84/asm/module_84_thumb2.s
index 969429f0..a843354a 100644
--- a/arm9/modules/84/asm/module_84_thumb2.s
+++ b/arm9/modules/84/asm/module_84_thumb2.s
@@ -786,7 +786,7 @@ _021D86E0:
ldr r0, [r5, #0x24]
add r2, r1, #0
lsr r3, r3, #0x10
- bl FUN_020196F4
+ bl FillWindowPixelRect
b _021D8754
_021D8718:
add r1, r3, #0
@@ -803,7 +803,7 @@ _021D8718:
ldr r0, [r5, #0x24]
add r2, r1, #0
lsr r3, r3, #0x10
- bl FUN_020196F4
+ bl FillWindowPixelRect
mov r1, #0
mov r0, #1
lsl r0, r0, #8
@@ -816,7 +816,7 @@ _021D8718:
ldr r0, [r5, #0x24]
add r2, r1, #0
add r3, r1, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
_021D8754:
mov r0, #1
str r0, [r5, #0x18]
diff --git a/arm9/modules/86/asm/module_86.s b/arm9/modules/86/asm/module_86.s
index 08651acb..db86339d 100644
--- a/arm9/modules/86/asm/module_86.s
+++ b/arm9/modules/86/asm/module_86.s
@@ -504,7 +504,7 @@ MOD86_021D78D4: ; 0x021D78D4
add r0, #0x14
add r2, r1, #0
add r3, r1, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
mov r1, #4
add r0, sp, #8
strb r1, [r0]
@@ -523,7 +523,7 @@ MOD86_021D78D4: ; 0x021D78D4
add r0, r4, #0
add r2, r1, #0
add r3, r1, #0
- bl FUN_020196F4
+ bl FillWindowPixelRect
add sp, #0x10
pop {r4, pc}
.align 2, 0
diff --git a/arm9/src/error_message_reset.c b/arm9/src/error_message_reset.c
index f70fec0f..6bff812a 100644
--- a/arm9/src/error_message_reset.c
+++ b/arm9/src/error_message_reset.c
@@ -27,7 +27,7 @@ extern void FUN_02002ED0(u32 param0, u32 param1, u32 param2);
extern void FUN_02017F18(u32 param0, u32 param1, u32 param2, u32 param3);
extern void FUN_02017FE4(u32 param0, u32 param1);
extern void FUN_02019150(u32 *param0, u32 *param1, const u32 *param2);
-extern void FUN_020196F4(u32 *, u8, u16, u16, u16, u16);
+extern void FillWindowPixelRect(u32 *, u8, u16, u16, u16, u16);
extern void FUN_0200CCA4(u32 *param0, u32 param1, u32 param2, u32 param3);
extern void FUN_0200E394(u32 param0);
extern void FUN_0200A274(u32 param0, u32 param1, u32 param2);
@@ -98,7 +98,7 @@ THUMB_FUNC void PrintErrorMessageAndReset()
FUN_0201BD5C();
FUN_02019150(ptr, buf, UNK_020FF49C);
- FUN_020196F4(buf, 15, 0, 0, 0xd0, 0x90);
+ FillWindowPixelRect(buf, 15, 0, 0, 0xd0, 0x90);
FUN_0200CCA4(buf, 0, 0x1f7, 2);
ReadMsgDataIntoString(msg_data, 3, str);
diff --git a/arm9/src/list_menu.c b/arm9/src/list_menu.c
index 8dec327d..f54db302 100644
--- a/arm9/src/list_menu.c
+++ b/arm9/src/list_menu.c
@@ -4,6 +4,7 @@
#include "list_menu.h"
extern void * FUN_02013690(u32 heap_id);
+extern void * ListMenuUpdateCursorObj(struct ListMenuCursor *, struct Window *, u8 x, u8 y);
extern void CreateListMenuCursorObj(void *, u32);
extern void DestroyListMenuCursorObj(void *);
extern void FillWindowPixelBuffer(struct Window *, u32);
@@ -12,7 +13,8 @@ void ListMenuDrawCursor(struct ListMenu *);
BOOL ListMenuChangeSelection(struct ListMenu *, u8, u8, s32);
void ListMenuCallSelectionChangedCallback(struct ListMenu *, BOOL);
extern void CopyWindowToVram(struct Window *);
-extern s32 FUN_02002E4C(u8 fontId, s32 attr);
+extern s32 GetFontAttribute(u8 fontId, s32 attr);
+extern void FillWindowPixelRect(struct Window *, u32 fillValue, u16 x, u16 y, u16 width, u16 height);
static inline u32 MakeFontColor(u32 fgPal, u32 shdwPal, u32 bgPal)
{
@@ -223,7 +225,7 @@ THUMB_FUNC s32 ListMenuGetTemplateField(struct ListMenu * list, u32 attr)
case 8:
return (s32)list->template.upText_Y;
case 9:
- return FUN_02002E4C(list->template.fontId, 1) + list->template.itemVerticalPadding;
+ return GetFontAttribute(list->template.fontId, 1) + list->template.itemVerticalPadding;
case 10:
return (s32)list->template.cursorPal;
case 11:
@@ -239,7 +241,7 @@ THUMB_FUNC s32 ListMenuGetTemplateField(struct ListMenu * list, u32 attr)
case 16:
return (s32)list->template.fontId;
case 17:
- return (s32)list->template.unk_1B_7;
+ return (s32)list->template.cursorKind;
case 18:
return (s32)list->template.window;
case 19:
@@ -303,7 +305,7 @@ THUMB_FUNC void ListMenuSetTemplateField(struct ListMenu * list, u32 attr, s32 v
list->template.fontId = (u8)value;
break;
case 17:
- list->template.unk_1B_7 = (u8)value;
+ list->template.cursorKind = (u8)value;
break;
case 18:
list->template.window = (struct Window *)value;
@@ -314,12 +316,12 @@ THUMB_FUNC void ListMenuSetTemplateField(struct ListMenu * list, u32 attr, s32 v
}
}
-THUMB_FUNC void ListMenuPrint(struct ListMenu * list, struct ListMenuItem * items)
+THUMB_FUNC void ListMenuGetItemStr(struct ListMenu * list, struct ListMenuItem * items)
{
list->template.items = items;
}
-THUMB_FUNC void FUN_0200165C(struct ListMenu * list, const u16 * str, u8 x, u8 y)
+THUMB_FUNC void ListMenuPrint(struct ListMenu * list, const u16 * str, u8 x, u8 y)
{
if (str != NULL)
{
@@ -333,3 +335,144 @@ THUMB_FUNC void FUN_0200165C(struct ListMenu * list, const u16 * str, u8 x, u8 y
}
}
}
+
+THUMB_FUNC void ListMenuPrintEntries(struct ListMenu * list, u16 startIndex, u16 yOffset, u16 count)
+{
+ s32 i;
+ u8 x, y;
+ u8 yMultiplier = GetFontAttribute(list->template.fontId, 1) + list->template.itemVerticalPadding;
+
+ for (i = 0; i < count; i++)
+ {
+ if (list->template.items[startIndex].index != LIST_HEADER)
+ x = list->template.item_X;
+ else
+ x = list->template.header_X;
+ y = (yOffset + i) * yMultiplier + list->template.upText_Y;
+ if (list->template.itemPrintFunc != NULL)
+ list->template.itemPrintFunc(list, list->template.items[startIndex].index, y);
+ ListMenuPrint(list, list->template.items[startIndex].text, x, y);
+ startIndex++;
+ }
+}
+
+THUMB_FUNC void ListMenuDrawCursor(struct ListMenu * list)
+{
+ u8 yMultiplier = GetFontAttribute(list->template.fontId, 1) + list->template.itemVerticalPadding;
+ u8 x = list->template.cursor_X;
+ u8 y = list->itemsAbove * yMultiplier + list->template.upText_Y;
+ switch (list->template.cursorKind)
+ {
+ case 0:
+ ListMenuUpdateCursorObj(list->cursor, list->template.window, x, y);
+ break;
+ case 1:
+ case 2: // leftover
+ case 3: // leftover
+ break;
+ }
+}
+
+THUMB_FUNC void ListMenuErasePrintedCursor(struct ListMenu * list, u16 itemsAbove)
+{
+ switch (list->template.cursorKind)
+ {
+ case 0:
+ u8 yMultiplier = GetFontAttribute(list->template.fontId, 1) + list->template.itemVerticalPadding;
+ u8 width = 8;
+ u8 height = 16;
+ FillWindowPixelRect(list->template.window,
+ list->template.fillValue,
+ list->template.cursor_X,
+ itemsAbove * yMultiplier + list->template.upText_Y,
+ width,
+ height);
+ break;
+ case 1:
+ case 2: // leftover
+ case 3: // leftover
+ break;
+ }
+}
+
+THUMB_FUNC u8 ListMenuUpdateSelectedRowIndexAndScrollOffset(struct ListMenu *list, u8 movingDown)
+{
+ u32 cursorPos;
+ u16 itemsAbove;
+ u16 newRow;
+
+ itemsAbove = list->itemsAbove;
+ cursorPos = list->cursorPos;
+
+ if (!movingDown)
+ {
+ if (list->template.maxShowed == 1)
+ newRow = 0;
+ else
+ newRow = list->template.maxShowed - ((list->template.maxShowed / 2) + (list->template.maxShowed % 2)) - 1;
+
+ if (cursorPos == 0)
+ {
+ while (itemsAbove != 0)
+ {
+ itemsAbove--;
+ if (list->template.items[cursorPos + itemsAbove].index != LIST_HEADER)
+ {
+ list->itemsAbove = itemsAbove;
+ return 1;
+ }
+ }
+ return 0;
+ }
+ else
+ {
+ while (itemsAbove > newRow)
+ {
+ itemsAbove--;
+ if (list->template.items[cursorPos + itemsAbove].index != LIST_HEADER)
+ {
+ list->itemsAbove = itemsAbove;
+ return 1;
+ }
+ }
+ list->itemsAbove = newRow;
+ list->cursorPos = cursorPos - 1;
+ }
+ }
+ else
+ {
+ if (list->template.maxShowed == 1)
+ newRow = 0;
+ else
+ newRow = ((list->template.maxShowed / 2) + (list->template.maxShowed % 2));
+
+ if (cursorPos == list->template.totalItems - list->template.maxShowed)
+ {
+ while (itemsAbove < list->template.maxShowed - 1)
+ {
+ itemsAbove++;
+ if (list->template.items[cursorPos + itemsAbove].index != LIST_HEADER)
+ {
+ list->itemsAbove = itemsAbove;
+ return 1;
+ }
+ }
+ return 0;
+ }
+ else
+ {
+ while (itemsAbove < newRow)
+ {
+ itemsAbove++;
+ if (list->template.items[cursorPos + itemsAbove].index != LIST_HEADER)
+ {
+ list->itemsAbove = itemsAbove;
+ return 1;
+ }
+ }
+ list->itemsAbove = newRow;
+ list->cursorPos = cursorPos + 1;
+ }
+ }
+ return 2;
+}
diff --git a/arm9/src/script_buffers.c b/arm9/src/script_buffers.c
index e9a55051..55ceca6a 100644
--- a/arm9/src/script_buffers.c
+++ b/arm9/src/script_buffers.c
@@ -22,7 +22,7 @@ extern void StrAddChar(struct String * str, u16 val);
extern void * FUN_02006BB0(NarcId, s32, s32, struct UnkStruct_0200B870_sub **, u32);
extern BOOL UncompressFromNarc(NarcId narcId, s32 memberNo, BOOL a2, u32 heap_id, BOOL a4);
extern void FUN_02019658(int, u8 *, u16, u16, u16, u16, u16, u16, u16, u16);
-extern void FUN_020196F4(int, u8, u16, u16, u16, u16);
+extern void FillWindowPixelRect(int, u8, u16, u16, u16, u16);
const u16 UNK_020ECE6C[][2] = {
{ 0x0140, 0x0008 },
@@ -819,7 +819,7 @@ void FUN_0200B9EC(struct UnkStruct_0200B870 * string, u32 value, u32 n, enum Pri
}
else
{
- FUN_020196F4(sp30, (u8)string->unk_28, (u16)r5, (u16)r7, 8, 8);
+ FillWindowPixelRect(sp30, (u8)string->unk_28, (u16)r5, (u16)r7, 8, 8);
}
r5 += 8;
}
diff --git a/include/list_menu.h b/include/list_menu.h
index 0be1a32a..966a942a 100644
--- a/include/list_menu.h
+++ b/include/list_menu.h
@@ -29,7 +29,7 @@ struct ListMenuItem
// 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 Window *, s32, u8);
+typedef void (*LM_ITEMPRINTFUNC)(struct ListMenu *, s32, u8);
struct ListMenuTemplate
{
@@ -50,7 +50,7 @@ struct ListMenuTemplate
u16 itemVerticalPadding:4;
u16 scrollMultiple:2;
u16 fontId:6;
- u16 unk_1B_7:1;
+ u16 cursorKind:1;
/*0x1C*/ u32 unk_1C;
};