mirror of
https://github.com/kwsch/PKHeX.git
synced 2026-08-26 13:20:16 -05:00
Fix kor string writes
Was writing kor string, then writing en after (all terminators). Make method signature match other SetString, with write buffer as first arg Closes #3440
This commit is contained in:
@@ -63,11 +63,11 @@ protected override byte[] GetNonNickname(int language)
|
||||
return data;
|
||||
}
|
||||
|
||||
private void SetString(ReadOnlySpan<char> value, Span<byte> destBuffer, int maxLength, StringConverterOption option = StringConverterOption.None)
|
||||
private int SetString(ReadOnlySpan<char> value, Span<byte> destBuffer, int maxLength, StringConverterOption option = StringConverterOption.None)
|
||||
{
|
||||
if (Korean)
|
||||
StringConverter2KOR.SetString(value, destBuffer, maxLength, option);
|
||||
StringConverter12.SetString(destBuffer, value, maxLength, Japanese, option);
|
||||
return StringConverter2KOR.SetString(destBuffer, value, maxLength, option);
|
||||
return StringConverter12.SetString(destBuffer, value, maxLength, Japanese, option);
|
||||
}
|
||||
|
||||
public sealed override string Nickname
|
||||
|
||||
@@ -65,12 +65,13 @@ private static int LoadString(ReadOnlySpan<byte> data, Span<char> result)
|
||||
/// <summary>
|
||||
/// Converts a string to Generation 1 encoded data.
|
||||
/// </summary>
|
||||
/// <param name="value">Decoded string.</param>
|
||||
/// <param name="destBuffer">Span of bytes to write encoded string data</param>
|
||||
/// <param name="value">Decoded string.</param>
|
||||
/// <param name="maxLength">Maximum length of the input <see cref="value"/></param>
|
||||
/// <param name="option">Buffer pre-formatting option</param>
|
||||
/// <returns>Encoded data.</returns>
|
||||
public static int SetString(ReadOnlySpan<char> value, Span<byte> destBuffer, int maxLength, StringConverterOption option = StringConverterOption.Clear50)
|
||||
public static int SetString(Span<byte> destBuffer, ReadOnlySpan<char> value, int maxLength,
|
||||
StringConverterOption option = StringConverterOption.Clear50)
|
||||
{
|
||||
if (option is StringConverterOption.ClearZero)
|
||||
destBuffer.Clear();
|
||||
@@ -116,7 +117,7 @@ public static int SetString(ReadOnlySpan<char> value, Span<byte> destBuffer, int
|
||||
}
|
||||
}
|
||||
|
||||
if (destBuffer.Length != value.Length)
|
||||
if (ctr < value.Length)
|
||||
destBuffer[ctr++] = G1TerminatorCode;
|
||||
return ctr;
|
||||
}
|
||||
|
||||
@@ -738,7 +738,7 @@ public override string GetString(ReadOnlySpan<byte> data)
|
||||
public override int SetString(Span<byte> destBuffer, ReadOnlySpan<char> value, int maxLength, StringConverterOption option)
|
||||
{
|
||||
if (Korean)
|
||||
return StringConverter2KOR.SetString(value, destBuffer, maxLength, option);
|
||||
return StringConverter2KOR.SetString(destBuffer, value, maxLength, option);
|
||||
return StringConverter12.SetString(destBuffer, value, maxLength, Japanese, option);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user