summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/battle_interface.c2
-rw-r--r--src/choose_party.c6
-rw-r--r--src/party_menu.c39
-rw-r--r--src/pokemon_3.c8
4 files changed, 46 insertions, 9 deletions
diff --git a/src/battle_interface.c b/src/battle_interface.c
index 95f8f73c0..7c9253852 100644
--- a/src/battle_interface.c
+++ b/src/battle_interface.c
@@ -2388,7 +2388,7 @@ static void sub_80451A0(u8 a, struct Pokemon *pkmn)
gender = GetMonGender(pkmn);
species = GetMonData(pkmn, MON_DATA_SPECIES);
language = GetMonData(pkmn, MON_DATA_LANGUAGE);
- if (sub_8040D3C(species, nickname, language))
+ if (ShouldHideGenderIconForLanguage(species, nickname, language))
gender = 100;
switch (gender)
{
diff --git a/src/choose_party.c b/src/choose_party.c
index 55ce3583d..c666cc68f 100644
--- a/src/choose_party.c
+++ b/src/choose_party.c
@@ -70,13 +70,11 @@ extern u8 GetMonStatusAndPokerus();
extern void PartyMenuPrintHP();
extern void PartyMenuPutStatusTilemap(u8, int, u8);
extern void PartyMenuPrintLevel();
-extern void PartyMenuPutNicknameTilemap();
extern void PrintPartyMenuMonNickname();
extern bool8 sub_80F9344(void);
extern void sub_806D4AC();
extern void sub_806D3B4();
extern void PartyMenuDoPrintLevel(u8, u8, u8);
-extern void PartyMenuDoPutNicknameTilemap(u16, u8, u8, u8, const u8 *);
extern void box_print(u8, int, const u8 *);
extern void sub_806BCE8(void);
@@ -647,7 +645,7 @@ static void sub_81229B8(void)
PartyMenuPutStatusTilemap(i, 3, status - 1);
else
PartyMenuPrintLevel(i, 3, &gPlayerParty[i]);
- PartyMenuPutNicknameTilemap(i, 3, &gPlayerParty[i]);
+ PartyMenuPrintGenderIcon(i, 3, &gPlayerParty[i]);
PrintPartyMenuMonNickname(i, 3, &gPlayerParty[i]);
PartyMenuDrawHPBar(i, 3, &gPlayerParty[i]);
}
@@ -697,7 +695,7 @@ static void sub_8122B10(u8 taskId)
PartyMenuPutStatusTilemap(i + 3, 3, r2 - 1);
else
PartyMenuDoPrintLevel(i + 3, 3, gUnknown_02023A00[i].level);
- PartyMenuDoPutNicknameTilemap(gUnknown_02023A00[i].species, gUnknown_02023A00[i].gender, 3, i + 3, gUnknown_02023A00[i].nickname);
+ PartyMenuDoPrintGenderIcon(gUnknown_02023A00[i].species, gUnknown_02023A00[i].gender, 3, i + 3, gUnknown_02023A00[i].nickname);
StringCopy(gStringVar1, gUnknown_02023A00[i].nickname);
StringGetEnd10(gStringVar1);
SanitizeNameString(gStringVar1);
diff --git a/src/party_menu.c b/src/party_menu.c
index bd20ce5ed..38a01345e 100644
--- a/src/party_menu.c
+++ b/src/party_menu.c
@@ -60,6 +60,12 @@ struct UnknownStruct5
u16 *unk4;
};
+struct GenderIconCoords
+{
+ u8 x;
+ u8 y;
+};
+
#define ewram1C000 (*(struct Unk201C000 *)(ewram + 0x1C000))
#define ewram1F000 (*(struct Unk201F000 *)(ewram + 0x1F000))
@@ -72,6 +78,7 @@ extern u8 gPlayerPartyCount;
extern s32 gBattleMoveDamage;
extern u16 gMoveToLearn;
+extern struct GenderIconCoords const gUnknown_08376738[12][6];
//extern const u16 gUnknown_083769A8[][6];
//extern const u8 gUnknown_083769A8[][12];
extern u16 *const gUnknown_08376858[][6];
@@ -84,6 +91,8 @@ extern const struct UnknownStruct5 gUnknown_08376BB4[][6];
extern u8 gUnknown_02039460[];
extern u8 gTileBuffer[];
+extern void PartyMenuWriteTilemap(u8, u8 b, u8 c);
+
static void sub_806E884(u8 taskId);
static void sub_8070D90(u8 taskId);
@@ -112,6 +121,36 @@ void sub_806AEDC(void)
#endif
+void PartyMenuDoPrintGenderIcon(u16 species, u8 gender, u8 c, u8 monIndex, u8 *nickname)
+{
+ if (!ShouldHideGenderIcon(species, nickname))
+ {
+ u8 x = gUnknown_08376738[c][monIndex].x + 3;
+ u8 y = gUnknown_08376738[c][monIndex].y + 1;
+
+ switch (gender)
+ {
+ case MON_MALE:
+ PartyMenuWriteTilemap(0x42, x, y);
+ break;
+ case MON_FEMALE:
+ PartyMenuWriteTilemap(0x44, x, y);
+ break;
+ }
+ }
+}
+
+void PartyMenuPrintGenderIcon(u8 monIndex, u8 b, struct Pokemon *pokemon)
+{
+ u16 species2;
+ u8 gender;
+
+ GetMonNickname(pokemon, gStringVar1);
+ species2 = GetMonData(pokemon, MON_DATA_SPECIES2);
+ gender = GetMonGender(pokemon);
+ PartyMenuDoPrintGenderIcon(species2, gender, b, monIndex, gStringVar1);
+}
+
void PartyMenuDoPrintHP(u8 monIndex, u8 b, u16 currentHP, u16 maxHP)
{
u32 *var;
diff --git a/src/pokemon_3.c b/src/pokemon_3.c
index e51d3187b..263b8b746 100644
--- a/src/pokemon_3.c
+++ b/src/pokemon_3.c
@@ -1337,7 +1337,7 @@ u8 *sub_8040D08(void)
return gLinkPlayers[sub_803FC34(gLinkPlayers[id].lp_field_18 ^ 2)].name;
}
-bool32 sub_8040D3C(u16 species, u8 *name, u8 language)
+bool32 ShouldHideGenderIconForLanguage(u16 species, u8 *name, u8 language)
{
bool32 retVal = FALSE;
if (species == SPECIES_NIDORAN_M || species == SPECIES_NIDORAN_F)
@@ -1362,12 +1362,12 @@ bool32 sub_8040D3C(u16 species, u8 *name, u8 language)
return retVal;
}
-bool32 sub_8040D8C(u16 species, u8 *name)
+bool32 ShouldHideGenderIcon(u16 species, u8 *name)
{
u8 language = GAME_LANGUAGE;
if (name[0] == 0xFC && name[1] == 21)
language = LANGUAGE_JAPANESE;
- return sub_8040D3C(species, name, language);
+ return ShouldHideGenderIconForLanguage(species, name, language);
}
bool32 unref_sub_8040DAC(struct Pokemon *mon)
@@ -1376,5 +1376,5 @@ bool32 unref_sub_8040DAC(struct Pokemon *mon)
u16 species = GetMonData(mon, MON_DATA_SPECIES, 0);
u8 language = GetMonData(mon, MON_DATA_LANGUAGE, 0);
GetMonData(mon, MON_DATA_NICKNAME, name);
- return sub_8040D3C(species, name, language);
+ return ShouldHideGenderIconForLanguage(species, name, language);
}