private string GetSlotInfo(SlotCache entry) { return(entry.Source switch { SlotInfoBox box => $"[Box {box.Box + 1}, Slot {box.Slot + 1}]", SlotInfoParty party => $"[Party, Slot {party.Slot}]", _ => "" });
private void ClickDelete(object sender, EventArgs e) { var pb = WinFormsUtil.GetUnderlyingControl <PictureBox>(sender); int index = Array.IndexOf(PKXBOXES, pb); if (!GetShiftedIndex(ref index)) { System.Media.SystemSounds.Exclamation.Play(); return; } var pk = Results[index]; string path = pk.Identifier; #if LOADALL if (path.StartsWith(EXTERNAL_SAV)) { WinFormsUtil.Alert(MsgDBDeleteFailBackup); return; } #endif if (path.Contains(Path.DirectorySeparatorChar)) { // Data from Database: Delete file from disk if (File.Exists(path)) { File.Delete(path); } } else { // Data from Box: Delete from save file int box = pk.Box - 1; int slot = pk.Slot - 1; var change = new SlotInfoBox(box, slot); var pkSAV = change.Read(SAV); if (!pkSAV.DecryptedBoxData.SequenceEqual(pk.DecryptedBoxData)) // data still exists in SAV, unmodified { WinFormsUtil.Error(MsgDBDeleteFailModified, MsgDBDeleteFailWarning); return; } BoxView.EditEnv.Slots.Delete(change); } // Remove from database. RawDB.Remove(pk); Results.Remove(pk); // Refresh database view. L_Count.Text = string.Format(Counter, Results.Count); slotSelected = -1; FillPKXBoxes(SCR_Box.Value); System.Media.SystemSounds.Asterisk.Play(); }
private static void AddBoxData(SaveFile sav, ConcurrentBag <SlotCache> db) { var bd = sav.BoxData; var bc = sav.BoxCount; var sc = sav.BoxSlotCount; int ctr = 0; for (int box = 0; box < bc; box++) { for (int slot = 0; slot < sc; slot++, ctr++) { var ident = new SlotInfoBox(box, slot); var result = new SlotCache(ident, bd[ctr], sav); db.Add(result); } } }
private bool Equals(SlotInfoBox other) => Box == other.Box && Slot == other.Slot;