finished list_menu

This commit is contained in:
jiangzhengwenjz
2019-07-06 16:45:21 +08:00
parent cc4d2f524c
commit 050bb93753
31 changed files with 989 additions and 2175 deletions
+1 -1
View File
@@ -17903,7 +17903,7 @@ PutMonIconOnLvlUpBox: @ 8026688
orrs r0, r1
str r0, [sp, 0x4]
adds r0, r4, 0
bl sub_80971CC
bl GetValidMonIconPalettePtr
str r0, [sp, 0x8]
add r4, sp, 0x8
ldr r0, [r4, 0x4]
+5 -5
View File
@@ -1409,7 +1409,7 @@ sub_813D844: @ 813D844
ldr r4, _0813D884 @ =gUnknown_203F37A
subs r2, r4, 0x2
adds r1, r4, 0
bl DestroyListMenu
bl DestroyListMenuTask
ldr r0, _0813D888 @ =gUnknown_203F36C
ldr r0, [r0]
ldr r0, [r0]
@@ -1688,7 +1688,7 @@ _0813DA90:
b _0813DB9E
_0813DA9E:
ldrb r0, [r7]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
adds r5, r0, 0
ldrb r0, [r7]
ldr r4, _0813DAE0 @ =gUnknown_203F37A
@@ -2504,7 +2504,7 @@ _0813E18A:
ldr r4, _0813E1F8 @ =gUnknown_203F37A
subs r2, r4, 0x2
adds r1, r4, 0
bl DestroyListMenu
bl DestroyListMenuTask
bl sub_813D8AC
bl sub_813D6F4
bl sub_813D204
@@ -2646,7 +2646,7 @@ sub_813E2B8: @ 813E2B8
ldr r4, _0813E318 @ =gUnknown_203F37A
subs r2, r4, 0x2
adds r1, r4, 0
bl DestroyListMenu
bl DestroyListMenuTask
bl sub_813D8AC
bl sub_813D6F4
bl sub_813D204
@@ -3277,7 +3277,7 @@ sub_813E7F0: @ 813E7F0
ldr r4, _0813E8C8 @ =gUnknown_203F37A
subs r2, r4, 0x2
adds r1, r4, 0
bl DestroyListMenu
bl DestroyListMenuTask
bl sub_813D8AC
bl sub_813D6F4
bl sub_813D204
+2 -2
View File
@@ -2781,7 +2781,7 @@ sub_80CBB28: @ 80CBB28
ldrh r0, [r6, 0x24]
lsls r0, 24
lsrs r0, 24
bl ListMenuHandleInput
bl ListMenu_ProcessInput
adds r4, r0, 0
movs r0, 0x2
negs r0, r0
@@ -2854,7 +2854,7 @@ sub_80CBBAC: @ 80CBBAC
lsrs r0, 24
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
ldr r0, _080CBC28 @ =gUnknown_2039A14
ldr r0, [r0]
bl Free
+21 -21
View File
@@ -1802,7 +1802,7 @@ sub_8108B8C: @ 8108B8C
adds r3, r4, 0
adds r3, 0x8
adds r2, r3
bl DestroyListMenu
bl DestroyListMenuTask
ldr r0, _08108BF0 @ =gUnknown_203AD10
ldr r0, [r0]
ldr r0, [r0]
@@ -2341,7 +2341,7 @@ _08108FA0:
_08108FE0: .4byte gUnknown_203AD10
_08108FE4:
ldrb r0, [r7]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
adds r4, r0, 0
ldrb r0, [r7]
ldr r5, _08109014 @ =gUnknown_203ACFC
@@ -2617,7 +2617,7 @@ sub_81091D0: @ 81091D0
adds r1, r2, r1
adds r3, 0x8
adds r2, r3
bl DestroyListMenu
bl DestroyListMenuTask
movs r0, 0
bl ScheduleBgCopyTilemapToVram
ldr r0, _08109290 @ =gUnknown_203AD10
@@ -2835,7 +2835,7 @@ sub_81093B8: @ 81093B8
ldrb r0, [r2]
movs r1, 0x10
movs r2, 0x1
bl sub_8107BD0
bl ListMenuSetUnkIndicatorsStructField
mov r0, r8
strh r4, [r0, 0x2]
ldr r0, _08109498 @ =gUnknown_203AD10
@@ -2931,7 +2931,7 @@ sub_81094B0: @ 81094B0
cmp r0, 0x1
beq _0810959E
ldrb r0, [r4]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
adds r5, r0, 0
ldrb r0, [r4]
ldr r3, _0810953C @ =gUnknown_203ACFC
@@ -3082,7 +3082,7 @@ _081095E8:
adds r7, r4, 0
adds r7, 0x8
adds r2, r7
bl DestroyListMenu
bl DestroyListMenuTask
movs r3, 0x2
ldrsh r0, [r6, r3]
cmp r0, r5
@@ -3160,7 +3160,7 @@ sub_810967C: @ 810967C
adds r7, r5, 0
adds r7, 0x8
adds r2, r7
bl DestroyListMenu
bl DestroyListMenuTask
movs r3, 0x2
ldrsh r0, [r6, r3]
cmp r0, r4
@@ -4213,7 +4213,7 @@ _08109F6E:
adds r6, r4, 0
adds r6, 0x8
adds r2, r6
bl DestroyListMenu
bl DestroyListMenuTask
ldrb r0, [r4, 0x6]
bl sub_8108DC8
ldrb r0, [r4, 0x6]
@@ -4304,7 +4304,7 @@ _0810A052:
adds r6, r4, 0
adds r6, 0x8
adds r2, r6
bl DestroyListMenu
bl DestroyListMenuTask
ldrb r0, [r4, 0x6]
bl sub_810842C
ldr r0, _0810A0A4 @ =gMultiuseListMenuTemplate
@@ -4519,7 +4519,7 @@ sub_810A1F8: @ 810A1F8
adds r3, r4
mov r9, r3
add r2, r9
bl DestroyListMenu
bl DestroyListMenuTask
ldrb r0, [r4, 0x6]
bl sub_8108DC8
ldrb r0, [r4, 0x6]
@@ -5497,7 +5497,7 @@ sub_810A9D4: @ 810A9D4
adds r3, r4
mov r9, r3
add r2, r9
bl DestroyListMenu
bl DestroyListMenuTask
ldrb r0, [r4, 0x6]
bl sub_8108DC8
ldrb r0, [r4, 0x6]
@@ -6212,7 +6212,7 @@ _0810B01C:
ldrb r0, [r5]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
bl sub_810AECC
bl sub_8108CB4
adds r0, r7, 0
@@ -6537,7 +6537,7 @@ _0810B29E:
adds r6, r4, 0
adds r6, 0x8
adds r2, r6
bl DestroyListMenu
bl DestroyListMenuTask
ldrb r0, [r4, 0x6]
bl sub_810842C
ldr r0, _0810B328 @ =gMultiuseListMenuTemplate
@@ -6573,7 +6573,7 @@ _0810B32C:
movs r0, 0x80
strh r0, [r1, 0x30]
ldrb r0, [r7]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
b _0810B36C
.align 2, 0
_0810B340: .4byte gMain
@@ -6583,7 +6583,7 @@ _0810B344:
ldrb r0, [r7]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
bl sub_810AECC
bl sub_8108CB4
adds r0, r6, 0
@@ -6701,7 +6701,7 @@ _0810B428:
_0810B430:
strh r0, [r1, 0x30]
ldrb r0, [r4]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
b _0810B4B0
.align 2, 0
_0810B43C: .4byte gMain
@@ -6738,7 +6738,7 @@ _0810B468:
ldrb r0, [r4]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
bl sub_810AECC
bl sub_8108CB4
adds r0, r7, 0
@@ -6817,7 +6817,7 @@ _0810B528:
strh r6, [r0, 0x2E]
strh r7, [r0, 0x30]
ldrb r0, [r5]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
b _0810B5C0
.align 2, 0
_0810B538: .4byte gMain
@@ -6854,7 +6854,7 @@ _0810B564:
ldrb r0, [r5]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
bl sub_810AECC
ldr r1, _0810B5B0 @ =gUnknown_3005E98
ldr r0, _0810B5B4 @ =ItemUseCB_Medicine
@@ -6950,7 +6950,7 @@ _0810B64E:
strh r5, [r0, 0x2E]
strh r7, [r0, 0x30]
ldrb r0, [r6]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
b _0810B6E0
.align 2, 0
_0810B65C: .4byte gMain
@@ -6989,7 +6989,7 @@ _0810B68C:
ldrb r0, [r6]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
bl sub_810AECC
ldr r0, _0810B6D4 @ =gUnknown_203AD10
ldr r1, [r0]
+7 -7
View File
@@ -1409,7 +1409,7 @@ sub_80E5204: @ 80E5204
ldr r1, _080E525C @ =0x00000263
adds r0, r1
ldrb r0, [r0]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
ldr r0, _080E5260 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
@@ -1568,7 +1568,7 @@ sub_80E5340: @ 80E5340
movs r0, 0x2
movs r2, 0x1
movs r3, 0x4
bl blit_move_info_icon
bl BlitMoveInfoIcon
ldrb r0, [r4, 0x1]
cmp r0, 0x1
bhi _080E5388
@@ -1680,27 +1680,27 @@ sub_80E5444: @ 80E5444
movs r1, 0x13
movs r2, 0x1
movs r3, 0x4
bl blit_move_info_icon
bl BlitMoveInfoIcon
movs r0, 0x1
movs r1, 0x14
movs r2, 0
movs r3, 0x4
bl blit_move_info_icon
bl BlitMoveInfoIcon
movs r0, 0x1
movs r1, 0x15
movs r2, 0
movs r3, 0x13
bl blit_move_info_icon
bl BlitMoveInfoIcon
movs r0, 0
movs r1, 0x16
movs r2, 0x1
movs r3, 0x13
bl blit_move_info_icon
bl BlitMoveInfoIcon
movs r0, 0
movs r1, 0x17
movs r2, 0x1
movs r3, 0x22
bl blit_move_info_icon
bl BlitMoveInfoIcon
movs r0, 0
bl PutWindowTilemap
movs r0, 0x1
+30 -30
View File
@@ -620,7 +620,7 @@ _08115DD4:
bl sub_81165E8
strb r0, [r5, 0x13]
ldrb r0, [r5, 0x12]
bl sub_8107180
bl RedrawListMenu
b _0811610C
.align 2, 0
_08115DE4: .4byte gUnknown_203B058
@@ -783,7 +783,7 @@ _08115EF4:
movs r0, 0
strb r0, [r1, 0x1B]
ldrb r0, [r5, 0x12]
bl sub_8107180
bl RedrawListMenu
ldrb r0, [r5, 0x13]
adds r0, 0x1
strb r0, [r5, 0x13]
@@ -870,7 +870,7 @@ _08115FB4:
ldr r0, [r5]
bl sub_81165E8
ldrb r0, [r5, 0x12]
bl sub_8107180
bl RedrawListMenu
_08115FF0:
movs r0, 0x4
strb r0, [r5, 0xC]
@@ -1139,7 +1139,7 @@ sub_81161E4: @ 81161E4
ldrb r0, [r4, 0x12]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
ldrb r0, [r4, 0x10]
bl ClearWindowTilemap
ldrb r0, [r4, 0xF]
@@ -1400,7 +1400,7 @@ _08116460:
movs r0, 0x2
bl PlaySE
ldrb r0, [r5, 0x12]
bl sub_8107180
bl RedrawListMenu
ldr r4, _081164A0 @ =gStringVar2
ldrb r0, [r5, 0x13]
lsls r0, 5
@@ -1433,7 +1433,7 @@ _081164AC:
movs r1, 0
bl sub_80FB9E4
ldrb r0, [r5, 0x12]
bl sub_8107180
bl RedrawListMenu
strb r4, [r5, 0xC]
movs r0, 0x1
b _081164C2
@@ -1972,7 +1972,7 @@ _08116916:
b _08116BF6
_0811691E:
ldrb r0, [r6, 0xE]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
adds r4, r0, 0
ldr r0, _0811696C @ =gMain
ldrh r1, [r0, 0x2E]
@@ -2301,7 +2301,7 @@ _08116BF4:
strb r0, [r6, 0x8]
_08116BF6:
ldrb r0, [r6, 0xE]
bl sub_8107180
bl RedrawListMenu
b _08116D06
_08116BFE:
bl sub_80FB9F4
@@ -2322,7 +2322,7 @@ _08116C10:
ldrb r0, [r6, 0xE]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
ldrb r0, [r6, 0xC]
bl ClearWindowTilemap
ldrb r0, [r6, 0xB]
@@ -2480,7 +2480,7 @@ sub_8116D60: @ 8116D60
movs r1, 0
bl sub_80FCD74
ldrb r0, [r4, 0xE]
bl sub_8107180
bl RedrawListMenu
ldr r5, _08116DD4 @ =gStringVar1
ldrb r0, [r4, 0xF]
lsls r0, 5
@@ -4151,7 +4151,7 @@ _08117BF4:
bl sub_81165E8
strb r0, [r5, 0x13]
ldrb r0, [r5, 0x12]
bl sub_8107180
bl RedrawListMenu
_08117C02:
movs r0, 0x2
strb r0, [r5, 0xC]
@@ -4198,7 +4198,7 @@ _08117C42:
adds r1, r0
strb r4, [r1, 0x1B]
ldrb r0, [r5, 0x12]
bl sub_8107180
bl RedrawListMenu
movs r0, 0x5
strb r0, [r5, 0x19]
ldrb r1, [r5, 0x13]
@@ -4268,7 +4268,7 @@ _08117CB2:
movs r0, 0
strb r0, [r1, 0x1B]
ldrb r0, [r5, 0x12]
bl sub_8107180
bl RedrawListMenu
ldrb r0, [r5, 0x13]
adds r0, 0x1
strb r0, [r5, 0x13]
@@ -4327,7 +4327,7 @@ _08117D3C:
ldr r0, [r5]
bl sub_81165E8
ldrb r0, [r5, 0x12]
bl sub_8107180
bl RedrawListMenu
movs r0, 0x2
strb r0, [r5, 0xC]
_08117D7C:
@@ -4398,7 +4398,7 @@ _08117DEE:
ldrb r0, [r5, 0x12]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
movs r0, 0
bl CopyBgTilemapBufferToVram
ldrb r0, [r5, 0xF]
@@ -4457,7 +4457,7 @@ _08117E80:
ldrb r0, [r5, 0x12]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
movs r0, 0
bl CopyBgTilemapBufferToVram
ldrb r0, [r5, 0xF]
@@ -4673,11 +4673,11 @@ _08118070:
bl PlaySE
_08118086:
ldrb r0, [r5, 0xE]
bl sub_8107180
bl RedrawListMenu
b _08118288
_0811808E:
ldrb r0, [r5, 0xE]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
adds r2, r0, 0
ldr r0, _08118128 @ =gMain
ldrh r1, [r0, 0x2E]
@@ -4707,7 +4707,7 @@ _0811808E:
movs r1, 0
bl sub_80FCD74
ldrb r0, [r5, 0xE]
bl sub_8107180
bl RedrawListMenu
ldr r4, _0811812C @ =gStringVar1
ldrb r0, [r5, 0xF]
lsls r0, 5
@@ -4842,7 +4842,7 @@ _081181EC:
ldrb r0, [r5, 0xE]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
movs r0, 0
bl CopyBgTilemapBufferToVram
ldrb r0, [r5, 0xD]
@@ -5085,14 +5085,14 @@ _0811841E:
b _08118604
_08118426:
ldrb r0, [r5, 0xE]
bl sub_8107180
bl RedrawListMenu
b _08118604
_0811842E:
ldrb r0, [r5, 0x13]
cmp r0, 0
beq _0811843A
ldrb r0, [r5, 0xE]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
_0811843A:
ldrb r0, [r5, 0x14]
cmp r0, 0x78
@@ -5242,7 +5242,7 @@ _08118564:
ldrb r0, [r5, 0xE]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
movs r0, 0
bl CopyBgTilemapBufferToVram
ldrb r0, [r5, 0xB]
@@ -8715,7 +8715,7 @@ _0811A270: .4byte gMultiuseListMenuTemplate
_0811A274:
mov r3, r9
ldrb r0, [r3]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
mov r8, r0
ldr r0, _0811A2AC @ =gMain
ldrh r1, [r0, 0x2E]
@@ -8726,7 +8726,7 @@ _0811A274:
ldrb r0, [r4]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
ldrb r0, [r5]
movs r1, 0x1
bl ClearStdWindowAndFrame
@@ -8747,7 +8747,7 @@ _0811A2B0:
ldrb r0, [r6]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
ldrb r0, [r5]
movs r1, 0x1
bl ClearStdWindowAndFrame
@@ -8821,7 +8821,7 @@ _0811A350: .4byte gUnknown_8456F1C
_0811A354: .4byte gMultiuseListMenuTemplate
_0811A358:
ldrb r0, [r5]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
adds r1, r0, 0
ldr r0, _0811A3A8 @ =gMain
ldrh r2, [r0, 0x2E]
@@ -8842,7 +8842,7 @@ _0811A37E:
ldrb r0, [r5]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
ldrb r0, [r4]
movs r1, 0x1
bl ClearStdWindowAndFrame
@@ -8867,7 +8867,7 @@ _0811A3AC:
ldrb r0, [r5]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
ldrb r0, [r4]
movs r1, 0x1
bl ClearStdWindowAndFrame
@@ -9999,7 +9999,7 @@ _0811AC3C:
adds r0, r6, 0
movs r2, 0x44
adds r3, r5, 0
bl blit_move_info_icon
bl BlitMoveInfoIcon
movs r0, 0xB
mov r2, r8
muls r2, r0
-2019
View File
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -1134,7 +1134,7 @@ sub_80EBF40: @ 80EBF40
cmp r0, 0
bne _080EBFEA
ldrb r0, [r4, 0x16]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
adds r6, r0, 0
ldrb r0, [r4, 0x16]
ldr r7, _080EBF9C @ =gUnknown_203AAC6
@@ -1174,7 +1174,7 @@ _080EBFB6:
ldrb r0, [r4, 0x16]
adds r1, r7, 0
mov r2, r8
bl DestroyListMenu
bl DestroyListMenuTask
movs r0, 0
bl ScheduleBgCopyTilemapToVram
mov r1, r8
@@ -1288,7 +1288,7 @@ sub_80EC094: @ 80EC094
ldrb r0, [r4, 0x16]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
movs r0, 0
bl ScheduleBgCopyTilemapToVram
bl sub_810EDB0
+17 -17
View File
@@ -621,7 +621,7 @@ _08102A10: .4byte gUnknown_203ACF0
_08102A14:
ldr r0, [r4]
ldrb r0, [r0, 0x17]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
ldr r1, [r4]
str r0, [r1, 0xC]
ldrb r0, [r1, 0x17]
@@ -754,7 +754,7 @@ _08102B24:
adds r1, r2, 0
adds r1, 0x12
adds r2, 0x10
bl DestroyListMenu
bl DestroyListMenuTask
movs r0, 0x20
str r0, [sp]
movs r0, 0x14
@@ -804,7 +804,7 @@ _08102B94:
adds r1, r2, 0
adds r1, 0x12
adds r2, 0x10
bl DestroyListMenu
bl DestroyListMenuTask
movs r0, 0x1
bl HideBg
ldr r0, [r4]
@@ -832,7 +832,7 @@ _08102BD8:
adds r1, r2, 0
adds r1, 0x12
adds r2, 0x10
bl DestroyListMenu
bl DestroyListMenuTask
movs r0, 0x1
bl HideBg
ldr r0, [r4]
@@ -1238,7 +1238,7 @@ _08102F60:
movs r0, 0x1
movs r1, 0
movs r2, 0x3
bl sub_8107A9C
bl ListMenuOverrideSetColors
b _08102F7A
.align 2, 0
_08102F6C: .4byte gUnknown_203ACF0
@@ -1246,7 +1246,7 @@ _08102F70:
movs r0, 0xA
movs r1, 0
movs r2, 0xB
bl sub_8107A9C
bl ListMenuOverrideSetColors
_08102F7A:
pop {r0}
bx r0
@@ -1379,7 +1379,7 @@ _08103098:
ldr r0, [r4]
adds r0, 0x41
ldrb r0, [r0]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
ldr r1, [r4]
str r0, [r1, 0x30]
ldrb r0, [r1, 0x17]
@@ -1700,7 +1700,7 @@ _08103362:
ldr r0, [r4]
adds r0, 0x41
ldrb r0, [r0]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
ldr r1, [r4]
str r0, [r1, 0x30]
ldrb r0, [r1, 0x17]
@@ -2433,7 +2433,7 @@ _08103964:
ldrh r3, [r0, 0x3C]
_0810396E:
adds r0, r5, 0
bl Unused_ListMenuInit2
bl ListMenuInitInRect
ldr r1, [r4]
adds r1, 0x41
strb r0, [r1]
@@ -2467,7 +2467,7 @@ _0810399C:
adds r1, r2, 0
adds r1, 0x36
adds r2, 0x34
bl DestroyListMenu
bl DestroyListMenuTask
b _081039E8
.align 2, 0
_081039B4: .4byte gUnknown_203ACF0
@@ -2480,7 +2480,7 @@ _081039B8:
adds r1, r2, 0
adds r1, 0x3A
adds r2, 0x38
bl DestroyListMenu
bl DestroyListMenuTask
b _081039E8
.align 2, 0
_081039D0: .4byte gUnknown_203ACF0
@@ -2493,7 +2493,7 @@ _081039D4:
adds r1, r2, 0
adds r1, 0x3E
adds r2, 0x3C
bl DestroyListMenu
bl DestroyListMenuTask
_081039E8:
pop {r0}
bx r0
@@ -2572,7 +2572,7 @@ sub_8103A40: @ 8103A40
movs r1, 0
movs r2, 0x28
adds r3, r6, 0
bl blit_move_info_icon
bl BlitMoveInfoIcon
ldr r0, _08103AC4 @ =gBaseStats
lsls r4, r5, 3
subs r4, r5
@@ -2587,7 +2587,7 @@ sub_8103A40: @ 8103A40
lsrs r1, 24
movs r2, 0x78
adds r3, r6, 0
bl blit_move_info_icon
bl BlitMoveInfoIcon
ldrb r1, [r4, 0x7]
cmp r5, r1
beq _08103AB6
@@ -2599,7 +2599,7 @@ sub_8103A40: @ 8103A40
lsrs r1, 24
movs r2, 0x98
adds r3, r6, 0
bl blit_move_info_icon
bl BlitMoveInfoIcon
_08103AB6:
add sp, 0x4
pop {r4-r7}
@@ -7753,7 +7753,7 @@ _08106478:
lsrs r1, 24
movs r2, 0
movs r3, 0x1
bl blit_move_info_icon
bl BlitMoveInfoIcon
ldrb r1, [r4, 0x7]
cmp r5, r1
beq _08106504
@@ -7765,7 +7765,7 @@ _08106478:
lsrs r1, 24
movs r2, 0x20
movs r3, 0x1
bl blit_move_info_icon
bl BlitMoveInfoIcon
_08106504:
ldr r7, _081066B8 @ =gUnknown_203ACF0
ldr r0, [r7]
+3 -3
View File
@@ -519,8 +519,8 @@ _080971C0:
_080971C8: .4byte gUnknown_83D4038
thumb_func_end sub_8097198
thumb_func_start sub_80971CC
sub_80971CC: @ 80971CC
thumb_func_start GetValidMonIconPalettePtr
GetValidMonIconPalettePtr: @ 80971CC
push {lr}
lsls r0, 16
lsrs r2, r0, 16
@@ -542,7 +542,7 @@ _080971DC:
.align 2, 0
_080971F0: .4byte gUnknown_83D4038
_080971F4: .4byte gUnknown_83D3E80
thumb_func_end sub_80971CC
thumb_func_end GetValidMonIconPalettePtr
thumb_func_start sub_80971F8
sub_80971F8: @ 80971F8
+6 -6
View File
@@ -6636,7 +6636,7 @@ _08137CA4:
adds r3, r2
lsrs r3, 16
movs r2, 0x3
bl blit_move_info_icon
bl BlitMoveInfoIcon
_08137CDE:
adds r0, r4, 0x1
lsls r0, 24
@@ -6660,7 +6660,7 @@ _08137CDE:
lsrs r1, 24
movs r2, 0x3
movs r3, 0x75
bl blit_move_info_icon
bl BlitMoveInfoIcon
_08137D0E:
pop {r4,r5}
pop {r0}
@@ -8325,7 +8325,7 @@ _08138A62:
lsrs r1, 24
movs r2, 0x2F
movs r3, 0x23
bl blit_move_info_icon
bl BlitMoveInfoIcon
ldr r1, [r6]
adds r4, r1, r4
ldr r3, _08138AB8 @ =0x00003221
@@ -8342,7 +8342,7 @@ _08138A62:
lsrs r1, 24
movs r2, 0x53
movs r3, 0x23
bl blit_move_info_icon
bl BlitMoveInfoIcon
b _08138B0E
.align 2, 0
_08138AB0: .4byte 0x00003003
@@ -8365,7 +8365,7 @@ _08138ABC:
lsrs r1, 24
movs r2, 0
movs r3, 0x3
bl blit_move_info_icon
bl BlitMoveInfoIcon
ldr r2, [r6]
adds r4, r2, r4
ldr r1, _08138B1C @ =0x00003221
@@ -8381,7 +8381,7 @@ _08138ABC:
lsrs r1, 24
movs r2, 0x24
movs r3, 0x3
bl blit_move_info_icon
bl BlitMoveInfoIcon
_08138B04:
ldr r0, [r6]
adds r0, r5
+2 -2
View File
@@ -2164,7 +2164,7 @@ sub_809BBC0: @ 809BBC0
cmp r0, 0
bne _0809BC8E
ldrb r0, [r5, 0xE]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
adds r4, r0, 0
ldrb r0, [r5, 0xE]
ldr r7, _0809BC08 @ =gUnknown_2039942
@@ -2691,7 +2691,7 @@ sub_809C04C: @ 809C04C
ldrb r0, [r2, 0xE]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
bl sub_809B604
ldr r0, _0809C090 @ =CB2_ReturnToField
bl SetMainCallback2
+2
View File
@@ -0,0 +1,2 @@
gListMenuOverride
gMultiuseListMenuTemplate
+1 -2
View File
@@ -759,8 +759,7 @@ gUnknown_84524C4:: @ 84524C4
gUnknown_8452C4C:: @ 8452C4C
.incbin "baserom.gba", 0x452C4C, 0x48
gUnknown_8452C94:: @ 8452C94
.incbin "baserom.gba", 0x452C94, 0x60
.section .rodata.8452CF4
gUnknown_8452CF4:: @ 8452CF4
.incbin "baserom.gba", 0x452CF4, 0x8
+6 -6
View File
@@ -16029,14 +16029,14 @@ gFile_graphics_mail_retro_map_tilemap:: @ 8E95C88
.incbin "graphics/mail/retro/map.bin.lz"
.align 2
gUnknown_8E95D9C:: @ 8E95D9C
.incbin "baserom.gba", 0xE95D9C, 0x20 @UNKNOWN
gFireRedMenuElements1_Pal:: @ 8E95D9C
.incbin "graphics/interface/menu1.gbapal"
gUnknown_8E95DBC:: @ 8E95DBC
.incbin "baserom.gba", 0xE95DBC, 0x20 @UNKNOWN
gFireRedMenuElements2_Pal:: @ 8E95DBC
.incbin "graphics/interface/menu2.gbapal"
gUnknown_8E95DDC:: @ 8E95DDC
.incbin "baserom.gba", 0xE95DDC, 0x2000 @UNKNOWN
gFireRedMenuElements_Gfx:: @ 8E95DDC
.incbin "graphics/interface/menu.4bpp"
gUnknown_8E97DDC:: @ 8E97DDC
.incbin "baserom.gba", 0xE97DDC, 0x20 @UNKNOWN
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
123 156 131
238 238 238
0 0 0
213 213 189
172 164 123
255 131 123
238 49 0
222 49 16
197 49 41
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
123 156 131
238 49 0
246 131 49
255 180 16
222 230 49
123 205 82
156 222 222
106 148 246
164 65 164
172 172 123
222 222 197
189 164 57
255 90 139
82 123 139
65 65 65
255 255 255
+3
View File
@@ -32,6 +32,9 @@ extern const u8 gInterfacePal_LuxuryBall[];
extern const u8 gInterfaceGfx_PremierBall[];
extern const u8 gInterfacePal_PremierBall[];
extern const u8 gOpenPokeballGfx[];
extern const u8 gFireRedMenuElements_Gfx[];
extern const u16 gFireRedMenuElements1_Pal[];
extern const u16 gFireRedMenuElements2_Pal[];
extern const u8 gItemIcon_QuestionMark[];
extern const u8 gItemIconPalette_QuestionMark[];
+10 -12
View File
@@ -70,20 +70,18 @@ struct ListMenuWindowRect
u8 palNum;
};
extern struct ListMenuTemplate gUnknown_03006310;
extern struct ListMenuTemplate gMultiuseListMenuTemplate;
// Exported ROM declarations
u8 ListMenuInit(struct ListMenuTemplate *template, u16 a1, u16 a2);
s32 ListMenuHandleInput(u8 id);
void ListMenuGetScrollAndRow(u8 a0, u16 *a1, u16 *a2);
void sub_81AE6C8(u8 a0, u16 *a1, u16 *a2);
void DestroyListMenu(u8, u16 *, u16 *);
u16 ListMenuGetYCoordForPrintingArrowCursor(u8);
void sub_8107D38(u8, u8);
s32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const struct ListMenuTemplate *listMenuTemplate, u8 arg2, u16 tileNum, u16 palNum);
void ListMenuDefaultCursorMoveFunc(s32, u8, struct ListMenu *);
void sub_8107BD0(u8 taskId, u8 attr, s32 value);
u8 ListMenuInit(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16 selectedRow);
u8 ListMenuInitInRect(struct ListMenuTemplate *listMenuTemplate, struct ListMenuWindowRect *rect, u16 scrollOffset, u16 selectedRow);
s32 ListMenu_ProcessInput(u8 listTaskId);
void DestroyListMenuTask(u8 listTaskId, u16 *scrollOffset, u16 *selectedRow);
void RedrawListMenu(u8 listTaskId);
void ListMenuGetScrollAndRow(u8 listTaskId, u16 *scrollOffset, u16 *selectedRow);
u16 ListMenuGetYCoordForPrintingArrowCursor(u8 listTaskId);
void ListMenuOverrideSetColors(u8 cursorPal, u8 fillValue, u8 cursorShadowPal);
void ListMenuDefaultCursorMoveFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list);
void ListMenuSetUnkIndicatorsStructField(u8 taskId, u8 field, s32 value);
#endif //GUARD_LIST_MENU_H
+5 -2
View File
@@ -27,12 +27,10 @@ void InitMenuInUpperLeftCornerPlaySoundWhenAPressed(u8 idx, u8 nstrs,u8);
u8 GetMenuCursorPos(void);
s8 ProcessMenuInput(void);
s8 ProcessMenuInputNoWrapAround(void);
void blit_move_info_icon(u8 winId, u8 a2, u16 x, u16 y);
void ResetTempTileDataBuffers(void);
void *DecompressAndCopyTileDataToVram(u8 bg_id, const void *src, u32 size, u16 offset, u8 mode);
bool8 FreeTempTileDataBuffersIfPossible(void);
u64 sub_8198A50(struct WindowTemplate*, u8, u8, u8, u8, u8, u8, u16); // returns something but it isn't used, fix when menu.s is decomp'd
//void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos);
s8 Menu_ProcessInputNoWrapClearOnChoose(void);
void DoScheduledBgTilemapCopiesToVram(void);
void ClearScheduledBgCopiesToVram(void);
@@ -54,4 +52,9 @@ void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 l
void ClearMenuWindow_BorderThickness2(u8 windowId, u8 a1);
void PrintTextArray(u8, u8, u8, u8, u8, u8, const struct MenuAction *);
void sub_8107CD8(u8 palOffset, u16 speciesId);
void sub_8107CF8(u8 windowId, u16 speciesId, u32 personality, u16 x, u16 y);
void sub_8107D38(u8, u8);
void BlitMoveInfoIcon(u8 windowId, u8 iconId, u16 x, u16 y);
#endif // GUARD_MENU_H
+2
View File
@@ -77,5 +77,7 @@ u8 ListMenuAddCursorObjectInternal(struct CursorStruct *cursor, u32 cursorKind);
u8 ListMenuAddRedOutlineCursorObject(struct CursorStruct *cursor);
void ListMenuUpdateRedOutlineCursorObject(u8 taskId, u16 x, u16 y);
void ListMenuRemoveRedOutlineCursorObject(u8 taskId);
void ListMenuRemoveCursorObject(u8 taskId, u32 cursorKind);
void ListMenuUpdateCursorObject(u8 taskId, u16 x, u16 y, u32 cursorKind);
#endif //GUARD_MENU_INDICATORS_H
+3 -1
View File
@@ -226,7 +226,7 @@ SECTIONS {
asm/link_rfu_2.o(.text);
asm/link_rfu.o(.text);
asm/pokedex_screen.o(.text);
asm/list_menu.o(.text);
src/list_menu.o(.text);
asm/item_menu.o(.text);
src/save_location.o(.text);
src/bag.o(.text);
@@ -424,6 +424,8 @@ SECTIONS {
data/data_83FECCC.o(.rodata.841EE44);
src/new_menu_helpers.o(.rodata);
data/data_83FECCC.o(.rodata.841F4B4);
src/list_menu.o(.rodata);
data/data_83FECCC.o(.rodata.8452CF4);
src/save_location.o(.rodata);
src/bag.o(.rodata);
src/trainer_pokemon_sprites.o(.rodata);
+3 -3
View File
@@ -1533,7 +1533,7 @@ static void DaycarePrintMonInfo(u8 windowId, s32 daycareSlotId, u8 y)
static void Task_HandleDaycareLevelMenuInput(u8 taskId)
{
u32 input = ListMenuHandleInput(gTasks[taskId].tMenuListTaskId);
u32 input = ListMenu_ProcessInput(gTasks[taskId].tMenuListTaskId);
if (gMain.newKeys & A_BUTTON)
{
@@ -1547,7 +1547,7 @@ static void Task_HandleDaycareLevelMenuInput(u8 taskId)
gSpecialVar_Result = 2;
break;
}
DestroyListMenu(gTasks[taskId].tMenuListTaskId, NULL, NULL);
DestroyListMenuTask(gTasks[taskId].tMenuListTaskId, NULL, NULL);
ClearStdWindowAndFrame(gTasks[taskId].tWindowId, TRUE);
RemoveWindow(gTasks[taskId].tWindowId);
DestroyTask(taskId);
@@ -1556,7 +1556,7 @@ static void Task_HandleDaycareLevelMenuInput(u8 taskId)
else if (gMain.newKeys & B_BUTTON)
{
gSpecialVar_Result = 2;
DestroyListMenu(gTasks[taskId].tMenuListTaskId, NULL, NULL);
DestroyListMenuTask(gTasks[taskId].tMenuListTaskId, NULL, NULL);
ClearStdWindowAndFrame(gTasks[taskId].tWindowId, TRUE);
RemoveWindow(gTasks[taskId].tWindowId);
DestroyTask(taskId);
+3 -3
View File
@@ -580,7 +580,7 @@ static void Task_TopMenuHandleInput(u8 taskId)
}
else if (JOY_NEW(A_BUTTON))
{
cursorPos = ListMenuHandleInput(0);
cursorPos = ListMenu_ProcessInput(0);
if (cursorPos == sFameCheckerData->numUnlockedPersons - 1) // CANCEL
task->func = Task_StartToCloseFameChecker;
else if (sFameCheckerData->inPickMode)
@@ -615,7 +615,7 @@ static void Task_TopMenuHandleInput(u8 taskId)
task->func = Task_StartToCloseFameChecker;
}
else
ListMenuHandleInput(0);
ListMenu_ProcessInput(0);
}
}
@@ -853,7 +853,7 @@ static void Task_DestroyAssetsAndCloseFameChecker(u8 taskId)
FreeQuestionMarkSpriteResources();
FreeListMenuSelectorArrowPairResources();
SetMainCallback2(sFameCheckerData->savedCallback);
DestroyListMenu(sFameCheckerData->listMenuTaskId, NULL, NULL);
DestroyListMenuTask(sFameCheckerData->listMenuTaskId, NULL, NULL);
Free(sBg3TilemapBuffer);
Free(sBg1TilemapBuffer);
Free(sBg2TilemapBuffer);
+7 -7
View File
@@ -653,7 +653,7 @@ static void Task_ItemPcTurnOff2(u8 taskId)
if (!gPaletteFade.active && !sub_80A0AAC())
{
DestroyListMenu(data[0], &sListMenuState.scroll, &sListMenuState.row);
DestroyListMenuTask(data[0], &sListMenuState.scroll, &sListMenuState.row);
if (sStateDataPtr->savedCallback != NULL)
SetMainCallback2(sStateDataPtr->savedCallback);
else
@@ -737,7 +737,7 @@ static void Task_ItemPcMain(u8 taskId)
return;
}
}
input = ListMenuHandleInput(data[0]);
input = ListMenu_ProcessInput(data[0]);
ListMenuGetScrollAndRow(data[0], &sListMenuState.scroll, &sListMenuState.row);
switch (input)
{
@@ -772,7 +772,7 @@ static void ItemPc_MoveItemModeInit(u8 taskId, s16 pos)
{
s16 * data = gTasks[taskId].data;
sub_8107BD0(data[0], 16, 1);
ListMenuSetUnkIndicatorsStructField(data[0], 16, 1);
data[1] = pos;
sStateDataPtr->moveModeOrigPos = pos;
StringCopy(gStringVar1, ItemId_GetName(ItemPc_GetItemIdBySlotId(data[1])));
@@ -789,7 +789,7 @@ static void Task_ItemPcMoveItemModeRun(u8 taskId)
{
s16 * data = gTasks[taskId].data;
ListMenuHandleInput(data[0]);
ListMenu_ProcessInput(data[0]);
ListMenuGetScrollAndRow(data[0], &sListMenuState.scroll, &sListMenuState.row);
sub_80986A8(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0]));
if (JOY_NEW(A_BUTTON | SELECT_BUTTON))
@@ -814,7 +814,7 @@ static void ItemPc_InsertItemIntoNewSlot(u8 taskId, u32 pos)
else
{
ItemMenu_MoveItemSlotToNewPositionInArray(gSaveBlock1Ptr->pcItems, data[1], pos);
DestroyListMenu(data[0], &sListMenuState.scroll, &sListMenuState.row);
DestroyListMenuTask(data[0], &sListMenuState.scroll, &sListMenuState.row);
if (data[1] < pos)
sListMenuState.row--;
ItemPc_BuildListMenuTemplate();
@@ -828,7 +828,7 @@ static void ItemPc_MoveItemModeCancel(u8 taskId, u32 pos)
{
s16 * data = gTasks[taskId].data;
DestroyListMenu(data[0], &sListMenuState.scroll, &sListMenuState.row);
DestroyListMenuTask(data[0], &sListMenuState.scroll, &sListMenuState.row);
if (data[1] < pos)
sListMenuState.row--;
ItemPc_BuildListMenuTemplate();
@@ -947,7 +947,7 @@ static void Task_ItemPcCleanUpWithdraw(u8 taskId)
ItemPc_DestroySubwindow(2);
PutWindowTilemap(1);
DestroyListMenu(data[0], &sListMenuState.scroll, &sListMenuState.row);
DestroyListMenuTask(data[0], &sListMenuState.scroll, &sListMenuState.row);
ItemPc_CountPcItems();
ItemPc_SetCursorPosition();
ItemPc_BuildListMenuTemplate();
+790
View File
@@ -0,0 +1,790 @@
#include "global.h"
#include "menu.h"
#include "list_menu.h"
#include "menu_indicators.h"
#include "new_menu_helpers.h"
#include "window.h"
#include "text_window.h"
#include "main.h"
#include "task.h"
#include "graphics.h"
#include "decompress.h"
#include "palette.h"
#include "malloc.h"
#include "strings.h"
#include "sound.h"
#include "pokemon_icon.h"
#include "constants/songs.h"
struct UnkIndicatorsStruct
{
u8 field_0;
u16 *field_4;
u16 field_8;
u16 field_A;
u16 field_C;
u16 field_E;
u8 field_10;
u8 field_11;
u8 field_12;
u8 field_13;
u8 field_14_0:4;
u8 field_14_1:4;
u8 field_15_0:4;
u8 field_15_1:4;
u8 field_16_0:3;
u8 field_16_1:3;
u8 field_16_2:2;
u8 field_17_0:6;
u8 field_17_1:2;
};
struct MysteryGiftLinkMenuStruct
{
s32 currItemId;
u8 state;
u8 windowId;
u8 listTaskId;
};
struct ListMenuOverride
{
u8 cursorPal:4;
u8 fillValue:4;
u8 cursorShadowPal:4;
u8 lettersSpacing:6;
u8 field_2_2:6; // unused
u8 fontId:7;
bool8 enabled:1;
};
struct MoveMenuInfoIcon
{
u8 width;
u8 height;
u16 offset;
};
static EWRAM_DATA struct MysteryGiftLinkMenuStruct sMysteryGiftLinkMenu = {0};
struct ListMenuOverride gListMenuOverride;
struct ListMenuTemplate gMultiuseListMenuTemplate;
static u8 ListMenuInitInternal(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16 selectedRow);
static bool8 ListMenuChangeSelection(struct ListMenu *list, bool8 updateCursorAndCallCallback, u8 count, bool8 movingDown);
static void ListMenuPrintEntries(struct ListMenu *list, u16 startIndex, u16 yOffset, u16 count);
static void ListMenuDrawCursor(struct ListMenu *list);
static void ListMenuCallSelectionChangedCallback(struct ListMenu *list, u8 onInit);
static u8 ListMenuAddCursorObject(struct ListMenu *list, u32 cursorKind);
const struct MoveMenuInfoIcon gMoveMenuInfoIcons[] =
{
{ 12, 12, 0x00 }, // Unused
{ 32, 12, 0x20 }, // Normal icon
{ 32, 12, 0x64 }, // Fight icon
{ 32, 12, 0x60 }, // Flying icon
{ 32, 12, 0x80 }, // Poison icon
{ 32, 12, 0x48 }, // Ground icon
{ 32, 12, 0x44 }, // Rock icon
{ 32, 12, 0x6C }, // Bug icon
{ 32, 12, 0x68 }, // Ghost icon
{ 32, 12, 0x88 }, // Steel icon
{ 32, 12, 0xA4 }, // ??? (Mystery) icon
{ 32, 12, 0x24 }, // Fire icon
{ 32, 12, 0x28 }, // Water icon
{ 32, 12, 0x2C }, // Grass icon
{ 32, 12, 0x40 }, // Electric icon
{ 32, 12, 0x84 }, // Psychic icon
{ 32, 12, 0x4C }, // Ice icon
{ 32, 12, 0xA0 }, // Dragon icon
{ 32, 12, 0x8C }, // Dark icon
{ 40, 12, 0xA8 }, // -Type- icon
{ 40, 12, 0xC0 }, // -Power- icon
{ 40, 12, 0xC8 }, // -Accuracy- icon
{ 40, 12, 0xE0 }, // -PP- icon
{ 40, 12, 0xE8 }, // -Effect- icon
};
static void ListMenuDummyTask(u8 taskId)
{
}
s32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const struct ListMenuTemplate *listMenuTemplate, u8 arg2, u16 tileNum, u16 palNum)
{
switch (sMysteryGiftLinkMenu.state)
{
case 0:
default:
sMysteryGiftLinkMenu.windowId = AddWindow(windowTemplate);
switch (arg2)
{
case 2:
TextWindow_SetUserSelectedFrame(sMysteryGiftLinkMenu.windowId, tileNum, palNum);
case 1:
DrawTextBorderOuter(sMysteryGiftLinkMenu.windowId, tileNum, palNum / 16);
break;
}
gMultiuseListMenuTemplate = *listMenuTemplate;
gMultiuseListMenuTemplate.windowId = sMysteryGiftLinkMenu.windowId;
sMysteryGiftLinkMenu.listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0);
CopyWindowToVram(sMysteryGiftLinkMenu.windowId, 1);
sMysteryGiftLinkMenu.state = 1;
break;
case 1:
sMysteryGiftLinkMenu.currItemId = ListMenu_ProcessInput(sMysteryGiftLinkMenu.listTaskId);
if (gMain.newKeys & A_BUTTON)
{
sMysteryGiftLinkMenu.state = 2;
}
if (gMain.newKeys & B_BUTTON)
{
sMysteryGiftLinkMenu.currItemId = LIST_CANCEL;
sMysteryGiftLinkMenu.state = 2;
}
if (sMysteryGiftLinkMenu.state == 2)
{
if (!arg2)
{
ClearWindowTilemap(sMysteryGiftLinkMenu.windowId);
}
else
{
switch (arg2)
{
case 0: // can never be reached, because of the if statement above
ClearStdWindowAndFrame(sMysteryGiftLinkMenu.windowId, FALSE);
break;
case 2:
case 1:
ClearStdWindowAndFrame(sMysteryGiftLinkMenu.windowId, FALSE);
break;
}
}
CopyWindowToVram(sMysteryGiftLinkMenu.windowId, 1);
}
break;
case 2:
DestroyListMenuTask(sMysteryGiftLinkMenu.listTaskId, NULL, NULL);
RemoveWindow(sMysteryGiftLinkMenu.windowId);
sMysteryGiftLinkMenu.state = 0;
return sMysteryGiftLinkMenu.currItemId;
}
return LIST_NOTHING_CHOSEN;
}
u8 ListMenuInit(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16 selectedRow)
{
u8 taskId = ListMenuInitInternal(listMenuTemplate, scrollOffset, selectedRow);
PutWindowTilemap(listMenuTemplate->windowId);
CopyWindowToVram(listMenuTemplate->windowId, 2);
return taskId;
}
u8 ListMenuInitInRect(struct ListMenuTemplate *listMenuTemplate, struct ListMenuWindowRect *rect, u16 scrollOffset, u16 selectedRow)
{
s32 i;
u8 taskId = ListMenuInitInternal(listMenuTemplate, scrollOffset, selectedRow);
for (i = 0; rect[i].palNum != 0xFF; i++)
PutWindowRectTilemapOverridePalette(listMenuTemplate->windowId, rect[i].x, rect[i].y, rect[i].width, rect[i].height, rect[i].palNum);
CopyWindowToVram(listMenuTemplate->windowId, 2);
return taskId;
}
s32 ListMenu_ProcessInput(u8 listTaskId)
{
struct ListMenu *list = (struct ListMenu *)gTasks[listTaskId].data;
if (gMain.newKeys & A_BUTTON)
{
return list->template.items[list->scrollOffset + list->selectedRow].index;
}
else if (gMain.newKeys & B_BUTTON)
{
return LIST_CANCEL;
}
else if (gMain.newAndRepeatedKeys & DPAD_UP)
{
ListMenuChangeSelection(list, TRUE, 1, FALSE);
return LIST_NOTHING_CHOSEN;
}
else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
{
ListMenuChangeSelection(list, TRUE, 1, TRUE);
return LIST_NOTHING_CHOSEN;
}
else // try to move by one window scroll
{
bool16 rightButton, leftButton;
switch (list->template.scrollMultiple)
{
case LIST_NO_MULTIPLE_SCROLL:
default:
leftButton = FALSE;
rightButton = FALSE;
break;
case LIST_MULTIPLE_SCROLL_DPAD:
leftButton = gMain.newAndRepeatedKeys & DPAD_LEFT;
rightButton = gMain.newAndRepeatedKeys & DPAD_RIGHT;
break;
case LIST_MULTIPLE_SCROLL_L_R:
leftButton = gMain.newAndRepeatedKeys & L_BUTTON;
rightButton = gMain.newAndRepeatedKeys & R_BUTTON;
break;
}
if (leftButton)
{
ListMenuChangeSelection(list, TRUE, list->template.maxShowed, FALSE);
return LIST_NOTHING_CHOSEN;
}
else if (rightButton)
{
ListMenuChangeSelection(list, TRUE, list->template.maxShowed, TRUE);
return LIST_NOTHING_CHOSEN;
}
else
{
return LIST_NOTHING_CHOSEN;
}
}
}
#define TASK_NONE 0xFF
void DestroyListMenuTask(u8 listTaskId, u16 *scrollOffset, u16 *selectedRow)
{
struct ListMenu *list = (struct ListMenu *)gTasks[listTaskId].data;
if (scrollOffset != NULL)
*scrollOffset = list->scrollOffset;
if (selectedRow != NULL)
*selectedRow = list->selectedRow;
if (list->taskId != TASK_NONE)
ListMenuRemoveCursorObject(list->taskId, list->template.cursorKind - 2);
DestroyTask(listTaskId);
}
void RedrawListMenu(u8 listTaskId)
{
struct ListMenu *list = (struct ListMenu *)gTasks[listTaskId].data;
FillWindowPixelBuffer(list->template.windowId, PIXEL_FILL(list->template.fillValue));
ListMenuPrintEntries(list, list->scrollOffset, 0, list->template.maxShowed);
ListMenuDrawCursor(list);
CopyWindowToVram(list->template.windowId, 2);
}
static void ChangeListMenuPals(u8 listTaskId, u8 cursorPal, u8 fillValue, u8 cursorShadowPal)
{
struct ListMenu *list = (struct ListMenu *)gTasks[listTaskId].data;
list->template.cursorPal = cursorPal;
list->template.fillValue = fillValue;
list->template.cursorShadowPal = cursorShadowPal;
}
static void ChangeListMenuCoords(u8 listTaskId, u8 x, u8 y)
{
struct ListMenu *list = (struct ListMenu *)gTasks[listTaskId].data;
SetWindowAttribute(list->template.windowId, WINDOW_TILEMAP_LEFT, x);
SetWindowAttribute(list->template.windowId, WINDOW_TILEMAP_TOP, y);
}
static s32 ListMenuTestInput(struct ListMenuTemplate *template, u32 scrollOffset, u32 selectedRow, u16 keys, u16 *newScrollOffset, u16 *newSelectedRow)
{
struct ListMenu list;
list.template = *template;
list.scrollOffset = scrollOffset;
list.selectedRow = selectedRow;
list.unk_1C = 0;
list.unk_1D = 0;
if (keys == DPAD_UP)
ListMenuChangeSelection(&list, FALSE, 1, FALSE);
if (keys == DPAD_DOWN)
ListMenuChangeSelection(&list, FALSE, 1, TRUE);
if (newScrollOffset != NULL)
*newScrollOffset = list.scrollOffset;
if (newSelectedRow != NULL)
*newSelectedRow = list.selectedRow;
return LIST_NOTHING_CHOSEN;
}
static void ListMenuGetCurrentItemArrayId(u8 listTaskId, u16 *arrayId)
{
struct ListMenu *list = (struct ListMenu *)gTasks[listTaskId].data;
if (arrayId != NULL)
*arrayId = list->scrollOffset + list->selectedRow;
}
void ListMenuGetScrollAndRow(u8 listTaskId, u16 *scrollOffset, u16 *selectedRow)
{
struct ListMenu *list = (struct ListMenu *)gTasks[listTaskId].data;
if (scrollOffset != NULL)
*scrollOffset = list->scrollOffset;
if (selectedRow != NULL)
*selectedRow = list->selectedRow;
}
u16 ListMenuGetYCoordForPrintingArrowCursor(u8 listTaskId)
{
struct ListMenu *list = (struct ListMenu *)gTasks[listTaskId].data;
u8 yMultiplier = GetFontAttribute(list->template.fontId, FONTATTR_MAX_LETTER_HEIGHT) + list->template.itemVerticalPadding;
return list->selectedRow * yMultiplier + list->template.upText_Y;
}
static u8 ListMenuInitInternal(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16 selectedRow)
{
u8 listTaskId = CreateTask(ListMenuDummyTask, 0);
struct ListMenu *list = (struct ListMenu *)gTasks[listTaskId].data;
list->template = *listMenuTemplate;
list->scrollOffset = scrollOffset;
list->selectedRow = selectedRow;
list->unk_1C = 0;
list->unk_1D = 0;
list->taskId = TASK_NONE;
list->unk_1F = 0;
gListMenuOverride.cursorPal = list->template.cursorPal;
gListMenuOverride.fillValue = list->template.fillValue;
gListMenuOverride.cursorShadowPal = list->template.cursorShadowPal;
gListMenuOverride.lettersSpacing = list->template.lettersSpacing;
gListMenuOverride.fontId = list->template.fontId;
gListMenuOverride.enabled = FALSE;
if (list->template.totalItems < list->template.maxShowed)
list->template.maxShowed = list->template.totalItems;
FillWindowPixelBuffer(list->template.windowId, PIXEL_FILL(list->template.fillValue));
ListMenuPrintEntries(list, list->scrollOffset, 0, list->template.maxShowed);
ListMenuDrawCursor(list);
ListMenuCallSelectionChangedCallback(list, TRUE);
return listTaskId;
}
static void ListMenuPrint(struct ListMenu *list, const u8 *str, u8 x, u8 y)
{
struct TextColor colors;
if (gListMenuOverride.enabled)
{
colors.fgColor = gListMenuOverride.fillValue;
colors.bgColor = gListMenuOverride.cursorPal;
colors.shadowColor = gListMenuOverride.cursorShadowPal;
AddTextPrinterParameterized4(list->template.windowId, gListMenuOverride.fontId, x, y, gListMenuOverride.lettersSpacing, 0, &colors, TEXT_SPEED_FF, str);
gListMenuOverride.enabled = FALSE;
}
else
{
colors.fgColor = list->template.fillValue;
colors.bgColor = list->template.cursorPal;
colors.shadowColor = list->template.cursorShadowPal;
AddTextPrinterParameterized4(list->template.windowId, list->template.fontId, x, y, list->template.lettersSpacing, 0, &colors, TEXT_SPEED_FF, str);
}
}
static void ListMenuPrintEntries(struct ListMenu *list, u16 startIndex, u16 yOffset, u16 count)
{
s32 i;
u8 x, y;
u8 yMultiplier = GetFontAttribute(list->template.fontId, FONTATTR_MAX_LETTER_HEIGHT) + 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->template.windowId, list->template.items[startIndex].index, y);
ListMenuPrint(list, list->template.items[startIndex].label, x, y);
startIndex++;
}
}
static void ListMenuDrawCursor(struct ListMenu *list)
{
u8 yMultiplier = GetFontAttribute(list->template.fontId, FONTATTR_MAX_LETTER_HEIGHT) + list->template.itemVerticalPadding;
u8 x = list->template.cursor_X;
u8 y = list->selectedRow * yMultiplier + list->template.upText_Y;
switch (list->template.cursorKind)
{
case 0:
ListMenuPrint(list, gFameCheckerText_ListMenuCursor, x, y);
break;
case 1:
break;
case 2:
if (list->taskId == TASK_NONE)
list->taskId = ListMenuAddCursorObject(list, 0);
ListMenuUpdateCursorObject(list->taskId, GetWindowAttribute(list->template.windowId, WINDOW_TILEMAP_LEFT) * 8 - 1, GetWindowAttribute(list->template.windowId, WINDOW_TILEMAP_TOP) * 8 + y - 1, 0);
break;
case 3:
if (list->taskId == TASK_NONE)
list->taskId = ListMenuAddCursorObject(list, 1);
ListMenuUpdateCursorObject(list->taskId, GetWindowAttribute(list->template.windowId, WINDOW_TILEMAP_LEFT) * 8 + x, GetWindowAttribute(list->template.windowId, WINDOW_TILEMAP_TOP) * 8 + y, 1);
break;
}
}
#undef TASK_NONE
static u8 ListMenuAddCursorObject(struct ListMenu *list, u32 cursorKind)
{
struct CursorStruct cursor;
cursor.left = 0;
cursor.top = 160;
cursor.rowWidth = GetWindowAttribute(list->template.windowId, WINDOW_WIDTH) * 8 + 2;
cursor.rowHeight = GetFontAttribute(list->template.fontId, FONTATTR_MAX_LETTER_HEIGHT) + 2;
cursor.tileTag = 0x4000;
cursor.palTag = SPRITE_INVALID_TAG;
cursor.palNum = 15;
return ListMenuAddCursorObjectInternal(&cursor, cursorKind);
}
static void ListMenuErasePrintedCursor(struct ListMenu *list, u16 selectedRow)
{
u8 cursorKind = list->template.cursorKind;
if (cursorKind == 0)
{
u8 yMultiplier = GetFontAttribute(list->template.fontId, FONTATTR_MAX_LETTER_HEIGHT) + list->template.itemVerticalPadding;
u8 width = GetMenuCursorDimensionByFont(list->template.fontId, 0);
u8 height = GetMenuCursorDimensionByFont(list->template.fontId, 1);
FillWindowPixelRect(list->template.windowId,
PIXEL_FILL(list->template.fillValue),
list->template.cursor_X,
selectedRow * yMultiplier + list->template.upText_Y,
width,
height);
}
}
static u8 ListMenuUpdateSelectedRowIndexAndScrollOffset(struct ListMenu *list, bool8 movingDown)
{
u16 selectedRow = list->selectedRow;
u16 scrollOffset = list->scrollOffset;
u16 newRow;
u32 newScroll;
if (!movingDown)
{
if (list->template.maxShowed == 1)
newRow = 0;
else
newRow = list->template.maxShowed - ((list->template.maxShowed / 2) + (list->template.maxShowed % 2)) - 1;
if (scrollOffset == 0)
{
while (selectedRow != 0)
{
selectedRow--;
if (list->template.items[scrollOffset + selectedRow].index != LIST_HEADER)
{
list->selectedRow = selectedRow;
return 1;
}
}
return 0;
}
else
{
while (selectedRow > newRow)
{
selectedRow--;
if (list->template.items[scrollOffset + selectedRow].index != LIST_HEADER)
{
list->selectedRow = selectedRow;
return 1;
}
}
newScroll = scrollOffset - 1;
}
}
else
{
if (list->template.maxShowed == 1)
newRow = 0;
else
newRow = ((list->template.maxShowed / 2) + (list->template.maxShowed % 2));
if (scrollOffset == list->template.totalItems - list->template.maxShowed)
{
while (selectedRow < list->template.maxShowed - 1)
{
selectedRow++;
if (list->template.items[scrollOffset + selectedRow].index != LIST_HEADER)
{
list->selectedRow = selectedRow;
return 1;
}
}
return 0;
}
else
{
while (selectedRow < newRow)
{
selectedRow++;
if (list->template.items[scrollOffset + selectedRow].index != LIST_HEADER)
{
list->selectedRow = selectedRow;
return 1;
}
}
newScroll = scrollOffset + 1;
}
}
list->selectedRow = newRow;
list->scrollOffset = newScroll;
return 2;
}
static void ListMenuScroll(struct ListMenu *list, u8 count, bool8 movingDown)
{
if (count >= list->template.maxShowed)
{
FillWindowPixelBuffer(list->template.windowId, PIXEL_FILL(list->template.fillValue));
ListMenuPrintEntries(list, list->scrollOffset, 0, list->template.maxShowed);
}
else
{
u8 yMultiplier = GetFontAttribute(list->template.fontId, FONTATTR_MAX_LETTER_HEIGHT) + list->template.itemVerticalPadding;
if (!movingDown)
{
u16 y, width, height;
ScrollWindow(list->template.windowId, 1, count * yMultiplier, PIXEL_FILL(list->template.fillValue));
ListMenuPrintEntries(list, list->scrollOffset, 0, count);
y = (list->template.maxShowed * yMultiplier) + list->template.upText_Y;
width = GetWindowAttribute(list->template.windowId, WINDOW_WIDTH) * 8;
height = (GetWindowAttribute(list->template.windowId, WINDOW_HEIGHT) * 8) - y;
FillWindowPixelRect(list->template.windowId,
PIXEL_FILL(list->template.fillValue),
0, y, width, height);
}
else
{
u16 width;
ScrollWindow(list->template.windowId, 0, count * yMultiplier, PIXEL_FILL(list->template.fillValue));
ListMenuPrintEntries(list, list->scrollOffset + (list->template.maxShowed - count), list->template.maxShowed - count, count);
width = GetWindowAttribute(list->template.windowId, WINDOW_WIDTH) * 8;
FillWindowPixelRect(list->template.windowId,
PIXEL_FILL(list->template.fillValue),
0, 0, width, list->template.upText_Y);
}
}
}
static bool8 ListMenuChangeSelection(struct ListMenu *list, bool8 updateCursorAndCallCallback, u8 count, bool8 movingDown)
{
u16 oldSelectedRow;
u8 selectionChange, i, cursorCount;
oldSelectedRow = list->selectedRow;
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->scrollOffset + list->selectedRow].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.windowId, 2);
break;
case 2:
case 3:
ListMenuErasePrintedCursor(list, oldSelectedRow);
ListMenuScroll(list, cursorCount, movingDown);
ListMenuDrawCursor(list);
ListMenuCallSelectionChangedCallback(list, FALSE);
CopyWindowToVram(list->template.windowId, 2);
break;
}
}
return FALSE;
}
static void ListMenuCallSelectionChangedCallback(struct ListMenu *list, u8 onInit)
{
if (list->template.moveCursorFunc != NULL)
list->template.moveCursorFunc(list->template.items[list->scrollOffset + list->selectedRow].index, onInit, list);
}
void ListMenuOverrideSetColors(u8 cursorPal, u8 fillValue, u8 cursorShadowPal)
{
gListMenuOverride.cursorPal = cursorPal;
gListMenuOverride.fillValue = fillValue;
gListMenuOverride.cursorShadowPal = cursorShadowPal;
gListMenuOverride.enabled = TRUE;
}
void ListMenuDefaultCursorMoveFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list)
{
if (!onInit)
PlaySE(SE_SELECT);
}
static s32 ListMenuGetUnkIndicatorsStructFields(u8 taskId, u8 field)
{
struct UnkIndicatorsStruct *data = (struct UnkIndicatorsStruct *)gTasks[taskId].data;
switch (field)
{
case 0:
case 1:
return (s32)(data->field_4);
case 2:
return data->field_C;
case 3:
return data->field_E;
case 4:
return data->field_10;
case 5:
return data->field_11;
case 6:
return data->field_12;
case 7:
return data->field_13;
case 8:
return data->field_14_0;
case 9:
return data->field_14_1;
case 10:
return data->field_15_0;
case 11:
return data->field_15_1;
case 12:
return data->field_16_0;
case 13:
return data->field_16_1;
case 14:
return data->field_16_2;
case 15:
return data->field_17_0;
case 16:
return data->field_17_1;
default:
return -1;
}
}
void ListMenuSetUnkIndicatorsStructField(u8 taskId, u8 field, s32 value)
{
struct UnkIndicatorsStruct *data = (struct UnkIndicatorsStruct *)gTasks[taskId].data;
switch (field)
{
case 0:
case 1:
data->field_4 = (void *)value;
break;
case 2:
data->field_C = value;
break;
case 3:
data->field_E = value;
break;
case 4:
data->field_10 = value;
break;
case 5:
data->field_11 = value;
break;
case 6:
data->field_12 = value;
break;
case 7:
data->field_13 = value;
break;
case 8:
data->field_14_0 = value;
break;
case 9:
data->field_14_1 = value;
break;
case 10:
data->field_15_0 = value;
break;
case 11:
data->field_15_1 = value;
break;
case 12:
data->field_16_0 = value;
break;
case 13:
data->field_16_1 = value;
break;
case 14:
data->field_16_2 = value;
break;
case 15:
data->field_17_0 = value;
break;
case 16:
data->field_17_1 = value;
break;
}
}
void sub_8107CD8(u8 palOffset, u16 speciesId)
{
LoadPalette(GetValidMonIconPalettePtr(speciesId), palOffset, 0x20);
}
void sub_8107CF8(u8 windowId, u16 speciesId, u32 personality, u16 x, u16 y)
{
BlitBitmapToWindow(windowId, GetMonIconPtr(speciesId, personality, 1), x, y, 32, 32);
}
void sub_8107D38(u8 palOffset, u8 palId)
{
const u16 *palette;
switch (palId)
{
case 0:
default:
palette = gFireRedMenuElements1_Pal;
break;
case 1:
palette = gFireRedMenuElements2_Pal;
break;
}
LoadPalette(palette, palOffset, 0x20);
}
void BlitMoveInfoIcon(u8 windowId, u8 iconId, u16 x, u16 y)
{
BlitBitmapRectToWindow(windowId, gFireRedMenuElements_Gfx + gMoveMenuInfoIcons[iconId].offset * 32, 0, 0, 128, 128, x, y, gMoveMenuInfoIcons[iconId].width, gMoveMenuInfoIcons[iconId].height);
}
+2 -2
View File
@@ -734,7 +734,7 @@ static void TeachyTvOptionListController(u8 taskId)
TeachyTvBg2AnimController();
if (!gPaletteFade.active)
{
input = ListMenuHandleInput(data[0]);
input = ListMenu_ProcessInput(data[0]);
ListMenuGetScrollAndRow(data[0], &sStaticResources.scrollOffset, &sStaticResources.selectedRow);
if ((JOY_NEW(SELECT_BUTTON) && sStaticResources.callback != ReturnToBagFromKeyItem))
{
@@ -754,7 +754,7 @@ static void TeachyTvOptionListController(u8 taskId)
default:
PlaySE(SE_SELECT);
sStaticResources.whichScript = input;
DestroyListMenu(data[0], &sStaticResources.scrollOffset, &sStaticResources.selectedRow);
DestroyListMenuTask(data[0], &sStaticResources.scrollOffset, &sStaticResources.selectedRow);
TeachyTvClearWindowRegs();
ClearWindowTilemap(1);
ScheduleBgCopyTilemapToVram(0);
+12 -12
View File
@@ -716,7 +716,7 @@ static void Task_FadeOutAndCloseTMCase(u8 taskId)
if (!gPaletteFade.active)
{
DestroyListMenu(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow);
DestroyListMenuTask(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow);
if (sTMCaseDynamicResources->savedCallback != NULL)
SetMainCallback2(sTMCaseDynamicResources->savedCallback);
else
@@ -736,7 +736,7 @@ static void Task_TMCaseMain(u8 taskId)
{
if (sub_80BF72C() != TRUE)
{
input = ListMenuHandleInput(data[0]);
input = ListMenu_ProcessInput(data[0]);
ListMenuGetScrollAndRow(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow);
if (JOY_NEW(SELECT_BUTTON) && sTMCaseStaticResources.unk_05 == 1)
{
@@ -909,7 +909,7 @@ static void Subtask_CloseContextMenuAndReturnToMain(u8 taskId)
{
s16 * data = gTasks[taskId].data;
DestroyListMenu(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow);
DestroyListMenuTask(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow);
data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sTMCaseStaticResources.scrollOffset, sTMCaseStaticResources.selectedRow);
PrintListMenuCursorByID_WithColorIdx(data[0], 1);
ClearMenuWindow_BorderThickness2(6, 0);
@@ -1108,7 +1108,7 @@ static void Task_DoSaleOfTMs(u8 taskId)
RemoveBagItem(gSpecialVar_ItemId, data[8]);
AddMoney(&gSaveBlock1Ptr->money, itemid_get_market_price(gSpecialVar_ItemId) / 2 * data[8]);
sub_809C09C(gSpecialVar_ItemId, data[8], 2);
DestroyListMenu(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow);
DestroyListMenuTask(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow);
TMCaseSetup_GetTMCount();
TMCaseSetup_InitListMenuPositions();
InitTMCaseListMenuItems();
@@ -1204,7 +1204,7 @@ static void Task_TMCaseDude_Playback(u8 taskId)
{
gMain.newKeys = 0;
gMain.newAndRepeatedKeys = DPAD_DOWN;
ListMenuHandleInput(data[0]);
ListMenu_ProcessInput(data[0]);
}
data[9]++;
if (data[9] > 0x65)
@@ -1223,7 +1223,7 @@ static void Task_TMCaseDude_Playback(u8 taskId)
{
gMain.newKeys = 0;
gMain.newAndRepeatedKeys = DPAD_UP;
ListMenuHandleInput(data[0]);
ListMenu_ProcessInput(data[0]);
}
data[9]++;
if (data[9] > 0x65)
@@ -1269,7 +1269,7 @@ static void Task_TMCaseDude_Playback(u8 taskId)
{
memcpy(gSaveBlock1Ptr->bagPocket_TMHM, sPokeDudePackBackup->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM));
memcpy(gSaveBlock1Ptr->bagPocket_KeyItems, sPokeDudePackBackup->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems));
DestroyListMenu(data[0], NULL, NULL);
DestroyListMenuTask(data[0], NULL, NULL);
sTMCaseStaticResources.selectedRow = sPokeDudePackBackup->unk_160;
sTMCaseStaticResources.scrollOffset = sPokeDudePackBackup->unk_162;
Free(sPokeDudePackBackup);
@@ -1344,10 +1344,10 @@ static void PrintStringTMCaseOnWindow3(void)
static void DrawMoveInfoUIMarkers(void)
{
blit_move_info_icon(4, 19, 0, 0);
blit_move_info_icon(4, 20, 0, 12);
blit_move_info_icon(4, 21, 0, 24);
blit_move_info_icon(4, 22, 0, 36);
BlitMoveInfoIcon(4, 19, 0, 0);
BlitMoveInfoIcon(4, 20, 0, 12);
BlitMoveInfoIcon(4, 21, 0, 24);
BlitMoveInfoIcon(4, 22, 0, 36);
CopyWindowToVram(4, 2);
}
@@ -1369,7 +1369,7 @@ static void TMCase_MoveCursor_UpdatePrintedTMInfo(u16 itemId)
else
{
move = ItemIdToBattleMoveId(itemId);
blit_move_info_icon(5, gBattleMoves[move].type + 1, 0, 0);
BlitMoveInfoIcon(5, gBattleMoves[move].type + 1, 0, 0);
if (gBattleMoves[move].power < 2)
str = gText_ThreeHyphens;
else
+3 -6
View File
@@ -298,12 +298,9 @@ gUnknown_3005E10: @ 3005E10
gUnknown_3005E20: @ 3005E20
.space 0x40
gUnknown_3005E60: @ 3005E60
.space 0x10
gMultiuseListMenuTemplate: @ 3005E70
.space 0x18
.align 4
.include "list_menu.o"
.align 2
.include "quest_log.o"
gUnknown_3005E8C: @ 3005E8C
+2 -3
View File
@@ -1168,9 +1168,8 @@ gUnknown_203ACEC: @ 203ACEC
gUnknown_203ACF0: @ 203ACF0
.space 0x4
gUnknown_203ACF4: @ 203ACF4
.space 0x8
.include "src/list_menu.o"
.align 2
gUnknown_203ACFC: @ 203ACFC
.space 0x6