Add OT name max length checks

Closes #2094
This commit is contained in:
Kurt
2018-08-15 14:58:55 -07:00
parent bc262a7cdf
commit b6de41bfa7
3 changed files with 14 additions and 12 deletions

View File

@@ -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;
}
}
}
}

View File

@@ -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;
}
}
}
}

View File

@@ -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)
{