From 654ff292e6b10e7b3e7dc7d9808878e941e2b2b0 Mon Sep 17 00:00:00 2001 From: Kaphotics Date: Thu, 28 Jul 2016 22:54:29 -0700 Subject: [PATCH] Add nature/gender recalc PID on <=gen4 --- MainWindow/Main.cs | 18 +++++++++++++++--- PKM/PKM.cs | 8 ++++++++ 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/MainWindow/Main.cs b/MainWindow/Main.cs index 605405684..534ceea12 100644 --- a/MainWindow/Main.cs +++ b/MainWindow/Main.cs @@ -1276,12 +1276,21 @@ private void clickGender(object sender, EventArgs e) if (gt >= 255) return; // If not a single gender(less) species: (should be <254 but whatever, 255 never happens) - pkm.Gender = PKX.getGender(Label_Gender.Text) ^ 1; + int newGender = PKX.getGender(Label_Gender.Text) ^ 1; + if (SAV.Generation <= 4) + { + pkm.Species = Util.getIndex(CB_Species); + pkm.Version = Util.getIndex(CB_GameOrigin); + pkm.Nature = CB_Nature.SelectedIndex; + pkm.AltForm = CB_Form.SelectedIndex; + + pkm.setPIDGender(newGender); + TB_PID.Text = pkm.PID.ToString("X8"); + } + pkm.Gender = newGender; Label_Gender.Text = gendersymbols[pkm.Gender]; Label_Gender.ForeColor = pkm.Gender == 2 ? Label_Species.ForeColor : (pkm.Gender == 1 ? Color.Red : Color.Blue); - if (SAV.Generation < 6) - updateRandomPID(null, null); if (PKX.getGender(CB_Form.Text) < 2) // Gendered Forms CB_Form.SelectedIndex = PKX.getGender(Label_Gender.Text); @@ -1962,6 +1971,9 @@ private void updateNatureModification(object sender, EventArgs e) incr != decr ? $"+{labarray[incr].Text} / -{labarray[decr].Text}".Replace(":", "") : "-/-"); + + if (fieldsLoaded && SAV.Generation <= 4) + updateRandomPID(sender, e); } private void updateNickname(object sender, EventArgs e) { diff --git a/PKM/PKM.cs b/PKM/PKM.cs index 2adf612e7..b0fa8e853 100644 --- a/PKM/PKM.cs +++ b/PKM/PKM.cs @@ -331,5 +331,13 @@ public void setShinyPID() PID = PKX.getRandomPID(Species, Gender, Version, Nature, AltForm); EncryptionConstant = PID; } + public void setPIDGender(int gender) + { + PID = PKX.getRandomPID(Species, gender, Version, Nature, AltForm); + while (IsShiny) + PID = PKX.getRandomPID(Species, gender, Version, Nature, AltForm); + + EncryptionConstant = PID; + } } }