diff --git a/PKHeX.Core/Saves/Substructures/Gen8/BS/Zukan8b.cs b/PKHeX.Core/Saves/Substructures/Gen8/BS/Zukan8b.cs index 82cbcb437..2566c77b5 100644 --- a/PKHeX.Core/Saves/Substructures/Gen8/BS/Zukan8b.cs +++ b/PKHeX.Core/Saves/Substructures/Gen8/BS/Zukan8b.cs @@ -348,12 +348,20 @@ public override void SetDex(PKM pkm) private void SetGenderFlag(int species, int gender, bool shiny) { - var ofs = (gender & 1) == 0 - ? shiny ? OFS_MALESHINY : OFS_MALE - : shiny ? OFS_FEMALESHINY : OFS_FEMALE; - SetBoolean(species - 1, ofs, COUNT_SPECIES - 1, true); + switch (gender) + { + case 0: SetGenderFlagMale(species, shiny); break; + case 1: SetGenderFlagFemale(species, shiny); break; + case 2: // Yep, sets both gender flags. + SetGenderFlagMale(species, shiny); + SetGenderFlagFemale(species, shiny); + break; + } } + private void SetGenderFlagMale(int species, bool shiny) => SetBoolean(species - 1, shiny ? OFS_MALESHINY : OFS_MALE, COUNT_SPECIES - 1, true); + private void SetGenderFlagFemale(int species, bool shiny) => SetBoolean(species - 1, shiny ? OFS_FEMALESHINY : OFS_FEMALE, COUNT_SPECIES - 1, true); + public override void SeenNone() { for (int species = 1; species <= Legal.MaxSpeciesID_4; species++) @@ -384,7 +392,7 @@ public override void SeenAll(bool shinyToo = false) SetState(i, ZukanState8b.Seen); var pi = pt[i]; var m = !pi.OnlyFemale; - var f = !pi.OnlyMale && !pi.Genderless; + var f = !pi.OnlyMale; SetGenderFlags(i, m, f, m && shinyToo, f && shinyToo); } } @@ -403,7 +411,7 @@ public override void CaughtAll(bool shinyToo = false) SetState(species, ZukanState8b.Caught); var pi = pt[species]; var m = !pi.OnlyFemale; - var f = !pi.OnlyMale && !pi.Genderless; + var f = !pi.OnlyMale; SetGenderFlags(species, m, f, m && shinyToo, f && shinyToo); SetLanguageFlag(species, SAV.Language, true); } @@ -420,7 +428,7 @@ public override void SetAllSeen(bool value = true, bool shinyToo = false) SetState(species, ZukanState8b.Seen); var pi = pt[species]; var m = !pi.OnlyFemale; - var f = !pi.OnlyMale && !pi.Genderless; + var f = !pi.OnlyMale; SetGenderFlags(species, m, f, m && shinyToo, f && shinyToo); } else @@ -439,7 +447,7 @@ public override void SetDexEntryAll(int species, bool shinyToo = false) var pt = Personal; var pi = pt[species]; var m = !pi.OnlyFemale; - var f = !pi.OnlyMale && !pi.Genderless; + var f = !pi.OnlyMale; SetGenderFlags(species, m, f, m && shinyToo, f && shinyToo); var formCount = GetFormCount(species);