summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorluckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com>2020-06-25 12:59:37 -0400
committerluckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com>2020-06-25 12:59:37 -0400
commit91fea55a24ba6e184e806c7aefa7f60ef31c0b32 (patch)
treea74219021737729851ad76c17e3038a343769daf
parent114a5b9b6f75163849e031684b154f754a03d08a (diff)
pokemon_summary_screen.c, part 6.
-rw-r--r--asm/pokemon_summary_screen.s1072
-rw-r--r--data/pokemon_summary_screen.s9
-rw-r--r--include/strings.h13
-rw-r--r--include/text.h1
-rw-r--r--src/pokemon_summary_screen.c331
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);
+}