diff --git a/PKHeX.Core/Game/GameStrings/MemoryStrings.cs b/PKHeX.Core/Game/GameStrings/MemoryStrings.cs index 9dbfdd3f7..efccfd4be 100644 --- a/PKHeX.Core/Game/GameStrings/MemoryStrings.cs +++ b/PKHeX.Core/Game/GameStrings/MemoryStrings.cs @@ -22,7 +22,7 @@ public MemoryStrings(GameStrings strings, int format) species = new Lazy>(() => Util.GetCBList(s.specieslist)); item = new Lazy>(() => GetItems(format)); genloc = new Lazy>(() => Util.GetCBList(s.genloc)); - moves = new Lazy>(() => Util.GetCBList(s.movelist)); // Hyperspace Fury + moves = new Lazy>(() => Util.GetCBList(s.movelist)); specific = new Lazy>(() => Util.GetCBList(s.metXY_00000, Legal.Met_XY_0)); } @@ -46,19 +46,11 @@ private List GetItems(int format) private List GetMemories() { - // Memory Chooser - int memorycount = s.memories.Length - 38; - string[] mems = new string[memorycount]; - int[] allowed = new int[memorycount]; - for (int i = 0; i < memorycount; i++) - { - mems[i] = s.memories[38 + i]; - allowed[i] = i + 1; - } - Array.Resize(ref allowed, allowed.Length - 1); - var memory_list1 = Util.GetCBList(new[] { mems[0] }); - Util.AddCBWithOffset(memory_list1, mems, 0, allowed); - return memory_list1; + const int offset = 38; + var mems = s.memories.AsSpan(offset); + var list = new List {new(mems[0], 0)}; // none at top + Util.AddCBWithOffset(list, mems[1..], 1); // sorted the rest + return list; } public ReadOnlySpan GetMemoryQualities() => s.memories.AsSpan(2, 7);