mirror of
https://github.com/kwsch/PKHeX
synced 2025-02-17 05:48:44 +00:00
Leave empty item slots for gen7+
game depends on an existing value to check for if the item is truly "New" Closes #1670 Don't clear count=0 slots for gen7+ For sorting, put all the count=0 at the near top (any feedback on how this actually works?)
This commit is contained in:
parent
36894a588d
commit
4a898b0829
2 changed files with 17 additions and 21 deletions
|
@ -246,30 +246,27 @@ namespace PKHeX.Core
|
|||
|
||||
public void SortByCount(bool reverse = false)
|
||||
{
|
||||
if (reverse)
|
||||
Items = Items.Where(item => item.Index != 0).OrderBy(item => item.Count)
|
||||
.Concat(Items.Where(item => item.Index == 0)).ToArray();
|
||||
else
|
||||
Items = Items.Where(item => item.Index != 0).OrderByDescending(item => item.Count)
|
||||
.Concat(Items.Where(item => item.Index == 0)).ToArray();
|
||||
var list = Items.Where(item => item.Index != 0).OrderBy(item => item.Count == 0);
|
||||
list = reverse
|
||||
? list.ThenByDescending(item => item.Count)
|
||||
: list.ThenBy(item => item.Count);
|
||||
Items = list.Concat(Items.Where(item => item.Index == 0)).ToArray();
|
||||
}
|
||||
public void SortByIndex(bool reverse = false)
|
||||
{
|
||||
if (reverse)
|
||||
Items = Items.Where(item => item.Index != 0).OrderByDescending(item => item.Index)
|
||||
.Concat(Items.Where(item => item.Index == 0)).ToArray();
|
||||
else
|
||||
Items = Items.Where(item => item.Index != 0).OrderBy(item => item.Index)
|
||||
.Concat(Items.Where(item => item.Index == 0)).ToArray();
|
||||
var list = Items.Where(item => item.Index != 0).OrderBy(item => item.Count == 0);
|
||||
list = reverse
|
||||
? list.ThenByDescending(item => item.Index)
|
||||
: list.ThenBy(item => item.Index);
|
||||
Items = list.Concat(Items.Where(item => item.Index == 0)).ToArray();
|
||||
}
|
||||
public void SortByName(string[] names, bool reverse = false)
|
||||
{
|
||||
if (reverse)
|
||||
Items = Items.Where(item => item.Index != 0 && item.Index < names.Length).OrderByDescending(item => names[item.Index])
|
||||
.Concat(Items.Where(item => item.Index == 0 || item.Index >= names.Length)).ToArray();
|
||||
else
|
||||
Items = Items.Where(item => item.Index != 0).OrderBy(item => names[item.Index])
|
||||
.Concat(Items.Where(item => item.Index == 0 || item.Index >= names.Length)).ToArray();
|
||||
var list = Items.Where(item => item.Index != 0 && item.Index < names.Length).OrderBy(item => item.Count == 0);
|
||||
list = reverse
|
||||
? list.ThenByDescending(item => names[item.Index])
|
||||
: list.ThenBy(item => names[item.Index]);
|
||||
Items = list.Concat(Items.Where(item => item.Index == 0 || item.Index >= names.Length)).ToArray();
|
||||
}
|
||||
|
||||
public void Sanitize(bool HaX, int MaxItemID)
|
||||
|
|
|
@ -197,9 +197,8 @@ namespace PKHeX.WinForms
|
|||
int c = 0;
|
||||
string item = dgv.Rows[i].Cells[c++].Value.ToString();
|
||||
int itemindex = Array.IndexOf(itemlist, item);
|
||||
bool roto = pouch.Type == InventoryType.BattleItems && Legal.Pouch_Roto_USUM.Contains((ushort) itemindex);
|
||||
|
||||
if (itemindex <= 0 && !roto) // Compression of Empty Slots
|
||||
if (itemindex <= 0 && !HasNew) // Compression of Empty Slots
|
||||
continue;
|
||||
|
||||
int.TryParse(dgv.Rows[i].Cells[c++].Value?.ToString(), out int itemcnt);
|
||||
|
@ -219,7 +218,7 @@ namespace PKHeX.WinForms
|
|||
else
|
||||
itemcnt = pouch.MaxCount; // Cap at pouch maximum
|
||||
}
|
||||
else if (itemcnt <= 0 && !roto)
|
||||
else if (itemcnt <= 0 && !HasNew)
|
||||
continue; // ignore item
|
||||
|
||||
pouch.Items[ctr] = new InventoryItem { Index = itemindex, Count = itemcnt };
|
||||
|
|
Loading…
Add table
Reference in a new issue