From 5ce3d649968872f3501f9e9e99bafb6df4b10a7d Mon Sep 17 00:00:00 2001 From: Kurt Date: Sun, 21 Mar 2021 10:34:00 -0700 Subject: [PATCH] Disallow lang=2 for dp trades DP English origin are Japanese language; since we 1=>2, we still needed to disallow 2. --- PKHeX.Core/Legality/Verifiers/NicknameVerifier.cs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/PKHeX.Core/Legality/Verifiers/NicknameVerifier.cs b/PKHeX.Core/Legality/Verifiers/NicknameVerifier.cs index 1a7f6281d..11b18c0ef 100644 --- a/PKHeX.Core/Legality/Verifiers/NicknameVerifier.cs +++ b/PKHeX.Core/Legality/Verifiers/NicknameVerifier.cs @@ -330,11 +330,18 @@ private static void VerifyTrade4(LegalityAnalysis data, EncounterTrade t) break; default: - if (lang == 1 && (pkm.Version is (int)GameVersion.D or (int)GameVersion.P)) + if (pkm.Version is (int)GameVersion.D or (int)GameVersion.P && t is EncounterTrade4PID) // mainline DP { - // DP English origin are Japanese lang - if (pkm.OT_Name != t.GetOT(1)) // not japanese - lang = 2; // English + // DP English origin are Japanese lang. Can't have LanguageID 2 + if (lang == 2) + { + data.AddLine(GetInvalid(string.Format(LOTLanguage, Japanese, English), CheckIdentifier.Language)); + break; + } + + // Since two locales (JPN/ENG) can have the same LanguageID, check which we should be validating with. + if (lang == 1 && pkm.OT_Name != t.GetOT(1)) // not Japanese + lang = 2; // verify strings with English locale instead. } break; }