diff --git a/PKHeX.Core/Saves/SaveFile.cs b/PKHeX.Core/Saves/SaveFile.cs index a33fb6a9b..bb6ff7a7a 100644 --- a/PKHeX.Core/Saves/SaveFile.cs +++ b/PKHeX.Core/Saves/SaveFile.cs @@ -601,7 +601,7 @@ public void SortBoxes(int BoxStart = 0, int BoxEnd = -1, Func, Sorted.CopyTo(BD, start); BoxData = BD; } - public void ClearBoxes(int BoxStart = 0, int BoxEnd = -1) + public void ClearBoxes(int BoxStart = 0, int BoxEnd = -1, Func deleteCriteria = null) { if (BoxEnd < 0) BoxEnd = BoxCount - 1; @@ -614,7 +614,17 @@ public void ClearBoxes(int BoxStart = 0, int BoxEnd = -1) { int offset = GetBoxOffset(i); for (int p = 0; p < BoxSlotCount; p++) - SetData(blank, offset + SIZE_STORED * p); + { + var ofs = offset + SIZE_STORED * p; + if (deleteCriteria != null) + { + var pk = GetStoredSlot(ofs); + if (!deleteCriteria(pk)) + continue; + } + + SetData(blank, ofs); + } } } public void ModifyBoxes(Action action, int BoxStart = 0, int BoxEnd = -1)