summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/pokenav.s241
-rw-r--r--asm/trainers_eye.s207
-rw-r--r--include/pokenav.h15
-rw-r--r--ld_script.txt3
-rw-r--r--src/pokenav_after.c35
-rw-r--r--src/trainers_eye.c173
6 files changed, 185 insertions, 489 deletions
diff --git a/asm/pokenav.s b/asm/pokenav.s
index 368dfe40e..616bcf3d2 100644
--- a/asm/pokenav.s
+++ b/asm/pokenav.s
@@ -2791,245 +2791,4 @@ _080F6C1A:
.section .text_80F708C
- thumb_func_start sub_80F708C
-sub_80F708C: @ 80F708C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- ldr r0, _080F70E4 @ =gPokenavStructPtr
- ldr r3, [r0]
- ldr r0, _080F70E8 @ =0x0000876e
- adds r2, r3, r0
- lsls r0, r4, 24
- asrs r0, 24
- ldrh r1, [r2]
- adds r0, r1
- strh r0, [r2]
- lsls r0, 16
- cmp r0, 0
- bge _080F70B4
- ldr r5, _080F70EC @ =0x00008774
- adds r0, r3, r5
- ldrh r0, [r0]
- strh r0, [r2]
-_080F70B4:
- ldr r1, _080F70EC @ =0x00008774
- adds r0, r3, r1
- movs r5, 0
- ldrsh r1, [r2, r5]
- movs r5, 0
- ldrsh r0, [r0, r5]
- cmp r1, r0
- ble _080F70C8
- movs r0, 0
- strh r0, [r2]
-_080F70C8:
- ldr r1, _080F70F0 @ =0x0000bc94
- adds r0, r3, r1
- strb r4, [r0]
- ldrh r1, [r2]
- ldr r2, _080F70F4 @ =0x000087dc
- adds r0, r3, r2
- strh r1, [r0]
- ldr r5, _080F70F8 @ =0x000087de
- adds r1, r3, r5
- movs r0, 0
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F70E4: .4byte gPokenavStructPtr
-_080F70E8: .4byte 0x0000876e
-_080F70EC: .4byte 0x00008774
-_080F70F0: .4byte 0x0000bc94
-_080F70F4: .4byte 0x000087dc
-_080F70F8: .4byte 0x000087de
- thumb_func_end sub_80F708C
-
- thumb_func_start sub_80F70FC
-sub_80F70FC: @ 80F70FC
- push {r4-r6,lr}
- ldr r1, _080F711C @ =gPokenavStructPtr
- ldr r0, [r1]
- ldr r2, _080F7120 @ =0x000087de
- adds r0, r2
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x6
- bls _080F7110
- b _080F7218
-_080F7110:
- lsls r0, 2
- ldr r1, _080F7124 @ =_080F7128
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F711C: .4byte gPokenavStructPtr
-_080F7120: .4byte 0x000087de
-_080F7124: .4byte _080F7128
- .align 2, 0
-_080F7128:
- .4byte _080F7144
- .4byte _080F714A
- .4byte _080F7164
- .4byte _080F716C
- .4byte _080F71A0
- .4byte _080F71BA
- .4byte _080F71EA
-_080F7144:
- bl sub_80F6ED4
- b _080F71F8
-_080F714A:
- movs r0, 0
- bl sub_80F6E04
- ldr r0, _080F715C @ =gPokenavStructPtr
- ldr r1, [r0]
- ldr r2, _080F7160 @ =0x000087de
- adds r1, r2
- b _080F7206
- .align 2, 0
-_080F715C: .4byte gPokenavStructPtr
-_080F7160: .4byte 0x000087de
-_080F7164:
- movs r0, 0
- bl sub_80F2F7C
- b _080F71FE
-_080F716C:
- ldr r4, [r4]
- ldr r2, _080F7194 @ =0x00008788
- adds r5, r4, r2
- ldr r0, _080F7198 @ =0x0000876e
- adds r6, r4, r0
- ldrh r1, [r6]
- adds r0, r5, 0
- bl sub_80F700C
- adds r0, r5, 0
- bl sub_80F43D4
- bl sub_80F105C
- ldrb r0, [r6]
- bl sub_80F0FFC
- ldr r2, _080F719C @ =0x000087de
- adds r4, r2
- b _080F71CC
- .align 2, 0
-_080F7194: .4byte 0x00008788
-_080F7198: .4byte 0x0000876e
-_080F719C: .4byte 0x000087de
-_080F71A0:
- bl LoadTrainerEyesDescriptionLines
- ldr r0, _080F71D4 @ =gPokenavStructPtr
- ldr r1, [r0]
- ldr r0, _080F71D8 @ =0x0000bc95
- adds r2, r1, r0
- movs r0, 0
- strb r0, [r2]
- ldr r2, _080F71DC @ =0x000087de
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080F71BA:
- ldr r0, _080F71D4 @ =gPokenavStructPtr
- ldr r1, [r0]
- ldr r0, _080F71D8 @ =0x0000bc95
- adds r4, r1, r0
- ldrb r0, [r4]
- cmp r0, 0x1
- bhi _080F71E0
- bl sub_80F0D5C
-_080F71CC:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _080F721C
- .align 2, 0
-_080F71D4: .4byte gPokenavStructPtr
-_080F71D8: .4byte 0x0000bc95
-_080F71DC: .4byte 0x000087de
-_080F71E0:
- ldr r2, _080F7210 @ =0x000087de
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080F71EA:
- bl sub_80F6E9C
- lsls r0, 24
- cmp r0, 0
- bne _080F721C
- bl sub_80F0D5C
-_080F71F8:
- lsls r0, 24
- cmp r0, 0
- bne _080F721C
-_080F71FE:
- ldr r0, _080F7214 @ =gPokenavStructPtr
- ldr r1, [r0]
- ldr r0, _080F7210 @ =0x000087de
- adds r1, r0
-_080F7206:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080F721C
- .align 2, 0
-_080F7210: .4byte 0x000087de
-_080F7214: .4byte gPokenavStructPtr
-_080F7218:
- movs r0, 0
- b _080F721E
-_080F721C:
- movs r0, 0x1
-_080F721E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80F70FC
-
- thumb_func_start sub_80F7224
-sub_80F7224: @ 80F7224
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _080F7260 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x30
- bl GetMonData
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080F7264 @ =gPokenavStructPtr
- ldr r0, [r0]
- ldr r3, _080F7268 @ =0x00008fe9
- adds r1, r0, r3
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- ldr r3, _080F726C @ =0x00008931
- adds r0, r3
- adds r4, r0, r1
- cmp r2, 0xFF
- beq _080F7270
- adds r0, r2, 0
- movs r1, 0x1D
- bl __udivsi3
- b _080F7272
- .align 2, 0
-_080F7260: .4byte gPlayerParty
-_080F7264: .4byte gPokenavStructPtr
-_080F7268: .4byte 0x00008fe9
-_080F726C: .4byte 0x00008931
-_080F7270:
- movs r0, 0x9
-_080F7272:
- strb r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80F7224
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/trainers_eye.s b/asm/trainers_eye.s
deleted file mode 100644
index f97acaf78..000000000
--- a/asm/trainers_eye.s
+++ /dev/null
@@ -1,207 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "include/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80F6E9C
-sub_80F6E9C: @ 80F6E9C
- push {lr}
- ldr r0, _080F6EB4 @ =gPokenavStructPtr
- ldr r0, [r0]
- ldr r2, _080F6EB8 @ =0x0000d15a
- adds r1, r0, r2
- ldrh r2, [r1]
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _080F6EBC
- movs r0, 0
- b _080F6ED0
- .align 2, 0
-_080F6EB4: .4byte gPokenavStructPtr
-_080F6EB8: .4byte 0x0000d15a
-_080F6EBC:
- adds r0, r2, 0
- adds r0, 0x8
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- bge _080F6ECC
- movs r0, 0x1
- b _080F6ED0
-_080F6ECC:
- movs r0, 0
- strh r0, [r1]
-_080F6ED0:
- pop {r1}
- bx r1
- thumb_func_end sub_80F6E9C
-
- thumb_func_start sub_80F6ED4
-sub_80F6ED4: @ 80F6ED4
- push {lr}
- ldr r0, _080F6F00 @ =gPokenavStructPtr
- ldr r0, [r0]
- ldr r2, _080F6F04 @ =0x0000d15a
- adds r1, r0, r2
- ldrh r3, [r1]
- movs r2, 0
- ldrsh r0, [r1, r2]
- movs r2, 0x48
- negs r2, r2
- cmp r0, r2
- beq _080F6F0A
- adds r0, r3, 0
- subs r0, 0x8
- strh r0, [r1]
- lsls r0, 16
- asrs r0, 16
- cmp r0, r2
- ble _080F6F08
- movs r0, 0x1
- b _080F6F0C
- .align 2, 0
-_080F6F00: .4byte gPokenavStructPtr
-_080F6F04: .4byte 0x0000d15a
-_080F6F08:
- strh r2, [r1]
-_080F6F0A:
- movs r0, 0
-_080F6F0C:
- pop {r1}
- bx r1
- thumb_func_end sub_80F6ED4
-
- thumb_func_start sub_80F6F10
-sub_80F6F10: @ 80F6F10
- push {lr}
- ldr r0, _080F6F48 @ =gPokenavStructPtr
- ldr r0, [r0]
- ldr r2, _080F6F4C @ =0x0000d15e
- adds r1, r0, r2
- movs r2, 0
- strb r2, [r1]
- ldr r1, _080F6F50 @ =0x0000d15f
- adds r0, r1
- strb r2, [r0]
- ldr r1, _080F6F54 @ =REG_BLDCNT
- movs r0, 0xC8
- strh r0, [r1]
- ldr r0, _080F6F58 @ =REG_BLDY
- strh r2, [r0]
- subs r1, 0x8
- ldr r2, _080F6F5C @ =0x00003f3f
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080F6F60 @ =0x00001f1f
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- bl sub_80F6FB8
- pop {r0}
- bx r0
- .align 2, 0
-_080F6F48: .4byte gPokenavStructPtr
-_080F6F4C: .4byte 0x0000d15e
-_080F6F50: .4byte 0x0000d15f
-_080F6F54: .4byte REG_BLDCNT
-_080F6F58: .4byte REG_BLDY
-_080F6F5C: .4byte 0x00003f3f
-_080F6F60: .4byte 0x00001f1f
- thumb_func_end sub_80F6F10
-
- thumb_func_start sub_80F6F64
-sub_80F6F64: @ 80F6F64
- push {lr}
- ldr r0, _080F6F9C @ =gPokenavStructPtr
- ldr r1, [r0]
- ldr r0, _080F6FA0 @ =0x0000d15e
- adds r2, r1, r0
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8
- bls _080F6FB0
- movs r0, 0
- strb r0, [r2]
- ldr r0, _080F6FA4 @ =0x0000d15f
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080F6FAC
- ldr r1, _080F6FA8 @ =REG_BLDY
- movs r0, 0x6
- strh r0, [r1]
- b _080F6FB0
- .align 2, 0
-_080F6F9C: .4byte gPokenavStructPtr
-_080F6FA0: .4byte 0x0000d15e
-_080F6FA4: .4byte 0x0000d15f
-_080F6FA8: .4byte REG_BLDY
-_080F6FAC:
- ldr r0, _080F6FB4 @ =REG_BLDY
- strh r1, [r0]
-_080F6FB0:
- pop {r0}
- bx r0
- .align 2, 0
-_080F6FB4: .4byte REG_BLDY
- thumb_func_end sub_80F6F64
-
- thumb_func_start sub_80F6FB8
-sub_80F6FB8: @ 80F6FB8
- push {lr}
- lsls r0, 24
- cmp r0, 0
- bne _080F6FDC
- ldr r1, _080F6FD0 @ =REG_WIN0H
- ldr r2, _080F6FD4 @ =0x0000e8f0
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080F6FD8 @ =0x00000888
- b _080F6FE8
- .align 2, 0
-_080F6FD0: .4byte REG_WIN0H
-_080F6FD4: .4byte 0x0000e8f0
-_080F6FD8: .4byte 0x00000888
-_080F6FDC:
- ldr r1, _080F6FF0 @ =REG_WIN0H
- ldr r2, _080F6FF4 @ =0x0000e8f0
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080F6FF8 @ =0x00000818
-_080F6FE8:
- adds r0, r2, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080F6FF0: .4byte REG_WIN0H
-_080F6FF4: .4byte 0x0000e8f0
-_080F6FF8: .4byte 0x00000818
- thumb_func_end sub_80F6FB8
-
- thumb_func_start sub_80F6FFC
-sub_80F6FFC: @ 80F6FFC
- ldr r0, _080F7008 @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- bx lr
- .align 2, 0
-_080F7008: .4byte REG_BLDCNT
- thumb_func_end sub_80F6FFC
-
- .align 2, 0 @ Don't pad with nop
diff --git a/include/pokenav.h b/include/pokenav.h
index 0b78626e4..b7c53ebe6 100644
--- a/include/pokenav.h
+++ b/include/pokenav.h
@@ -168,7 +168,9 @@ struct UnkPokenavStruct {
/*0xBC91*/ u8 unkBC91;
/*0xBC92*/ u8 unkBC92;
/*0xBC93*/ u8 unkBC93;
- /*0xBC94*/ u8 fillerBC94[0x6];
+ /*0xBC94*/ u8 unkBC94;
+ /*0xBC95*/ u8 unkBC95;
+ /*0xBC96*/ u8 fillerBC96[0x4];
/*0xBC9A*/ u8 unkBC9A;
/*0xBC9B*/ u8 unkBC9B;
/*0xBC9C*/ u8 unkBC9C[22][200];
@@ -185,9 +187,10 @@ struct UnkPokenavStruct {
/*0xD120*/ u8 fillerD114[0x18];
/*0xD138*/ u8 unkD138[0x20];
/*0xD158*/ u16 unkD158;
- /*0xD15A*/ u16 unkD15A;
+ /*0xD15A*/ s16 unkD15A;
/*0xD15C*/ u16 unkD15C;
- /*0xD15E*/ u8 fillerD15E[2];
+ /*0xD15E*/ u8 unkD15E;
+ /*0xD15F*/ u8 unkD15F;
/*0xD160*/ u16 unkD160;
/*0xD162*/ u8 unkD162;
/*0xD164*/ struct UnkPokenavStruct_Sub1 unkD164;
@@ -230,4 +233,10 @@ void sub_80F7224(u8);
void sub_80F5BDC(void);
void sub_80F2F7C(u8 arg0);
+bool8 sub_80F0D5C(void);
+void LoadTrainerEyesDescriptionLines(void);
+void sub_80F0FFC(u8);
+void sub_80F105C(void);
+void sub_80F43D4(u8 *);
+
#endif // GUARD_POKENAV_H
diff --git a/ld_script.txt b/ld_script.txt
index e6e195479..2108d10c3 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -298,9 +298,6 @@ SECTIONS {
src/pokenav.o(.text);
asm/pokenav.o(.text);
src/trainers_eye.o(.text);
- asm/trainers_eye.o(.text);
- src/pokenav_after.o(.text);
- asm/pokenav.o(.text_80F708C);
src/mon_markings.o(.text);
src/mauville_man.o(.text);
src/mail.o(.text);
diff --git a/src/pokenav_after.c b/src/pokenav_after.c
deleted file mode 100644
index a9408b2de..000000000
--- a/src/pokenav_after.c
+++ /dev/null
@@ -1,35 +0,0 @@
-#include "global.h"
-#include "main.h"
-#include "pokenav.h"
-#include "battle.h"
-#include "data2.h"
-#include "text.h"
-#include "de_rom_8040FE0.h"
-#include "string_util.h"
-
-void sub_80F700C(u8 *arg0, u16 arg1)
-{
- const struct Trainer *trainer = &gTrainers[gPokenavStructPtr->trainersEye[arg1].opponentId];
- u8 *ptr = arg0;
-
- ptr = arg0;
- if (arg1 < gPokenavStructPtr->unkD158)
- {
-#if ENGLISH
- ptr = StringCopy(ptr, gTrainerClassNames[trainer->trainerClass]);
-#elif GERMAN
- ptr = StringCopy(ptr, de_sub_8041024(0, gPokenavStructPtr->trainersEye[arg1].opponentId));
-#endif
-
- ptr[0] = EXT_CTRL_CODE_BEGIN;
- ptr[1] = 0x13;
- ptr[2] = 0x4B;
- ptr += 3;
- ptr = StringCopy(ptr, trainer->trainerName);
- }
-
- ptr[0] = EXT_CTRL_CODE_BEGIN;
- ptr[1] = 0x13;
- ptr[2] = 0x80;
- ptr[3] = 0xFF;
-}
diff --git a/src/trainers_eye.c b/src/trainers_eye.c
index 641f777b5..61be99dec 100644
--- a/src/trainers_eye.c
+++ b/src/trainers_eye.c
@@ -1,4 +1,5 @@
#include "global.h"
+#include "main.h"
#include "decompress.h"
#include "battle_setup.h"
#include "overworld.h"
@@ -7,6 +8,9 @@
#include "data2.h"
#include "constants/opponents.h"
#include "constants/region_map_sections.h"
+#include "text.h"
+#include "de_rom_8040FE0.h"
+#include "string_util.h"
struct TrainersEyeGymLeadersAndE4
{
@@ -31,6 +35,7 @@ static const struct TrainersEyeGymLeadersAndE4 sGymLeaderTrainersEye[13] = {
};
void sub_80F6E04(u8);
+void sub_80F6FB8(bool8);
void sub_80F6C20(void)
{
@@ -89,3 +94,171 @@ void sub_80F6E04(u8 a0)
DecompressPicFromTable_2(&gTrainerFrontPicTable[r6], gTrainerFrontPicCoords[r6].coords, 1, gPokenavStructPtr->unk131E4, gPokenavStructPtr->unkD1E4[a0], r6);
LZ77UnCompWram(gTrainerFrontPicPaletteTable[r6].data, gPokenavStructPtr->unk0[a0]);
}
+
+bool8 sub_80F6E9C(void)
+{
+ if (gPokenavStructPtr->unkD15A == 0)
+ {
+ return FALSE;
+ }
+ if ((gPokenavStructPtr->unkD15A += 8) >= 0)
+ {
+ gPokenavStructPtr->unkD15A = 0;
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 sub_80F6ED4(void)
+{
+ if (gPokenavStructPtr->unkD15A == -72)
+ {
+ return FALSE;
+ }
+ if ((gPokenavStructPtr->unkD15A -= 8) <= -72)
+ {
+ gPokenavStructPtr->unkD15A = -72;
+ return FALSE;
+ }
+ return TRUE;
+}
+
+void sub_80F6F10(void)
+{
+ gPokenavStructPtr->unkD15E = 0;
+ gPokenavStructPtr->unkD15F = 0;
+ REG_BLDCNT = BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_DARKEN;
+ REG_BLDY = 0;
+ REG_WININ = 0x3F3F;
+ REG_WINOUT = 0x1F1F;
+ sub_80F6FB8(0);
+}
+
+void sub_80F6F64(void)
+{
+ if (++gPokenavStructPtr->unkD15E > 8)
+ {
+ gPokenavStructPtr->unkD15E = 0;
+ ++gPokenavStructPtr->unkD15F;
+ if (gPokenavStructPtr->unkD15F & 1)
+ REG_BLDY = 6;
+ else
+ REG_BLDY = 0;
+ }
+}
+
+void sub_80F6FB8(bool8 a0)
+{
+ if (!a0)
+ {
+ REG_WIN0H = -0x1710;
+ REG_WIN0V = 0x888;
+ }
+ else
+ {
+ REG_WIN0H = -0x1710;
+ REG_WIN0V = 0x818;
+ }
+}
+
+void sub_80F6FFC(void)
+{
+ REG_BLDCNT = 0;
+ REG_BLDY = 0;
+}
+
+void sub_80F700C(u8 *arg0, u16 arg1)
+{
+ const struct Trainer *trainer = &gTrainers[gPokenavStructPtr->trainersEye[arg1].opponentId];
+ u8 *ptr = arg0;
+
+ ptr = arg0;
+ if (arg1 < gPokenavStructPtr->unkD158)
+ {
+#if ENGLISH
+ ptr = StringCopy(ptr, gTrainerClassNames[trainer->trainerClass]);
+#elif GERMAN
+ ptr = StringCopy(ptr, de_sub_8041024(0, gPokenavStructPtr->trainersEye[arg1].opponentId));
+#endif
+
+ ptr[0] = EXT_CTRL_CODE_BEGIN;
+ ptr[1] = 0x13;
+ ptr[2] = 0x4B;
+ ptr += 3;
+ ptr = StringCopy(ptr, trainer->trainerName);
+ }
+
+ ptr[0] = EXT_CTRL_CODE_BEGIN;
+ ptr[1] = 0x13;
+ ptr[2] = 0x80;
+ ptr[3] = 0xFF;
+}
+
+void sub_80F708C(s8 a0)
+{
+ gPokenavStructPtr->unk876E += a0;
+ if (gPokenavStructPtr->unk876E < 0)
+ {
+ gPokenavStructPtr->unk876E = gPokenavStructPtr->unk8774;
+ }
+ if (gPokenavStructPtr->unk876E > gPokenavStructPtr->unk8774)
+ {
+ gPokenavStructPtr->unk876E = 0;
+ }
+ gPokenavStructPtr->unkBC94 = a0;
+ gPokenavStructPtr->unk87DC = gPokenavStructPtr->unk876E;
+ gPokenavStructPtr->unk87DE = 0;
+}
+
+bool8 sub_80F70FC(void)
+{
+ switch (gPokenavStructPtr->unk87DE)
+ {
+ case 0:
+ if (!sub_80F6ED4())
+ gPokenavStructPtr->unk87DE++;
+ break;
+ case 1:
+ sub_80F6E04(0);
+ gPokenavStructPtr->unk87DE++;
+ break;
+ case 2:
+ sub_80F2F7C(0);
+ gPokenavStructPtr->unk87DE++;
+ break;
+ case 3:
+ sub_80F700C(gPokenavStructPtr->unk8788, gPokenavStructPtr->unk876E);
+ sub_80F43D4(gPokenavStructPtr->unk8788);
+ sub_80F105C();
+ sub_80F0FFC(gPokenavStructPtr->unk876E);
+ gPokenavStructPtr->unk87DE++;
+ break;
+ case 4:
+ LoadTrainerEyesDescriptionLines();
+ gPokenavStructPtr->unkBC95 = 0;
+ gPokenavStructPtr->unk87DE++;
+ // fallthrough
+ case 5:
+ if (gPokenavStructPtr->unkBC95 < 2){
+ sub_80F0D5C();
+ gPokenavStructPtr->unkBC95++;
+ break;
+ }
+ gPokenavStructPtr->unk87DE++;
+ // fallthrough
+ case 6:
+ if (!sub_80F6E9C() && !sub_80F0D5C())
+ gPokenavStructPtr->unk87DE++;
+ break;
+ default:
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+void sub_80F7224(u8 a0)
+{
+ u8 sheen = GetMonData(&gPlayerParty[a0], MON_DATA_SHEEN);
+ gPokenavStructPtr->unk8931[gPokenavStructPtr->unk8fe9] = sheen != 255 ? sheen / 29 : 9;
+}