From e79a35d387207c13cc75e07d8180839307bc1aa3 Mon Sep 17 00:00:00 2001 From: Kurt Date: Mon, 1 Jan 2018 11:27:45 -0800 Subject: [PATCH] Fix long OT name length setting StringLength is the raw buffer size, needs to be offset by 1 as the string length enforced does not consider the terminator 12char OT name in sav7 loaded to tabs -> load gen1/2 save = exception (now fixed) --- PKHeX.Core/PKM/PK1.cs | 2 +- PKHeX.Core/PKM/PK2.cs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/PKHeX.Core/PKM/PK1.cs b/PKHeX.Core/PKM/PK1.cs index 3dec5010a..75a2ea88b 100644 --- a/PKHeX.Core/PKM/PK1.cs +++ b/PKHeX.Core/PKM/PK1.cs @@ -23,7 +23,7 @@ public sealed class PK1 : PKM private int StringLength => Japanese ? STRLEN_J : STRLEN_U; private string GetString(int Offset, int Count) => StringConverter.GetString1(Data, Offset, Count, Japanese); - private byte[] SetString(string value, int maxLength) => StringConverter.SetString1(value, maxLength, Japanese); + private byte[] SetString(string value, int maxLength) => StringConverter.SetString1(value, maxLength - 1, Japanese); // Trash Bytes public override byte[] Nickname_Trash { get => nick; set { if (value?.Length == nick.Length) nick = value; } } diff --git a/PKHeX.Core/PKM/PK2.cs b/PKHeX.Core/PKM/PK2.cs index d2dbdd177..538d36c69 100644 --- a/PKHeX.Core/PKM/PK2.cs +++ b/PKHeX.Core/PKM/PK2.cs @@ -33,8 +33,8 @@ private string GetString(int Offset, int Count) private byte[] SetString(string value, int maxLength) { if (Korean) - return StringConverter.SetString2KOR(value, maxLength); - return StringConverter.SetString1(value, maxLength, Japanese); + return StringConverter.SetString2KOR(value, maxLength - 1); + return StringConverter.SetString1(value, maxLength - 1, Japanese); } // Trash Bytes