From d7fbaa6cbfde8c6aeac0360776c707163f1472fa Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Fri, 6 Nov 2020 17:12:57 -0300 Subject: [PATCH] Support for gender palettes. --- include/data.h | 2 ++ src/data/pokemon_graphics/palette_table.h | 5 ++++ .../pokemon_graphics/shiny_palette_table.h | 5 ++++ src/pokemon.c | 28 ++++++++++++++++--- 4 files changed, 36 insertions(+), 4 deletions(-) diff --git a/include/data.h b/include/data.h index f10770a1fe..ba56d9679d 100644 --- a/include/data.h +++ b/include/data.h @@ -95,7 +95,9 @@ extern const struct MonCoords gMonBackPicCoords[]; extern const struct CompressedSpriteSheet gMonBackPicTable[]; extern const struct CompressedSpriteSheet gMonBackPicTableFemale[]; extern const struct CompressedSpritePalette gMonPaletteTable[]; +extern const struct CompressedSpritePalette gMonPaletteTableFemale[]; extern const struct CompressedSpritePalette gMonShinyPaletteTable[]; +extern const struct CompressedSpritePalette gMonShinyPaletteTableFemale[]; extern const union AnimCmd *const *const gTrainerFrontAnimsPtrTable[]; extern const struct MonCoords gTrainerFrontPicCoords[]; extern const struct CompressedSpriteSheet gTrainerFrontPicTable[]; diff --git a/src/data/pokemon_graphics/palette_table.h b/src/data/pokemon_graphics/palette_table.h index bb490ea38f..2b81ed6f51 100644 --- a/src/data/pokemon_graphics/palette_table.h +++ b/src/data/pokemon_graphics/palette_table.h @@ -943,3 +943,8 @@ const struct CompressedSpritePalette gMonPaletteTable[] = SPECIES_PAL(UNOWN_EMARK, gMonPalette_Unown), SPECIES_PAL(UNOWN_QMARK, gMonPalette_Unown), }; + +const struct CompressedSpritePalette gMonPaletteTableFemale[] = +{ + SPECIES_PAL(EEVEE, gMonPalette_Eevee), +}; diff --git a/src/data/pokemon_graphics/shiny_palette_table.h b/src/data/pokemon_graphics/shiny_palette_table.h index 2713581e9b..334de18c00 100644 --- a/src/data/pokemon_graphics/shiny_palette_table.h +++ b/src/data/pokemon_graphics/shiny_palette_table.h @@ -943,3 +943,8 @@ const struct CompressedSpritePalette gMonShinyPaletteTable[] = SPECIES_SHINY_PAL(UNOWN_EMARK, gMonShinyPalette_Unown), SPECIES_SHINY_PAL(UNOWN_QMARK, gMonShinyPalette_Unown), }; + +const struct CompressedSpritePalette gMonShinyPaletteTableFemale[] = +{ + SPECIES_SHINY_PAL(EEVEE, gMonShinyPalette_Eevee), +}; diff --git a/src/pokemon.c b/src/pokemon.c index 2898c8fedd..292ba61dd1 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -6745,9 +6745,19 @@ const u32 *GetMonSpritePalFromSpeciesAndPersonality(u16 species, u32 otId, u32 p shinyValue = HIHALF(otId) ^ LOHALF(otId) ^ HIHALF(personality) ^ LOHALF(personality); if (shinyValue < SHINY_ODDS) - return gMonShinyPaletteTable[species].data; + { + if (SpeciesHasGenderDifference[species] && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) + return gMonShinyPaletteTableFemale[species].data; + else + return gMonShinyPaletteTable[species].data; + } else - return gMonPaletteTable[species].data; + { + if (SpeciesHasGenderDifference[species] && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) + return gMonPaletteTableFemale[species].data; + else + return gMonPaletteTable[species].data; + } } const struct CompressedSpritePalette *GetMonSpritePalStruct(struct Pokemon *mon) @@ -6764,9 +6774,19 @@ const struct CompressedSpritePalette *GetMonSpritePalStructFromOtIdPersonality(u shinyValue = HIHALF(otId) ^ LOHALF(otId) ^ HIHALF(personality) ^ LOHALF(personality); if (shinyValue < SHINY_ODDS) - return &gMonShinyPaletteTable[species]; + { + if (SpeciesHasGenderDifference[species] && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) + return &gMonShinyPaletteTableFemale[species]; + else + return &gMonShinyPaletteTable[species]; + } else - return &gMonPaletteTable[species]; + { + if (SpeciesHasGenderDifference[species] && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) + return &gMonPaletteTableFemale[species]; + else + return &gMonPaletteTable[species]; + } } bool32 IsHMMove2(u16 move)