mirror of
https://github.com/kwsch/PKHeX.git
synced 2026-09-08 17:17:07 -05:00
Relocate FFFF trim (and 0000) to same location
This commit is contained in:
@@ -53,7 +53,7 @@ public sealed class PGF : MysteryGift, IRibbonSetEvent3, IRibbonSetEvent4, ILang
|
||||
|
||||
public string Nickname
|
||||
{
|
||||
get => StringConverter.TrimFromFFFF(Encoding.Unicode.GetString(Data, 0x1E, 0x16));
|
||||
get => Util.TrimFromFFFF(Encoding.Unicode.GetString(Data, 0x1E, 0x16));
|
||||
set => Encoding.Unicode.GetBytes(value.PadRight(0xB, (char)0xFFFF)).CopyTo(Data, 0x1E);
|
||||
}
|
||||
|
||||
@@ -78,7 +78,7 @@ public string Nickname
|
||||
public int IV_SPD { get => Data[0x48]; set => Data[0x48] = (byte)value; }
|
||||
// Unused 0x49
|
||||
public override string OT_Name {
|
||||
get => StringConverter.TrimFromFFFF(Encoding.Unicode.GetString(Data, 0x4A, 0x10));
|
||||
get => Util.TrimFromFFFF(Encoding.Unicode.GetString(Data, 0x4A, 0x10));
|
||||
set => Encoding.Unicode.GetBytes(value.PadRight(0x08, (char)0xFFFF)).CopyTo(Data, 0x4A); }
|
||||
|
||||
public int OTGender { get => Data[0x5A]; set => Data[0x5A] = (byte)value; }
|
||||
@@ -87,7 +87,7 @@ public string Nickname
|
||||
// Unused 0x5D 0x5E 0x5F
|
||||
public override string CardTitle
|
||||
{
|
||||
get => StringConverter.TrimFromFFFF(Encoding.Unicode.GetString(Data, 0x60, 0x4A));
|
||||
get => Util.TrimFromFFFF(Encoding.Unicode.GetString(Data, 0x60, 0x4A));
|
||||
set => Encoding.Unicode.GetBytes((value + '\uFFFF').PadRight(0x4A / 2, '\0')).CopyTo(Data, 0x60);
|
||||
}
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@ public static byte[] SetString(string value, int generation, bool jp, bool bigen
|
||||
/// <returns>Decoded string.</returns>
|
||||
public static string GetString5(byte[] data, int offset, int count)
|
||||
{
|
||||
return SanitizeString(TrimFromFFFF(Encoding.Unicode.GetString(data, offset, count)));
|
||||
return SanitizeString(Util.TrimFromFFFF(Encoding.Unicode.GetString(data, offset, count)));
|
||||
}
|
||||
|
||||
/// <summary>Gets the bytes for a Generation 5 string.</summary>
|
||||
@@ -292,17 +292,6 @@ internal static string UnSanitizeString(string str, int generation)
|
||||
|
||||
private static readonly char[] FullToHalf = {'\u2640', '\u2642'}; // ♀♂
|
||||
|
||||
/// <summary>
|
||||
/// Trims a string at the first instance of a 0xFFFF terminator.
|
||||
/// </summary>
|
||||
/// <param name="input">String to trim.</param>
|
||||
/// <returns>Trimmed string.</returns>
|
||||
public static string TrimFromFFFF(string input)
|
||||
{
|
||||
int index = input.IndexOf((char)0xFFFF);
|
||||
return index < 0 ? input : input.Substring(0, index);
|
||||
}
|
||||
|
||||
public static bool HasEastAsianScriptCharacters(IEnumerable<char> str) => str.Any(c => 0x4E00 <= c && c <= 0x9FFF);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -233,7 +233,7 @@ public override string GetBoxName(int box)
|
||||
{
|
||||
if (box >= BoxCount)
|
||||
return string.Empty;
|
||||
return StringConverter.TrimFromFFFF(Encoding.Unicode.GetString(Data, PCLayout + (0x28 * box) + 4, 0x28));
|
||||
return Util.TrimFromFFFF(Encoding.Unicode.GetString(Data, PCLayout + (0x28 * box) + 4, 0x28));
|
||||
}
|
||||
|
||||
public override void SetBoxName(int box, string value)
|
||||
|
||||
@@ -8,11 +8,5 @@ public static string CleanFileName(string fileName)
|
||||
{
|
||||
return string.Concat(fileName.Split(Path.GetInvalidFileNameChars()));
|
||||
}
|
||||
|
||||
public static string TrimFromZero(string input)
|
||||
{
|
||||
int index = input.IndexOf('\0');
|
||||
return index < 0 ? input : input.Substring(0, index);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Linq;
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
namespace PKHeX.Core
|
||||
{
|
||||
@@ -106,5 +107,26 @@ public static uint GetHexValue(string value)
|
||||
/// </summary>
|
||||
/// <param name="str">Input string to modify</param>
|
||||
public static string ToTitleCase(string str) => string.IsNullOrWhiteSpace(str) ? string.Empty : string.Join(" ", str.Split(' ').Select(TitleCase));
|
||||
|
||||
/// <summary>
|
||||
/// Trims a string at the first instance of a 0xFFFF terminator.
|
||||
/// </summary>
|
||||
/// <param name="input">String to trim.</param>
|
||||
/// <returns>Trimmed string.</returns>
|
||||
public static string TrimFromFFFF(string input) => TrimFromFirst(input, (char)0xFFFF);
|
||||
|
||||
/// <summary>
|
||||
/// Trims a string at the first instance of a 0x0000 terminator.
|
||||
/// </summary>
|
||||
/// <param name="input">String to trim.</param>
|
||||
/// <returns>Trimmed string.</returns>
|
||||
public static string TrimFromZero(string input) => TrimFromFirst(input, '\0');
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
private static string TrimFromFirst(string input, char c)
|
||||
{
|
||||
int index = input.IndexOf(c);
|
||||
return index < 0 ? input : input.Substring(0, index);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user