summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2019-04-05 18:39:42 -0400
committerhuderlem <huderlem@gmail.com>2019-04-06 08:16:13 -0500
commita4ad6edc79e6ed6c895bcfe9e323310b5c97f4a4 (patch)
tree74ab9e3027dbc1efcd19d3509a420aa3a5da439a /src
parent60b2c569d85b6afdd7dc6e25059132c3f45c2a78 (diff)
sub_80F6514
Diffstat (limited to 'src')
-rw-r--r--src/pokenav.c101
1 files changed, 100 insertions, 1 deletions
diff --git a/src/pokenav.c b/src/pokenav.c
index 21a2ecf2d..b995903dc 100644
--- a/src/pokenav.c
+++ b/src/pokenav.c
@@ -4523,7 +4523,7 @@ u8 *sub_80F445C(u8 *arg0, u16 arg1)
return buffer;
}
-u32 sub_80F44B0(u16 box, u16 monIndex, int monDataField, int *text)
+u32 sub_80F44B0(u16 box, u16 monIndex, int monDataField, u8 *text)
{
if (box == 14)
{
@@ -5974,3 +5974,102 @@ bool8 sub_80F63D0(void)
}
return TRUE;
}
+
+u8 * sub_80F6514(u8 * r10, u16 sp0, u8 sp4)
+{
+ u8 * dest = r10;
+ u8 box = gPokenavStructPtr->unk893c[sp0].unk1;
+ u8 monNo = gPokenavStructPtr->unk893c[sp0].partyIdx;
+ u16 species;
+ u16 level;
+ u8 gender;
+
+ if (!sub_80F44B0(box, monNo, MON_DATA_IS_EGG, NULL))
+ {
+ sub_80F44B0(box, monNo, MON_DATA_NICKNAME, dest);
+ StringGetEnd10(dest);
+ species = sub_80F44B0(box, monNo, MON_DATA_SPECIES, NULL);
+ if (box == 14)
+ {
+ level = GetMonData(&gPlayerParty[monNo], MON_DATA_LEVEL);
+ gender = GetMonGender(&gPlayerParty[monNo]);
+ }
+ else
+ {
+ level = GetLevelFromBoxMonExp(&gPokemonStorage.boxes[box][monNo]);
+ gender = GetGenderFromSpeciesAndPersonality(species, sub_80F44B0(box, monNo, MON_DATA_PERSONALITY, NULL));
+ }
+ if (ShouldHideGenderIcon(species, r10))
+ {
+ gender = MON_GENDERLESS;
+ }
+ dest += StringLength(dest);
+
+ dest[0] = 0xFC;
+ dest[1] = 0x13;
+ dest[2] = 0x3F;
+ dest += 3;
+
+ switch (gender)
+ {
+ case MON_MALE:
+ dest[0] = 0xFC;
+ dest[1] = 0x01;
+ dest[2] = 0x0C;
+ dest[3] = 0xFC;
+ dest[4] = 0x03;
+ dest[5] = 0x0D;
+ dest[6] = 0xB5;
+ dest += 7;
+ break;
+ case MON_FEMALE:
+ dest[0] = 0xFC;
+ dest[1] = 0x01;
+ dest[2] = 0x0A;
+ dest[3] = 0xFC;
+ dest[4] = 0x03;
+ dest[5] = 0x0B;
+ dest[6] = 0xB6;
+ dest += 7;
+ break;
+ }
+ dest[0] = 0xFC;
+ dest[1] = 0x01;
+ dest[2] = 0x01;
+ dest[3] = 0xFC;
+ dest[4] = 0x03;
+ dest[5] = 0x05;
+ dest += 6;
+
+ dest[0] = 0xFC;
+ dest[1] = 0x13;
+ dest[2] = 0x46;
+ dest += 3;
+
+ dest[0] = 0xBA;
+ dest[1] = 0xFC;
+ dest[2] = 0x11;
+ dest[3] = 0x01;
+ dest[4] = 0x34;
+ dest += 5;
+
+ dest = ConvertIntToDecimalString(dest, level);
+ if (sp4 == 1)
+ {
+ dest = AlignInt1InMenuWindow(dest, gPokenavStructPtr->unk893c[sp0].unk0, 0x80, 0x01);
+ }
+ else
+ {
+ dest[0] = 0xFC;
+ dest[1] = 0x13;
+ dest[2] = 0x67;
+ dest += 3;
+ *dest = EOS;
+ }
+ }
+ else
+ {
+ *dest = EOS;
+ }
+ return dest;
+}