summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/pokemon_summary_screen.s1079
-rw-r--r--include/strings.h1
-rw-r--r--include/trainer_pokemon_sprites.h2
-rw-r--r--src/pokemon_summary_screen.c356
4 files changed, 356 insertions, 1082 deletions
diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s
index 310df5032..0f7896dc8 100644
--- a/asm/pokemon_summary_screen.s
+++ b/asm/pokemon_summary_screen.s
@@ -5,1085 +5,6 @@
.text
- thumb_func_start sub_8139388
-sub_8139388: @ 8139388
- push {r4,lr}
- ldr r4, _081393BC @ =gMonSummaryScreen
- ldr r0, [r4]
- ldr r1, _081393C0 @ =0x00003290
- adds r0, r1
- ldr r1, _081393C4 @ =gUnknown_203B16D
- ldrb r1, [r1]
- bl sub_8138BEC
- lsls r0, 16
- lsrs r0, 16
- bl IsMoveHm
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081393CC
- ldr r0, [r4]
- ldr r1, _081393C8 @ =0x00003208
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _081393CC
- movs r0, 0
- b _081393CE
- .align 2, 0
-_081393BC: .4byte gMonSummaryScreen
-_081393C0: .4byte 0x00003290
-_081393C4: .4byte gUnknown_203B16D
-_081393C8: .4byte 0x00003208
-_081393CC:
- movs r0, 0x1
-_081393CE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8139388
-
- thumb_func_start sub_81393D4
-sub_81393D4: @ 81393D4
- push {r4,r5,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _081393F8 @ =gMonSummaryScreen
- ldr r0, [r1]
- ldr r3, _081393FC @ =0x00003288
- adds r0, r3
- ldrb r0, [r0]
- adds r5, r1, 0
- cmp r0, 0x6
- bls _081393EE
- b _08139748
-_081393EE:
- lsls r0, 2
- ldr r1, _08139400 @ =_08139404
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081393F8: .4byte gMonSummaryScreen
-_081393FC: .4byte 0x00003288
-_08139400: .4byte _08139404
- .align 2, 0
-_08139404:
- .4byte _08139420
- .4byte _08139444
- .4byte _0813946C
- .4byte _08139604
- .4byte _08139628
- .4byte _081396A8
- .4byte _08139710
-_08139420:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _0813943C @ =gMonSummaryScreen
- ldr r1, [r0]
- ldr r4, _08139440 @ =0x00003288
- adds r1, r4
- b _08139728
- .align 2, 0
-_0813943C: .4byte gMonSummaryScreen
-_08139440: .4byte 0x00003288
-_08139444:
- ldr r0, _08139460 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08139452
- b _0813975A
-_08139452:
- bl sub_813B784
- ldr r0, _08139464 @ =gMonSummaryScreen
- ldr r1, [r0]
- ldr r0, _08139468 @ =0x00003288
- adds r1, r0
- b _08139728
- .align 2, 0
-_08139460: .4byte gPaletteFade
-_08139464: .4byte gMonSummaryScreen
-_08139468: .4byte 0x00003288
-_0813946C:
- ldr r0, _081394BC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _081394DC
- ldr r4, _081394C0 @ =gUnknown_203B16D
- ldrb r0, [r4]
- cmp r0, 0
- beq _081394CC
- ldr r0, [r5]
- ldr r1, _081394C4 @ =0x00003288
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0]
- movs r0, 0x5
- bl PlaySE
- ldrb r4, [r4]
- cmp r4, 0
- bne _0813949C
- b _0813975A
-_0813949C:
- ldr r0, [r5]
- ldr r2, _081394C8 @ =0x00003258
- adds r1, r0, r2
-_081394A2:
- subs r4, 0x1
- lsls r0, r4, 1
- adds r0, r1, r0
- ldrh r0, [r0]
- cmp r0, 0
- beq _081394B0
- b _08139738
-_081394B0:
- lsls r0, r4, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _081394A2
- b _0813975A
- .align 2, 0
-_081394BC: .4byte gMain
-_081394C0: .4byte gUnknown_203B16D
-_081394C4: .4byte 0x00003288
-_081394C8: .4byte 0x00003258
-_081394CC:
- movs r0, 0x4
- strb r0, [r4]
- ldr r0, [r5]
- ldr r3, _081394D8 @ =0x00003288
- adds r0, r3
- b _08139556
- .align 2, 0
-_081394D8: .4byte 0x00003288
-_081394DC:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08139568
- ldr r3, _08139538 @ =gUnknown_203B16D
- ldrb r0, [r3]
- cmp r0, 0x3
- bhi _08139548
- movs r2, 0x4
- ldr r0, [r5]
- ldr r4, _0813953C @ =0x00003288
- adds r0, r4
- movs r1, 0x3
- strb r1, [r0]
- ldr r1, [r5]
- subs r4, 0x20
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08139506
- movs r2, 0x3
-_08139506:
- ldrb r4, [r3]
- cmp r4, r2
- bcs _08139526
- ldr r0, _08139540 @ =0x00003258
- adds r1, r0
-_08139510:
- adds r4, 0x1
- lsls r0, r4, 1
- adds r0, r1, r0
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813951E
- b _08139738
-_0813951E:
- lsls r0, r4, 24
- lsrs r4, r0, 24
- cmp r4, r2
- bcc _08139510
-_08139526:
- ldr r0, [r5]
- ldr r1, _08139544 @ =0x00003268
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08139534
- b _0813975A
-_08139534:
- b _08139738
- .align 2, 0
-_08139538: .4byte gUnknown_203B16D
-_0813953C: .4byte 0x00003288
-_08139540: .4byte 0x00003258
-_08139544: .4byte 0x00003268
-_08139548:
- cmp r0, 0x4
- beq _0813954E
- b _0813975A
-_0813954E:
- strb r2, [r3]
- ldr r0, [r5]
- ldr r2, _08139564 @ =0x00003288
- adds r0, r2
-_08139556:
- movs r1, 0x3
- strb r1, [r0]
- movs r0, 0x5
- bl PlaySE
- b _0813975A
- .align 2, 0
-_08139564: .4byte 0x00003288
-_08139568:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081395D4
- bl sub_8139388
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08139584
- ldr r0, _081395A4 @ =gUnknown_203B16D
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _081395B8
-_08139584:
- movs r0, 0x5
- bl PlaySE
- ldr r2, _081395A8 @ =gUnknown_203B16E
- ldr r0, _081395A4 @ =gUnknown_203B16D
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r1, _081395AC @ =gSpecialVar_0x8005
- ldrb r0, [r2]
- strh r0, [r1]
- ldr r0, _081395B0 @ =gMonSummaryScreen
- ldr r0, [r0]
- ldr r3, _081395B4 @ =0x00003288
- adds r0, r3
- b _081395F0
- .align 2, 0
-_081395A4: .4byte gUnknown_203B16D
-_081395A8: .4byte gUnknown_203B16E
-_081395AC: .4byte gSpecialVar_0x8005
-_081395B0: .4byte gMonSummaryScreen
-_081395B4: .4byte 0x00003288
-_081395B8:
- movs r0, 0x1A
- bl PlaySE
- ldr r0, _081395CC @ =gMonSummaryScreen
- ldr r0, [r0]
- ldr r4, _081395D0 @ =0x00003288
- adds r0, r4
- movs r1, 0x5
- strb r1, [r0]
- b _0813975A
- .align 2, 0
-_081395CC: .4byte gMonSummaryScreen
-_081395D0: .4byte 0x00003288
-_081395D4:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _081395DE
- b _0813975A
-_081395DE:
- ldr r1, _081395F8 @ =gUnknown_203B16E
- movs r0, 0x4
- strb r0, [r1]
- ldr r1, _081395FC @ =gSpecialVar_0x8005
- movs r0, 0x4
- strh r0, [r1]
- ldr r0, [r5]
- ldr r1, _08139600 @ =0x00003288
- adds r0, r1
-_081395F0:
- movs r1, 0x6
- strb r1, [r0]
- b _0813975A
- .align 2, 0
-_081395F8: .4byte gUnknown_203B16E
-_081395FC: .4byte gSpecialVar_0x8005
-_08139600: .4byte 0x00003288
-_08139604:
- bl sub_8136F4C
- bl sub_81374E8
- bl sub_8137BD0
- ldr r0, _08139620 @ =gMonSummaryScreen
- ldr r0, [r0]
- ldr r2, _08139624 @ =0x00003288
- adds r0, r2
- movs r1, 0x4
- strb r1, [r0]
- b _0813975A
- .align 2, 0
-_08139620: .4byte gMonSummaryScreen
-_08139624: .4byte 0x00003288
-_08139628:
- bl MenuHelpers_CallLinkSomething
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08139636
- b _0813975A
-_08139636:
- bl sub_800B270
- cmp r0, 0x1
- bne _08139640
- b _0813975A
-_08139640:
- ldr r4, _08139690 @ =gMonSummaryScreen
- ldr r0, [r4]
- ldr r3, _08139694 @ =0x00003003
- adds r0, r3
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r4]
- ldr r1, _08139698 @ =0x00003004
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r4]
- ldr r2, _0813969C @ =0x00003005
- adds r0, r2
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r4]
- ldr r3, _081396A0 @ =0x00003006
- adds r0, r3
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- movs r0, 0x3
- bl CopyBgTilemapBufferToVram
- ldr r0, [r4]
- ldr r4, _081396A4 @ =0x00003288
- adds r0, r4
- b _081396F8
- .align 2, 0
-_08139690: .4byte gMonSummaryScreen
-_08139694: .4byte 0x00003003
-_08139698: .4byte 0x00003004
-_0813969C: .4byte 0x00003005
-_081396A0: .4byte 0x00003006
-_081396A4: .4byte 0x00003288
-_081396A8:
- ldr r0, [r5]
- ldr r4, _08139700 @ =0x00003004
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- ldr r1, _08139704 @ =gUnknown_8463FA4
- str r1, [sp, 0x8]
- movs r1, 0x1
- negs r1, r1
- str r1, [sp, 0xC]
- ldr r1, _08139708 @ =gUnknown_8419CB9
- str r1, [sp, 0x10]
- movs r1, 0x2
- movs r2, 0x7
- movs r3, 0x2A
- bl AddTextPrinterParameterized4
- ldr r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- movs r0, 0x3
- bl CopyBgTilemapBufferToVram
- ldr r0, [r5]
- ldr r1, _0813970C @ =0x00003288
- adds r0, r1
-_081396F8:
- movs r1, 0x2
- strb r1, [r0]
- b _0813975A
- .align 2, 0
-_08139700: .4byte 0x00003004
-_08139704: .4byte gUnknown_8463FA4
-_08139708: .4byte gUnknown_8419CB9
-_0813970C: .4byte 0x00003288
-_08139710:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08139730 @ =gMonSummaryScreen
- ldr r1, [r0]
- ldr r2, _08139734 @ =0x00003288
- adds r1, r2
-_08139728:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0813975A
- .align 2, 0
-_08139730: .4byte gMonSummaryScreen
-_08139734: .4byte 0x00003288
-_08139738:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08139744 @ =gUnknown_203B16D
- strb r4, [r0]
- b _0813975A
- .align 2, 0
-_08139744: .4byte gUnknown_203B16D
-_08139748:
- ldr r0, _08139764 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0813975A
- adds r0, r2, 0
- bl sub_8137E64
-_0813975A:
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08139764: .4byte gPaletteFade
- thumb_func_end sub_81393D4
-
- thumb_func_start sub_8139768
-sub_8139768: @ 8139768
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r0, _081397A4 @ =gMonSummaryScreen
- ldr r1, [r0]
- ldr r2, _081397A8 @ =0x00003020
- adds r1, r2
- ldrb r1, [r1]
- adds r6, r0, 0
- cmp r1, 0x1
- bhi _08139858
- ldr r3, _081397AC @ =gUnknown_203B170
- ldr r2, [r3]
- ldrb r0, [r2, 0x4]
- adds r1, r0, 0x1
- strb r1, [r2, 0x4]
- lsls r0, 24
- lsrs r0, 24
- adds r5, r3, 0
- cmp r0, 0x1
- bls _08139858
- ldr r3, [r5]
- ldrb r0, [r3, 0x8]
- cmp r0, 0x1
- beq _081397D8
- cmp r0, 0x1
- bgt _081397B0
- cmp r0, 0
- beq _081397B6
- b _0813981C
- .align 2, 0
-_081397A4: .4byte gMonSummaryScreen
-_081397A8: .4byte 0x00003020
-_081397AC: .4byte gUnknown_203B170
-_081397B0:
- cmp r0, 0x2
- beq _081397FC
- b _0813981C
-_081397B6:
- ldr r2, _081397D4 @ =gUnknown_8463FBE
- ldrb r0, [r3]
- adds r1, r0, 0x1
- strb r1, [r3]
- lsls r0, 24
- lsrs r0, 24
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- movs r1, 0x3
- b _0813983A
- .align 2, 0
-_081397D4: .4byte gUnknown_8463FBE
-_081397D8:
- ldr r2, _081397F8 @ =gUnknown_8463FC1
- ldrb r0, [r3]
- adds r1, r0, 0x1
- strb r1, [r3]
- lsls r0, 24
- lsrs r0, 24
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- movs r1, 0x5
- b _0813983A
- .align 2, 0
-_081397F8: .4byte gUnknown_8463FC1
-_081397FC:
- ldr r2, _08139818 @ =gUnknown_8463FC6
- ldrb r0, [r3]
- adds r1, r0, 0x1
- strb r1, [r3]
- lsls r0, 24
- lsrs r0, 24
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r1, [r4, 0x22]
- adds r0, r1
- b _08139836
- .align 2, 0
-_08139818: .4byte gUnknown_8463FC6
-_0813981C:
- ldr r3, _08139860 @ =gUnknown_8463FCD
- ldr r2, [r5]
- ldrb r0, [r2]
- adds r1, r0, 0x1
- strb r1, [r2]
- lsls r0, 24
- lsrs r0, 24
- adds r0, r3
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r2, [r4, 0x22]
- adds r0, r2
-_08139836:
- strh r0, [r4, 0x22]
- movs r1, 0x7
-_0813983A:
- ldr r2, [r5]
- ldrb r0, [r2]
- cmp r0, r1
- bcc _08139852
- movs r0, 0
- strb r0, [r2]
- ldr r1, [r6]
- ldr r0, _08139864 @ =0x00003020
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08139852:
- ldr r1, [r5]
- movs r0, 0
- strb r0, [r1, 0x4]
-_08139858:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08139860: .4byte gUnknown_8463FCD
-_08139864: .4byte 0x00003020
- thumb_func_end sub_8139768
-
- thumb_func_start sub_8139868
-sub_8139868: @ 8139868
- push {r4-r6,lr}
- adds r3, r0, 0
- ldr r5, _081398C0 @ =gMonSummaryScreen
- ldr r0, [r5]
- ldr r6, _081398C4 @ =0x00003020
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x1
- bhi _0813994C
- ldr r4, _081398C8 @ =gUnknown_203B170
- ldr r2, [r4]
- ldrb r0, [r2, 0x8]
- cmp r0, 0x1
- beq _081398D0
- cmp r0, 0x1
- ble _0813988C
- cmp r0, 0x2
- beq _08139908
-_0813988C:
- ldrb r0, [r2, 0x4]
- adds r1, r0, 0x1
- strb r1, [r2, 0x4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x77
- bls _0813994C
- ldr r2, _081398CC @ =gUnknown_8463FD4
- ldr r1, [r4]
- ldrb r0, [r1]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r2, [r3, 0x20]
- adds r0, r2
- movs r2, 0
- strh r0, [r3, 0x20]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xA
- bls _0813994C
- b _0813993A
- .align 2, 0
-_081398C0: .4byte gMonSummaryScreen
-_081398C4: .4byte 0x00003020
-_081398C8: .4byte gUnknown_203B170
-_081398CC: .4byte gUnknown_8463FD4
-_081398D0:
- ldrb r0, [r2, 0x4]
- adds r1, r0, 0x1
- strb r1, [r2, 0x4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x59
- bls _0813994C
- ldr r2, _08139904 @ =gUnknown_8463FDF
- ldr r1, [r4]
- ldrb r0, [r1]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r2, [r3, 0x20]
- adds r0, r2
- movs r2, 0
- strh r0, [r3, 0x20]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xA
- bls _0813994C
- b _0813993A
- .align 2, 0
-_08139904: .4byte gUnknown_8463FDF
-_08139908:
- ldrb r0, [r2, 0x4]
- adds r1, r0, 0x1
- strb r1, [r2, 0x4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3B
- bls _0813994C
- ldr r2, _08139954 @ =gUnknown_8463FEA
- ldr r1, [r4]
- ldrb r0, [r1]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r2, [r3, 0x20]
- adds r0, r2
- movs r2, 0
- strh r0, [r3, 0x20]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xE
- bls _0813994C
-_0813993A:
- ldr r0, [r4]
- strb r2, [r0]
- ldr r0, [r4]
- strb r2, [r0, 0x4]
- ldr r1, [r5]
- adds r1, r6
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0813994C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08139954: .4byte gUnknown_8463FEA
- thumb_func_end sub_8139868
-
- thumb_func_start nullsub_96
-nullsub_96: @ 8139958
- bx lr
- thumb_func_end nullsub_96
-
- thumb_func_start sub_813995C
-sub_813995C: @ 813995C
- push {r4-r7,lr}
- sub sp, 0x14
- ldr r4, _081399CC @ =gUnknown_203B170
- movs r0, 0xC
- bl AllocZeroed
- str r0, [r4]
- ldr r5, _081399D0 @ =gMonSummaryScreen
- ldr r0, [r5]
- ldr r4, _081399D4 @ =0x00003290
- adds r0, r4
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r0, [r5]
- adds r0, r4
- movs r1, 0
- bl GetMonData
- adds r6, r0, 0
- ldr r0, [r5]
- adds r0, r4
- movs r1, 0x1
- bl GetMonData
- adds r4, r0, 0
- ldr r5, [r5]
- ldr r1, _081399D8 @ =0x000032f8
- adds r0, r5, r1
- ldr r1, [r0]
- ldr r0, _081399DC @ =CB2_ReturnToTradeMenuFromSummary
- cmp r1, r0
- bne _081399E8
- ldr r1, _081399E0 @ =0x00003024
- adds r0, r5, r1
- ldr r5, [r0]
- cmp r5, 0x1
- bne _08139A24
- movs r0, 0x3C
- str r0, [sp]
- movs r0, 0x41
- str r0, [sp, 0x4]
- movs r0, 0xC
- str r0, [sp, 0x8]
- ldr r0, _081399E4 @ =0x0000ffff
- str r0, [sp, 0xC]
- str r5, [sp, 0x10]
- adds r0, r7, 0
- adds r1, r4, 0
- adds r2, r6, 0
- movs r3, 0x1
- bl CreateMonPicSprite
- b _08139A40
- .align 2, 0
-_081399CC: .4byte gUnknown_203B170
-_081399D0: .4byte gMonSummaryScreen
-_081399D4: .4byte 0x00003290
-_081399D8: .4byte 0x000032f8
-_081399DC: .4byte CB2_ReturnToTradeMenuFromSummary
-_081399E0: .4byte 0x00003024
-_081399E4: .4byte 0x0000ffff
-_081399E8:
- ldr r0, _08139A1C @ =gLastViewedMonIndex
- ldrb r1, [r0]
- movs r0, 0x3
- bl sub_804455C
- lsls r0, 24
- cmp r0, 0
- beq _08139A24
- movs r0, 0x3C
- str r0, [sp]
- movs r0, 0x41
- str r0, [sp, 0x4]
- movs r0, 0xC
- str r0, [sp, 0x8]
- ldr r0, _08139A20 @ =0x0000ffff
- str r0, [sp, 0xC]
- movs r0, 0x1
- str r0, [sp, 0x10]
- adds r0, r7, 0
- adds r1, r4, 0
- adds r2, r6, 0
- movs r3, 0x1
- bl CreateMonPicSprite
- b _08139A40
- .align 2, 0
-_08139A1C: .4byte gLastViewedMonIndex
-_08139A20: .4byte 0x0000ffff
-_08139A24:
- movs r0, 0x3C
- str r0, [sp]
- movs r0, 0x41
- str r0, [sp, 0x4]
- movs r0, 0xC
- str r0, [sp, 0x8]
- ldr r0, _08139A70 @ =0x0000ffff
- str r0, [sp, 0xC]
- adds r0, r7, 0
- adds r1, r4, 0
- adds r2, r6, 0
- movs r3, 0x1
- bl CreateMonPicSprite_HandleDeoxys
-_08139A40:
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r1, _08139A74 @ =gSprites
- adds r4, r0, r1
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r7, 0
- bl IsPokeSpriteNotFlipped
- lsls r0, 24
- cmp r0, 0
- bne _08139A78
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _08139A86
- .align 2, 0
-_08139A70: .4byte 0x0000ffff
-_08139A74: .4byte gSprites
-_08139A78:
- adds r2, r4, 0
- adds r2, 0x3F
- ldrb r1, [r2]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_08139A86:
- ldr r0, _08139AA4 @ =gMonSummaryScreen
- ldr r0, [r0]
- ldr r1, _08139AA8 @ =0x00003010
- adds r0, r1
- strb r5, [r0]
- movs r0, 0x1
- bl sub_8139C44
- adds r0, r5, 0
- bl sub_8139AAC
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08139AA4: .4byte gMonSummaryScreen
-_08139AA8: .4byte 0x00003010
- thumb_func_end sub_813995C
-
- thumb_func_start sub_8139AAC
-sub_8139AAC: @ 8139AAC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r1, _08139AF4 @ =gMonSummaryScreen
- ldr r0, [r1]
- ldr r2, _08139AF8 @ =0x00003020
- adds r0, r2
- movs r6, 0
- strb r6, [r0]
- ldr r2, [r1]
- movs r3, 0xC8
- lsls r3, 6
- adds r0, r2, r3
- ldrb r4, [r0]
- adds r7, r1, 0
- cmp r4, 0x1
- bne _08139B3C
- ldr r1, _08139AFC @ =0x00003290
- adds r0, r2, r1
- movs r1, 0x20
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x5
- bhi _08139B04
- ldr r0, _08139B00 @ =gUnknown_203B170
- ldr r1, [r0]
- movs r0, 0x2
- strb r0, [r1, 0x8]
- b _08139B1E
- .align 2, 0
-_08139AF4: .4byte gMonSummaryScreen
-_08139AF8: .4byte 0x00003020
-_08139AFC: .4byte 0x00003290
-_08139B00: .4byte gUnknown_203B170
-_08139B04:
- cmp r0, 0xA
- bhi _08139B14
- ldr r0, _08139B10 @ =gUnknown_203B170
- ldr r0, [r0]
- strb r4, [r0, 0x8]
- b _08139B1E
- .align 2, 0
-_08139B10: .4byte gUnknown_203B170
-_08139B14:
- cmp r1, 0x28
- bhi _08139B1E
- ldr r0, _08139B30 @ =gUnknown_203B170
- ldr r0, [r0]
- strb r6, [r0, 0x8]
-_08139B1E:
- ldr r0, _08139B34 @ =gSprites
- mov r2, r8
- lsls r1, r2, 4
- add r1, r8
- lsls r1, 2
- adds r0, 0x1C
- adds r1, r0
- ldr r0, _08139B38 @ =sub_8139868
- b _08139C28
- .align 2, 0
-_08139B30: .4byte gUnknown_203B170
-_08139B34: .4byte gSprites
-_08139B38: .4byte sub_8139868
-_08139B3C:
- ldr r3, _08139B60 @ =0x0000326c
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, 0
- beq _08139B6C
- cmp r0, 0x6
- beq _08139B6C
- cmp r0, 0x7
- beq _08139C2A
- ldr r0, _08139B64 @ =gSprites
- mov r2, r8
- lsls r1, r2, 4
- add r1, r8
- lsls r1, 2
- adds r0, 0x1C
- adds r1, r0
- ldr r0, _08139B68 @ =nullsub_96
- b _08139C28
- .align 2, 0
-_08139B60: .4byte 0x0000326c
-_08139B64: .4byte gSprites
-_08139B68: .4byte nullsub_96
-_08139B6C:
- ldr r0, [r7]
- ldr r4, _08139B98 @ =0x00003290
- adds r0, r4
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, [r7]
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r6, r0
- bne _08139BA0
- ldr r0, _08139B9C @ =gUnknown_203B170
- ldr r1, [r0]
- movs r0, 0x3
- b _08139C16
- .align 2, 0
-_08139B98: .4byte 0x00003290
-_08139B9C: .4byte gUnknown_203B170
-_08139BA0:
- bl __floatsidf
- str r0, [sp]
- str r1, [sp, 0x4]
- ldr r3, _08139BD8+4 @ =0x9999999a
- ldr r2, _08139BD8 @ =0x3fe99999
- bl __muldf3
- adds r5, r1, 0
- adds r4, r0, 0
- adds r0, r6, 0
- bl __floatsidf
- adds r7, r1, 0
- adds r6, r0, 0
- adds r1, r5, 0
- adds r0, r4, 0
- adds r3, r7, 0
- adds r2, r6, 0
- bl __ledf2
- cmp r0, 0
- bgt _08139BE4
- ldr r0, _08139BE0 @ =gUnknown_203B170
- ldr r1, [r0]
- movs r0, 0x2
- b _08139C16
- .align 2, 0
-@ _08139BD8: .double 0.8
-_08139BD8: .4byte 0x3fe99999
-_08139BDC: .4byte 0x9999999a
-_08139BE0: .4byte gUnknown_203B170
-_08139BE4:
- ldr r3, _08139C04+4 @ =0x33333333
- ldr r2, _08139C04 @ =0x3fe33333
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- bl __muldf3
- adds r3, r7, 0
- adds r2, r6, 0
- bl __ledf2
- cmp r0, 0
- bgt _08139C10
- ldr r0, _08139C0C @ =gUnknown_203B170
- ldr r1, [r0]
- movs r0, 0x1
- b _08139C16
- .align 2, 0
-@ _08139C04: .double 0.6
-_08139C04: .4byte 0x3fe33333
-_08139C08: .4byte 0x33333333
-_08139C0C: .4byte gUnknown_203B170
-_08139C10:
- ldr r0, _08139C38 @ =gUnknown_203B170
- ldr r1, [r0]
- movs r0, 0
-_08139C16:
- strb r0, [r1, 0x8]
- ldr r0, _08139C3C @ =gSprites
- mov r3, r8
- lsls r1, r3, 4
- add r1, r8
- lsls r1, 2
- adds r0, 0x1C
- adds r1, r0
- ldr r0, _08139C40 @ =sub_8139768
-_08139C28:
- str r0, [r1]
-_08139C2A:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08139C38: .4byte gUnknown_203B170
-_08139C3C: .4byte gSprites
-_08139C40: .4byte sub_8139768
- thumb_func_end sub_8139AAC
-
thumb_func_start sub_8139C44
sub_8139C44: @ 8139C44
lsls r0, 24
diff --git a/include/strings.h b/include/strings.h
index 7b5c85305..81441d2bc 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -1503,5 +1503,6 @@ extern const u8 gUnknown_8419C72[];
extern const u8 gUnknown_8419C2A[];
extern const u8 gUnknown_8419C7B[];
extern const u8 gUnknown_8419CA9[];
+extern const u8 gUnknown_8419CB9[];
#endif //GUARD_STRINGS_H
diff --git a/include/trainer_pokemon_sprites.h b/include/trainer_pokemon_sprites.h
index 23f6e2cab..fe4fc2510 100644
--- a/include/trainer_pokemon_sprites.h
+++ b/include/trainer_pokemon_sprites.h
@@ -17,5 +17,7 @@ u16 FreeAndDestroyTrainerPicSprite(u16);
u16 PlayerGenderToFrontTrainerPicId_Debug(u8 gender, bool8 getClass);
u16 CreateMonPicSprite_HandleDeoxys(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
u16 LoadMonPicInWindow(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId);
+u16 CreateMonPicSprite(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 ignoreDeoxys);
+u16 CreateMonPicSprite_HandleDeoxys(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
#endif // GUARD_TRAINER_POKEMON_SPRITES_H
diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c
index bef024a09..ec42eb65c 100644
--- a/src/pokemon_summary_screen.c
+++ b/src/pokemon_summary_screen.c
@@ -26,6 +26,8 @@
#include "field_specials.h"
#include "party_menu.h"
#include "constants/battle.h"
+#include "event_data.h"
+#include "trainer_pokemon_sprites.h"
extern void sub_8138B8C(struct Pokemon * mon);
void sub_8135C34(void);
@@ -118,6 +120,7 @@ void sub_81380F0(void);
extern void sub_81390B0(void);
extern void sub_81391EC(void);
extern void sub_8139328(struct Pokemon * mon);
+extern void sub_8139AAC(u16 spriteId);
struct PokemonSummaryScreenData {
u16 unk0[0x800];
@@ -276,12 +279,19 @@ struct Struct203B15C {
u16 unk3E; /* 0x3e */
};
+struct Struct203B170 {
+ u8 ALIGNED(4) unk00; /* 0x00 */
+ u8 ALIGNED(4) unk04; /* 0x04 */
+ u8 ALIGNED(4) unk08; /* 0x08 */
+};
+
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 struct Struct203B170 * gUnknown_203B170;
extern const u32 gUnknown_8E9B750[];
extern const u32 gUnknown_8E9B950[];
@@ -311,6 +321,15 @@ extern const struct WindowTemplate gUnknown_8463F5C[];
extern const struct WindowTemplate gUnknown_8463F7C[];
extern const struct WindowTemplate gUnknown_8463F24[];
+extern const s8 gUnknown_8463FBE[3];
+extern const s8 gUnknown_8463FC1[5];
+extern const s8 gUnknown_8463FC6[7];
+extern const s8 gUnknown_8463FCD[7];
+
+extern const s8 gUnknown_8463FD4[11];
+extern const s8 gUnknown_8463FDF[11];
+extern const s8 gUnknown_8463FEA[15];
+
#define FREE_AND_SET_NULL_IF_SET(ptr) \
{ \
if (ptr != NULL) \
@@ -2939,7 +2958,7 @@ void sub_8138CD8(u8 id)
{
if (gUnknown_203B16D < 4)
{
- u8 limit = 4;
+ u8 v0 = 4;
gMonSummaryScreen->unk3288 = 2;
@@ -2952,10 +2971,10 @@ void sub_8138CD8(u8 id)
PlaySE(SE_SELECT);
return;
}
- limit--;
+ v0--;
}
- for (i = gUnknown_203B16D; i < limit; i++)
+ for (i = gUnknown_203B16D; i < v0; i++)
if (gMonSummaryScreen->unk325A[i + 1] != 0)
{
PlaySE(SE_SELECT);
@@ -3163,3 +3182,334 @@ void sub_8139328(struct Pokemon * mon)
BoxMonToMon(&boxMons[GetLastViewedMonIndex()], mon);
}
}
+
+u8 sub_8139388(void)
+{
+ u16 move;
+
+ move = sub_8138BEC(&gMonSummaryScreen->currentMon, gUnknown_203B16D);
+
+ if (IsMoveHm(move) == TRUE && gMonSummaryScreen->mode != PSS_MODE_FORGET_MOVE)
+ return FALSE;
+
+ return TRUE;
+}
+
+void sub_81393D4(u8 taskId)
+{
+ u8 i;
+
+ switch (gMonSummaryScreen->unk3288)
+ {
+ case 0:
+ BeginNormalPaletteFade(0xffffffff, 0, 16, 0, 0);
+ gMonSummaryScreen->unk3288++;
+ break;
+ case 1:
+ if (!gPaletteFade.active)
+ {
+ sub_813B784();
+ gMonSummaryScreen->unk3288++;
+ }
+ break;
+ case 2:
+ if (JOY_NEW(DPAD_UP))
+ {
+ if (gUnknown_203B16D > 0)
+ {
+ gMonSummaryScreen->unk3288 = 3;
+ PlaySE(SE_SELECT);
+ for (i = gUnknown_203B16D; i > 0; i--)
+ if (gMonSummaryScreen->unk325A[i - 1] != 0)
+ {
+ PlaySE(SE_SELECT);
+ gUnknown_203B16D = i - 1;
+ return;
+ }
+ }
+ else
+ {
+ gUnknown_203B16D = 4;
+ gMonSummaryScreen->unk3288 = 3;
+ PlaySE(SE_SELECT);
+ return;
+ }
+ }
+ else if (JOY_NEW(DPAD_DOWN))
+ {
+ if (gUnknown_203B16D < 4)
+ {
+ u8 v0 = 4;
+
+ gMonSummaryScreen->unk3288 = 3;
+
+ if (gMonSummaryScreen->unk3268 == 1)
+ v0--;
+
+ for (i = gUnknown_203B16D; i < v0; i++)
+ if (gMonSummaryScreen->unk325A[i + 1] != 0)
+ {
+ PlaySE(SE_SELECT);
+ gUnknown_203B16D = i + 1;
+ return;
+ }
+
+ if (gMonSummaryScreen->unk3268 == 0)
+ {
+ PlaySE(SE_SELECT);
+ gUnknown_203B16D = i;
+ }
+
+ return;
+ }
+ else if (gUnknown_203B16D == 4)
+ {
+ gUnknown_203B16D = 0;
+ gMonSummaryScreen->unk3288 = 3;
+ PlaySE(SE_SELECT);
+ return;
+ }
+ }
+ else if (JOY_NEW(A_BUTTON))
+ {
+ if (sub_8139388() == TRUE || gUnknown_203B16D == 4)
+ {
+ PlaySE(SE_SELECT);
+ gUnknown_203B16E = gUnknown_203B16D;
+ gSpecialVar_0x8005 = gUnknown_203B16E;
+ gMonSummaryScreen->unk3288 = 6;
+ }
+ else
+ {
+ PlaySE(SE_HAZURE);
+ gMonSummaryScreen->unk3288 = 5;
+ }
+ }
+ else if (JOY_NEW(B_BUTTON))
+ {
+ gUnknown_203B16E = 4;
+ gSpecialVar_0x8005 = (u16)gUnknown_203B16E;
+ gMonSummaryScreen->unk3288 = 6;
+ }
+ break;
+ case 3:
+ sub_8136F4C();
+ sub_81374E8();
+ sub_8137BD0();
+ gMonSummaryScreen->unk3288 = 4;
+ break;
+ case 4:
+ if (MenuHelpers_CallLinkSomething() == TRUE || sub_800B270() == TRUE)
+ return;
+
+ CopyWindowToVram(gMonSummaryScreen->unk3000[3], 2);
+ CopyWindowToVram(gMonSummaryScreen->unk3000[4], 2);
+ CopyWindowToVram(gMonSummaryScreen->unk3000[5], 2);
+ CopyWindowToVram(gMonSummaryScreen->unk3000[6], 2);
+ CopyBgTilemapBufferToVram(0);
+ CopyBgTilemapBufferToVram(3);
+ gMonSummaryScreen->unk3288 = 2;
+ break;
+ case 5:
+ FillWindowPixelBuffer(gMonSummaryScreen->unk3000[4], 0);
+ AddTextPrinterParameterized4(gMonSummaryScreen->unk3000[4], 2,
+ 7, 42,
+ 0, 0,
+ gUnknown_8463FA4[0], TEXT_SPEED_FF,
+ gUnknown_8419CB9);
+ CopyWindowToVram(gMonSummaryScreen->unk3000[4], 2);
+ CopyBgTilemapBufferToVram(0);
+ CopyBgTilemapBufferToVram(3);
+ gMonSummaryScreen->unk3288 = 2;
+ break;
+ case 6:
+ BeginNormalPaletteFade(0xffffffff, 0, 0, 16, 0);
+ gMonSummaryScreen->unk3288++;
+ break;
+ default:
+ if (!gPaletteFade.active)
+ sub_8137E64(taskId);
+ break;
+ }
+}
+
+void sub_8139768(struct Sprite * sprite)
+{
+ if (gMonSummaryScreen->unk3020 >= 2)
+ return;
+
+ if (gUnknown_203B170->unk04++ >= 2)
+ {
+ u8 v0;
+
+ switch (gUnknown_203B170->unk08)
+ {
+ case 0:
+ sprite->pos1.y += gUnknown_8463FBE[gUnknown_203B170->unk00++];
+ v0 = ARRAY_COUNT(gUnknown_8463FBE);
+ break;
+ case 1:
+ sprite->pos1.y += gUnknown_8463FC1[gUnknown_203B170->unk00++];
+ v0 = ARRAY_COUNT(gUnknown_8463FC1);
+ break;
+ case 2:
+ sprite->pos1.y += gUnknown_8463FC6[gUnknown_203B170->unk00++];
+ v0 = ARRAY_COUNT(gUnknown_8463FC6);
+ break;
+ case 3:
+ default:
+ sprite->pos1.y += gUnknown_8463FCD[gUnknown_203B170->unk00++];
+ v0 = ARRAY_COUNT(gUnknown_8463FCD);
+ break;
+ }
+
+ if (gUnknown_203B170->unk00 >= v0)
+ {
+ gUnknown_203B170->unk00 = 0;
+ gMonSummaryScreen->unk3020++;
+ }
+
+ gUnknown_203B170->unk04 = 0;
+ }
+}
+
+void sub_8139868(struct Sprite * sprite)
+{
+ if (gMonSummaryScreen->unk3020 >= 2)
+ return;
+
+ switch (gUnknown_203B170->unk08)
+ {
+ case 0:
+ default:
+ if (gUnknown_203B170->unk04++ >= 120)
+ {
+ sprite->pos1.x += gUnknown_8463FD4[gUnknown_203B170->unk00];
+ if (++gUnknown_203B170->unk00 >= ARRAY_COUNT(gUnknown_8463FD4))
+ {
+ gUnknown_203B170->unk00 = 0;
+ gUnknown_203B170->unk04 = 0;
+ gMonSummaryScreen->unk3020++;
+ }
+ }
+ break;
+ case 1:
+ if (gUnknown_203B170->unk04++ >= 90)
+ {
+ sprite->pos1.x += gUnknown_8463FDF[gUnknown_203B170->unk00];
+ if (++gUnknown_203B170->unk00 >= ARRAY_COUNT(gUnknown_8463FDF))
+ {
+ gUnknown_203B170->unk00 = 0;
+ gUnknown_203B170->unk04 = 0;
+ gMonSummaryScreen->unk3020++;
+ }
+ }
+ break;
+ case 2:
+ if (gUnknown_203B170->unk04++ >= 60)
+ {
+ sprite->pos1.x += gUnknown_8463FEA[gUnknown_203B170->unk00];
+ if (++gUnknown_203B170->unk00 >= ARRAY_COUNT(gUnknown_8463FEA))
+ {
+ gUnknown_203B170->unk00 = 0;
+ gUnknown_203B170->unk04 = 0;
+ gMonSummaryScreen->unk3020++;
+ }
+ }
+ break;
+ }
+}
+
+void nullsub_96(struct Sprite * sprite)
+{
+}
+
+void sub_813995C(void)
+{
+ u16 spriteId;
+ u16 species;
+ u32 personality;
+ u32 trainerId;
+
+ gUnknown_203B170 = AllocZeroed(sizeof(struct Struct203B170));
+
+ species = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SPECIES2);
+ personality = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_PERSONALITY);
+ trainerId = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_OT_ID);
+
+ if (gMonSummaryScreen->savedCallback == CB2_ReturnToTradeMenuFromSummary)
+ {
+ if (gMonSummaryScreen->isEnemyParty == TRUE)
+ spriteId = CreateMonPicSprite(species, trainerId, personality, 1, 60, 65, 12, 0xffff, 1);
+ else
+ spriteId = CreateMonPicSprite_HandleDeoxys(species, trainerId, personality, 1, 60, 65, 12, 0xffff);
+ }
+ else
+ {
+ if (sub_804455C(3, gLastViewedMonIndex))
+ spriteId = CreateMonPicSprite(species, trainerId, personality, 1, 60, 65, 12, 0xffff, 1);
+ else
+ spriteId = CreateMonPicSprite_HandleDeoxys(species, trainerId, personality, 1, 60, 65, 12, 0xffff);
+ }
+
+ FreeSpriteOamMatrix(&gSprites[spriteId]);
+
+ if (!IsPokeSpriteNotFlipped(species))
+ gSprites[spriteId].hFlip = TRUE;
+ else
+ gSprites[spriteId].hFlip = FALSE;
+
+ gMonSummaryScreen->unk3010 = spriteId;
+
+ sub_8139C44(1);
+ sub_8139AAC(spriteId);
+}
+
+void sub_8139AAC(u16 spriteId)
+{
+ u16 curHp;
+ u16 maxHp;
+
+ gMonSummaryScreen->unk3020 = 0;
+
+ if (gMonSummaryScreen->isEgg == TRUE)
+ {
+ u8 friendship = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_FRIENDSHIP);
+
+ if (friendship <= 5)
+ gUnknown_203B170->unk08 = 2;
+ else
+ {
+ if (friendship <= 10)
+ gUnknown_203B170->unk08 = 1;
+ else if (friendship <= 40)
+ gUnknown_203B170->unk08 = 0;
+ }
+
+ gSprites[spriteId].callback = sub_8139868;
+ return;
+ }
+
+ if (gMonSummaryScreen->unk326C != AILMENT_NONE && gMonSummaryScreen->unk326C != AILMENT_PKRS)
+ {
+ if (gMonSummaryScreen->unk326C == AILMENT_FNT)
+ return;
+
+ gSprites[spriteId].callback = nullsub_96;
+ return;
+ }
+
+ curHp = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_HP);
+ maxHp = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_MAX_HP);
+
+ if (curHp == maxHp)
+ gUnknown_203B170->unk08 = 3;
+ else if (maxHp * 0.8 <= curHp)
+ gUnknown_203B170->unk08 = 2;
+ else if (maxHp * 0.6 <= curHp)
+ gUnknown_203B170->unk08 = 1;
+ else
+ gUnknown_203B170->unk08 = 0;
+
+ gSprites[spriteId].callback = sub_8139768;
+}