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