diff options
-rw-r--r-- | asm/pokemon_summary_screen.s | 2775 | ||||
-rw-r--r-- | hgrep.sh | 10 | ||||
-rw-r--r-- | include/pokemon_summary_screen.h | 2 | ||||
-rw-r--r-- | include/strings.h | 9 | ||||
-rw-r--r-- | src/pokemon_summary_screen.c | 1066 |
5 files changed, 1062 insertions, 2800 deletions
diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index b503a8525..d47c7e91c 100644 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -5,2781 +5,6 @@ .text - thumb_func_start sub_8134BAC -sub_8134BAC: @ 8134BAC - push {r4-r7,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r6, _08134BD4 @ =gTasks+0x8 - adds r7, r0, r6 - movs r1, 0 - ldrsh r0, [r7, r1] - cmp r0, 0x9 - bls _08134BCA - b _08134E18 -_08134BCA: - lsls r0, 2 - ldr r1, _08134BD8 @ =_08134BDC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08134BD4: .4byte gTasks+0x8 -_08134BD8: .4byte _08134BDC - .align 2, 0 -_08134BDC: - .4byte _08134C04 - .4byte _08134C48 - .4byte _08134CD4 - .4byte _08134CF8 - .4byte _08134D2C - .4byte _08134D4C - .4byte _08134D68 - .4byte _08134D88 - .4byte _08134DB0 - .4byte _08134E00 -_08134C04: - bl sub_8135638 - bl sub_81356EC - ldr r4, _08134C38 @ =gMonSummaryScreen - ldr r0, [r4] - ldr r2, _08134C3C @ =0x00003234 - adds r0, r2 - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r4] - ldr r3, _08134C40 @ =0x0000301c - adds r0, r3 - strb r1, [r0] - ldr r0, [r4] - ldr r5, _08134C44 @ =0x00003214 - adds r0, r5 - ldrb r0, [r0] - bl sub_813B750 - ldr r0, [r4] - adds r0, r5 - ldrb r0, [r0] - bl sub_8138280 - b _08134E74 - .align 2, 0 -_08134C38: .4byte gMonSummaryScreen -_08134C3C: .4byte 0x00003234 -_08134C40: .4byte 0x0000301c -_08134C44: .4byte 0x00003214 -_08134C48: - ldr r0, _08134CC8 @ =gMonSummaryScreen - ldr r1, [r0] - ldr r2, _08134CCC @ =0x00003214 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x3 - beq _08134C7E - cmp r0, 0x2 - bne _08134C64 - ldr r3, _08134CD0 @ =0x00003224 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, 0 - beq _08134C7E -_08134C64: - movs r0, 0x1E - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0 - bl CopyBgTilemapBufferToVram -_08134C7E: - movs r4, 0x1E - str r4, [sp] - movs r5, 0x2 - str r5, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r6, 0xF - str r6, [sp] - str r5, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0x2 - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - str r5, [sp, 0x4] - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - str r6, [sp] - str r5, [sp, 0x4] - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - movs r3, 0x2 - bl FillBgTilemapBufferRect_Palette0 - b _08134E74 - .align 2, 0 -_08134CC8: .4byte gMonSummaryScreen -_08134CCC: .4byte 0x00003214 -_08134CD0: .4byte 0x00003224 -_08134CD4: - bl sub_8135AA4 - bl sub_8135B90 - bl sub_8138538 - ldr r0, _08134CF0 @ =gMonSummaryScreen - ldr r0, [r0] - ldr r1, _08134CF4 @ =0x00003214 - adds r0, r1 - ldrb r0, [r0] - bl sub_8137D28 - b _08134E74 - .align 2, 0 -_08134CF0: .4byte gMonSummaryScreen -_08134CF4: .4byte 0x00003214 -_08134CF8: - ldr r4, _08134D20 @ =gMonSummaryScreen - ldr r0, [r4] - movs r2, 0xC0 - lsls r2, 6 - adds r0, r2 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r0, [r4] - ldr r3, _08134D24 @ =0x00003001 - adds r0, r3 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r0, [r4] - ldr r1, _08134D28 @ =0x00003002 - adds r0, r1 - b _08134DE2 - .align 2, 0 -_08134D20: .4byte gMonSummaryScreen -_08134D24: .4byte 0x00003001 -_08134D28: .4byte 0x00003002 -_08134D2C: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _08134D38 - b _08134E7A -_08134D38: - movs r0, 0x3 - bl CopyBgTilemapBufferToVram - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - b _08134E74 -_08134D4C: - bl sub_8135514 - ldr r0, _08134D60 @ =gMonSummaryScreen - ldr r0, [r0] - ldr r2, _08134D64 @ =0x00003244 - adds r0, r2 - movs r1, 0x1 - strb r1, [r0] - b _08134E74 - .align 2, 0 -_08134D60: .4byte gMonSummaryScreen -_08134D64: .4byte 0x00003244 -_08134D68: - ldr r0, _08134D80 @ =gMonSummaryScreen - ldr r0, [r0] - ldr r3, _08134D84 @ =0x00003224 - adds r0, r3 - ldrb r0, [r0] - bl sub_81357A0 - lsls r0, 24 - cmp r0, 0 - bne _08134D7E - b _08134E7A -_08134D7E: - b _08134E74 - .align 2, 0 -_08134D80: .4byte gMonSummaryScreen -_08134D84: .4byte 0x00003224 -_08134D88: - bl sub_8136F4C - ldr r0, _08134DA8 @ =gMonSummaryScreen - ldr r0, [r0] - ldr r1, _08134DAC @ =0x00003214 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x3 - beq _08134D9E - bl sub_81374E8 -_08134D9E: - bl sub_8137BD0 - bl sub_8138A38 - b _08134E74 - .align 2, 0 -_08134DA8: .4byte gMonSummaryScreen -_08134DAC: .4byte 0x00003214 -_08134DB0: - ldr r4, _08134DEC @ =gMonSummaryScreen - ldr r0, [r4] - ldr r2, _08134DF0 @ =0x00003003 - adds r0, r2 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r0, [r4] - ldr r3, _08134DF4 @ =0x00003004 - adds r0, r3 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r0, [r4] - ldr r1, _08134DF8 @ =0x00003005 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r0, [r4] - ldr r2, _08134DFC @ =0x00003006 - adds r0, r2 -_08134DE2: - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - b _08134E74 - .align 2, 0 -_08134DEC: .4byte gMonSummaryScreen -_08134DF0: .4byte 0x00003003 -_08134DF4: .4byte 0x00003004 -_08134DF8: .4byte 0x00003005 -_08134DFC: .4byte 0x00003006 -_08134E00: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _08134E7A - movs r0, 0 - bl CopyBgTilemapBufferToVram - movs r0, 0 - bl ShowBg - b _08134E74 -_08134E18: - bl sub_8138440 - ldr r5, _08134E5C @ =gMonSummaryScreen - ldr r1, [r5] - ldr r3, _08134E60 @ =0x00003214 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, 0x3 - bne _08134E40 - adds r2, r6, 0 - subs r2, 0x8 - ldr r3, _08134E64 @ =0x00003018 - adds r0, r1, r3 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, _08134E68 @ =sub_8138CD8 - str r1, [r0] -_08134E40: - adds r0, r4, 0 - bl DestroyTask - movs r0, 0 - strh r0, [r7] - ldr r1, [r5] - ldr r2, _08134E6C @ =0x00003234 - adds r1, r2 - strb r0, [r1] - ldr r1, [r5] - ldr r3, _08134E70 @ =0x0000301c - adds r1, r3 - strb r0, [r1] - b _08134E7A - .align 2, 0 -_08134E5C: .4byte gMonSummaryScreen -_08134E60: .4byte 0x00003214 -_08134E64: .4byte 0x00003018 -_08134E68: .4byte sub_8138CD8 -_08134E6C: .4byte 0x00003234 -_08134E70: .4byte 0x0000301c -_08134E74: - ldrh r0, [r7] - adds r0, 0x1 - strh r0, [r7] -_08134E7A: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8134BAC - - thumb_func_start sub_8134E84 -sub_8134E84: @ 8134E84 - push {r4-r6,lr} - sub sp, 0x8 - ldr r4, _08134EA4 @ =gMonSummaryScreen - ldr r0, [r4] - ldr r1, _08134EA8 @ =0x00003284 - adds r0, r1 - ldrb r0, [r0] - adds r5, r4, 0 - cmp r0, 0xB - bls _08134E9A - b _08135132 -_08134E9A: - lsls r0, 2 - ldr r1, _08134EAC @ =_08134EB0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08134EA4: .4byte gMonSummaryScreen -_08134EA8: .4byte 0x00003284 -_08134EAC: .4byte _08134EB0 - .align 2, 0 -_08134EB0: - .4byte _08134EE0 - .4byte _08134F14 - .4byte _08134FA0 - .4byte _08134FC8 - .4byte _08135010 - .4byte _08135034 - .4byte _08135054 - .4byte _08135080 - .4byte _081350AC - .4byte _081350D4 - .4byte _081350E4 - .4byte _08135114 -_08134EE0: - ldr r1, _08134F04 @ =gMonSummaryScreen - ldr r0, [r1] - ldr r2, _08134F08 @ =0x00003234 - adds r0, r2 - movs r2, 0x1 - strb r2, [r0] - ldr r0, [r1] - ldr r3, _08134F0C @ =0x0000301c - adds r0, r3 - strb r2, [r0] - ldr r0, [r1] - ldr r1, _08134F10 @ =0x00003214 - adds r0, r1 - ldrb r0, [r0] - bl sub_8138280 - b _08135180 - .align 2, 0 -_08134F04: .4byte gMonSummaryScreen -_08134F08: .4byte 0x00003234 -_08134F0C: .4byte 0x0000301c -_08134F10: .4byte 0x00003214 -_08134F14: - ldr r0, _08134F94 @ =gMonSummaryScreen - ldr r1, [r0] - ldr r2, _08134F98 @ =0x00003214 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x3 - beq _08134F4A - cmp r0, 0x2 - bne _08134F30 - ldr r3, _08134F9C @ =0x00003224 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, 0 - beq _08134F4A -_08134F30: - movs r0, 0x1E - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0 - bl CopyBgTilemapBufferToVram -_08134F4A: - movs r4, 0x1E - str r4, [sp] - movs r5, 0x2 - str r5, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r6, 0xF - str r6, [sp] - str r5, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0x2 - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - str r5, [sp, 0x4] - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - str r6, [sp] - str r5, [sp, 0x4] - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - movs r3, 0x2 - bl FillBgTilemapBufferRect_Palette0 - b _08135180 - .align 2, 0 -_08134F94: .4byte gMonSummaryScreen -_08134F98: .4byte 0x00003214 -_08134F9C: .4byte 0x00003224 -_08134FA0: - bl sub_8135638 - ldr r0, _08134FC0 @ =gMonSummaryScreen - ldr r0, [r0] - ldr r1, _08134FC4 @ =0x00003214 - adds r0, r1 - ldrb r0, [r0] - bl sub_813B750 - bl sub_8135B90 - bl sub_8138538 - bl sub_8135AA4 - b _08135180 - .align 2, 0 -_08134FC0: .4byte gMonSummaryScreen -_08134FC4: .4byte 0x00003214 -_08134FC8: - ldr r0, _08134FF0 @ =gUnknown_8419C39 - bl sub_8136DA4 - ldr r0, _08134FF4 @ =gMain - ldr r2, _08134FF8 @ =0x00000439 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08135004 - ldr r0, _08134FFC @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _08135004 - ldr r0, _08135000 @ =gUnknown_8419C92 - bl sub_8136DF0 - b _08135180 - .align 2, 0 -_08134FF0: .4byte gUnknown_8419C39 -_08134FF4: .4byte gMain -_08134FF8: .4byte 0x00000439 -_08134FFC: .4byte gReceivedRemoteLinkPlayers -_08135000: .4byte gUnknown_8419C92 -_08135004: - ldr r0, _0813500C @ =gUnknown_8419CA2 - bl sub_8136DF0 - b _08135180 - .align 2, 0 -_0813500C: .4byte gUnknown_8419CA2 -_08135010: - ldr r4, _0813502C @ =gMonSummaryScreen - ldr r0, [r4] - movs r3, 0xC0 - lsls r3, 6 - adds r0, r3 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r0, [r4] - ldr r1, _08135030 @ =0x00003001 - adds r0, r1 - b _081350FE - .align 2, 0 -_0813502C: .4byte gMonSummaryScreen -_08135030: .4byte 0x00003001 -_08135034: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _08135040 - b _0813518E -_08135040: - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - movs r0, 0x3 - bl CopyBgTilemapBufferToVram - b _08135180 -_08135054: - bl sub_8136F4C - bl sub_8137BD0 - ldr r4, _08135074 @ =gMonSummaryScreen - ldr r0, [r4] - ldr r2, _08135078 @ =0x00003003 - adds r0, r2 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r0, [r4] - ldr r3, _0813507C @ =0x00003005 - adds r0, r3 - b _081350FE - .align 2, 0 -_08135074: .4byte gMonSummaryScreen -_08135078: .4byte 0x00003003 -_0813507C: .4byte 0x00003005 -_08135080: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _0813508C - b _0813518E -_0813508C: - movs r0, 0 - bl CopyBgTilemapBufferToVram - bl sub_8135514 - ldr r0, _081350A4 @ =gMonSummaryScreen - ldr r0, [r0] - ldr r1, _081350A8 @ =0x00003244 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - b _08135180 - .align 2, 0 -_081350A4: .4byte gMonSummaryScreen -_081350A8: .4byte 0x00003244 -_081350AC: - ldr r0, [r5] - ldr r2, _081350CC @ =0x00003224 - adds r0, r2 - ldrb r0, [r0] - bl sub_81357A0 - lsls r0, 24 - cmp r0, 0 - beq _0813518E - bl sub_81374E8 - ldr r0, [r5] - ldr r3, _081350D0 @ =0x00003004 - adds r0, r3 - b _081350FE - .align 2, 0 -_081350CC: .4byte 0x00003224 -_081350D0: .4byte 0x00003004 -_081350D4: - bl sub_8138A38 - ldr r0, _081350E0 @ =gUnknown_8419C45 - bl sub_8136E50 - b _08135180 - .align 2, 0 -_081350E0: .4byte gUnknown_8419C45 -_081350E4: - bl sub_81356EC - ldr r4, _08135108 @ =gMonSummaryScreen - ldr r0, [r4] - ldr r1, _0813510C @ =0x00003006 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r0, [r4] - ldr r2, _08135110 @ =0x00003002 - adds r0, r2 -_081350FE: - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - b _08135180 - .align 2, 0 -_08135108: .4byte gMonSummaryScreen -_0813510C: .4byte 0x00003006 -_08135110: .4byte 0x00003002 -_08135114: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _0813518E - movs r0, 0 - bl CopyBgTilemapBufferToVram - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - b _08135180 -_08135132: - bl sub_8138440 - ldr r3, _08135168 @ =gTasks - ldr r2, [r4] - ldr r1, _0813516C @ =0x00003018 - adds r0, r2, r1 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r3 - ldr r1, _08135170 @ =sub_8138CD8 - str r1, [r0] - ldr r3, _08135174 @ =0x00003284 - adds r2, r3 - movs r1, 0 - strb r1, [r2] - ldr r0, [r4] - ldr r2, _08135178 @ =0x00003234 - adds r0, r2 - strb r1, [r0] - ldr r0, [r4] - ldr r3, _0813517C @ =0x0000301c - adds r0, r3 - strb r1, [r0] - b _0813518E - .align 2, 0 -_08135168: .4byte gTasks -_0813516C: .4byte 0x00003018 -_08135170: .4byte sub_8138CD8 -_08135174: .4byte 0x00003284 -_08135178: .4byte 0x00003234 -_0813517C: .4byte 0x0000301c -_08135180: - ldr r0, _08135198 @ =gMonSummaryScreen - ldr r1, [r0] - ldr r0, _0813519C @ =0x00003284 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_0813518E: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08135198: .4byte gMonSummaryScreen -_0813519C: .4byte 0x00003284 - thumb_func_end sub_8134E84 - - thumb_func_start sub_81351A0 -sub_81351A0: @ 81351A0 - push {r4-r6,lr} - sub sp, 0x8 - ldr r4, _081351C0 @ =gMonSummaryScreen - ldr r0, [r4] - ldr r1, _081351C4 @ =0x00003284 - adds r0, r1 - ldrb r0, [r0] - adds r2, r4, 0 - cmp r0, 0xA - bls _081351B6 - b _08135400 -_081351B6: - lsls r0, 2 - ldr r1, _081351C8 @ =_081351CC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081351C0: .4byte gMonSummaryScreen -_081351C4: .4byte 0x00003284 -_081351C8: .4byte _081351CC - .align 2, 0 -_081351CC: - .4byte _081351F8 - .4byte _0813522C - .4byte _081352B8 - .4byte _081352BE - .4byte _08135310 - .4byte _08135328 - .4byte _08135354 - .4byte _0813544C - .4byte _08135388 - .4byte _081353AC - .4byte _081353EC -_081351F8: - ldr r1, _0813521C @ =gMonSummaryScreen - ldr r0, [r1] - ldr r2, _08135220 @ =0x00003234 - adds r0, r2 - movs r2, 0x1 - strb r2, [r0] - ldr r0, [r1] - ldr r3, _08135224 @ =0x0000301c - adds r0, r3 - strb r2, [r0] - ldr r0, [r1] - ldr r1, _08135228 @ =0x00003214 - adds r0, r1 - ldrb r0, [r0] - bl sub_8138280 - b _0813544C - .align 2, 0 -_0813521C: .4byte gMonSummaryScreen -_08135220: .4byte 0x00003234 -_08135224: .4byte 0x0000301c -_08135228: .4byte 0x00003214 -_0813522C: - ldr r0, _081352AC @ =gMonSummaryScreen - ldr r1, [r0] - ldr r2, _081352B0 @ =0x00003214 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x3 - beq _08135262 - cmp r0, 0x2 - bne _08135248 - ldr r3, _081352B4 @ =0x00003224 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, 0 - beq _08135262 -_08135248: - movs r0, 0x1E - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0 - bl CopyBgTilemapBufferToVram -_08135262: - movs r4, 0x1E - str r4, [sp] - movs r5, 0x2 - str r5, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r6, 0xF - str r6, [sp] - str r5, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0x2 - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - str r5, [sp, 0x4] - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - str r6, [sp] - str r5, [sp, 0x4] - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - movs r3, 0x2 - bl FillBgTilemapBufferRect_Palette0 - b _0813544C - .align 2, 0 -_081352AC: .4byte gMonSummaryScreen -_081352B0: .4byte 0x00003214 -_081352B4: .4byte 0x00003224 -_081352B8: - bl sub_8135AA4 - b _0813544C -_081352BE: - bl sub_8136F4C - bl sub_81374E8 - bl sub_8137BD0 - ldr r4, _08135300 @ =gMonSummaryScreen - ldr r0, [r4] - ldr r1, _08135304 @ =0x00003003 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r0, [r4] - ldr r2, _08135308 @ =0x00003004 - adds r0, r2 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r0, [r4] - ldr r3, _0813530C @ =0x00003005 - adds r0, r3 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - movs r0, 0 - bl CopyBgTilemapBufferToVram - b _0813544C - .align 2, 0 -_08135300: .4byte gMonSummaryScreen -_08135304: .4byte 0x00003003 -_08135308: .4byte 0x00003004 -_0813530C: .4byte 0x00003005 -_08135310: - ldr r0, _08135320 @ =gUnknown_8419C39 - bl sub_8136DA4 - ldr r0, _08135324 @ =gUnknown_8419C82 - bl sub_8136DF0 - b _0813544C - .align 2, 0 -_08135320: .4byte gUnknown_8419C39 -_08135324: .4byte gUnknown_8419C82 -_08135328: - ldr r4, _0813534C @ =gMonSummaryScreen - ldr r0, [r4] - movs r1, 0xC0 - lsls r1, 6 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r0, [r4] - ldr r2, _08135350 @ =0x00003001 - adds r0, r2 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - b _081353D0 - .align 2, 0 -_0813534C: .4byte gMonSummaryScreen -_08135350: .4byte 0x00003001 -_08135354: - bl sub_8135514 - ldr r4, _0813537C @ =gMonSummaryScreen - ldr r0, [r4] - ldr r3, _08135380 @ =0x00003244 - adds r0, r3 - movs r1, 0x1 - strb r1, [r0] - bl sub_8135638 - ldr r0, [r4] - ldr r1, _08135384 @ =0x00003214 - adds r0, r1 - ldrb r0, [r0] - bl sub_813B750 - bl sub_8138A38 - b _0813544C - .align 2, 0 -_0813537C: .4byte gMonSummaryScreen -_08135380: .4byte 0x00003244 -_08135384: .4byte 0x00003214 -_08135388: - ldr r0, [r2] - ldr r2, _081353A4 @ =0x00003224 - adds r0, r2 - ldrb r0, [r0] - bl sub_81357A0 - lsls r0, 24 - cmp r0, 0 - beq _0813545A - ldr r0, _081353A8 @ =gUnknown_8419C45 - bl sub_8136E50 - b _0813544C - .align 2, 0 -_081353A4: .4byte 0x00003224 -_081353A8: .4byte gUnknown_8419C45 -_081353AC: - ldr r4, _081353E0 @ =gMonSummaryScreen - ldr r0, [r4] - ldr r3, _081353E4 @ =0x00003006 - adds r0, r3 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r0, [r4] - ldr r1, _081353E8 @ =0x00003002 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - movs r0, 0 - bl CopyBgTilemapBufferToVram -_081353D0: - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - b _0813544C - .align 2, 0 -_081353E0: .4byte gMonSummaryScreen -_081353E4: .4byte 0x00003006 -_081353E8: .4byte 0x00003002 -_081353EC: - bl sub_8135B90 - bl sub_8138538 - movs r0, 0x3 - bl CopyBgTilemapBufferToVram - bl sub_81356EC - b _0813544C -_08135400: - bl sub_8138440 - ldr r3, _08135434 @ =gTasks - ldr r2, [r4] - ldr r1, _08135438 @ =0x00003018 - adds r0, r2, r1 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r3 - ldr r1, _0813543C @ =sub_8134840 - str r1, [r0] - ldr r3, _08135440 @ =0x00003284 - adds r2, r3 - movs r1, 0 - strb r1, [r2] - ldr r0, [r4] - ldr r2, _08135444 @ =0x00003234 - adds r0, r2 - strb r1, [r0] - ldr r0, [r4] - ldr r3, _08135448 @ =0x0000301c - adds r0, r3 - strb r1, [r0] - b _0813545A - .align 2, 0 -_08135434: .4byte gTasks -_08135438: .4byte 0x00003018 -_0813543C: .4byte sub_8134840 -_08135440: .4byte 0x00003284 -_08135444: .4byte 0x00003234 -_08135448: .4byte 0x0000301c -_0813544C: - ldr r0, _08135464 @ =gMonSummaryScreen - ldr r1, [r0] - ldr r0, _08135468 @ =0x00003284 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_0813545A: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08135464: .4byte gMonSummaryScreen -_08135468: .4byte 0x00003284 - thumb_func_end sub_81351A0 - - thumb_func_start sub_813546C -sub_813546C: @ 813546C - push {r4-r6,lr} - movs r4, 0 - ldr r6, _081354BC @ =gUnknown_203B160 -_08135472: - ldr r1, [r6] - lsls r5, r4, 1 - adds r0, r1, 0 - adds r0, 0x2C - adds r0, r5 - lsls r2, r4, 3 - mov r12, r2 - movs r2, 0xC6 - lsls r2, 1 - add r2, r12 - strh r2, [r0] - lsls r3, r4, 2 - adds r1, r3 - ldr r0, [r1] - strh r2, [r0, 0x20] - cmp r4, 0x8 - bhi _081354AC - ldr r0, _081354C0 @ =gUnknown_203B15C - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x28 - adds r0, r5 - movs r2, 0xCE - lsls r2, 1 - add r2, r12 - strh r2, [r0] - adds r1, r3 - ldr r0, [r1] - strh r2, [r0, 0x20] -_081354AC: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xA - bls _08135472 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081354BC: .4byte gUnknown_203B160 -_081354C0: .4byte gUnknown_203B15C - thumb_func_end sub_813546C - - thumb_func_start sub_81354C4 -sub_81354C4: @ 81354C4 - push {r4-r7,lr} - movs r5, 0 - ldr r7, _0813550C @ =gUnknown_203B160 -_081354CA: - ldr r1, [r7] - lsls r6, r5, 1 - adds r0, r1, 0 - adds r0, 0x2C - adds r0, r6 - lsls r4, r5, 3 - adds r2, r4, 0 - adds r2, 0x9C - strh r2, [r0] - lsls r3, r5, 2 - adds r1, r3 - ldr r0, [r1] - strh r2, [r0, 0x20] - cmp r5, 0x8 - bhi _081354FC - ldr r0, _08135510 @ =gUnknown_203B15C - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x28 - adds r0, r6 - adds r2, 0x10 - strh r2, [r0] - adds r1, r3 - ldr r0, [r1] - strh r2, [r0, 0x20] -_081354FC: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xA - bls _081354CA - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813550C: .4byte gUnknown_203B160 -_08135510: .4byte gUnknown_203B15C - thumb_func_end sub_81354C4 - - thumb_func_start sub_8135514 -sub_8135514: @ 8135514 - push {r4-r6,lr} - movs r4, 0x1 - ldr r6, _0813553C @ =gMonSummaryScreen - ldr r1, [r6] - ldr r2, _08135540 @ =0x00003224 - adds r0, r1, r2 - ldrb r3, [r0] - cmp r3, 0x1 - bne _08135528 - movs r4, 0xFF -_08135528: - ldr r0, _08135544 @ =0x00003214 - adds r2, r1, r0 - ldrb r0, [r2] - cmp r0, 0x3 - bne _0813554C - ldr r2, _08135548 @ =0x0000324c - adds r1, r2 - movs r0, 0xF0 - strh r0, [r1] - b _08135632 - .align 2, 0 -_0813553C: .4byte gMonSummaryScreen -_08135540: .4byte 0x00003224 -_08135544: .4byte 0x00003214 -_08135548: .4byte 0x0000324c -_0813554C: - lsls r0, r4, 24 - asrs r0, 24 - ldrb r2, [r2] - adds r0, r2 - cmp r0, 0x3 - bne _08135580 - movs r0, 0 - movs r1, 0 - bl sub_81358DC - ldr r0, [r6] - ldr r1, _0813557C @ =0x0000324c - adds r0, r1 - movs r1, 0 - strh r1, [r0] - movs r0, 0x14 - bl SetGpuReg - movs r0, 0x18 - movs r1, 0 - bl SetGpuReg - b _08135632 - .align 2, 0 -_0813557C: .4byte 0x0000324c -_08135580: - cmp r3, 0x1 - bne _081355B4 - ldr r2, _081355B0 @ =0x0000324c - adds r1, r2 - movs r0, 0 - strh r0, [r1] - movs r0, 0x10 - movs r1, 0 - bl SetGpuReg - movs r0, 0x14 - movs r1, 0 - bl SetGpuReg - movs r0, 0x18 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0x1 - bl sub_81358DC - b _081355FC - .align 2, 0 -_081355B0: .4byte 0x0000324c -_081355B4: - movs r0, 0xA - bl GetGpuReg - movs r4, 0x3 - adds r5, r4, 0 - ands r5, r0 - movs r0, 0xC - bl GetGpuReg - ands r4, r0 - ldr r0, [r6] - ldr r1, _081355E0 @ =0x0000324c - adds r0, r1 - movs r1, 0xF0 - strh r1, [r0] - cmp r5, r4 - bls _081355E4 - movs r0, 0x14 - bl SetGpuReg - b _081355EC - .align 2, 0 -_081355E0: .4byte 0x0000324c -_081355E4: - movs r0, 0x18 - movs r1, 0xF0 - bl SetGpuReg -_081355EC: - movs r0, 0x10 - movs r1, 0xF0 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0 - bl sub_81358DC -_081355FC: - ldr r0, _0813561C @ =gMonSummaryScreen - ldr r1, [r0] - ldr r2, _08135620 @ =0x00003214 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0813562A - adds r2, 0x10 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08135624 - bl sub_81354C4 - b _08135632 - .align 2, 0 -_0813561C: .4byte gMonSummaryScreen -_08135620: .4byte 0x00003214 -_08135624: - bl sub_813546C - b _08135632 -_0813562A: - cmp r0, 0x2 - bne _08135632 - bl sub_81354C4 -_08135632: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8135514 - - thumb_func_start sub_8135638 -sub_8135638: @ 8135638 - push {lr} - ldr r0, _08135654 @ =gMonSummaryScreen - ldr r2, [r0] - ldr r3, _08135658 @ =0x00003224 - adds r1, r2, r3 - ldrb r1, [r1] - adds r3, r0, 0 - cmp r1, 0x1 - bne _08135660 - ldr r1, _0813565C @ =0x00003214 - adds r0, r2, r1 - ldrb r0, [r0] - subs r0, 0x1 - b _08135668 - .align 2, 0 -_08135654: .4byte gMonSummaryScreen -_08135658: .4byte 0x00003224 -_0813565C: .4byte 0x00003214 -_08135660: - ldr r1, _08135680 @ =0x00003214 - adds r0, r2, r1 - ldrb r0, [r0] - adds r0, 0x1 -_08135668: - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08135684 - cmp r0, 0x1 - ble _081356E6 - cmp r0, 0x2 - beq _08135692 - cmp r0, 0x3 - beq _081356C8 - b _081356E6 - .align 2, 0 -_08135680: .4byte 0x00003214 -_08135684: - movs r0, 0x1 - bl sub_813A838 - movs r0, 0x1 - bl sub_813AB70 - b _081356E6 -_08135692: - ldr r0, [r3] - ldr r3, _081356C4 @ =0x00003224 - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0x1 - bne _081356E6 - movs r0, 0x1 - bl sub_8139C44 - movs r0, 0x1 - bl sub_813B084 - movs r0, 0x1 - bl sub_8139D54 - movs r0, 0x1 - bl sub_813A3B8 - movs r0, 0x1 - bl sub_813ACF8 - movs r0, 0x1 - bl sub_813AEB0 - b _081356E6 - .align 2, 0 -_081356C4: .4byte 0x00003224 -_081356C8: - movs r0, 0x1 - bl sub_813A0E8 - movs r0, 0x1 - bl sub_8139EE4 - movs r0, 0x1 - bl sub_813A3B8 - movs r0, 0x1 - bl sub_813ACF8 - movs r0, 0x1 - bl sub_813AEB0 -_081356E6: - pop {r0} - bx r0 - thumb_func_end sub_8135638 - - thumb_func_start sub_81356EC -sub_81356EC: @ 81356EC - push {lr} - ldr r0, _08135708 @ =gMonSummaryScreen - ldr r2, [r0] - ldr r3, _0813570C @ =0x00003224 - adds r1, r2, r3 - ldrb r1, [r1] - adds r3, r0, 0 - cmp r1, 0x1 - bne _08135714 - ldr r1, _08135710 @ =0x00003214 - adds r0, r2, r1 - ldrb r0, [r0] - subs r0, 0x1 - b _0813571C - .align 2, 0 -_08135708: .4byte gMonSummaryScreen -_0813570C: .4byte 0x00003224 -_08135710: .4byte 0x00003214 -_08135714: - ldr r1, _08135730 @ =0x00003214 - adds r0, r2, r1 - ldrb r0, [r0] - adds r0, 0x1 -_0813571C: - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0813579A - cmp r0, 0x1 - bgt _08135734 - cmp r0, 0 - beq _0813574A - b _0813579A - .align 2, 0 -_08135730: .4byte 0x00003214 -_08135734: - cmp r0, 0x2 - beq _0813573E - cmp r0, 0x3 - beq _08135776 - b _0813579A -_0813573E: - ldr r0, [r3] - ldr r3, _08135758 @ =0x00003224 - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0 - bne _0813575C -_0813574A: - movs r0, 0 - bl sub_813A838 - movs r0, 0 - bl sub_813AB70 - b _0813579A - .align 2, 0 -_08135758: .4byte 0x00003224 -_0813575C: - movs r0, 0 - bl sub_813A0E8 - movs r0, 0 - bl sub_813ACF8 - movs r0, 0 - bl sub_8139EE4 - movs r0, 0 - bl sub_813AEB0 - b _0813579A -_08135776: - movs r0, 0 - bl sub_8139C44 - movs r0, 0 - bl sub_813B084 - movs r0, 0 - bl sub_813A3B8 - movs r0, 0 - bl sub_8139D54 - movs r0, 0 - bl sub_813ACF8 - movs r0, 0 - bl sub_813AEB0 -_0813579A: - pop {r0} - bx r0 - thumb_func_end sub_81356EC - - thumb_func_start sub_81357A0 -sub_81357A0: @ 81357A0 - push {r4-r6,lr} - movs r3, 0x1 - ldr r0, _081357EC @ =gMonSummaryScreen - ldr r2, [r0] - ldr r4, _081357F0 @ =0x00003224 - adds r1, r2, r4 - ldrb r1, [r1] - adds r5, r0, 0 - cmp r1, 0x1 - bne _081357B6 - movs r3, 0xFF -_081357B6: - ldr r1, _081357F4 @ =0x00003214 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x3 - bne _08135800 - ldr r4, _081357F8 @ =0x0000324c - adds r1, r2, r4 - movs r4, 0 - ldrsh r0, [r1, r4] - cmp r0, 0 - bgt _08135800 - movs r4, 0 - movs r0, 0 - strh r0, [r1] - ldr r0, _081357FC @ =0x00003238 - adds r2, r0 - ldrb r0, [r2] - movs r1, 0x1 - eors r0, r1 - strb r0, [r2] - movs r0, 0 - movs r1, 0 - bl sub_81358DC - ldr r0, [r5] - b _0813587E - .align 2, 0 -_081357EC: .4byte gMonSummaryScreen -_081357F0: .4byte 0x00003224 -_081357F4: .4byte 0x00003214 -_081357F8: .4byte 0x0000324c -_081357FC: .4byte 0x00003238 -_08135800: - ldr r2, [r5] - ldr r4, _0813583C @ =0x00003214 - adds r1, r2, r4 - lsls r0, r3, 24 - asrs r0, 24 - ldrb r1, [r1] - adds r0, r1 - cmp r0, 0x3 - bne _08135848 - ldr r0, _08135840 @ =0x0000324c - adds r1, r2, r0 - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, 0xEF - ble _08135848 - movs r3, 0 - movs r0, 0xF0 - strh r0, [r1] - adds r4, 0x24 - adds r2, r4 - ldrb r0, [r2] - movs r1, 0x1 - eors r0, r1 - strb r0, [r2] - ldr r0, [r5] - ldr r1, _08135844 @ =0x00003244 - adds r0, r1 - strb r3, [r0] - movs r0, 0x1 - b _081358D6 - .align 2, 0 -_0813583C: .4byte 0x00003214 -_08135840: .4byte 0x0000324c -_08135844: .4byte 0x00003244 -_08135848: - adds r6, r5, 0 - ldr r2, [r6] - ldr r3, _08135888 @ =0x00003224 - adds r0, r2, r3 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08135898 - ldr r4, _0813588C @ =0x0000324c - adds r1, r2, r4 - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, 0xEF - ble _081358D4 - movs r4, 0 - movs r0, 0xF0 - strh r0, [r1] - ldr r0, _08135890 @ =0x00003238 - adds r2, r0 - ldrb r0, [r2] - movs r1, 0x1 - eors r0, r1 - strb r0, [r2] - movs r0, 0 - movs r1, 0 - bl sub_81358DC - ldr r0, [r6] -_0813587E: - ldr r1, _08135894 @ =0x00003244 - adds r0, r1 - strb r4, [r0] - movs r0, 0x1 - b _081358D6 - .align 2, 0 -_08135888: .4byte 0x00003224 -_0813588C: .4byte 0x0000324c -_08135890: .4byte 0x00003238 -_08135894: .4byte 0x00003244 -_08135898: - ldr r3, _081358C8 @ =0x0000324c - adds r0, r2, r3 - movs r4, 0 - ldrsh r0, [r0, r4] - cmp r0, 0 - bgt _081358D4 - ldr r0, _081358CC @ =0x00003238 - adds r2, r0 - ldrb r0, [r2] - movs r1, 0x1 - eors r0, r1 - movs r3, 0 - strb r0, [r2] - ldr r0, [r5] - ldr r2, _081358C8 @ =0x0000324c - adds r1, r0, r2 - movs r2, 0 - strh r3, [r1] - ldr r3, _081358D0 @ =0x00003244 - adds r0, r3 - strb r2, [r0] - movs r0, 0x1 - b _081358D6 - .align 2, 0 -_081358C8: .4byte 0x0000324c -_081358CC: .4byte 0x00003238 -_081358D0: .4byte 0x00003244 -_081358D4: - movs r0, 0 -_081358D6: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81357A0 - - thumb_func_start sub_81358DC -sub_81358DC: @ 81358DC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - movs r0, 0x8 - bl GetGpuReg - movs r4, 0x3 - mov r8, r4 - mov r1, r8 - ands r1, r0 - mov r8, r1 - movs r0, 0xA - bl GetGpuReg - adds r5, r4, 0 - ands r5, r0 - movs r0, 0xC - bl GetGpuReg - adds r6, r4, 0 - ands r6, r0 - ldr r0, _08135938 @ =gMonSummaryScreen - ldr r0, [r0] - ldr r2, _0813593C @ =0x00003224 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08135970 - cmp r7, 0 - bne _0813594E - movs r0, 0 - mov r8, r0 - mov r1, r9 - cmp r1, 0 - bne _08135940 - cmp r5, r6 - bhi _0813594A - b _08135944 - .align 2, 0 -_08135938: .4byte gMonSummaryScreen -_0813593C: .4byte 0x00003224 -_08135940: - cmp r5, r6 - bls _0813594A -_08135944: - movs r5, 0x2 - movs r6, 0x1 - b _0813594E -_0813594A: - movs r5, 0x1 - movs r6, 0x2 -_0813594E: - cmp r7, 0x1 - bne _08135970 - movs r2, 0x1 - mov r8, r2 - mov r0, r9 - cmp r0, 0 - bne _08135962 - cmp r5, r6 - bhi _0813596C - b _08135966 -_08135962: - cmp r5, r6 - bls _0813596C -_08135966: - movs r5, 0x2 - movs r6, 0 - b _08135970 -_0813596C: - movs r5, 0 - movs r6, 0x2 -_08135970: - ldr r0, _0813598C @ =gMonSummaryScreen - ldr r0, [r0] - ldr r1, _08135990 @ =0x00003224 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _08135998 - movs r2, 0 - mov r8, r2 - cmp r5, r6 - bls _08135994 - movs r5, 0x1 - movs r6, 0x2 - b _08135998 - .align 2, 0 -_0813598C: .4byte gMonSummaryScreen -_08135990: .4byte 0x00003224 -_08135994: - movs r5, 0x2 - movs r6, 0x1 -_08135998: - movs r4, 0 - mov r0, r8 - lsls r0, 2 - mov r9, r0 - movs r7, 0xD - negs r7, r7 - lsls r1, r5, 2 - mov r12, r1 - ldr r2, _081359D8 @ =gUnknown_203B160 - mov r10, r2 -_081359AC: - ldr r0, _081359DC @ =gMonSummaryScreen - ldr r1, [r0] - ldr r2, _081359E0 @ =0x00003214 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x1 - bne _081359E4 - adds r2, 0x10 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x1 - bne _081359E4 - mov r1, r10 - ldr r0, [r1] - lsls r3, r4, 2 - adds r0, r3 - ldr r2, [r0] - ldrb r1, [r2, 0x5] - adds r0, r7, 0 - ands r0, r1 - mov r1, r9 - b _081359F6 - .align 2, 0 -_081359D8: .4byte gUnknown_203B160 -_081359DC: .4byte gMonSummaryScreen -_081359E0: .4byte 0x00003214 -_081359E4: - mov r2, r10 - ldr r0, [r2] - lsls r3, r4, 2 - adds r0, r3 - ldr r2, [r0] - ldrb r1, [r2, 0x5] - adds r0, r7, 0 - ands r0, r1 - mov r1, r12 -_081359F6: - orrs r0, r1 - strb r0, [r2, 0x5] - cmp r4, 0x8 - bhi _08135A48 - ldr r2, _08135A28 @ =gMonSummaryScreen - ldr r1, [r2] - ldr r2, _08135A2C @ =0x00003214 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08135A34 - adds r2, 0x10 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08135A34 - ldr r0, _08135A30 @ =gUnknown_203B15C - ldr r0, [r0] - adds r0, r3 - ldr r2, [r0] - ldrb r1, [r2, 0x5] - adds r0, r7, 0 - ands r0, r1 - mov r1, r9 - b _08135A44 - .align 2, 0 -_08135A28: .4byte gMonSummaryScreen -_08135A2C: .4byte 0x00003214 -_08135A30: .4byte gUnknown_203B15C -_08135A34: - ldr r0, _08135A9C @ =gUnknown_203B15C - ldr r0, [r0] - adds r0, r3 - ldr r2, [r0] - ldrb r1, [r2, 0x5] - adds r0, r7, 0 - ands r0, r1 - mov r1, r12 -_08135A44: - orrs r0, r1 - strb r0, [r2, 0x5] -_08135A48: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xA - bls _081359AC - movs r0, 0x8 - bl GetGpuReg - ldr r4, _08135AA0 @ =0x0000fffc - adds r1, r4, 0 - ands r1, r0 - mov r2, r8 - orrs r1, r2 - movs r0, 0x8 - bl SetGpuReg - movs r0, 0xA - bl GetGpuReg - adds r1, r4, 0 - ands r1, r0 - orrs r1, r5 - movs r0, 0xA - bl SetGpuReg - movs r0, 0xC - bl GetGpuReg - ands r4, r0 - orrs r4, r6 - movs r0, 0xC - adds r1, r4, 0 - bl SetGpuReg - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08135A9C: .4byte gUnknown_203B15C -_08135AA0: .4byte 0x0000fffc - thumb_func_end sub_81358DC - - thumb_func_start sub_8135AA4 -sub_8135AA4: @ 8135AA4 - push {lr} - ldr r0, _08135AC0 @ =gMonSummaryScreen - ldr r2, [r0] - ldr r3, _08135AC4 @ =0x00003224 - adds r1, r2, r3 - ldrb r1, [r1] - adds r3, r0, 0 - cmp r1, 0x1 - bne _08135ACC - ldr r1, _08135AC8 @ =0x00003214 - adds r0, r2, r1 - ldrb r0, [r0] - subs r0, 0x1 - b _08135AD4 - .align 2, 0 -_08135AC0: .4byte gMonSummaryScreen -_08135AC4: .4byte 0x00003224 -_08135AC8: .4byte 0x00003214 -_08135ACC: - ldr r1, _08135AE8 @ =0x00003214 - adds r0, r2, r1 - ldrb r0, [r0] - adds r0, 0x1 -_08135AD4: - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08135B00 - cmp r0, 0x1 - bgt _08135AEC - cmp r0, 0 - beq _08135AF6 - b _08135B82 - .align 2, 0 -_08135AE8: .4byte 0x00003214 -_08135AEC: - cmp r0, 0x2 - beq _08135B38 - cmp r0, 0x3 - beq _08135B70 - b _08135B82 -_08135AF6: - ldr r0, [r3] - movs r2, 0xC9 - lsls r2, 6 - adds r0, r2 - b _08135B5E -_08135B00: - ldr r1, [r3] - ldr r3, _08135B18 @ =0x00003224 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08135B24 - ldr r2, _08135B1C @ =0x0000323c - adds r0, r1, r2 - ldrb r0, [r0] - ldr r1, _08135B20 @ =gUnknown_8E9B950 - b _08135B62 - .align 2, 0 -_08135B18: .4byte 0x00003224 -_08135B1C: .4byte 0x0000323c -_08135B20: .4byte gUnknown_8E9B950 -_08135B24: - ldr r3, _08135B30 @ =0x0000323c - adds r0, r1, r3 - ldrb r0, [r0] - ldr r1, _08135B34 @ =gUnknown_8E9B598 - b _08135B62 - .align 2, 0 -_08135B30: .4byte 0x0000323c -_08135B34: .4byte gUnknown_8E9B598 -_08135B38: - ldr r1, [r3] - ldr r2, _08135B50 @ =0x00003224 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08135B58 - movs r3, 0xC9 - lsls r3, 6 - adds r0, r1, r3 - ldrb r0, [r0] - ldr r1, _08135B54 @ =gUnknown_8E9BA9C - b _08135B62 - .align 2, 0 -_08135B50: .4byte 0x00003224 -_08135B54: .4byte gUnknown_8E9BA9C -_08135B58: - movs r2, 0xC9 - lsls r2, 6 - adds r0, r1, r2 -_08135B5E: - ldrb r0, [r0] - ldr r1, _08135B6C @ =gUnknown_8E9B750 -_08135B62: - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - b _08135B82 - .align 2, 0 -_08135B6C: .4byte gUnknown_8E9B750 -_08135B70: - ldr r0, [r3] - ldr r3, _08135B88 @ =0x0000323c - adds r0, r3 - ldrb r0, [r0] - ldr r1, _08135B8C @ =gUnknown_8E9B950 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer -_08135B82: - pop {r0} - bx r0 - .align 2, 0 -_08135B88: .4byte 0x0000323c -_08135B8C: .4byte gUnknown_8E9B950 - thumb_func_end sub_8135AA4 - - thumb_func_start sub_8135B90 -sub_8135B90: @ 8135B90 - push {lr} - ldr r0, _08135BAC @ =gMonSummaryScreen - ldr r2, [r0] - ldr r3, _08135BB0 @ =0x00003224 - adds r1, r2, r3 - ldrb r1, [r1] - adds r3, r0, 0 - cmp r1, 0x1 - bne _08135BB8 - ldr r1, _08135BB4 @ =0x00003214 - adds r0, r2, r1 - ldrb r0, [r0] - subs r0, 0x1 - b _08135BC0 - .align 2, 0 -_08135BAC: .4byte gMonSummaryScreen -_08135BB0: .4byte 0x00003224 -_08135BB4: .4byte 0x00003214 -_08135BB8: - ldr r1, _08135BD4 @ =0x00003214 - adds r0, r2, r1 - ldrb r0, [r0] - adds r0, 0x1 -_08135BC0: - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08135C2C - cmp r0, 0x1 - bgt _08135BD8 - cmp r0, 0 - beq _08135BE2 - b _08135C2C - .align 2, 0 -_08135BD4: .4byte 0x00003214 -_08135BD8: - cmp r0, 0x2 - beq _08135BF4 - cmp r0, 0x3 - beq _08135C20 - b _08135C2C -_08135BE2: - ldr r0, [r3] - movs r3, 0xC9 - lsls r3, 6 - adds r0, r3 - ldrb r0, [r0] - ldr r1, _08135BF0 @ =gUnknown_8E9B750 - b _08135C10 - .align 2, 0 -_08135BF0: .4byte gUnknown_8E9B750 -_08135BF4: - ldr r0, [r3] - ldr r1, _08135C04 @ =0x00003224 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08135C0C - ldr r1, _08135C08 @ =gUnknown_8463C80 - b _08135C0E - .align 2, 0 -_08135C04: .4byte 0x00003224 -_08135C08: .4byte gUnknown_8463C80 -_08135C0C: - ldr r1, _08135C1C @ =gUnknown_8463B88 -_08135C0E: - movs r0, 0x3 -_08135C10: - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - b _08135C2C - .align 2, 0 -_08135C1C: .4byte gUnknown_8463B88 -_08135C20: - ldr r1, _08135C30 @ =gUnknown_8463B88 - movs r0, 0x3 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer -_08135C2C: - pop {r0} - bx r0 - .align 2, 0 -_08135C30: .4byte gUnknown_8463B88 - thumb_func_end sub_8135B90 - - thumb_func_start sub_8135C34 -sub_8135C34: @ 8135C34 - push {r4,lr} - sub sp, 0x4 - ldr r0, _08135C54 @ =gMonSummaryScreen - ldr r0, [r0] - ldr r1, _08135C58 @ =0x00003274 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0xF - bls _08135C48 - b _08135EF6 -_08135C48: - lsls r0, 2 - ldr r1, _08135C5C @ =_08135C60 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08135C54: .4byte gMonSummaryScreen -_08135C58: .4byte 0x00003274 -_08135C5C: .4byte _08135C60 - .align 2, 0 -_08135C60: - .4byte _08135CA0 - .4byte _08135CA6 - .4byte _08135CAC - .4byte _08135CB2 - .4byte _08135CB8 - .4byte _08135CBE - .4byte _08135CC4 - .4byte _08135CD2 - .4byte _08135CD8 - .4byte _08135CDE - .4byte _08135CE8 - .4byte _08135D30 - .4byte _08135DC4 - .4byte _08135DEC - .4byte _08135E80 - .4byte _08135E9A -_08135CA0: - bl sub_81381AC - b _08135F00 -_08135CA6: - bl sub_8136BC4 - b _08135F00 -_08135CAC: - bl sub_8136BAC - b _08135F00 -_08135CB2: - bl sub_8135F20 - b _08135CC8 -_08135CB8: - bl sub_8136AEC - b _08135CC8 -_08135CBE: - bl sub_81381D0 - b _08135F00 -_08135CC4: - bl sub_8136040 -_08135CC8: - lsls r0, 24 - cmp r0, 0 - bne _08135CD0 - b _08135F0E -_08135CD0: - b _08135F00 -_08135CD2: - bl sub_8136F4C - b _08135F00 -_08135CD8: - bl sub_81374E8 - b _08135F00 -_08135CDE: - bl sub_8137BD0 - bl sub_8138A38 - b _08135F00 -_08135CE8: - ldr r0, _08135D0C @ =gMonSummaryScreen - ldr r0, [r0] - ldr r2, _08135D10 @ =0x00003208 - adds r0, r2 - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08135D18 - ldr r1, _08135D14 @ =gUnknown_8463C80 - movs r0, 0x3 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - b _08135D24 - .align 2, 0 -_08135D0C: .4byte gMonSummaryScreen -_08135D10: .4byte 0x00003208 -_08135D14: .4byte gUnknown_8463C80 -_08135D18: - ldr r1, _08135D2C @ =gUnknown_8463B88 - movs r0, 0x3 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer -_08135D24: - bl sub_8138538 - b _08135F00 - .align 2, 0 -_08135D2C: .4byte gUnknown_8463B88 -_08135D30: - ldr r4, _08135D4C @ =gMonSummaryScreen - ldr r1, [r4] - movs r2, 0xC8 - lsls r2, 6 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _08135D54 - adds r2, 0x3C - adds r0, r1, r2 - ldrb r0, [r0] - ldr r1, _08135D50 @ =gUnknown_8E9BBCC - b _08135DAC - .align 2, 0 -_08135D4C: .4byte gMonSummaryScreen -_08135D50: .4byte gUnknown_8E9BBCC -_08135D54: - ldr r2, _08135D84 @ =0x00003208 - adds r0, r1, r2 - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08135D90 - adds r2, 0x34 - adds r0, r1, r2 - ldrb r0, [r0] - ldr r1, _08135D88 @ =gUnknown_8E9B950 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - ldr r0, [r4] - movs r1, 0xC9 - lsls r1, 6 - adds r0, r1 - ldrb r0, [r0] - ldr r1, _08135D8C @ =gUnknown_8E9BA9C - b _08135DAC - .align 2, 0 -_08135D84: .4byte 0x00003208 -_08135D88: .4byte gUnknown_8E9B950 -_08135D8C: .4byte gUnknown_8E9BA9C -_08135D90: - ldr r2, _08135DB8 @ =0x0000323c - adds r0, r1, r2 - ldrb r0, [r0] - ldr r1, _08135DBC @ =gUnknown_8E9B598 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - ldr r0, [r4] - movs r1, 0xC9 - lsls r1, 6 - adds r0, r1 - ldrb r0, [r0] - ldr r1, _08135DC0 @ =gUnknown_8E9B750 -_08135DAC: - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - b _08135F00 - .align 2, 0 -_08135DB8: .4byte 0x0000323c -_08135DBC: .4byte gUnknown_8E9B598 -_08135DC0: .4byte gUnknown_8E9B750 -_08135DC4: - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - ldr r0, _08135DE4 @ =gMonSummaryScreen - ldr r0, [r0] - ldr r2, _08135DE8 @ =0x00003214 - adds r0, r2 - ldrb r0, [r0] - bl sub_8137D28 - bl sub_8137E28 - b _08135F00 - .align 2, 0 -_08135DE4: .4byte gMonSummaryScreen -_08135DE8: .4byte 0x00003214 -_08135DEC: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r4, _08135E64 @ =gMonSummaryScreen - ldr r0, [r4] - movs r1, 0xC0 - lsls r1, 6 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r0, [r4] - ldr r2, _08135E68 @ =0x00003001 - adds r0, r2 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r0, [r4] - ldr r1, _08135E6C @ =0x00003002 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r0, [r4] - ldr r2, _08135E70 @ =0x00003006 - adds r0, r2 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r0, [r4] - ldr r1, _08135E74 @ =0x00003003 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r0, [r4] - ldr r2, _08135E78 @ =0x00003004 - adds r0, r2 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r0, [r4] - ldr r1, _08135E7C @ =0x00003005 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - b _08135F00 - .align 2, 0 -_08135E64: .4byte gMonSummaryScreen -_08135E68: .4byte 0x00003001 -_08135E6C: .4byte 0x00003002 -_08135E70: .4byte 0x00003006 -_08135E74: .4byte 0x00003003 -_08135E78: .4byte 0x00003004 -_08135E7C: .4byte 0x00003005 -_08135E80: - movs r0, 0 - bl CopyBgTilemapBufferToVram - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - movs r0, 0x3 - bl CopyBgTilemapBufferToVram - b _08135F00 -_08135E9A: - ldr r0, _08135EBC @ =gMonSummaryScreen - ldr r0, [r0] - ldr r2, _08135EC0 @ =0x00003208 - adds r0, r2 - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08135EC4 - movs r0, 0 - bl sub_8139EE4 - movs r0, 0 - bl sub_813A0E8 - b _08135EE2 - .align 2, 0 -_08135EBC: .4byte gMonSummaryScreen -_08135EC0: .4byte 0x00003208 -_08135EC4: - movs r0, 0 - bl sub_8139C44 - movs r0, 0 - bl sub_813B084 - movs r0, 0 - bl sub_8139D54 - movs r0, 0 - bl sub_813A838 - movs r0, 0 - bl sub_813AB70 -_08135EE2: - movs r0, 0 - bl sub_813A3B8 - movs r0, 0 - bl sub_813ACF8 - movs r0, 0 - bl sub_813AEB0 - b _08135F00 -_08135EF6: - bl sub_81381C0 - bl sub_8136D54 - b _08135F0E -_08135F00: - ldr r0, _08135F18 @ =gMonSummaryScreen - ldr r1, [r0] - ldr r0, _08135F1C @ =0x00003274 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08135F0E: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08135F18: .4byte gMonSummaryScreen -_08135F1C: .4byte 0x00003274 - thumb_func_end sub_8135C34 - - thumb_func_start sub_8135F20 -sub_8135F20: @ 8135F20 - push {r4,r5,lr} - sub sp, 0x4 - ldr r0, _08135F3C @ =gMonSummaryScreen - ldr r0, [r0] - ldr r1, _08135F40 @ =0x00003278 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x6 - bhi _0813600E - lsls r0, 2 - ldr r1, _08135F44 @ =_08135F48 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08135F3C: .4byte gMonSummaryScreen -_08135F40: .4byte 0x00003278 -_08135F44: .4byte _08135F48 - .align 2, 0 -_08135F48: - .4byte _08135F64 - .4byte _08135FCC - .4byte _08135FE4 - .4byte _08135FEA - .4byte _08136000 - .4byte _08136020 - .4byte _08136020 -_08135F64: - ldr r4, _08135FA8 @ =gUnknown_8E9B310 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0xA0 - bl LoadPalette - ldr r5, _08135FAC @ =gMonSummaryScreen - ldr r0, [r5] - ldr r1, _08135FB0 @ =0x00003290 - adds r0, r1 - bl IsMonShiny - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08135FB4 - ldr r0, [r5] - movs r1, 0xC8 - lsls r1, 6 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _08135FB4 - adds r0, r4, 0 - adds r0, 0xC0 - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - adds r0, r4, 0 - adds r0, 0xA0 - movs r1, 0x10 - b _08135FD8 - .align 2, 0 -_08135FA8: .4byte gUnknown_8E9B310 -_08135FAC: .4byte gMonSummaryScreen -_08135FB0: .4byte 0x00003290 -_08135FB4: - ldr r4, _08135FC8 @ =gUnknown_8E9B310 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - adds r4, 0x20 - adds r0, r4, 0 - movs r1, 0x10 - b _08135FD8 - .align 2, 0 -_08135FC8: .4byte gUnknown_8E9B310 -_08135FCC: - movs r0, 0x60 - movs r1, 0x1 - bl ListMenuLoadStdPalAt - ldr r0, _08135FE0 @ =gUnknown_84636C0 - movs r1, 0x70 -_08135FD8: - movs r2, 0x20 - bl LoadPalette - b _08136020 - .align 2, 0 -_08135FE0: .4byte gUnknown_84636C0 -_08135FE4: - bl ResetTempTileDataBuffers - b _08136020 -_08135FEA: - ldr r1, _08135FFC @ =gUnknown_8E9A460 - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl DecompressAndCopyTileDataToVram - b _08136020 - .align 2, 0 -_08135FFC: .4byte gUnknown_8E9A460 -_08136000: - bl FreeTempTileDataBuffersIfPossible - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08136020 - b _0813602E -_0813600E: - ldr r0, _0813601C @ =gUnknown_8463700 - movs r1, 0x80 - movs r2, 0x20 - bl LoadPalette - movs r0, 0x1 - b _08136030 - .align 2, 0 -_0813601C: .4byte gUnknown_8463700 -_08136020: - ldr r0, _08136038 @ =gMonSummaryScreen - ldr r1, [r0] - ldr r0, _0813603C @ =0x00003278 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_0813602E: - movs r0, 0 -_08136030: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08136038: .4byte gMonSummaryScreen -_0813603C: .4byte 0x00003278 - thumb_func_end sub_8135F20 - - thumb_func_start sub_8136040 -sub_8136040: @ 8136040 - push {r4-r6,lr} - ldr r1, _08136060 @ =gMonSummaryScreen - ldr r2, [r1] - movs r6, 0xCA - lsls r6, 6 - adds r0, r2, r6 - ldrb r4, [r0] - adds r5, r1, 0 - cmp r4, 0x1 - beq _08136084 - cmp r4, 0x1 - bgt _08136064 - cmp r4, 0 - beq _0813606A - b _081360A8 - .align 2, 0 -_08136060: .4byte gMonSummaryScreen -_08136064: - cmp r4, 0x2 - beq _08136096 - b _081360A8 -_0813606A: - bl sub_81360D4 - ldr r1, [r5] - movs r2, 0xC8 - lsls r2, 6 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _081360B8 - adds r0, r1, r6 - strb r4, [r0] - movs r0, 0x1 - b _081360CA -_08136084: - movs r1, 0xC8 - lsls r1, 6 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _081360B8 - bl sub_8136350 - b _081360B8 -_08136096: - movs r1, 0xC8 - lsls r1, 6 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _081360B8 - bl sub_81367B0 - b _081360B8 -_081360A8: - ldr r0, [r5] - movs r2, 0xCA - lsls r2, 6 - adds r0, r2 - movs r1, 0 - strb r1, [r0] - movs r0, 0x1 - b _081360CA -_081360B8: - ldr r0, _081360D0 @ =gMonSummaryScreen - ldr r1, [r0] - movs r0, 0xCA - lsls r0, 6 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r0, 0 -_081360CA: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_081360D0: .4byte gMonSummaryScreen - thumb_func_end sub_8136040 - - thumb_func_start sub_81360D4 -sub_81360D4: @ 81360D4 - push {r4-r7,lr} - sub sp, 0x14 - ldr r5, _08136108 @ =gMonSummaryScreen - ldr r0, [r5] - ldr r1, _0813610C @ =0x00003290 - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - bl SpeciesToPokedexNum - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, _08136110 @ =0x0000ffff - cmp r4, r0 - bne _0813611C - ldr r0, [r5] - ldr r2, _08136114 @ =0x00003064 - adds r0, r2 - ldr r1, _08136118 @ =gUnknown_8416202 - bl StringCopy - b _0813612C - .align 2, 0 -_08136108: .4byte gMonSummaryScreen -_0813610C: .4byte 0x00003290 -_08136110: .4byte 0x0000ffff -_08136114: .4byte 0x00003064 -_08136118: .4byte gUnknown_8416202 -_0813611C: - ldr r0, [r5] - ldr r3, _08136154 @ =0x00003064 - adds r0, r3 - adds r1, r4, 0 - movs r2, 0x2 - movs r3, 0x3 - bl ConvertIntToDecimalStringN -_0813612C: - ldr r0, _08136158 @ =gUnknown_203B144 - ldr r1, [r0] - movs r0, 0 - strh r0, [r1] - ldr r6, _0813615C @ =gMonSummaryScreen - ldr r2, [r6] - movs r1, 0xC8 - lsls r1, 6 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08136168 - ldr r3, _08136160 @ =0x00003290 - adds r0, r2, r3 - ldr r1, _08136164 @ =0x00003028 - adds r2, r1 - movs r1, 0x2 - bl GetMonData - b _08136342 - .align 2, 0 -_08136154: .4byte 0x00003064 -_08136158: .4byte gUnknown_203B144 -_0813615C: .4byte gMonSummaryScreen -_08136160: .4byte 0x00003290 -_08136164: .4byte 0x00003028 -_08136168: - ldr r5, _081361F0 @ =0x00003290 - adds r0, r2, r5 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, [r6] - ldr r2, _081361F4 @ =0x00003028 - adds r0, r2 - adds r1, r4, 0 - bl GetSpeciesName - ldr r1, [r6] - ldr r2, _081361F8 @ =gBaseStats - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r0, r2 - ldrb r2, [r0, 0x6] - ldr r3, _081361FC @ =0x00003220 - adds r1, r3 - strb r2, [r1] - ldr r1, [r6] - ldrb r0, [r0, 0x7] - ldr r2, _08136200 @ =0x00003221 - adds r1, r2 - strb r0, [r1] - ldr r0, [r6] - adds r0, r5 - movs r1, 0x2 - mov r2, sp - bl GetMonData - ldr r0, [r6] - ldr r4, _08136204 @ =0x00003034 - adds r0, r4 - mov r1, sp - movs r2, 0xA - bl StringCopyN_Multibyte - ldr r0, [r6] - adds r0, r4 - bl StringGetEnd10 - ldr r0, [r6] - adds r0, r5 - bl GetMonGender - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, [r6] - adds r0, r5 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - cmp r7, 0xFE - bne _08136210 - ldr r0, [r6] - ldr r3, _08136208 @ =0x00003084 - adds r0, r3 - ldr r1, _0813620C @ =gText_FemaleSymbol - bl StringCopy - b _08136238 - .align 2, 0 -_081361F0: .4byte 0x00003290 -_081361F4: .4byte 0x00003028 -_081361F8: .4byte gBaseStats -_081361FC: .4byte 0x00003220 -_08136200: .4byte 0x00003221 -_08136204: .4byte 0x00003034 -_08136208: .4byte 0x00003084 -_0813620C: .4byte gText_FemaleSymbol -_08136210: - cmp r7, 0 - bne _0813622C - ldr r0, [r6] - ldr r1, _08136224 @ =0x00003084 - adds r0, r1 - ldr r1, _08136228 @ =gText_MaleSymbol - bl StringCopy - b _08136238 - .align 2, 0 -_08136224: .4byte 0x00003084 -_08136228: .4byte gText_MaleSymbol -_0813622C: - ldr r0, [r6] - ldr r2, _08136308 @ =0x00003084 - adds r0, r2 - ldr r1, _0813630C @ =gString_Dummy - bl StringCopy -_08136238: - cmp r4, 0x20 - beq _08136240 - cmp r4, 0x1D - bne _08136264 -_08136240: - ldr r5, _08136310 @ =gMonSummaryScreen - ldr r0, [r5] - ldr r3, _08136314 @ =0x00003034 - adds r0, r3 - movs r1, 0xB - muls r1, r4 - ldr r2, _08136318 @ =gSpeciesNames - adds r1, r2 - bl StringCompare - cmp r0, 0 - bne _08136264 - ldr r0, [r5] - ldr r1, _08136308 @ =0x00003084 - adds r0, r1 - ldr r1, _0813630C @ =gString_Dummy - bl StringCopy -_08136264: - ldr r6, _08136310 @ =gMonSummaryScreen - ldr r0, [r6] - ldr r5, _0813631C @ =0x00003290 - adds r0, r5 - movs r1, 0x7 - mov r2, sp - bl GetMonData - ldr r0, [r6] - movs r4, 0xC1 - lsls r4, 6 - adds r0, r4 - mov r1, sp - movs r2, 0x7 - bl StringCopyN_Multibyte - ldr r0, [r6] - adds r4, r0, r4 - adds r0, r5 - movs r1, 0x3 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl ConvertInternationalString - ldr r0, [r6] - adds r0, r5 - movs r1, 0x1 - bl GetMonData - ldr r1, _08136320 @ =0x0000ffff - ands r1, r0 - ldr r0, [r6] - ldr r2, _08136324 @ =0x0000306c - adds r0, r2 - movs r2, 0x2 - movs r3, 0x5 - bl ConvertIntToDecimalStringN - ldr r0, [r6] - adds r0, r5 - movs r1, 0x38 - bl GetMonData - adds r1, r0, 0 - mov r0, sp - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r0, [r6] - ldr r4, _08136328 @ =0x00003088 - adds r0, r4 - ldr r1, _0813632C @ =gText_Lv - bl StringCopy - ldr r0, [r6] - adds r0, r4 - mov r1, sp - movs r2, 0x4 - bl StringAppendN - ldr r0, [r6] - adds r0, r5 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - bne _08136338 - ldr r0, [r6] - ldr r3, _08136330 @ =0x00003074 - adds r0, r3 - ldr r1, _08136334 @ =gUnknown_84161EF - bl StringCopy - b _08136342 - .align 2, 0 -_08136308: .4byte 0x00003084 -_0813630C: .4byte gString_Dummy -_08136310: .4byte gMonSummaryScreen -_08136314: .4byte 0x00003034 -_08136318: .4byte gSpeciesNames -_0813631C: .4byte 0x00003290 -_08136320: .4byte 0x0000ffff -_08136324: .4byte 0x0000306c -_08136328: .4byte 0x00003088 -_0813632C: .4byte gText_Lv -_08136330: .4byte 0x00003074 -_08136334: .4byte gUnknown_84161EF -_08136338: - ldr r1, [r6] - ldr r2, _0813634C @ =0x00003074 - adds r1, r2 - bl CopyItemName -_08136342: - add sp, 0x14 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813634C: .4byte 0x00003074 - thumb_func_end sub_81360D4 - thumb_func_start sub_8136350 sub_8136350: @ 8136350 push {r4-r7,lr} diff --git a/hgrep.sh b/hgrep.sh new file mode 100644 index 000000000..81e14120e --- /dev/null +++ b/hgrep.sh @@ -0,0 +1,10 @@ +#!/bin/bash +# $1: phrase to find + +if [ "$2" == "" ]; then + grep_flags="-wr" +else + grep_flags="$2" +fi + +grep "$1" "$grep_flags" --include="*.h" --include="*.s" --include="*.inc" --include="*.txt" --exclude-dir=".git" --exclude-dir=".travis" --exclude-dir="build" --exclude-dir="common_syms" --exclude-dir="data" --exclude-dir="graphics" --exclude-dir="sound" --exclude-dir="tools" diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h index 03a10fcde..9c9c1e351 100644 --- a/include/pokemon_summary_screen.h +++ b/include/pokemon_summary_screen.h @@ -21,7 +21,7 @@ enum PokemonSummaryScreenMode PSS_MODE_NORMAL, PSS_MODE_UNK1, PSS_MODE_SELECT_MOVE, - PSS_MODE_UNK3, + PSS_MODE_FORGET_MOVE, PSS_MODE_UNK4, PSS_MODE_BOX, }; diff --git a/include/strings.h b/include/strings.h index fd224aea4..6c12d38f5 100644 --- a/include/strings.h +++ b/include/strings.h @@ -1468,4 +1468,13 @@ extern const u8 gText_PokemonOnHook[]; extern const u8 gText_NotEvenANibble[]; extern const u8 gText_ItGotAway[]; +// pokemon_summary_screen +extern const u8 gUnknown_8419C39[]; +extern const u8 gUnknown_8419C92[]; +extern const u8 gUnknown_8419CA2[]; +extern const u8 gUnknown_8419C45[]; +extern const u8 gUnknown_8419C82[]; +extern const u8 gUnknown_8416202[]; +extern const u8 gUnknown_84161EF[]; + #endif //GUARD_STRINGS_H diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 0ca6b2633..af0320be5 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -8,16 +8,67 @@ #include "link.h" #include "overworld.h" #include "constants/songs.h" +#include "strings.h" +#include "new_menu_helpers.h" +#include "menu.h" +#include "constants/species.h" +#include "constants/items.h" +#include "data.h" +#include "item.h" extern void sub_8138B8C(struct Pokemon * mon); -extern void sub_8135C34(void); +void sub_8135C34(void); extern void sub_813B784(void); extern void sub_8138414(u8 curPageIndex); -extern void sub_8134BAC(u8 taskId); -extern void sub_8134E84(u8 taskId); +static void sub_8134BAC(u8 taskId); +static void sub_8134E84(u8 taskId); extern void sub_813B3F0(u8 taskId); extern void sub_813B120(u8, s8); extern void sub_8137E64(u8 taskId); +void sub_8135638(void); +void sub_81356EC(void); +extern void sub_813B750(u8 curPageIndex); +extern void sub_8138280(u8 curPageIndex); +extern void sub_8137D28(u8 curPageIndex); +void sub_8135514(void); +u8 sub_81357A0(u8); +extern void sub_8138440(void); +extern void sub_8138CD8(u8 taskId); +void sub_8135AA4(void); +void sub_8135B90(void); +extern void sub_8138538(void); +extern void sub_8137D28(u8 curPageIndex); +extern void sub_8136F4C(void); +extern void sub_81374E8(void); +extern void sub_8137BD0(void); +extern void sub_8138A38(void); +extern void sub_8136DA4(const u8 * str); +extern void sub_8136DF0(const u8 * str); +extern void sub_8136E50(const u8 * str); +void sub_81358DC(u8, u8); +extern void sub_813A838(u8 invisible); +extern void sub_813AB70(u8 invisible); +extern void sub_8139C44(u8 invisible); +extern void sub_813B084(u8 invisible); +extern void sub_8139D54(u8 invisible); +extern void sub_813A3B8(u8 invisible); +extern void sub_813ACF8(u8 invisible); +extern void sub_813AEB0(u8 invisible); +extern void sub_813A0E8(u8 invisible); +extern void sub_8139EE4(u8 invisible); +extern void sub_81381AC(void); +extern void sub_8136BC4(void); +extern void sub_8136BAC(void); +u8 sub_8135F20(void); +extern u8 sub_8136AEC(void); +extern void sub_81381D0(void); +u8 sub_8136040(void); +extern void sub_8137E28(void); +extern void sub_81381C0(void); +extern void sub_8136D54(void); +extern void sub_81360D4(void); +extern void sub_8136350(void); +extern void sub_81367B0(void); struct PokemonSummaryScreenData { u16 unk0[0x800]; @@ -38,33 +89,43 @@ struct PokemonSummaryScreenData { bool32 isEnemyParty; /* 0x3024 */ struct PokeSummary { + // u8 ALIGNED(4) unk3028[POKEMON_NAME_LENGTH]; + // u8 ALIGNED(4) unk3034[POKEMON_NAME_LENGTH + 1]; + + // u8 ALIGNED(4) unk3040[OT_NAME_LENGTH + 1]; + // u8 ALIGNED(4) unk3048[2][OT_NAME_LENGTH + 1]; + u8 ALIGNED(4) unk3028[POKEMON_NAME_LENGTH]; u8 ALIGNED(4) unk3034[POKEMON_NAME_LENGTH + 1]; - u8 ALIGNED(4) unk3040[OT_NAME_LENGTH + 1]; - u8 ALIGNED(4) unk3048[2][OT_NAME_LENGTH + 1]; + u8 ALIGNED(4) pad3048[0x1c]; + + u8 ALIGNED(4) unk3064[5]; + //u8 ALIGNED(4) unk3060[7]; + //u8 ALIGNED(4) unk3068[16]; + u8 ALIGNED(4) unk306C[7]; + u8 ALIGNED(4) unk3074[ITEM_NAME_LENGTH + 1]; - u8 ALIGNED(4) unk3058[5]; - u8 ALIGNED(4) unk3060[7]; - u8 ALIGNED(4) unk3068[16]; + u8 ALIGNED(4) unk3084[3]; + u8 ALIGNED(4) unk3088[7]; - u8 ALIGNED(4) unk3078[3]; - u8 ALIGNED(4) unk307C[7]; - u8 ALIGNED(4) unk3084[9]; - u8 ALIGNED(4) unk3090[5][5]; + u8 ALIGNED(4) pad3090[0x170]; - u8 ALIGNED(4) unk30AC[5][11]; - u8 ALIGNED(4) unk30E4[5][11]; - u8 ALIGNED(4) unk311C[5][13]; - u8 ALIGNED(4) pssd4[5][5]; - u8 ALIGNED(4) pssd5[5][5]; + // u8 ALIGNED(4) unk3090[9]; + // u8 ALIGNED(4) unk309C[5][5]; - u8 ALIGNED(4) pssd6[9]; - u8 ALIGNED(4) pssd7[9]; + // u8 ALIGNED(4) unk30AC[5][11]; + // u8 ALIGNED(4) unk30E4[5][11]; + // u8 ALIGNED(4) unk311C[5][13]; + // u8 ALIGNED(4) pssd4[5][5]; + // u8 ALIGNED(4) pssd5[5][5]; - u8 ALIGNED(4) pssd8[13]; - u8 ALIGNED(4) pssd9[20]; - u8 ALIGNED(4) tempPadRemoveLater[0x2c]; + // u8 ALIGNED(4) pssd6[9]; + // u8 ALIGNED(4) pssd7[9]; + + // u8 ALIGNED(4) pssd8[13]; + // u8 ALIGNED(4) pssd9[20]; + // u8 ALIGNED(4) tempPadRemoveLater[0x2c]; } summary; u8 ALIGNED(4) isEgg; /* 0x3200 */ @@ -123,14 +184,56 @@ struct PokemonSummaryScreenData { }; struct Struct203B144 { - u8 unk0[0x28]; + u16 unk00; + u16 unk02; + u16 unk04; + u16 unk06; + u16 unk08; + u16 unk0A; + u16 unk0C; + u16 unk0E; + u16 unk10; + + u16 unk12[5]; + u16 unk1C[5]; + + u16 unk26; +}; + +struct Struct203B160 { + struct Sprite * sprite00[11]; /* 0x00 */ + u16 unk2C[11]; /* 0x2c */ + u16 unk42; /* 0x42 */ + u16 unk44; /* 0x44 */ +}; + +struct Struct203B15C { + struct Sprite * sprite00[10]; /* 0x00 */ + u16 unk28[10]; /* 0x28 */ + u16 unk3C; /* 0x3c */ + u16 unk3E; /* 0x3e */ }; extern struct PokemonSummaryScreenData * gMonSummaryScreen; extern struct Struct203B144 * gUnknown_203B144; +extern struct Struct203B15C * gUnknown_203B15C; +extern struct Struct203B160 * gUnknown_203B160; extern u8 gUnknown_203B16D; extern u8 gUnknown_203B16E; +extern const u32 gUnknown_8E9B750[]; +extern const u32 gUnknown_8E9B950[]; +extern const u32 gUnknown_8E9B598[]; +extern const u32 gUnknown_8E9BA9C[]; +extern const u32 gUnknown_8463C80[]; +extern const u32 gUnknown_8463B88[]; +extern const u32 gUnknown_8E9BBCC[]; +extern const u16 gUnknown_8E9B310[]; +extern const u32 gUnknown_8E9A460[]; + +extern const u32 gUnknown_84636C0[]; +extern const u32 gUnknown_8463700[]; + void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, MainCallback savedCallback, u8 mode) { gMonSummaryScreen = AllocZeroed(sizeof(struct PokemonSummaryScreenData)); @@ -173,7 +276,7 @@ void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, gMonSummaryScreen->lockMovesFlag = FALSE; break; case PSS_MODE_SELECT_MOVE: - case PSS_MODE_UNK3: + case PSS_MODE_FORGET_MOVE: SetHelpContext(HELPCONTEXT_POKEMON_MOVES); gMonSummaryScreen->curPageIndex = PSS_PAGE_MOVES_INFO; gMonSummaryScreen->isBoxMon = FALSE; @@ -387,3 +490,918 @@ void sub_8134840(u8 taskId) break; } } + +static void sub_8134BAC(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + switch (data[0]) + { + case 0: + sub_8135638(); + sub_81356EC(); + gMonSummaryScreen->lockMovesFlag = TRUE; + gMonSummaryScreen->unk301C = TRUE; + sub_813B750(gMonSummaryScreen->curPageIndex); + sub_8138280(gMonSummaryScreen->curPageIndex); + break; + case 1: + if (gMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) + { + if (!(gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES && gMonSummaryScreen->unk3224 == 0)) + { + FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); + CopyBgTilemapBufferToVram(0); + } + } + FillBgTilemapBufferRect_Palette0(1, 0, 0, 0, 30, 2); + FillBgTilemapBufferRect_Palette0(1, 0, 0, 2, 15, 2); + FillBgTilemapBufferRect_Palette0(2, 0, 0, 0, 30, 2); + FillBgTilemapBufferRect_Palette0(2, 0, 0, 2, 15, 2); + break; + case 2: + sub_8135AA4(); + sub_8135B90(); + sub_8138538(); + sub_8137D28(gMonSummaryScreen->curPageIndex); + break; + case 3: + CopyWindowToVram(gMonSummaryScreen->unk3000[0], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[1], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[2], 2); + break; + case 4: + if (!IsDma3ManagerBusyWithBgCopy()) + { + CopyBgTilemapBufferToVram(3); + CopyBgTilemapBufferToVram(2); + CopyBgTilemapBufferToVram(1); + } + else + return; + + break; + case 5: + sub_8135514(); + gMonSummaryScreen->unk3244 = TRUE; + break; + case 6: + if (!sub_81357A0(gMonSummaryScreen->unk3224)) + return; + + break; + case 7: + sub_8136F4C(); + if (gMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) + sub_81374E8(); + + sub_8137BD0(); + sub_8138A38(); + break; + case 8: + CopyWindowToVram(gMonSummaryScreen->unk3000[3], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[4], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[5], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[6], 2); + break; + case 9: + if (!IsDma3ManagerBusyWithBgCopy()) + { + CopyBgTilemapBufferToVram(0); + ShowBg(0); + } + else + return; + + break; + default: + sub_8138440(); + + if (gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO) + gTasks[gMonSummaryScreen->unk3018].func = sub_8138CD8; + + DestroyTask(taskId); + data[0] = 0; + gMonSummaryScreen->lockMovesFlag = FALSE; + gMonSummaryScreen->unk301C = FALSE; + return; + } + + data[0]++; +} + +static void sub_8134E84(u8 taskId) +{ + switch (gMonSummaryScreen->unk3284) + { + case 0: + gMonSummaryScreen->lockMovesFlag = TRUE; + gMonSummaryScreen->unk301C = TRUE; + sub_8138280(gMonSummaryScreen->curPageIndex); + break; + case 1: + if (gMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) + { + if (!(gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES && gMonSummaryScreen->unk3224 == 0)) + { + FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); + CopyBgTilemapBufferToVram(0); + } + } + + FillBgTilemapBufferRect_Palette0(1, 0, 0, 0, 30, 2); + FillBgTilemapBufferRect_Palette0(1, 0, 0, 2, 15, 2); + FillBgTilemapBufferRect_Palette0(2, 0, 0, 0, 30, 2); + FillBgTilemapBufferRect_Palette0(2, 0, 0, 2, 15, 2); + break; + case 2: + sub_8135638(); + sub_813B750(gMonSummaryScreen->curPageIndex); + sub_8135B90(); + sub_8138538(); + sub_8135AA4(); + break; + case 3: + sub_8136DA4(gUnknown_8419C39); + if (!(gMain.inBattle || gReceivedRemoteLinkPlayers)) + sub_8136DF0(gUnknown_8419C92); + else + sub_8136DF0(gUnknown_8419CA2); + + break; + case 4: + CopyWindowToVram(gMonSummaryScreen->unk3000[0], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[1], 2); + break; + case 5: + if (!IsDma3ManagerBusyWithBgCopy()) + { + CopyBgTilemapBufferToVram(2); + CopyBgTilemapBufferToVram(1); + CopyBgTilemapBufferToVram(3); + } + else + return; + + break; + case 6: + sub_8136F4C(); + sub_8137BD0(); + CopyWindowToVram(gMonSummaryScreen->unk3000[3], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[5], 2); + break; + case 7: + if (!IsDma3ManagerBusyWithBgCopy()) + { + CopyBgTilemapBufferToVram(0); + sub_8135514(); + gMonSummaryScreen->unk3244 = TRUE; + } + else + return; + + break; + case 8: + if (!sub_81357A0(gMonSummaryScreen->unk3224)) + return; + + sub_81374E8(); + CopyWindowToVram(gMonSummaryScreen->unk3000[4], 2); + break; + case 9: + sub_8138A38(); + sub_8136E50(gUnknown_8419C45); + break; + case 10: + sub_81356EC(); + CopyWindowToVram(gMonSummaryScreen->unk3000[6], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[2], 2); + break; + case 11: + if (!IsDma3ManagerBusyWithBgCopy()) + { + CopyBgTilemapBufferToVram(0); + CopyBgTilemapBufferToVram(2); + CopyBgTilemapBufferToVram(1); + } + else + return; + + break; + default: + sub_8138440(); + gTasks[gMonSummaryScreen->unk3018].func = sub_8138CD8; + gMonSummaryScreen->unk3284 = 0; + gMonSummaryScreen->lockMovesFlag = FALSE; + gMonSummaryScreen->unk301C = FALSE; + return; + } + + gMonSummaryScreen->unk3284++; + return; +} + +void sub_81351A0(u8 taskId) +{ + switch (gMonSummaryScreen->unk3284) + { + case 0: + gMonSummaryScreen->lockMovesFlag = TRUE; + gMonSummaryScreen->unk301C = TRUE; + sub_8138280(gMonSummaryScreen->curPageIndex); + break; + case 1: + if (gMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) { + if (!(gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES && gMonSummaryScreen->unk3224 == 0)) + { + FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); + CopyBgTilemapBufferToVram(0); + } + } + + FillBgTilemapBufferRect_Palette0(1, 0, 0, 0, 30, 2); + FillBgTilemapBufferRect_Palette0(1, 0, 0, 2, 15, 2); + FillBgTilemapBufferRect_Palette0(2, 0, 0, 0, 30, 2); + FillBgTilemapBufferRect_Palette0(2, 0, 0, 2, 15, 2); + break; + case 2: + sub_8135AA4(); + break; + case 3: + sub_8136F4C(); + sub_81374E8(); + sub_8137BD0(); + CopyWindowToVram(gMonSummaryScreen->unk3000[3], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[4], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[5], 2); + CopyBgTilemapBufferToVram(0); + break; + case 4: + sub_8136DA4(gUnknown_8419C39); + sub_8136DF0(gUnknown_8419C82); + break; + case 5: + CopyWindowToVram(gMonSummaryScreen->unk3000[0], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[1], 2); + CopyBgTilemapBufferToVram(2); + CopyBgTilemapBufferToVram(1); + break; + case 6: + sub_8135514(); + gMonSummaryScreen->unk3244 = TRUE; + sub_8135638(); + sub_813B750(gMonSummaryScreen->curPageIndex); + sub_8138A38(); + break; + case 7: + break; + case 8: + if (sub_81357A0(gMonSummaryScreen->unk3224) == 0) + return; + + sub_8136E50(gUnknown_8419C45); + break; + case 9: + CopyWindowToVram(gMonSummaryScreen->unk3000[6], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[2], 2); + CopyBgTilemapBufferToVram(0); + CopyBgTilemapBufferToVram(2); + CopyBgTilemapBufferToVram(1); + break; + case 10: + sub_8135B90(); + sub_8138538(); + CopyBgTilemapBufferToVram(3); + sub_81356EC(); + break; + default: + sub_8138440(); + gTasks[gMonSummaryScreen->unk3018].func = sub_8134840; + gMonSummaryScreen->unk3284 = 0; + gMonSummaryScreen->lockMovesFlag = FALSE; + gMonSummaryScreen->unk301C = FALSE; + return; + } + + gMonSummaryScreen->unk3284++; + return; +} + +void sub_813546C(void) +{ + u8 i; + for (i = 0; i < 11; i++) + { + gUnknown_203B160->unk2C[i] = (8 * i) + 396; + gUnknown_203B160->sprite00[i]->pos1.x = gUnknown_203B160->unk2C[i]; + if (i >= 9) + continue; + + gUnknown_203B15C->unk28[i] = (8 * i) + 412; + gUnknown_203B15C->sprite00[i]->pos1.x = gUnknown_203B15C->unk28[i]; + } +} + +void sub_81354C4(void) +{ + u8 i; + for (i = 0; i < 11; i++) + { + gUnknown_203B160->unk2C[i] = (8 * i) + 156; + gUnknown_203B160->sprite00[i]->pos1.x = gUnknown_203B160->unk2C[i]; + if (i >= 9) + continue; + gUnknown_203B15C->unk28[i] = (8 * i) + 172; + gUnknown_203B15C->sprite00[i]->pos1.x = gUnknown_203B15C->unk28[i]; + } +} + +void sub_8135514(void) +{ + s8 pageDelta = 1; + + if (gMonSummaryScreen->unk3224 == 1) + pageDelta = -1; + + if (gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO) + { + gMonSummaryScreen->unk324C = 240; + return; + } + + if ((gMonSummaryScreen->curPageIndex + pageDelta) == PSS_PAGE_MOVES_INFO) + { + sub_81358DC(0, 0); + gMonSummaryScreen->unk324C = 0; + SetGpuReg(REG_OFFSET_BG1HOFS, 0); + SetGpuReg(REG_OFFSET_BG2HOFS, 0); + return; + } + + if (gMonSummaryScreen->unk3224 == 1) + { + gMonSummaryScreen->unk324C = 0; + SetGpuReg(REG_OFFSET_BG0HOFS, 0); + SetGpuReg(REG_OFFSET_BG1HOFS, 0); + SetGpuReg(REG_OFFSET_BG2HOFS, 0); + sub_81358DC(1, 1); + } + else + { + u32 bg1Priority = GetGpuReg(REG_OFFSET_BG1CNT) & 3; + u32 bg2Priority = GetGpuReg(REG_OFFSET_BG2CNT) & 3; + gMonSummaryScreen->unk324C = 240; + + if (bg1Priority > bg2Priority) + SetGpuReg(REG_OFFSET_BG1HOFS, 240); + else + SetGpuReg(REG_OFFSET_BG2HOFS, 240); + + SetGpuReg(REG_OFFSET_BG0HOFS, 240); + sub_81358DC(1, 0); + } + + if (gMonSummaryScreen->curPageIndex == PSS_PAGE_SKILLS) + { + if (gMonSummaryScreen->unk3224 == 1) + sub_81354C4(); + else + sub_813546C(); + } + else if (gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES) + sub_81354C4(); + +} + +void sub_8135638(void) +{ + u8 newPage; + + if (gMonSummaryScreen->unk3224 == 1) + newPage = gMonSummaryScreen->curPageIndex - 1; + else + newPage = gMonSummaryScreen->curPageIndex + 1; + + switch (newPage) + { + case PSS_PAGE_INFO: + break; + case PSS_PAGE_SKILLS: + sub_813A838(1); + sub_813AB70(1); + break; + case PSS_PAGE_MOVES: + if (gMonSummaryScreen->unk3224 == 1) + { + sub_8139C44(1); + sub_813B084(1); + sub_8139D54(1); + sub_813A3B8(1); + sub_813ACF8(1); + sub_813AEB0(1); + } + + break; + case PSS_PAGE_MOVES_INFO: + sub_813A0E8(1); + sub_8139EE4(1); + sub_813A3B8(1); + sub_813ACF8(1); + sub_813AEB0(1); + break; + } +} + +void sub_81356EC(void) +{ + u8 newPage; + + if (gMonSummaryScreen->unk3224 == 1) + newPage = gMonSummaryScreen->curPageIndex - 1; + else + newPage = gMonSummaryScreen->curPageIndex + 1; + + switch (newPage) + { + case PSS_PAGE_INFO: + sub_813A838(0); + sub_813AB70(0); + break; + case PSS_PAGE_SKILLS: + break; + case PSS_PAGE_MOVES: + if (gMonSummaryScreen->unk3224 == 0) + { + sub_813A838(0); + sub_813AB70(0); + } + else + { + sub_813A0E8(0); + sub_813ACF8(0); + sub_8139EE4(0); + sub_813AEB0(0); + } + + break; + case PSS_PAGE_MOVES_INFO: + sub_8139C44(0); + sub_813B084(0); + sub_813A3B8(0); + sub_8139D54(0); + sub_813ACF8(0); + sub_813AEB0(0); + break; + } +} + +u8 sub_81357A0(u8 a0) +{ + s8 pageDelta = 1; + + if (gMonSummaryScreen->unk3224 == 1) + pageDelta = -1; + + if (gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO) + if (gMonSummaryScreen->unk324C <= 0) + { + gMonSummaryScreen->unk324C = 0; + gMonSummaryScreen->unk3238 ^= 1; + sub_81358DC(0, 0); + gMonSummaryScreen->unk3244 = FALSE; + return TRUE; + } + + if ((gMonSummaryScreen->curPageIndex + pageDelta) == PSS_PAGE_MOVES_INFO) + if (gMonSummaryScreen->unk324C >= 240) + { + gMonSummaryScreen->unk324C = 240; + gMonSummaryScreen->unk3238 ^= 1; + gMonSummaryScreen->unk3244 = FALSE; + return TRUE; + } + + if (gMonSummaryScreen->unk3224 == 1) + { + if (gMonSummaryScreen->unk324C >= 240) + { + gMonSummaryScreen->unk324C = 240; + gMonSummaryScreen->unk3238 ^= 1; + sub_81358DC(0, 0); + gMonSummaryScreen->unk3244 = FALSE; + return TRUE; + } + } + else if (gMonSummaryScreen->unk324C <= 0) + { + gMonSummaryScreen->unk3238 ^= 1; + gMonSummaryScreen->unk324C = 0; + gMonSummaryScreen->unk3244 = FALSE; + return TRUE; + } + + return FALSE; +} + +void sub_81358DC(u8 a0, u8 a1) +{ + u8 i; + u32 bg0Priority; + u32 bg1Priority; + u32 bg2Priority; + + bg0Priority = GetGpuReg(REG_OFFSET_BG0CNT) & 3; + bg1Priority = GetGpuReg(REG_OFFSET_BG1CNT) & 3; + bg2Priority = GetGpuReg(REG_OFFSET_BG2CNT) & 3; + + if (gMonSummaryScreen->unk3224 == 1) + { + if (a0 == 0) + { + bg0Priority = 0; + + if (a1 == 0) + { + if (bg1Priority > bg2Priority) + bg1Priority = 1, bg2Priority = 2; + else + bg1Priority = 2, bg2Priority = 1; + } + else + { + if (bg1Priority > bg2Priority) + bg1Priority = 2, bg2Priority = 1; + else + bg1Priority = 1, bg2Priority = 2; + } + } + if (a0 == 1) + { + bg0Priority = 1; + + if (a1 == 0) + { + if (bg1Priority > bg2Priority) + bg1Priority = 0, bg2Priority = 2; + else + bg1Priority = 2, bg2Priority = 0; + } + else + { + if (bg1Priority > bg2Priority) + bg1Priority = 2, bg2Priority = 0; + else + bg1Priority = 0, bg2Priority = 2; + } + } + } + + if (gMonSummaryScreen->unk3224 == 0) + { + bg0Priority = 0; + if (bg1Priority > bg2Priority) + bg1Priority = 1, bg2Priority = 2; + else + bg1Priority = 2, bg2Priority = 1; + } + + for (i = 0; i < 11; i++) + { + if (gMonSummaryScreen->curPageIndex == PSS_PAGE_SKILLS && gMonSummaryScreen->unk3224 == 1) + gUnknown_203B160->sprite00[i]->oam.priority = bg0Priority; + else + gUnknown_203B160->sprite00[i]->oam.priority = bg1Priority; + + if (i >= 9) + continue; + + if (gMonSummaryScreen->curPageIndex == PSS_PAGE_SKILLS && gMonSummaryScreen->unk3224 == 1) + gUnknown_203B15C->sprite00[i]->oam.priority = bg0Priority; + else + gUnknown_203B15C->sprite00[i]->oam.priority = bg1Priority; + } + + SetGpuReg(REG_OFFSET_BG0CNT, (GetGpuReg(REG_OFFSET_BG0CNT) & 0xfffc) | bg0Priority); + SetGpuReg(REG_OFFSET_BG1CNT, (GetGpuReg(REG_OFFSET_BG1CNT) & 0xfffc) | bg1Priority); + SetGpuReg(REG_OFFSET_BG2CNT, (GetGpuReg(REG_OFFSET_BG2CNT) & 0xfffc) | bg2Priority); +} + +void sub_8135AA4(void) +{ + u8 newPage; + + if (gMonSummaryScreen->unk3224 == 1) + newPage = gMonSummaryScreen->curPageIndex - 1; + else + newPage = gMonSummaryScreen->curPageIndex + 1; + + switch (newPage) + { + case PSS_PAGE_INFO: + CopyToBgTilemapBuffer(gMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0); + break; + case PSS_PAGE_SKILLS: + if (gMonSummaryScreen->unk3224 == 1) + CopyToBgTilemapBuffer(gMonSummaryScreen->unk323C, gUnknown_8E9B950, 0, 0); + else + CopyToBgTilemapBuffer(gMonSummaryScreen->unk323C, gUnknown_8E9B598, 0, 0); + + break; + case PSS_PAGE_MOVES: + if (gMonSummaryScreen->unk3224 == 1) + CopyToBgTilemapBuffer(gMonSummaryScreen->unk3240, gUnknown_8E9BA9C, 0, 0); + else + CopyToBgTilemapBuffer(gMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0); + + break; + case PSS_PAGE_MOVES_INFO: + CopyToBgTilemapBuffer(gMonSummaryScreen->unk323C, gUnknown_8E9B950, 0, 0); + break; + } +} + +void sub_8135B90(void) +{ + u8 newPage; + + if (gMonSummaryScreen->unk3224 == 1) + newPage = gMonSummaryScreen->curPageIndex - 1; + else + newPage = gMonSummaryScreen->curPageIndex + 1; + + switch (newPage) + { + case PSS_PAGE_INFO: + CopyToBgTilemapBuffer(gMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0); + break; + case PSS_PAGE_SKILLS: + break; + case PSS_PAGE_MOVES: + if (gMonSummaryScreen->unk3224 == 1) + CopyToBgTilemapBuffer(3, gUnknown_8463C80, 0, 0); + else + CopyToBgTilemapBuffer(3, gUnknown_8463B88, 0, 0); + + break; + case PSS_PAGE_MOVES_INFO: + CopyToBgTilemapBuffer(3, gUnknown_8463B88, 0, 0); + break; + } +} + +void sub_8135C34(void) +{ + switch (gMonSummaryScreen->unk3274) + { + case 0: + sub_81381AC(); + break; + case 1: + sub_8136BC4(); + break; + case 2: + sub_8136BAC(); + break; + case 3: + if (!sub_8135F20()) + return; + break; + case 4: + if (!sub_8136AEC()) + return; + break; + case 5: + sub_81381D0(); + break; + case 6: + if (!sub_8136040()) + return; + break; + case 7: + sub_8136F4C(); + break; + case 8: + sub_81374E8(); + break; + case 9: + sub_8137BD0(); + sub_8138A38(); + break; + case 10: + if (gMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE || gMonSummaryScreen->mode == PSS_MODE_FORGET_MOVE) + CopyToBgTilemapBuffer(3, gUnknown_8463C80, 0, 0); + else + CopyToBgTilemapBuffer(3, gUnknown_8463B88, 0, 0); + + sub_8138538(); + break; + case 11: + if (gMonSummaryScreen->isEgg) + CopyToBgTilemapBuffer(gMonSummaryScreen->unk323C, gUnknown_8E9BBCC, 0, 0); + else + { + if (gMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE || gMonSummaryScreen->mode == PSS_MODE_FORGET_MOVE) + { + CopyToBgTilemapBuffer(gMonSummaryScreen->unk323C, gUnknown_8E9B950, 0, 0); + CopyToBgTilemapBuffer(gMonSummaryScreen->unk3240, gUnknown_8E9BA9C, 0, 0); + } + else + { + CopyToBgTilemapBuffer(gMonSummaryScreen->unk323C, gUnknown_8E9B598, 0, 0); + CopyToBgTilemapBuffer(gMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0); + } + } + + break; + case 12: + BlendPalettes(0xffffffff, 16, 0); + sub_8137D28(gMonSummaryScreen->curPageIndex); + sub_8137E28(); + break; + case 13: + BeginNormalPaletteFade(0xffffffff, 0, 16, 0, 0); + CopyWindowToVram(gMonSummaryScreen->unk3000[0], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[1], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[2], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[6], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[3], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[4], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[5], 2); + break; + case 14: + CopyBgTilemapBufferToVram(0); + CopyBgTilemapBufferToVram(2); + CopyBgTilemapBufferToVram(1); + CopyBgTilemapBufferToVram(3); + break; + case 15: + if (gMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE || gMonSummaryScreen->mode == PSS_MODE_FORGET_MOVE) + { + sub_8139EE4(0); + sub_813A0E8(0); + } + else + { + sub_8139C44(0); + sub_813B084(0); + sub_8139D54(0); + sub_813A838(0); + sub_813AB70(0); + } + + sub_813A3B8(0); + sub_813ACF8(0); + sub_813AEB0(0); + break; + default: + sub_81381C0(); + sub_8136D54(); + return; + } + + gMonSummaryScreen->unk3274++; +} + +u8 sub_8135F20(void) +{ + switch (gMonSummaryScreen->unk3278) + { + case 0: + LoadPalette(gUnknown_8E9B310, 0, 0x20 * 5); + if (IsMonShiny(&gMonSummaryScreen->currentMon) == TRUE && !gMonSummaryScreen->isEgg) + { + LoadPalette(&gUnknown_8E9B310[16 * 6], 0, 0x20); + LoadPalette(&gUnknown_8E9B310[16 * 5], 0x10, 0x20); + } + else + { + LoadPalette(&gUnknown_8E9B310[16 * 0], 0, 0x20); + LoadPalette(&gUnknown_8E9B310[16 * 1], 0x10, 0x20); + } + + break; + case 1: + ListMenuLoadStdPalAt(0x60, 1); + LoadPalette(gUnknown_84636C0, 0x70, 0x20); + break; + case 2: + ResetTempTileDataBuffers(); + break; + case 3: + DecompressAndCopyTileDataToVram(2, gUnknown_8E9A460, 0, 0, 0); + break; + case 4: + if (FreeTempTileDataBuffersIfPossible() == TRUE) + return FALSE; + break; + + case 5: + case 6: + break; + + default: + LoadPalette(gUnknown_8463700, 0x80, 0x20); + return TRUE; + } + + gMonSummaryScreen->unk3278++; + return FALSE; +} + +u8 sub_8136040(void) +{ + switch (gMonSummaryScreen->unk3280) + { + case 0: + sub_81360D4(); + if (gMonSummaryScreen->isEgg) + { + gMonSummaryScreen->unk3280 = 0; + return TRUE; + } + + break; + case 1: + if (gMonSummaryScreen->isEgg == 0) + sub_8136350(); + break; + case 2: + if (gMonSummaryScreen->isEgg == 0) + sub_81367B0(); + break; + default: + gMonSummaryScreen->unk3280 = 0; + return TRUE; + } + + gMonSummaryScreen->unk3280++; + return FALSE; +} + +void sub_81360D4(void) +{ + u8 tempStr[20]; + u16 dexNum; + u16 gender; + u16 heldItem; + u32 otId; + + dexNum = SpeciesToPokedexNum(GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SPECIES)); + if (dexNum == 0xffff) + StringCopy(gMonSummaryScreen->summary.unk3064, gUnknown_8416202); + else + ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk3064, dexNum, STR_CONV_MODE_LEADING_ZEROS, 3); + + gUnknown_203B144->unk00 = 0; + + if (!gMonSummaryScreen->isEgg) + { + dexNum = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SPECIES); + GetSpeciesName(gMonSummaryScreen->summary.unk3028, dexNum); + } + else + { + GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_NICKNAME, gMonSummaryScreen->summary.unk3028); + return; + } + + gMonSummaryScreen->unk3220[0] = gBaseStats[dexNum].type1; + gMonSummaryScreen->unk3220[1] = gBaseStats[dexNum].type2; + + GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_NICKNAME, tempStr); + StringCopyN_Multibyte(gMonSummaryScreen->summary.unk3034, tempStr, POKEMON_NAME_LENGTH); + StringGetEnd10(gMonSummaryScreen->summary.unk3034); + + gender = GetMonGender(&gMonSummaryScreen->currentMon); + dexNum = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SPECIES2); + + if (gender == MON_FEMALE) + StringCopy(gMonSummaryScreen->summary.unk3084, gText_FemaleSymbol); + else if (gender == MON_MALE) + StringCopy(gMonSummaryScreen->summary.unk3084, gText_MaleSymbol); + else + StringCopy(gMonSummaryScreen->summary.unk3084, gString_Dummy); + + if (dexNum == SPECIES_NIDORAN_M || dexNum == SPECIES_NIDORAN_F) + if (StringCompare(gMonSummaryScreen->summary.unk3034, gSpeciesNames[dexNum]) == 0) + StringCopy(gMonSummaryScreen->summary.unk3084, gString_Dummy); + + GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_OT_NAME, tempStr); + StringCopyN_Multibyte(gMonSummaryScreen->summary.unk3040, tempStr, OT_NAME_LENGTH); + + ConvertInternationalString(gMonSummaryScreen->summary.unk3040, GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_LANGUAGE)); + + otId = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_OT_ID) & 0xffff; + ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk306C, otId, STR_CONV_MODE_LEADING_ZEROS, 5); + + ConvertIntToDecimalStringN(tempStr, GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_LEVEL), STR_CONV_MODE_LEFT_ALIGN, 3); + StringCopy(gMonSummaryScreen->summary.unk3088, gText_Lv); + StringAppendN(gMonSummaryScreen->summary.unk3088, tempStr, 4); + + heldItem = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_HELD_ITEM); + + if (heldItem == ITEM_NONE) + StringCopy(gMonSummaryScreen->summary.unk3074, gUnknown_84161EF); + else + CopyItemName(heldItem, gMonSummaryScreen->summary.unk3074); +} |