From b6de41bfa74d06bedc796d454cf0bc93882deae4 Mon Sep 17 00:00:00 2001 From: Kurt Date: Wed, 15 Aug 2018 14:58:55 -0700 Subject: [PATCH] Add OT name max length checks Closes #2094 --- PKHeX.Core/Legality/Core.cs | 10 ++++++++++ PKHeX.Core/Legality/Verifiers/NicknameVerifier.cs | 14 ++------------ .../Legality/Verifiers/TrainerNameVerifier.cs | 2 ++ 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/PKHeX.Core/Legality/Core.cs b/PKHeX.Core/Legality/Core.cs index 83139d083..fc7d7c125 100644 --- a/PKHeX.Core/Legality/Core.cs +++ b/PKHeX.Core/Legality/Core.cs @@ -1397,5 +1397,15 @@ public static int GetGBStadiumOTID(bool jp, GameVersion s) return s == GameVersion.Stadium2 ? 2000 : 1999; return 2000; } + + public static int GetNicknameOTMaxLength(int gen, LanguageID lang) + { + switch (lang) + { + case LanguageID.Korean: + case LanguageID.Japanese: return gen >= 6 ? 6 : 5; + default: return gen >= 6 ? 12 : 6; + } + } } } diff --git a/PKHeX.Core/Legality/Verifiers/NicknameVerifier.cs b/PKHeX.Core/Legality/Verifiers/NicknameVerifier.cs index 1e67c6c12..9dd7a15c5 100644 --- a/PKHeX.Core/Legality/Verifiers/NicknameVerifier.cs +++ b/PKHeX.Core/Legality/Verifiers/NicknameVerifier.cs @@ -75,7 +75,7 @@ private bool VerifyUnNicknamedEncounter(LegalityAnalysis data, PKM pkm, string n data.AddLine(GetInvalid(V222)); return true; } - if (nickname.Length > GetNicknameMaxLength(data.Info.Generation, (LanguageID)pkm.Language)) + if (nickname.Length > Legal.GetNicknameOTMaxLength(data.Info.Generation, (LanguageID)pkm.Language)) { data.AddLine(GetInvalid(V1)); return true; @@ -177,7 +177,7 @@ private void VerifyG1NicknameWithinBounds(LegalityAnalysis data, string str) else if (pkm.Korean && StringConverter.GetIsG2Korean(str)) { if (str.Length > 5) - data.AddLine(GetInvalid(V38)); + data.AddLine(GetInvalid(V1)); } else { @@ -417,15 +417,5 @@ private static bool IsNicknameMatch(string nick, PKM pkm, IEncounterable Encount return true; return ((EncounterTrade)EncounterMatch).IsNicknamed; } - - private static int GetNicknameMaxLength(int gen, LanguageID lang) - { - switch (lang) - { - case LanguageID.Korean: - case LanguageID.Japanese: return gen >= 6 ? 6 : 5; - default: return gen >= 6 ? 12 : 6; - } - } } } diff --git a/PKHeX.Core/Legality/Verifiers/TrainerNameVerifier.cs b/PKHeX.Core/Legality/Verifiers/TrainerNameVerifier.cs index af2db829b..a94faeb34 100644 --- a/PKHeX.Core/Legality/Verifiers/TrainerNameVerifier.cs +++ b/PKHeX.Core/Legality/Verifiers/TrainerNameVerifier.cs @@ -58,6 +58,8 @@ public override void Verify(LegalityAnalysis data) if (pkm.VC) VerifyOTG1(data); + else if (ot.Length > Legal.GetNicknameOTMaxLength(data.Info.Generation, (LanguageID)pkm.Language)) + data.AddLine(GetInvalid(V38)); if (Legal.CheckWordFilter) {