diff --git a/PKHeX/MainWindow/Main.cs b/PKHeX/MainWindow/Main.cs index 333cf7d4d..c80b7e921 100644 --- a/PKHeX/MainWindow/Main.cs +++ b/PKHeX/MainWindow/Main.cs @@ -2325,9 +2325,14 @@ private void updateNickname(object sender, EventArgs e) if (SAV.Generation < 5) // All caps GenIV and previous nick = nick.ToUpper(); + if (SAV.Generation < 3) + nick = nick.Replace(" ", ""); TB_Nickname.Text = nick; if (SAV.Generation == 1) - ((PK1)pkm).setNotNicknamed(); + ((PK1)pkm).setNotNicknamed(); + if (SAV.Generation == 2) + ((PK2)pkm).setNotNicknamed(); + } } private void updateNicknameClick(object sender, MouseEventArgs e) @@ -3156,6 +3161,8 @@ private void updateIsNicknamed(object sender, EventArgs e) if (SAV.Generation < 5) // All caps GenIV and previous nick = nick.ToUpper(); + if (SAV.Generation < 3) + nick = nick.Replace(" ", ""); if (TB_Nickname.Text != nick) { CHK_Nicknamed.Checked = true; diff --git a/PKHeX/MainWindow/MainPK1.cs b/PKHeX/MainWindow/MainPK1.cs index 3057dc27f..0b4eef469 100644 --- a/PKHeX/MainWindow/MainPK1.cs +++ b/PKHeX/MainWindow/MainPK1.cs @@ -77,7 +77,10 @@ private PKM preparePK1() pk1.EV_SPE = Util.ToInt32(TB_SPEEV.Text); pk1.EV_SPC = Util.ToInt32(TB_SPAEV.Text); - pk1.Nickname = TB_Nickname.Text; + if (CHK_Nicknamed.Checked) + pk1.Nickname = TB_Nickname.Text; + else + pk1.setNotNicknamed(); pk1.Move1 = Util.getIndex(CB_Move1); pk1.Move2 = Util.getIndex(CB_Move2); pk1.Move3 = Util.getIndex(CB_Move3); diff --git a/PKHeX/MainWindow/MainPK2.cs b/PKHeX/MainWindow/MainPK2.cs index 4272e79d7..ce3b719bd 100644 --- a/PKHeX/MainWindow/MainPK2.cs +++ b/PKHeX/MainWindow/MainPK2.cs @@ -96,7 +96,10 @@ private PKM preparePK2() pk2.EV_SPE = Util.ToInt32(TB_SPEEV.Text); pk2.EV_SPC = Util.ToInt32(TB_SPAEV.Text); - pk2.Nickname = TB_Nickname.Text; + if (CHK_Nicknamed.Checked) + pk2.Nickname = TB_Nickname.Text; + else + pk2.setNotNicknamed(); pk2.Move1 = Util.getIndex(CB_Move1); pk2.Move2 = Util.getIndex(CB_Move2); pk2.Move3 = Util.getIndex(CB_Move3); diff --git a/PKHeX/PKM/PK1.cs b/PKHeX/PKM/PK1.cs index c8c3f07fa..afcfcf399 100644 --- a/PKHeX/PKM/PK1.cs +++ b/PKHeX/PKM/PK1.cs @@ -100,9 +100,11 @@ public override bool IsNicknamed get { string spName = PKX.getSpeciesName(Species, Japanese ? 1 : 2).ToUpper(); + spName = spName.Replace(" ", ""); // Gen I/II didn't have a space for Mr. Mime return !nick.SequenceEqual( PKX.setG1Str(spName, Japanese) - .Concat(Enumerable.Repeat((byte) 0x50, StringLength - spName.Length - 1))); + .Concat(Enumerable.Repeat((byte) 0x50, StringLength - spName.Length - 1)) + .Select(b => (byte)(b == 0xF2 ? 0xE8 : b))); } set { } } @@ -110,7 +112,11 @@ public override bool IsNicknamed public void setNotNicknamed() { string spName = PKX.getSpeciesName(Species, Japanese ? 1 : 2).ToUpper(); - nick = PKX.setG1Str(spName, Japanese).Concat(Enumerable.Repeat((byte)0x50, StringLength - spName.Length - 1)).ToArray(); + spName = spName.Replace(" ", ""); // Gen I/II didn't have a space for Mr. Mime + nick = PKX.setG1Str(spName, Japanese) + .Concat(Enumerable.Repeat((byte)0x50, StringLength - spName.Length - 1)) + .Select(b => (byte)(b == 0xF2 ? 0xE8 : b)) // Decimal point<->period fix + .ToArray(); } diff --git a/PKHeX/PKM/PK2.cs b/PKHeX/PKM/PK2.cs index d5c32897f..d9a333c5c 100644 --- a/PKHeX/PKM/PK2.cs +++ b/PKHeX/PKM/PK2.cs @@ -103,9 +103,11 @@ public override bool IsNicknamed get { string spName = PKX.getSpeciesName(Species, Japanese ? 1 : 2).ToUpper(); + spName = spName.Replace(" ", ""); // Gen I/II didn't have a space for Mr. Mime return !nick.SequenceEqual( PKX.setG1Str(spName, Japanese) - .Concat(Enumerable.Repeat((byte) 0x50, StringLength - spName.Length - 1))); + .Concat(Enumerable.Repeat((byte) 0x50, StringLength - spName.Length - 1)) + .Select(b => (byte)(b == 0xF2 ? 0xE8 : b))); } set { } } @@ -113,7 +115,11 @@ public override bool IsNicknamed public void setNotNicknamed() { string spName = PKX.getSpeciesName(Species, Japanese ? 1 : 2).ToUpper(); - nick = PKX.setG1Str(spName, Japanese).Concat(Enumerable.Repeat((byte)0x50, StringLength - spName.Length - 1)).ToArray(); + spName = spName.Replace(" ", ""); // Gen I/II didn't have a space for Mr. Mime + nick = PKX.setG1Str(spName, Japanese) + .Concat(Enumerable.Repeat((byte)0x50, StringLength - spName.Length - 1)) + .Select(b => (byte)(b == 0xF2 ? 0xE8 : b)) // Decimal point<->period fix + .ToArray(); } diff --git a/PKHeX/PKM/PKX.cs b/PKHeX/PKM/PKX.cs index 73c066406..27efe9661 100644 --- a/PKHeX/PKM/PKX.cs +++ b/PKHeX/PKM/PKX.cs @@ -1713,11 +1713,13 @@ public static ushort getG4Item(ushort g3val) {0xB7, "x"}, {0xB8, "y"}, {0xB9, "z"}, + {0xE0, "’"}, {0xE1, "{"}, /* Pk */ {0xE2, "}"}, /* Mn */ {0xE3, "-"}, {0xE6, "?"}, {0xE7, "!"}, + {0xE8, "."}, // Alias decimal point to . {0xEF, "♂"}, {0xF2, "."}, {0xF3, "/"}, @@ -1797,6 +1799,8 @@ public static ushort getG4Item(ushort g3val) {"x", 0xB7}, {"y", 0xB8}, {"z", 0xB9}, + {"'", 0xE0}, // Alias ' to ’ for Farfetch'd + {"’", 0xE0}, {"{", 0xE1}, /* Pk */ {"}", 0xE2}, /* Mn */ {"-", 0xE3},