diff options
-rw-r--r-- | asm/pokemon_summary_screen.s | 1072 | ||||
-rw-r--r-- | data/pokemon_summary_screen.s | 9 | ||||
-rw-r--r-- | include/strings.h | 13 | ||||
-rw-r--r-- | include/text.h | 1 | ||||
-rw-r--r-- | src/pokemon_summary_screen.c | 331 |
5 files changed, 298 insertions, 1128 deletions
diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index 2d129650d..baa676bdd 100644 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -5,1078 +5,6 @@ .text - thumb_func_start sub_8136E50 -sub_8136E50: @ 8136E50 - push {r4-r7,lr} - sub sp, 0xC - ldr r6, _08136EEC @ =gMonSummaryScreen - ldr r0, [r6] - ldr r7, _08136EF0 @ =0x00003002 - adds r0, r7 - ldrb r0, [r0] - movs r1, 0 - bl FillWindowPixelBuffer - ldr r2, [r6] - movs r1, 0xC8 - lsls r1, 6 - adds r0, r2, r1 - ldrb r5, [r0] - cmp r5, 0 - bne _08136F28 - ldr r3, _08136EF4 @ =0x00003214 - adds r0, r2, r3 - ldrb r0, [r0] - cmp r0, 0x3 - beq _08136E9A - adds r0, r2, r7 - ldrb r0, [r0] - ldr r1, _08136EF8 @ =gUnknown_8463FA7 - str r1, [sp] - movs r1, 0x1 - negs r1, r1 - str r1, [sp, 0x4] - ldr r3, _08136EFC @ =0x00003088 - adds r1, r2, r3 - str r1, [sp, 0x8] - movs r1, 0x2 - movs r2, 0x4 - movs r3, 0x2 - bl AddTextPrinterParameterized3 -_08136E9A: - ldr r2, [r6] - adds r0, r2, r7 - ldrb r0, [r0] - ldr r4, _08136EF8 @ =gUnknown_8463FA7 - str r4, [sp] - movs r1, 0x1 - negs r1, r1 - str r1, [sp, 0x4] - ldr r1, _08136F00 @ =0x00003034 - adds r2, r1 - str r2, [sp, 0x8] - movs r1, 0x2 - movs r2, 0x28 - movs r3, 0x2 - bl AddTextPrinterParameterized3 - ldr r0, [r6] - ldr r3, _08136F04 @ =0x00003290 - adds r0, r3 - bl GetMonGender - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFE - bne _08136F0C - ldr r2, [r6] - adds r0, r2, r7 - ldrb r0, [r0] - adds r1, r4, 0x6 - str r1, [sp] - str r5, [sp, 0x4] - ldr r1, _08136F08 @ =0x00003084 - adds r2, r1 - str r2, [sp, 0x8] - movs r1, 0x2 - movs r2, 0x69 - movs r3, 0x2 - bl AddTextPrinterParameterized3 - b _08136F28 - .align 2, 0 -_08136EEC: .4byte gMonSummaryScreen -_08136EF0: .4byte 0x00003002 -_08136EF4: .4byte 0x00003214 -_08136EF8: .4byte gUnknown_8463FA7 -_08136EFC: .4byte 0x00003088 -_08136F00: .4byte 0x00003034 -_08136F04: .4byte 0x00003290 -_08136F08: .4byte 0x00003084 -_08136F0C: - ldr r2, [r6] - adds r0, r2, r7 - ldrb r0, [r0] - adds r1, r4, 0x3 - str r1, [sp] - str r5, [sp, 0x4] - ldr r3, _08136F40 @ =0x00003084 - adds r2, r3 - str r2, [sp, 0x8] - movs r1, 0x2 - movs r2, 0x69 - movs r3, 0x2 - bl AddTextPrinterParameterized3 -_08136F28: - ldr r0, _08136F44 @ =gMonSummaryScreen - ldr r0, [r0] - ldr r1, _08136F48 @ =0x00003002 - adds r0, r1 - ldrb r0, [r0] - bl PutWindowTilemap - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08136F40: .4byte 0x00003084 -_08136F44: .4byte gMonSummaryScreen -_08136F48: .4byte 0x00003002 - thumb_func_end sub_8136E50 - - thumb_func_start sub_8136F4C -sub_8136F4C: @ 8136F4C - push {r4,lr} - ldr r4, _08136F74 @ =gMonSummaryScreen - ldr r0, [r4] - ldr r1, _08136F78 @ =0x00003003 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0 - bl FillWindowPixelBuffer - ldr r0, [r4] - ldr r1, _08136F7C @ =0x00003214 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _08136F90 - cmp r0, 0x1 - bgt _08136F80 - cmp r0, 0 - beq _08136F8A - b _08136F94 - .align 2, 0 -_08136F74: .4byte gMonSummaryScreen -_08136F78: .4byte 0x00003003 -_08136F7C: .4byte 0x00003214 -_08136F80: - cmp r0, 0x3 - bgt _08136F94 - bl sub_8137270 - b _08136F94 -_08136F8A: - bl sub_8136FB0 - b _08136F94 -_08136F90: - bl sub_81370EC -_08136F94: - ldr r0, _08136FA8 @ =gMonSummaryScreen - ldr r0, [r0] - ldr r1, _08136FAC @ =0x00003003 - adds r0, r1 - ldrb r0, [r0] - bl PutWindowTilemap - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08136FA8: .4byte gMonSummaryScreen -_08136FAC: .4byte 0x00003003 - thumb_func_end sub_8136F4C - - thumb_func_start sub_8136FB0 -sub_8136FB0: @ 8136FB0 - push {r4-r7,lr} - sub sp, 0xC - ldr r6, _08137060 @ =gMonSummaryScreen - ldr r1, [r6] - ldr r2, _08137064 @ =0x00003003 - adds r0, r1, r2 - ldrb r0, [r0] - ldr r5, _08137068 @ =gUnknown_8463FA4 - str r5, [sp] - movs r4, 0x1 - negs r4, r4 - str r4, [sp, 0x4] - ldr r7, _0813706C @ =0x00003028 - adds r1, r7 - str r1, [sp, 0x8] - movs r1, 0x2 - movs r2, 0x2F - movs r3, 0x13 - bl AddTextPrinterParameterized3 - ldr r3, [r6] - movs r1, 0xC8 - lsls r1, 6 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _08137074 - ldr r2, _08137064 @ =0x00003003 - adds r0, r3, r2 - ldrb r0, [r0] - ldr r1, _08137070 @ =gUnknown_203B144 - ldr r1, [r1] - ldrb r2, [r1] - adds r2, 0x2F - lsls r2, 24 - lsrs r2, 24 - str r5, [sp] - str r4, [sp, 0x4] - adds r7, 0x3C - adds r1, r3, r7 - str r1, [sp, 0x8] - movs r1, 0x2 - movs r3, 0x5 - bl AddTextPrinterParameterized3 - ldr r1, [r6] - ldr r2, _08137064 @ =0x00003003 - adds r0, r1, r2 - ldrb r0, [r0] - str r5, [sp] - str r4, [sp, 0x4] - subs r7, 0x24 - adds r1, r7 - str r1, [sp, 0x8] - movs r1, 0x2 - movs r2, 0x2F - movs r3, 0x31 - bl AddTextPrinterParameterized3 - ldr r1, [r6] - ldr r2, _08137064 @ =0x00003003 - adds r0, r1, r2 - ldrb r0, [r0] - str r5, [sp] - str r4, [sp, 0x4] - adds r7, 0x2C - adds r1, r7 - str r1, [sp, 0x8] - movs r1, 0x2 - movs r2, 0x2F - movs r3, 0x40 - bl AddTextPrinterParameterized3 - ldr r1, [r6] - ldr r2, _08137064 @ =0x00003003 - adds r0, r1, r2 - ldrb r0, [r0] - str r5, [sp] - str r4, [sp, 0x4] - adds r7, 0x8 - adds r1, r7 - str r1, [sp, 0x8] - movs r1, 0x2 - movs r2, 0x2F - movs r3, 0x4F - bl AddTextPrinterParameterized3 - b _081370CA - .align 2, 0 -_08137060: .4byte gMonSummaryScreen -_08137064: .4byte 0x00003003 -_08137068: .4byte gUnknown_8463FA4 -_0813706C: .4byte 0x00003028 -_08137070: .4byte gUnknown_203B144 -_08137074: - ldr r1, _081370D4 @ =0x00003290 - adds r0, r3, r1 - movs r1, 0x20 - bl GetMonData - lsls r0, 24 - lsrs r0, 24 - movs r3, 0x3 - cmp r0, 0x5 - bls _08137096 - movs r3, 0x2 - cmp r0, 0xA - bls _08137096 - movs r3, 0 - cmp r0, 0x28 - bhi _08137096 - movs r3, 0x1 -_08137096: - ldr r0, _081370D8 @ =gMonSummaryScreen - ldr r1, [r0] - ldr r2, _081370DC @ =0x00003204 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _081370A6 - movs r3, 0 -_081370A6: - ldr r7, _081370E0 @ =0x00003003 - adds r0, r1, r7 - ldrb r0, [r0] - ldr r1, _081370E4 @ =gUnknown_8463FA4 - str r1, [sp] - movs r1, 0x1 - negs r1, r1 - str r1, [sp, 0x4] - ldr r2, _081370E8 @ =gUnknown_8463EC4 - lsls r1, r3, 2 - adds r1, r2 - ldr r1, [r1] - str r1, [sp, 0x8] - movs r1, 0x2 - movs r2, 0x7 - movs r3, 0x2D - bl AddTextPrinterParameterized3 -_081370CA: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081370D4: .4byte 0x00003290 -_081370D8: .4byte gMonSummaryScreen -_081370DC: .4byte 0x00003204 -_081370E0: .4byte 0x00003003 -_081370E4: .4byte gUnknown_8463FA4 -_081370E8: .4byte gUnknown_8463EC4 - thumb_func_end sub_8136FB0 - - thumb_func_start sub_81370EC -sub_81370EC: @ 81370EC - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0xC - ldr r0, _08137240 @ =gMonSummaryScreen - mov r9, r0 - ldr r3, [r0] - ldr r4, _08137244 @ =0x00003003 - adds r0, r3, r4 - ldrb r0, [r0] - ldr r1, _08137248 @ =gUnknown_203B144 - mov r8, r1 - ldr r1, [r1] - ldrb r2, [r1, 0x2] - adds r2, 0xE - lsls r2, 24 - lsrs r2, 24 - ldr r6, _0813724C @ =gUnknown_8463FA4 - str r6, [sp] - movs r5, 0x1 - negs r5, r5 - str r5, [sp, 0x4] - ldr r1, _08137250 @ =0x00003090 - adds r3, r1 - str r3, [sp, 0x8] - movs r1, 0x2 - movs r3, 0x4 - bl AddTextPrinterParameterized3 - mov r2, r9 - ldr r3, [r2] - adds r0, r3, r4 - ldrb r0, [r0] - mov r2, r8 - ldr r1, [r2] - ldrb r2, [r1, 0x4] - adds r2, 0x32 - lsls r2, 24 - lsrs r2, 24 - str r6, [sp] - str r5, [sp, 0x4] - ldr r1, _08137254 @ =0x0000309c - adds r3, r1 - str r3, [sp, 0x8] - movs r1, 0x2 - movs r3, 0x16 - bl AddTextPrinterParameterized3 - mov r2, r9 - ldr r3, [r2] - adds r0, r3, r4 - ldrb r0, [r0] - mov r2, r8 - ldr r1, [r2] - ldrb r2, [r1, 0x6] - adds r2, 0x32 - lsls r2, 24 - lsrs r2, 24 - str r6, [sp] - str r5, [sp, 0x4] - ldr r1, _08137258 @ =0x000030a1 - adds r3, r1 - str r3, [sp, 0x8] - movs r1, 0x2 - movs r3, 0x23 - bl AddTextPrinterParameterized3 - mov r2, r9 - ldr r3, [r2] - adds r0, r3, r4 - ldrb r0, [r0] - mov r2, r8 - ldr r1, [r2] - ldrb r2, [r1, 0x8] - adds r2, 0x32 - lsls r2, 24 - lsrs r2, 24 - str r6, [sp] - str r5, [sp, 0x4] - ldr r1, _0813725C @ =0x000030a6 - adds r3, r1 - str r3, [sp, 0x8] - movs r1, 0x2 - movs r3, 0x30 - bl AddTextPrinterParameterized3 - mov r2, r9 - ldr r3, [r2] - adds r0, r3, r4 - ldrb r0, [r0] - mov r2, r8 - ldr r1, [r2] - ldrb r2, [r1, 0xA] - adds r2, 0x32 - lsls r2, 24 - lsrs r2, 24 - str r6, [sp] - str r5, [sp, 0x4] - ldr r1, _08137260 @ =0x000030ab - adds r3, r1 - str r3, [sp, 0x8] - movs r1, 0x2 - movs r3, 0x3D - bl AddTextPrinterParameterized3 - mov r2, r9 - ldr r3, [r2] - adds r0, r3, r4 - ldrb r0, [r0] - mov r2, r8 - ldr r1, [r2] - ldrb r2, [r1, 0xC] - adds r2, 0x32 - lsls r2, 24 - lsrs r2, 24 - str r6, [sp] - str r5, [sp, 0x4] - ldr r1, _08137264 @ =0x000030b0 - adds r3, r1 - str r3, [sp, 0x8] - movs r1, 0x2 - movs r3, 0x4A - bl AddTextPrinterParameterized3 - mov r2, r9 - ldr r3, [r2] - adds r0, r3, r4 - ldrb r0, [r0] - mov r2, r8 - ldr r1, [r2] - ldrb r2, [r1, 0xE] - adds r2, 0xF - lsls r2, 24 - lsrs r2, 24 - str r6, [sp] - str r5, [sp, 0x4] - ldr r1, _08137268 @ =0x000031a4 - adds r3, r1 - str r3, [sp, 0x8] - movs r1, 0x2 - movs r3, 0x57 - bl AddTextPrinterParameterized3 - mov r2, r9 - ldr r3, [r2] - adds r4, r3, r4 - ldrb r0, [r4] - mov r2, r8 - ldr r1, [r2] - ldrb r2, [r1, 0x10] - adds r2, 0xF - lsls r2, 24 - lsrs r2, 24 - str r6, [sp] - str r5, [sp, 0x4] - ldr r1, _0813726C @ =0x000031b0 - adds r3, r1 - str r3, [sp, 0x8] - movs r1, 0x2 - movs r3, 0x64 - bl AddTextPrinterParameterized3 - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08137240: .4byte gMonSummaryScreen -_08137244: .4byte 0x00003003 -_08137248: .4byte gUnknown_203B144 -_0813724C: .4byte gUnknown_8463FA4 -_08137250: .4byte 0x00003090 -_08137254: .4byte 0x0000309c -_08137258: .4byte 0x000030a1 -_0813725C: .4byte 0x000030a6 -_08137260: .4byte 0x000030ab -_08137264: .4byte 0x000030b0 -_08137268: .4byte 0x000031a4 -_0813726C: .4byte 0x000031b0 - thumb_func_end sub_81370EC - - thumb_func_start sub_8137270 -sub_8137270: @ 8137270 - push {r4,lr} - sub sp, 0xC - movs r4, 0 -_08137276: - adds r0, r4, 0 - bl sub_81372E4 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _08137276 - ldr r0, _081372A8 @ =gMonSummaryScreen - ldr r1, [r0] - ldr r2, _081372AC @ =0x00003214 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x3 - bne _081372CE - subs r2, 0xC - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x2 - bne _081372B0 - movs r0, 0x4 - bl sub_81372E4 - b _081372CE - .align 2, 0 -_081372A8: .4byte gMonSummaryScreen -_081372AC: .4byte 0x00003214 -_081372B0: - ldr r2, _081372D8 @ =0x00003003 - adds r0, r1, r2 - ldrb r0, [r0] - ldr r1, _081372DC @ =gUnknown_8463EF0 - str r1, [sp] - movs r1, 0x1 - negs r1, r1 - str r1, [sp, 0x4] - ldr r1, _081372E0 @ =gFameCheckerText_Cancel - str r1, [sp, 0x8] - movs r1, 0x2 - movs r2, 0x3 - movs r3, 0x75 - bl AddTextPrinterParameterized3 -_081372CE: - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081372D8: .4byte 0x00003003 -_081372DC: .4byte gUnknown_8463EF0 -_081372E0: .4byte gFameCheckerText_Cancel - thumb_func_end sub_8137270 - - thumb_func_start sub_81372E4 -sub_81372E4: @ 81372E4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r7, r0, 24 - movs r0, 0 - mov r9, r0 - ldr r1, _0813739C @ =gMonSummaryScreen - mov r10, r1 - ldr r0, [r1] - ldr r5, _081373A0 @ =0x00003290 - adds r0, r5 - adds r1, r7, 0 - bl sub_8138C24 - lsls r0, 24 - lsrs r6, r0, 24 - mov r2, r10 - ldr r0, [r2] - lsls r3, r7, 1 - str r3, [sp, 0xC] - ldr r2, _081373A4 @ =0x00003258 - adds r1, r0, r2 - adds r1, r3 - ldrh r4, [r1] - adds r0, r5 - movs r1, 0x15 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - adds r2, r7, 0 - bl CalculatePPWithBonus - lsls r0, 24 - mov r8, r0 - lsrs r5, r0, 24 - cmp r7, 0x4 - bne _0813733E - adds r6, r5, 0 -_0813733E: - mov r3, r10 - ldr r2, [r3] - ldr r1, _081373A8 @ =0x00003003 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r4, r7, 3 - subs r3, r4, r7 - lsls r3, 26 - movs r1, 0xA0 - lsls r1, 19 - adds r3, r1 - lsrs r3, 24 - mov r12, r3 - ldr r1, _081373AC @ =gUnknown_8463EF0 - str r1, [sp] - movs r1, 0x1 - negs r1, r1 - str r1, [sp, 0x4] - movs r1, 0xD - muls r1, r7 - ldr r3, _081373B0 @ =0x00003128 - adds r1, r3 - adds r2, r1 - str r2, [sp, 0x8] - movs r1, 0x2 - movs r2, 0x3 - mov r3, r12 - bl AddTextPrinterParameterized3 - mov r1, r10 - ldr r0, [r1] - ldr r2, _081373A4 @ =0x00003258 - adds r0, r2 - ldr r3, [sp, 0xC] - adds r0, r3 - ldrh r0, [r0] - adds r1, r4, 0 - cmp r0, 0 - beq _081373EA - cmp r6, r5 - beq _081373EA - cmp r6, 0 - bne _081373B4 - movs r5, 0x3 - mov r9, r5 - b _081373EA - .align 2, 0 -_0813739C: .4byte gMonSummaryScreen -_081373A0: .4byte 0x00003290 -_081373A4: .4byte 0x00003258 -_081373A8: .4byte 0x00003003 -_081373AC: .4byte gUnknown_8463EF0 -_081373B0: .4byte 0x00003128 -_081373B4: - cmp r5, 0x3 - bne _081373C6 - cmp r6, 0x2 - beq _081373D8 - cmp r6, 0x1 - bne _081373EA - movs r2, 0x1 - mov r9, r2 - b _081373EA -_081373C6: - cmp r5, 0x2 - bne _081373D0 - cmp r6, 0x1 - bne _081373EA - b _081373E6 -_081373D0: - mov r5, r8 - lsrs r0, r5, 26 - cmp r6, r0 - bhi _081373DE -_081373D8: - movs r0, 0x2 - mov r9, r0 - b _081373EA -_081373DE: - mov r2, r8 - lsrs r0, r2, 25 - cmp r6, r0 - bhi _081373EA -_081373E6: - movs r3, 0x1 - mov r9, r3 -_081373EA: - ldr r5, _081374C4 @ =gMonSummaryScreen - mov r10, r5 - ldr r0, [r5] - ldr r4, _081374C8 @ =0x00003003 - adds r0, r4 - ldrb r0, [r0] - subs r1, r7 - lsls r1, 26 - movs r2, 0x80 - lsls r2, 21 - adds r1, r2 - lsrs r1, 24 - mov r8, r1 - mov r3, r9 - lsls r1, r3, 1 - add r1, r9 - ldr r2, _081374CC @ =gUnknown_8463EF0 - adds r6, r1, r2 - str r6, [sp] - movs r5, 0x1 - negs r5, r5 - mov r9, r5 - str r5, [sp, 0x4] - ldr r1, _081374D0 @ =gUnknown_8416238 - str r1, [sp, 0x8] - movs r1, 0x2 - movs r2, 0x24 - mov r3, r8 - bl AddTextPrinterParameterized3 - mov r0, r10 - ldr r3, [r0] - adds r4, r3, r4 - ldrb r0, [r4] - ldr r2, _081374D4 @ =gUnknown_203B144 - ldr r1, [r2] - lsls r5, r7, 1 - adds r1, 0x12 - adds r1, r5 - ldrb r2, [r1] - adds r2, 0x2E - lsls r2, 24 - lsrs r2, 24 - str r6, [sp] - mov r1, r9 - str r1, [sp, 0x4] - movs r1, 0xB - adds r4, r7, 0 - muls r4, r1 - ldr r7, _081374D8 @ =0x000030b8 - adds r1, r4, r7 - adds r3, r1 - str r3, [sp, 0x8] - movs r1, 0x2 - mov r3, r8 - bl AddTextPrinterParameterized3 - mov r0, r10 - ldr r1, [r0] - ldr r2, _081374DC @ =0x00003258 - adds r0, r1, r2 - adds r0, r5 - ldrh r0, [r0] - cmp r0, 0 - beq _081374B4 - ldr r3, _081374C8 @ =0x00003003 - adds r0, r1, r3 - ldrb r0, [r0] - str r6, [sp] - mov r7, r9 - str r7, [sp, 0x4] - ldr r1, _081374E0 @ =gText_Slash - str r1, [sp, 0x8] - movs r1, 0x2 - movs r2, 0x3A - mov r3, r8 - bl AddTextPrinterParameterized3 - mov r0, r10 - ldr r3, [r0] - ldr r1, _081374C8 @ =0x00003003 - adds r0, r3, r1 - ldrb r0, [r0] - ldr r2, _081374D4 @ =gUnknown_203B144 - ldr r1, [r2] - adds r1, 0x1C - adds r1, r5 - ldrb r2, [r1] - adds r2, 0x40 - lsls r2, 24 - lsrs r2, 24 - str r6, [sp] - str r7, [sp, 0x4] - ldr r5, _081374E4 @ =0x000030f0 - adds r1, r4, r5 - adds r3, r1 - str r3, [sp, 0x8] - movs r1, 0x2 - mov r3, r8 - bl AddTextPrinterParameterized3 -_081374B4: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081374C4: .4byte gMonSummaryScreen -_081374C8: .4byte 0x00003003 -_081374CC: .4byte gUnknown_8463EF0 -_081374D0: .4byte gUnknown_8416238 -_081374D4: .4byte gUnknown_203B144 -_081374D8: .4byte 0x000030b8 -_081374DC: .4byte 0x00003258 -_081374E0: .4byte gText_Slash -_081374E4: .4byte 0x000030f0 - thumb_func_end sub_81372E4 - - thumb_func_start sub_81374E8 -sub_81374E8: @ 81374E8 - push {r4,lr} - ldr r4, _08137510 @ =gMonSummaryScreen - ldr r0, [r4] - ldr r1, _08137514 @ =0x00003004 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0 - bl FillWindowPixelBuffer - ldr r0, [r4] - ldr r1, _08137518 @ =0x00003214 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0813752C - cmp r0, 0x1 - bgt _0813751C - cmp r0, 0 - beq _08137526 - b _08137536 - .align 2, 0 -_08137510: .4byte gMonSummaryScreen -_08137514: .4byte 0x00003004 -_08137518: .4byte 0x00003214 -_0813751C: - cmp r0, 0x2 - beq _08137536 - cmp r0, 0x3 - beq _08137532 - b _08137536 -_08137526: - bl sub_8137554 - b _08137536 -_0813752C: - bl sub_8137A90 - b _08137536 -_08137532: - bl sub_8137AF8 -_08137536: - ldr r0, _0813754C @ =gMonSummaryScreen - ldr r0, [r0] - ldr r1, _08137550 @ =0x00003004 - adds r0, r1 - ldrb r0, [r0] - bl PutWindowTilemap - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813754C: .4byte gMonSummaryScreen -_08137550: .4byte 0x00003004 - thumb_func_end sub_81374E8 - - thumb_func_start sub_8137554 -sub_8137554: @ 8137554 - push {lr} - ldr r0, _0813756C @ =gMonSummaryScreen - ldr r0, [r0] - movs r1, 0xC8 - lsls r1, 6 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _08137570 - bl sub_8137944 - b _08137574 - .align 2, 0 -_0813756C: .4byte gMonSummaryScreen -_08137570: - bl sub_8137970 -_08137574: - pop {r0} - bx r0 - thumb_func_end sub_8137554 - - thumb_func_start sub_8137578 -sub_8137578: @ 8137578 - push {r4-r7,lr} - sub sp, 0xD4 - bl DynamicPlaceholderTextUtil_Reset - ldr r7, _081375E8 @ =gMonSummaryScreen - ldr r0, [r7] - ldr r4, _081375EC @ =0x00003290 - adds r0, r4 - bl GetNature - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _081375F0 @ =gNatureNamePointers - lsls r0, r6, 2 - adds r0, r1 - ldr r1, [r0] - movs r0, 0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - ldr r0, [r7] - adds r0, r4 - movs r1, 0x24 - bl GetMonData - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _081375B2 - movs r1, 0x5 -_081375B2: - add r0, sp, 0x14 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - movs r0, 0x1 - add r1, sp, 0x14 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - ldr r0, [r7] - adds r0, r4 - movs r1, 0x23 - bl GetMonData - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl sub_813B838 - cmp r0, 0x1 - bne _081375F4 - add r4, sp, 0x1C - adds r0, r4, 0 - adds r1, r5, 0 - bl GetMapNameGeneric_ - b _08137626 - .align 2, 0 -_081375E8: .4byte gMonSummaryScreen -_081375EC: .4byte 0x00003290 -_081375F0: .4byte gNatureNamePointers -_081375F4: - ldr r0, [r7] - ldr r1, _08137614 @ =0x00003024 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0x1 - beq _08137608 - bl sub_8138B4C - cmp r0, 0x1 - bne _0813761C -_08137608: - add r4, sp, 0x1C - ldr r1, _08137618 @ =gUnknown_8419C13 - adds r0, r4, 0 - bl StringCopy - b _08137626 - .align 2, 0 -_08137614: .4byte 0x00003024 -_08137618: .4byte gUnknown_8419C13 -_0813761C: - add r4, sp, 0x1C - ldr r1, _08137660 @ =gUnknown_8419C0B - adds r0, r4, 0 - bl StringCopy -_08137626: - adds r1, r4, 0 - movs r0, 0x2 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - ldr r4, _08137664 @ =gMonSummaryScreen - ldr r0, [r4] - ldr r1, _08137668 @ =0x00003290 - adds r0, r1 - movs r1, 0x24 - bl GetMonData - cmp r0, 0 - bne _0813769C - ldr r0, [r4] - ldr r1, _08137668 @ =0x00003290 - adds r0, r1 - movs r1, 0x50 - bl GetMonData - cmp r0, 0x1 - bne _0813767C - adds r0, r6, 0 - bl sub_813B7E0 - cmp r0, 0 - beq _08137670 - add r4, sp, 0x3C - ldr r1, _0813766C @ =gUnknown_841996D - b _081376CE - .align 2, 0 -_08137660: .4byte gUnknown_8419C0B -_08137664: .4byte gMonSummaryScreen -_08137668: .4byte 0x00003290 -_0813766C: .4byte gUnknown_841996D -_08137670: - add r4, sp, 0x3C - ldr r1, _08137678 @ =gUnknown_841992F - b _081376CE - .align 2, 0 -_08137678: .4byte gUnknown_841992F -_0813767C: - adds r0, r6, 0 - bl sub_813B7E0 - cmp r0, 0 - beq _08137690 - add r4, sp, 0x3C - ldr r1, _0813768C @ =gUnknown_84198D5 - b _081376CE - .align 2, 0 -_0813768C: .4byte gUnknown_84198D5 -_08137690: - add r4, sp, 0x3C - ldr r1, _08137698 @ =gUnknown_84198B4 - b _081376CE - .align 2, 0 -_08137698: .4byte gUnknown_84198B4 -_0813769C: - cmp r5, 0xFF - bne _081376C0 - adds r0, r6, 0 - bl sub_813B7E0 - cmp r0, 0 - beq _081376B4 - add r4, sp, 0x3C - ldr r1, _081376B0 @ =gUnknown_84197ED - b _081376CE - .align 2, 0 -_081376B0: .4byte gUnknown_84197ED -_081376B4: - add r4, sp, 0x3C - ldr r1, _081376BC @ =gUnknown_84197B8 - b _081376CE - .align 2, 0 -_081376BC: .4byte gUnknown_84197B8 -_081376C0: - adds r0, r6, 0 - bl sub_813B7E0 - cmp r0, 0 - beq _081376DC - add r4, sp, 0x3C - ldr r1, _081376D8 @ =gUnknown_8419841 -_081376CE: - adds r0, r4, 0 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - b _081376E6 - .align 2, 0 -_081376D8: .4byte gUnknown_8419841 -_081376DC: - add r4, sp, 0x3C - ldr r1, _08137714 @ =gUnknown_8419822 - adds r0, r4, 0 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders -_081376E6: - ldr r0, _08137718 @ =gMonSummaryScreen - ldr r0, [r0] - ldr r1, _0813771C @ =0x00003004 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - ldr r1, _08137720 @ =gUnknown_8463FA4 - str r1, [sp, 0x8] - movs r1, 0x1 - negs r1, r1 - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x2 - movs r2, 0 - movs r3, 0x3 - bl AddTextPrinterParameterized4 - add sp, 0xD4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08137714: .4byte gUnknown_8419822 -_08137718: .4byte gMonSummaryScreen -_0813771C: .4byte 0x00003004 -_08137720: .4byte gUnknown_8463FA4 - thumb_func_end sub_8137578 - thumb_func_start sub_8137724 sub_8137724: @ 8137724 push {r4-r6,lr} diff --git a/data/pokemon_summary_screen.s b/data/pokemon_summary_screen.s index 3400c9ae0..2c221fb21 100644 --- a/data/pokemon_summary_screen.s +++ b/data/pokemon_summary_screen.s @@ -405,10 +405,13 @@ gUnknown_8463F9C:: @ 8463F9C gUnknown_8463FA4:: @ 8463FA4 .byte 0x00, 0x0e, 0x0a + .byte 0x00, 0x01, 0x02 + .byte 0x00, 0x09, 0x08 + .byte 0x00, 0x05, 0x04 + .byte 0x00, 0x02, 0x03 + .byte 0x00, 0x0b, 0x0a -gUnknown_8463FA7:: @ 8463FA7 - .byte 0x00, 0x01, 0x02, 0x00, 0x09, 0x08, 0x00, 0x05, 0x04, 0x00, 0x02, 0x03, 0x00, 0x0b, 0x0a, 0x00, 0x00 - + .balign 4, 0 gUnknown_8463FB8:: @ 8463FB8 .byte 0x00, 0x02, 0x03, 0x01, 0x04, 0x05 diff --git a/include/strings.h b/include/strings.h index 9f86bf6ef..df6162227 100644 --- a/include/strings.h +++ b/include/strings.h @@ -1478,5 +1478,16 @@ extern const u8 gUnknown_8416202[]; extern const u8 gUnknown_84161EF[]; extern const u8 gUnknown_841620E[]; extern const u8 gUnknown_8416210[]; - +extern const u8 gUnknown_8416238[]; +extern const u8 gUnknown_8419C13[]; +extern const u8 gUnknown_8419C0B[]; +extern const u8 gUnknown_841996D[]; +extern const u8 gUnknown_841992F[]; +extern const u8 gUnknown_84198D5[]; +extern const u8 gUnknown_84198B4[]; +extern const u8 gUnknown_84197ED[]; +extern const u8 gUnknown_84197B8[]; +extern const u8 gUnknown_8419841[]; +extern const u8 gUnknown_8419822[]; + #endif //GUARD_STRINGS_H diff --git a/include/text.h b/include/text.h index f1bf8b942..cd10de3e6 100644 --- a/include/text.h +++ b/include/text.h @@ -141,6 +141,7 @@ #define NUM_TEXT_PRINTERS 32 +#define TEXT_SPEED_INSTANT 0 #define TEXT_SPEED_FF 0xFF enum diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index fcf850ea7..7bfa7bb26 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -19,6 +19,10 @@ #include "trade.h" #include "battle_main.h" #include "scanline_effect.h" +#include "constants/moves.h" +#include "dynamic_placeholder_text_util.h" +#include "constants/region_map_sections.h" +#include "region_map.h" extern void sub_8138B8C(struct Pokemon * mon); void sub_8135C34(void); @@ -89,6 +93,18 @@ extern void sub_8139DBC(void); extern void sub_813995C(void); extern void sub_81393D4(u8 taskId); extern void sub_8137EE8(void); +extern void sub_8136FB0(void); +extern void sub_81370EC(void); +extern void sub_8137270(void); +extern void sub_81372E4(u8 i); +extern void sub_8137554(void); +extern void sub_8137A90(void); +extern void sub_8137AF8(void); +extern void sub_8137944(void); +extern void sub_8137970(void); +extern bool32 sub_813B838(u8 metLocation); +extern bool32 sub_8138B4C(void); +extern bool32 sub_813B7E0(u8 nature); struct PokemonSummaryScreenData { u16 unk0[0x800]; @@ -269,7 +285,10 @@ extern const u32 gUnknown_8463700[]; extern const struct BgTemplate gUnknown_8463EFC[4]; -extern const u8 gUnknown_8463FA7[][3]; +extern const u8 gUnknown_8463FA4[][3]; +extern const u8 gUnknown_8463EF0[][3]; + +extern const u8 * const gUnknown_8463EC4[]; void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, MainCallback savedCallback, u8 mode) { @@ -1702,67 +1721,275 @@ void sub_8136D54(void) void sub_8136DA4(const u8 * str) { FillWindowPixelBuffer(gMonSummaryScreen->unk3000[0], 0); - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[0], 2, 4, 1, gUnknown_8463FA7[0], 0, str); + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[0], 2, 4, 1, gUnknown_8463FA4[1], 0, str); PutWindowTilemap(gMonSummaryScreen->unk3000[0]); } -#ifdef NONMATCHING void sub_8136DF0(const u8 * str) { u8 v0; + s32 width; + u8 r1; FillWindowPixelBuffer(gMonSummaryScreen->unk3000[1], 0); - v0 = (u8)(0x54 - GetStringWidth(0, str, 0)); - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[1], 0, v0, 0, gUnknown_8463FA7[0], 0, str); + width = GetStringWidth(0, str, 0); + r1 = gMonSummaryScreen->unk3000[1]; + AddTextPrinterParameterized3(r1, 0, 0x54 - width, 0, gUnknown_8463FA4[1], 0, str); PutWindowTilemap(gMonSummaryScreen->unk3000[1]); } -#else -NAKED -void sub_8136DF0(const u8 * str) + +void sub_8136E50(const u8 * msg) +{ + FillWindowPixelBuffer(gMonSummaryScreen->unk3000[2], 0); + + if (!gMonSummaryScreen->isEgg) + { + if (gMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[2], 2, 4, 2, gUnknown_8463FA4[1], 0xff, gMonSummaryScreen->summary.unk3088); + + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[2], 2, 40, 2, gUnknown_8463FA4[1], 0xff, gMonSummaryScreen->summary.unk3034); + + if (GetMonGender(&gMonSummaryScreen->currentMon) == MON_FEMALE) + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[2], 2, 105, 2, gUnknown_8463FA4[3], 0, gMonSummaryScreen->summary.unk3084); + else + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[2], 2, 105, 2, gUnknown_8463FA4[2], 0, gMonSummaryScreen->summary.unk3084); + } + + PutWindowTilemap(gMonSummaryScreen->unk3000[2]); +} + +void sub_8136F4C(void) { - asm_unified("\tpush {r4-r6,lr}\n" - "\tsub sp, 0xC\n" - "\tadds r6, r0, 0\n" - "\tldr r5, _08136E44 @ =gMonSummaryScreen\n" - "\tldr r0, [r5]\n" - "\tldr r4, _08136E48 @ =0x00003001\n" - "\tadds r0, r4\n" - "\tldrb r0, [r0]\n" - "\tmovs r1, 0\n" - "\tbl FillWindowPixelBuffer\n" - "\tmovs r0, 0\n" - "\tadds r1, r6, 0\n" - "\tmovs r2, 0\n" - "\tbl GetStringWidth\n" - "\tldr r1, [r5]\n" - "\tadds r1, r4\n" - "\tldrb r1, [r1]\n" - "\tmovs r2, 0x54\n" - "\tsubs r2, r0\n" - "\tlsls r2, 24\n" - "\tlsrs r2, 24\n" - "\tldr r0, _08136E4C @ =gUnknown_8463FA7\n" - "\tstr r0, [sp]\n" - "\tmovs r0, 0\n" - "\tstr r0, [sp, 0x4]\n" - "\tstr r6, [sp, 0x8]\n" - "\tadds r0, r1, 0\n" - "\tmovs r1, 0\n" - "\tmovs r3, 0\n" - "\tbl AddTextPrinterParameterized3\n" - "\tldr r0, [r5]\n" - "\tadds r0, r4\n" - "\tldrb r0, [r0]\n" - "\tbl PutWindowTilemap\n" - "\tadd sp, 0xC\n" - "\tpop {r4-r6}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.align 2, 0\n" - "_08136E44: .4byte gMonSummaryScreen\n" - "_08136E48: .4byte 0x00003001\n" - "_08136E4C: .4byte gUnknown_8463FA7\n"); + FillWindowPixelBuffer(gMonSummaryScreen->unk3000[3], 0); + + switch (gMonSummaryScreen->curPageIndex) + { + case PSS_PAGE_INFO: + sub_8136FB0(); + break; + case PSS_PAGE_SKILLS: + sub_81370EC(); + break; + case PSS_PAGE_MOVES: + case PSS_PAGE_MOVES_INFO: + sub_8137270(); + break; + } + + PutWindowTilemap(gMonSummaryScreen->unk3000[3]); } -#endif -
\ No newline at end of file +void sub_8136FB0(void) +{ + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 47, 19, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk3028); + + if (!gMonSummaryScreen->isEgg) + { + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 47 + gUnknown_203B144->unk00, 5, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk3064); + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 47, 49, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk3040); + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 47, 64, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk306C); + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 47, 79, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk3074); + } + else + { + u8 eggCycles; + u8 hatchMsgIndex; + + eggCycles = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_FRIENDSHIP); + + if (eggCycles <= 5) + hatchMsgIndex = 3; + else if (eggCycles <= 10) + hatchMsgIndex = 2; + else if (eggCycles <= 40) + hatchMsgIndex = 1; + else + hatchMsgIndex = 0; + + if (gMonSummaryScreen->isBadEgg) + hatchMsgIndex = 0; + + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 7, 45, gUnknown_8463FA4[0], TEXT_SPEED_FF, gUnknown_8463EC4[hatchMsgIndex]); + } +} + +void sub_81370EC(void) +{ + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 14 + gUnknown_203B144->unk02, 4, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk3090); + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 50 + gUnknown_203B144->unk04, 22, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk309C[PSS_STAT_ATK]); + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 50 + gUnknown_203B144->unk06, 35, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk309C[PSS_STAT_DEF]); + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 50 + gUnknown_203B144->unk08, 48, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk309C[PSS_STAT_SPA]); + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 50 + gUnknown_203B144->unk0A, 61, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk309C[PSS_STAT_SPD]); + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 50 + gUnknown_203B144->unk0C, 74, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk309C[PSS_STAT_SPE]); + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 15 + gUnknown_203B144->unk0E, 87, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk31A4); + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 15 + gUnknown_203B144->unk10, 100, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk31B0); +} + +#define MACRO_8137270(x) ((x) * 28 + 5) + +void sub_8137270(void) +{ + u8 i; + + for (i = 0; i < 4; i++) + sub_81372E4(i); + + if (gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO) + { + if (gMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) + sub_81372E4(4); + else + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 3, MACRO_8137270(4), gUnknown_8463EF0[0], TEXT_SPEED_FF, gFameCheckerText_Cancel); + } +} + +#define MACRO_81372E4(x) ((x) * 28 + 16) + +void sub_81372E4(u8 i) +{ + u8 v0 = 0; + u8 curPP = sub_8138C24(&gMonSummaryScreen->currentMon, i); + u16 move = gMonSummaryScreen->unk325A[i]; + u8 ppBonuses = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_PP_BONUSES); + u8 maxPP = CalculatePPWithBonus(move, ppBonuses, i); + + if (i == 4) + curPP = maxPP; + + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 3, MACRO_8137270(i), gUnknown_8463EF0[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk3128[i]); + + if (gMonSummaryScreen->unk325A[i] == 0 || (curPP == maxPP)) + v0 = 0; + else if (curPP == 0) + v0 = 3; + else if (maxPP == 3) + { + if (curPP == 2) + v0 = 2; + else if (curPP == 1) + v0 = 1; + } + else if (maxPP == 2) + { + if (curPP == 1) + v0 = 1; + } + else + { + if (curPP <= (maxPP / 4)) + v0 = 2; + else if (curPP <= (maxPP / 2)) + v0 = 1; + } + + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 36, MACRO_81372E4(i), gUnknown_8463EF0[v0], TEXT_SPEED_FF, gUnknown_8416238); + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 46 + gUnknown_203B144->unk12[i], MACRO_81372E4(i), gUnknown_8463EF0[v0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk30B8[i]); + + if (gMonSummaryScreen->unk325A[i] != MOVE_NONE) + { + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 58, MACRO_81372E4(i), gUnknown_8463EF0[v0], TEXT_SPEED_FF, gText_Slash); + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 64 + gUnknown_203B144->unk1C[i], MACRO_81372E4(i), gUnknown_8463EF0[v0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk30F0[i]); + } +} + +void sub_81374E8(void) +{ + FillWindowPixelBuffer(gMonSummaryScreen->unk3000[4], 0); + + switch (gMonSummaryScreen->curPageIndex) + { + case PSS_PAGE_INFO: + sub_8137554(); + break; + case PSS_PAGE_SKILLS: + sub_8137A90(); + break; + case PSS_PAGE_MOVES_INFO: + sub_8137AF8(); + break; + case PSS_PAGE_MOVES: + break; + } + + PutWindowTilemap(gMonSummaryScreen->unk3000[4]); +} + +void sub_8137554(void) +{ + if (!gMonSummaryScreen->isEgg) + sub_8137944(); + else + sub_8137970(); +} + +void sub_8137578(void) +{ + u8 nature; + u8 level; + u8 metLocation; + u8 levelStr[5]; + u8 mapNameStr[32]; + u8 natureMetOrHatchedAtLevelStr[152]; + + DynamicPlaceholderTextUtil_Reset(); + nature = GetNature(&gMonSummaryScreen->currentMon); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gNatureNamePointers[nature]); + level = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_MET_LEVEL); + + if (level == 0) + level = 5; + + ConvertIntToDecimalStringN(levelStr, level, STR_CONV_MODE_LEFT_ALIGN, 3); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, levelStr); + + metLocation = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_MET_LOCATION); + + if (sub_813B838(metLocation) == TRUE) + GetMapNameGeneric_(mapNameStr, metLocation); + else + { + if (gMonSummaryScreen->isEnemyParty == TRUE || sub_8138B4C() == TRUE) + StringCopy(mapNameStr, gUnknown_8419C13); + else + StringCopy(mapNameStr, gUnknown_8419C0B); + } + + DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, mapNameStr); + + if (GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_MET_LEVEL) == 0) + { + if (GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_OBEDIENCE) == 1) + { + if (sub_813B7E0(nature)) + DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_841996D); + else + DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_841992F); + } + else + { + if (sub_813B7E0(nature)) + DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_84198D5); + else + DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_84198B4); + } + } + else + { + if (metLocation == METLOC_FATEFUL_ENCOUNTER) + { + if (sub_813B7E0(nature)) + DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_84197ED); + else + DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_84197B8); + } + else + { + if (sub_813B7E0(nature)) + DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_8419841); + else + DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_8419822); + } + } + + AddTextPrinterParameterized4(gMonSummaryScreen->unk3000[4], 2, 0, 3, 0, 0, gUnknown_8463FA4[0], TEXT_SPEED_FF, natureMetOrHatchedAtLevelStr); +} |