diff options
author | Marcus Huderle <huderlem@gmail.com> | 2017-09-21 20:40:14 -0700 |
---|---|---|
committer | Marcus Huderle <huderlem@gmail.com> | 2017-09-21 20:40:14 -0700 |
commit | 18e88baffa65cc6a647f96441446238616df275c (patch) | |
tree | 33d4cbd7fe8e20741aec271aaa7d4581e00c3a72 /src | |
parent | f4941b3f8e6ed9a919256e5b437d9f88093dcd8d (diff) |
Decompile PartyMenuPrintGenderIcon funcs
Diffstat (limited to 'src')
-rw-r--r-- | src/battle_interface.c | 2 | ||||
-rw-r--r-- | src/choose_party.c | 6 | ||||
-rw-r--r-- | src/party_menu.c | 39 | ||||
-rw-r--r-- | src/pokemon_3.c | 8 |
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); } |