mirror of
https://github.com/kwsch/PKHeX.git
synced 2026-09-12 05:55:16 -05:00
Allow !? for jpn gen2 strings
Closes #4821 not sure this is a perfect solution (traded from gen1=>nicknamed complainers, or iterator prefer-matching gen1 when having !?)
This commit is contained in:
@@ -370,7 +370,7 @@ private void VerifyG1NicknameWithinBounds(LegalityAnalysis data, ReadOnlySpan<ch
|
||||
if (str.Length > 10)
|
||||
data.AddLine(GetInvalid(NickLengthLong, 10));
|
||||
}
|
||||
else if (StringConverter1.GetIsJapanese(str))
|
||||
else if (data.EncounterOriginal.Generation == 1 ? StringConverter1.GetIsJapanese(str) : StringConverter2.GetIsJapanese(str))
|
||||
{
|
||||
if (str.Length > 5)
|
||||
data.AddLine(GetInvalid(NickLengthLong, 5));
|
||||
|
||||
@@ -146,7 +146,7 @@ private void VerifyGBOTWithinBounds(LegalityAnalysis data, ReadOnlySpan<char> st
|
||||
{
|
||||
if (str.Length > 5)
|
||||
data.AddLine(GetInvalid(OTLong, 5));
|
||||
if (!StringConverter1.GetIsJapanese(str))
|
||||
if (data.EncounterOriginal.Generation == 1 ? !StringConverter1.GetIsJapanese(str) : !StringConverter2.GetIsJapanese(str))
|
||||
data.AddLine(GetInvalid(G1CharOT));
|
||||
}
|
||||
else if (pk.Korean)
|
||||
|
||||
@@ -18,7 +18,20 @@ public static class StringConverter2
|
||||
public const char TradeOT = StringConverter1.TradeOT;
|
||||
public const char LineBreak = '⏎'; // Mail
|
||||
|
||||
public static bool GetIsJapanese(ReadOnlySpan<char> str) => StringConverter1.GetIsJapanese(str);
|
||||
/// <summary>
|
||||
/// Quick check if the input string is entirely Japanese characters.
|
||||
/// </summary>
|
||||
/// <remarks><seealso cref="StringConverter1.GetIsJapanese(ReadOnlySpan{char})"/>. This also adds ? and !.</remarks>
|
||||
public static bool GetIsJapanese(ReadOnlySpan<char> str)
|
||||
{
|
||||
foreach (var x in str)
|
||||
{
|
||||
if (!IsJapanese(x))
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
static bool IsJapanese(char c) => c is (>= '\u3000' and <= '\u30FC') or ('?' or '!');
|
||||
}
|
||||
|
||||
public static bool GetIsEnglish(ReadOnlySpan<char> str) => !GetIsJapanese(str);
|
||||
public static bool GetIsJapanese(ReadOnlySpan<byte> raw) => AllCharsInTable(raw, TableJP);
|
||||
|
||||
Reference in New Issue
Block a user