From 19095bc4baceb772ad148d2d43253dfe2b915e7d Mon Sep 17 00:00:00 2001 From: sora10pls Date: Thu, 18 Jun 2020 01:55:37 -0400 Subject: [PATCH] Fix SWSH trainer dump After saving and exiting the trainer editor, their trclasses will get changed from 250/251 to 219/220, but they're valid classes used by them so no big deal. --- pkNX.Structures/Legality/Legal.cs | 2 +- pkNX.WinForms/Dumping/GameDumperSWSH.cs | 4 ++++ pkNX.WinForms/Subforms/BTTE.cs | 3 +++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/pkNX.Structures/Legality/Legal.cs b/pkNX.Structures/Legality/Legal.cs index 4f350f58..03bb1114 100644 --- a/pkNX.Structures/Legality/Legal.cs +++ b/pkNX.Structures/Legality/Legal.cs @@ -42,7 +42,7 @@ public static int GetRandomForme(int species, bool mega, bool alola, bool galar, if (stats.TableLength == 980 && (species == (int)Species.Pikachu || species == (int)Species.Eevee)) // gg tableB -- no starters, they crash trainer battles. return 0; - if (stats.TableLength == 1180 && species == (int)Species.Pikachu) // SWSH -- disallow Partner Pikachu from LGPE, but allow World Cap + if (stats.TableLength == 1181 && species == (int)Species.Pikachu) // SWSH -- disallow Partner Pikachu from LGPE, but allow World Cap { int form = Util.Rand.Next(9); if (form == 8) diff --git a/pkNX.WinForms/Dumping/GameDumperSWSH.cs b/pkNX.WinForms/Dumping/GameDumperSWSH.cs index 228d5499..fc4aac7e 100644 --- a/pkNX.WinForms/Dumping/GameDumperSWSH.cs +++ b/pkNX.WinForms/Dumping/GameDumperSWSH.cs @@ -159,6 +159,10 @@ public void DumpTrainers() { var t = tr[i]; + // some battles with Avery and Klara have out of bounds trclasses -- set back to "Pokémon Trainer" + if (t.Self.Class == 250 || t.Self.Class == 251) + t.Self.Class = 219; + result.Add($"{i:000} - {trc[t.Self.Class]}: {trn[i]}"); const int MoneyScalar = 80; result.Add($"AI: {t.Self.AI} | Mode: {t.Self.Mode} | Money: {t.Self.Money * MoneyScalar}"); diff --git a/pkNX.WinForms/Subforms/BTTE.cs b/pkNX.WinForms/Subforms/BTTE.cs index eb18cdd8..0114ba67 100644 --- a/pkNX.WinForms/Subforms/BTTE.cs +++ b/pkNX.WinForms/Subforms/BTTE.cs @@ -390,6 +390,9 @@ private TrainerPoke PreparePKM() private void PopulateFieldsTrainer(TrainerData tr) { + if (tr.Class > CB_Trainer_Class.Items.Count) + return; + // Load Trainer Data CB_Trainer_Class.SelectedIndex = tr.Class; CB_Item_1.SelectedIndex = tr.Item1;