diff --git a/PKHeX/MainWindow/Main.cs b/PKHeX/MainWindow/Main.cs index 7dcf7d8d3..7fbcb66ea 100644 --- a/PKHeX/MainWindow/Main.cs +++ b/PKHeX/MainWindow/Main.cs @@ -1458,7 +1458,8 @@ public void populateFields(PKM pk, bool focus = true) if (HaX) // Load original values from pk not pkm { - MT_Level.Text = pk.Stat_Level.ToString(); + MT_Level.Text = (pk.Stat_HPMax != 0 ? pk.Stat_Level : PKX.getLevel(pk.Species, pk.EXP)).ToString(); + TB_EXP.Text = pk.EXP.ToString(); MT_Form.Text = pk.AltForm.ToString(); if (pk.Stat_HPMax != 0) // stats present { @@ -1945,25 +1946,26 @@ private void updateEXPLevel(object sender, EventArgs e) EXP = PKX.getEXP(100, Species); TB_Level.Text = Level.ToString(); - if (!MT_Level.Visible) + if (!HaX) TB_EXP.Text = EXP.ToString(); - else + else if (Level <= 100 && Util.ToInt32(MT_Level.Text) <= 100) MT_Level.Text = Level.ToString(); } else { // Change the XP - int Level = Util.ToInt32((MT_Level.Visible ? MT_Level : TB_Level).Text); + int Level = Util.ToInt32((HaX ? MT_Level : TB_Level).Text); if (Level > 100) TB_Level.Text = "100"; if (Level > byte.MaxValue) MT_Level.Text = "255"; - TB_EXP.Text = PKX.getEXP(Level, Util.getIndex(CB_Species)).ToString(); + if (Level <= 100) + TB_EXP.Text = PKX.getEXP(Level, Util.getIndex(CB_Species)).ToString(); } changingFields = false; if (fieldsLoaded) // store values back { pkm.EXP = Util.ToUInt32(TB_EXP.Text); - pkm.Stat_Level = Util.ToInt32((MT_Level.Visible ? MT_Level : TB_Level).Text); + pkm.Stat_Level = Util.ToInt32((HaX ? MT_Level : TB_Level).Text); } updateStats(); updateLegality(); diff --git a/PKHeX/MainWindow/MainCK3.cs b/PKHeX/MainWindow/MainCK3.cs index a5d480001..013df39f3 100644 --- a/PKHeX/MainWindow/MainCK3.cs +++ b/PKHeX/MainWindow/MainCK3.cs @@ -13,7 +13,7 @@ private void populateFieldsCK3() // Do first ck3.Stat_Level = PKX.getLevel(ck3.Species, ck3.EXP); - if (ck3.Stat_Level == 100) + if (ck3.Stat_Level == 100 && !HaX) ck3.EXP = PKX.getEXP(ck3.Stat_Level, ck3.Species); CB_Species.SelectedValue = ck3.Species; diff --git a/PKHeX/MainWindow/MainPK1.cs b/PKHeX/MainWindow/MainPK1.cs index 3eb667a45..997bc9c7f 100644 --- a/PKHeX/MainWindow/MainPK1.cs +++ b/PKHeX/MainWindow/MainPK1.cs @@ -11,13 +11,11 @@ private void populateFieldsPK1() return; // Do first - pk1.Stat_Level = HaX && pk1.Stat_HPMax != 0 ? pk1.Stat_Level : PKX.getLevel(pk1.Species, pk1.EXP); - if (!HaX && pk1.Stat_Level == 100) + pk1.Stat_Level = PKX.getLevel(pk1.Species, pk1.EXP); + if (pk1.Stat_Level == 100 && !HaX) pk1.EXP = PKX.getEXP(pk1.Stat_Level, pk1.Species); CB_Species.SelectedValue = pk1.Species; - if (HaX) - MT_Level.Text = pk1.Stat_Level.ToString(); TB_Level.Text = pk1.Stat_Level.ToString(); TB_EXP.Text = pk1.EXP.ToString(); diff --git a/PKHeX/MainWindow/MainPK2.cs b/PKHeX/MainWindow/MainPK2.cs index 8935e83fa..97de6884f 100644 --- a/PKHeX/MainWindow/MainPK2.cs +++ b/PKHeX/MainWindow/MainPK2.cs @@ -12,13 +12,11 @@ private void populateFieldsPK2() return; // Do first - pk2.Stat_Level = HaX && pk2.Stat_HPMax != 0 ? pk2.Stat_Level : PKX.getLevel(pk2.Species, pk2.EXP); - if (!HaX && pk2.Stat_Level == 100) + pk2.Stat_Level = PKX.getLevel(pk2.Species, pk2.EXP); + if (pk2.Stat_Level == 100 && !HaX) pk2.EXP = PKX.getEXP(pk2.Stat_Level, pk2.Species); CB_Species.SelectedValue = pk2.Species; - if (HaX) - MT_Level.Text = pk2.Stat_Level.ToString(); TB_Level.Text = pk2.Stat_Level.ToString(); TB_EXP.Text = pk2.EXP.ToString(); CB_HeldItem.SelectedValue = pk2.HeldItem; diff --git a/PKHeX/MainWindow/MainPK3.cs b/PKHeX/MainWindow/MainPK3.cs index 3e0a44c1d..2bf600d3b 100644 --- a/PKHeX/MainWindow/MainPK3.cs +++ b/PKHeX/MainWindow/MainPK3.cs @@ -12,8 +12,8 @@ private void populateFieldsPK3() return; // Do first - pk3.Stat_Level = HaX && pk3.Stat_HPMax != 0 ? pk3.Stat_Level : PKX.getLevel(pk3.Species, pk3.EXP); - if (pk3.Stat_Level == 100) + pk3.Stat_Level = PKX.getLevel(pk3.Species, pk3.EXP); + if (pk3.Stat_Level == 100 && !HaX) pk3.EXP = PKX.getEXP(pk3.Stat_Level, pk3.Species); CB_Species.SelectedValue = pk3.Species; diff --git a/PKHeX/MainWindow/MainPK4.cs b/PKHeX/MainWindow/MainPK4.cs index 2dedf76a7..5b501f530 100644 --- a/PKHeX/MainWindow/MainPK4.cs +++ b/PKHeX/MainWindow/MainPK4.cs @@ -13,8 +13,8 @@ private void populateFieldsPK4() return; // Do first - pk4.Stat_Level = HaX && pk4.Stat_HPMax != 0 ? pk4.Stat_Level : PKX.getLevel(pk4.Species, pk4.EXP); - if (pk4.Stat_Level == 100) + pk4.Stat_Level = PKX.getLevel(pk4.Species, pk4.EXP); + if (pk4.Stat_Level == 100 && !HaX) pk4.EXP = PKX.getEXP(pk4.Stat_Level, pk4.Species); CB_Species.SelectedValue = pk4.Species; diff --git a/PKHeX/MainWindow/MainPK5.cs b/PKHeX/MainWindow/MainPK5.cs index ef566cf1e..3a2e5c49a 100644 --- a/PKHeX/MainWindow/MainPK5.cs +++ b/PKHeX/MainWindow/MainPK5.cs @@ -12,8 +12,8 @@ private void populateFieldsPK5() return; // Do first - pk5.Stat_Level = HaX && pk5.Stat_HPMax != 0 ? pk5.Stat_Level : PKX.getLevel(pk5.Species, pk5.EXP); - if (pk5.Stat_Level == 100) + pk5.Stat_Level = PKX.getLevel(pk5.Species, pk5.EXP); + if (pk5.Stat_Level == 100 && !HaX) pk5.EXP = PKX.getEXP(pk5.Stat_Level, pk5.Species); CB_Species.SelectedValue = pk5.Species; diff --git a/PKHeX/MainWindow/MainPK6.cs b/PKHeX/MainWindow/MainPK6.cs index 88b6ae9cc..201ff1f3d 100644 --- a/PKHeX/MainWindow/MainPK6.cs +++ b/PKHeX/MainWindow/MainPK6.cs @@ -12,8 +12,8 @@ private void populateFieldsPK6() return; // Do first - pk6.Stat_Level = HaX && pk6.Stat_HPMax != 0 ? pk6.Stat_Level : PKX.getLevel(pk6.Species, pk6.EXP); - if (pk6.Stat_Level == 100) + pk6.Stat_Level = PKX.getLevel(pk6.Species, pk6.EXP); + if (pk6.Stat_Level == 100 && !HaX) pk6.EXP = PKX.getEXP(pk6.Stat_Level, pk6.Species); CB_Species.SelectedValue = pk6.Species; diff --git a/PKHeX/MainWindow/MainPK7.cs b/PKHeX/MainWindow/MainPK7.cs index 7a8e18d14..e7de5ccd9 100644 --- a/PKHeX/MainWindow/MainPK7.cs +++ b/PKHeX/MainWindow/MainPK7.cs @@ -12,8 +12,8 @@ private void populateFieldsPK7() return; // Do first - pk7.Stat_Level = HaX && pk7.Stat_HPMax != 0 ? pk7.Stat_Level : PKX.getLevel(pk7.Species, pk7.EXP); - if (pk7.Stat_Level == 100) + pk7.Stat_Level = PKX.getLevel(pk7.Species, pk7.EXP); + if (pk7.Stat_Level == 100 && !HaX) pk7.EXP = PKX.getEXP(pk7.Stat_Level, pk7.Species); CB_Species.SelectedValue = pk7.Species; diff --git a/PKHeX/MainWindow/MainXK3.cs b/PKHeX/MainWindow/MainXK3.cs index 89b8541d5..32d381405 100644 --- a/PKHeX/MainWindow/MainXK3.cs +++ b/PKHeX/MainWindow/MainXK3.cs @@ -13,7 +13,7 @@ private void populateFieldsXK3() // Do first xk3.Stat_Level = PKX.getLevel(xk3.Species, xk3.EXP); - if (xk3.Stat_Level == 100) + if (xk3.Stat_Level == 100 && !HaX) xk3.EXP = PKX.getEXP(xk3.Stat_Level, xk3.Species); CB_Species.SelectedValue = xk3.Species;