diff --git a/PKHeX.Core/PKM/Util/PKX.cs b/PKHeX.Core/PKM/Util/PKX.cs index c39035e63..bd1a3c053 100644 --- a/PKHeX.Core/PKM/Util/PKX.cs +++ b/PKHeX.Core/PKM/Util/PKX.cs @@ -902,6 +902,21 @@ public static IEnumerable GetPKMDataFromConcatenatedBinary(byte[] data, } } + /// + /// Detects the language of a or by checking the current Species name against possible names. + /// + /// PKM to fetch language for + /// Language ID best match () + public static int GetVCLanguage(PKM pk) + { + if (pk.Japanese) + return 1; + if (pk.Korean) + return 8; + int lang = GetSpeciesNameLanguage(pk.Species, pk.Nickname, pk.Format); + return lang > 0 ? lang : (int)LanguageID.English; // Default to ENG + } + internal static bool IsPKMPresentGB(byte[] data, int offset) => data[offset] != 0; internal static bool IsPKMPresentGC(byte[] data, int offset) => BitConverter.ToUInt16(data, offset) != 0; internal static bool IsPKMPresentGBA(byte[] data, int offset) diff --git a/PKHeX.WinForms/Controls/PKM Editor/EditPK1.cs b/PKHeX.WinForms/Controls/PKM Editor/EditPK1.cs index 93db475a1..716b73f54 100644 --- a/PKHeX.WinForms/Controls/PKM Editor/EditPK1.cs +++ b/PKHeX.WinForms/Controls/PKM Editor/EditPK1.cs @@ -12,13 +12,7 @@ private void PopulateFieldsPK1() LoadMisc1(pk1); // Attempt to detect language - if (pk1.Japanese) - CB_Language.SelectedIndex = 0; - else - { - int lang = PKX.GetSpeciesNameLanguage(pk1.Species, pk1.Nickname, 2); - CB_Language.SelectedValue = lang > 0 ? lang : 2; - } + CB_Language.SelectedValue = PKX.GetVCLanguage(pk1); LoadPartyStats(pk1); UpdateStats(); diff --git a/PKHeX.WinForms/Controls/PKM Editor/EditPK2.cs b/PKHeX.WinForms/Controls/PKM Editor/EditPK2.cs index 7dc02644c..5885402ae 100644 --- a/PKHeX.WinForms/Controls/PKM Editor/EditPK2.cs +++ b/PKHeX.WinForms/Controls/PKM Editor/EditPK2.cs @@ -17,15 +17,7 @@ private void PopulateFieldsPK2() CB_MetTimeOfDay.SelectedIndex = pk2.Met_TimeOfDay; // Attempt to detect language - if (pk2.Japanese) - CB_Language.SelectedValue = 1; - else if (pk2.Korean) - CB_Language.SelectedValue = 8; - else - { - int lang = PKX.GetSpeciesNameLanguage(pk2.Species, pk2.Nickname, 2); - CB_Language.SelectedValue = lang > 0 ? lang : 2; - } + CB_Language.SelectedValue = PKX.GetVCLanguage(pk2); LoadPartyStats(pk2); UpdateStats();