From 815705bc5e5ff85d54af9b39ae30755fe48b382c Mon Sep 17 00:00:00 2001 From: Kurt Date: Thu, 10 May 2018 18:53:23 -0700 Subject: [PATCH] Fix gender handling Closes #1933 if not allowed to be genderless, flag as invalid gender only permit valid genders after genderless is ruled out (both done by checking the low bit) --- PKHeX.Core/PKM/PKM.cs | 2 +- PKHeX.WinForms/Controls/PKM Editor/PKMEditor.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/PKHeX.Core/PKM/PKM.cs b/PKHeX.Core/PKM/PKM.cs index a4d4747ec..b119daef1 100644 --- a/PKHeX.Core/PKM/PKM.cs +++ b/PKHeX.Core/PKM/PKM.cs @@ -654,7 +654,7 @@ public virtual bool IsGenderValid() int gen = GenNumber; if (2 >= gen || gen >= 6) - return true; + return gender == (gender & 1); return gender == PKX.GetGenderFromPIDAndRatio(PID, gv); } diff --git a/PKHeX.WinForms/Controls/PKM Editor/PKMEditor.cs b/PKHeX.WinForms/Controls/PKM Editor/PKMEditor.cs index 8609bf114..f57f84fda 100644 --- a/PKHeX.WinForms/Controls/PKM Editor/PKMEditor.cs +++ b/PKHeX.WinForms/Controls/PKM Editor/PKMEditor.cs @@ -509,7 +509,7 @@ private void ClickGender(object sender, EventArgs e) if (gt == 255 || gt == 0 || gt == 254) // Single gender/genderless return; - int newGender = PKX.GetGenderFromString(Label_Gender.Text) ^ 1; + int newGender = (PKX.GetGenderFromString(Label_Gender.Text) & 1) ^ 1; if (pkm.Format <= 2) { Stats.SetATKIVGender(newGender);