From acfdd9bab37e42ee111d2012630bf232bb239eaa Mon Sep 17 00:00:00 2001 From: Kurt Date: Sun, 23 Feb 2025 11:19:50 -0600 Subject: [PATCH] misc tweaks reduce allocation lol --- PKHeX.WinForms/Controls/PKM Editor/EditPK2.cs | 4 +++- .../Subforms/Save Editors/Gen1/SAV_EventReset1.cs | 14 ++++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/PKHeX.WinForms/Controls/PKM Editor/EditPK2.cs b/PKHeX.WinForms/Controls/PKM Editor/EditPK2.cs index 3946e223f..fceef2b58 100644 --- a/PKHeX.WinForms/Controls/PKM Editor/EditPK2.cs +++ b/PKHeX.WinForms/Controls/PKM Editor/EditPK2.cs @@ -45,7 +45,9 @@ private static void CoerceStadium2Language(SK2 sk2, SaveFile sav) if (la.Valid) return; - var lang = SpeciesName.GetSpeciesNameLanguage(sk2.Species, sk2.Nickname, 2); + Span nickname = stackalloc char[sk2.MaxStringLengthNickname]; + int len = sk2.LoadString(sk2.NicknameTrash, nickname); + var lang = SpeciesName.GetSpeciesNameLanguage(sk2.Species, nickname[..len], 2); if (lang >= 1 && (lang == 1 != sk2.Japanese)) // force match language sk2.SwapLanguage(); else if (sk2.Japanese != (sav.Language == 1)) // force match save file diff --git a/PKHeX.WinForms/Subforms/Save Editors/Gen1/SAV_EventReset1.cs b/PKHeX.WinForms/Subforms/Save Editors/Gen1/SAV_EventReset1.cs index c97accbb6..6dea5edb4 100644 --- a/PKHeX.WinForms/Subforms/Save Editors/Gen1/SAV_EventReset1.cs +++ b/PKHeX.WinForms/Subforms/Save Editors/Gen1/SAV_EventReset1.cs @@ -1,3 +1,4 @@ +using System; using System.Drawing; using System.Linq; using System.Windows.Forms; @@ -24,18 +25,19 @@ private void InitializeButtons() var pairs = Overworld.GetFlagPairs().OrderBy(z => z.Name); foreach (var pair in pairs) { - var split = pair.Name.Split('_'); - var specName = split[0][G1OverworldSpawner.FlagPropertyPrefix.Length..]; + var name = pair.Name.AsSpan(G1OverworldSpawner.FlagPropertyPrefix.Length); + var index = name.IndexOf('_'); + var specName = index == -1 ? name : name[..index]; // convert species name to current localization language SpeciesName.TryGetSpecies(specName, (int)LanguageID.English, out var species); - var pkmname = GameInfo.Strings.specieslist[species]; + var localized = GameInfo.Strings.specieslist[species]; + if (index != -1) // assume there is a suffix after the underscore; throw exception when not + localized += $" {name[(index + 1)..]}"; - if (split.Length != 1) - pkmname += $" {split[1]}"; var b = new Button { - Text = pkmname, Enabled = pair.IsHidden, + Text = localized, Enabled = pair.IsHidden, Size = new Size((Width / 2) - 25, 22), }; b.Click += (_, _) =>