From 7bc733c900b3109bde4d685ac83bc12e118dcf82 Mon Sep 17 00:00:00 2001 From: Kurt Date: Sun, 11 Apr 2021 20:50:34 -0700 Subject: [PATCH] Update SK2 language coercion Closes #3194 Exports are fine, imports with an ambiguous language (can be either JPN or INT) while illegal don't result in the above branches passing it. Inputs with <=6 chars for OT&Nick will be ambiguous; PKM editor. --- PKHeX.Core/PKM/SK2.cs | 4 ++-- PKHeX.WinForms/Controls/PKM Editor/EditPK2.cs | 8 +++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/PKHeX.Core/PKM/SK2.cs b/PKHeX.Core/PKM/SK2.cs index d8da2b2dc..c34a6d88c 100644 --- a/PKHeX.Core/PKM/SK2.cs +++ b/PKHeX.Core/PKM/SK2.cs @@ -197,9 +197,9 @@ private static bool IsJapanese(byte[] data) for (int i = 6; i < 0xC; i++) { - if (data[0x24 + i] != 0 && data[0x24 + i] != StringConverter12.G1TerminatorCode) + if (data[0x24 + i] is not (0 or StringConverter12.G1TerminatorCode)) return false; - if (data[0x30 + i] != 0 && data[0x30 + i] != StringConverter12.G1TerminatorCode) + if (data[0x30 + i] is not (0 or StringConverter12.G1TerminatorCode)) return false; } return true; diff --git a/PKHeX.WinForms/Controls/PKM Editor/EditPK2.cs b/PKHeX.WinForms/Controls/PKM Editor/EditPK2.cs index 46eff3aff..e20c8efbf 100644 --- a/PKHeX.WinForms/Controls/PKM Editor/EditPK2.cs +++ b/PKHeX.WinForms/Controls/PKM Editor/EditPK2.cs @@ -41,7 +41,13 @@ private static void CoerceStadium2Language(SK2 sk2, SaveFile sav) sk2.SwapLanguage(); la = new LegalityAnalysis(sk2); - if (!la.Valid) // fail + if (la.Valid) + return; + + var lang = SpeciesName.GetSpeciesNameLanguage(sk2.Species, sk2.Nickname, 2); + if (lang >= 1 && (lang == 1 != sk2.Japanese)) // force match language + sk2.SwapLanguage(); + else if (sk2.Japanese != (sav.Language == 1)) // force match save file sk2.SwapLanguage(); }