コード例 #1
0
 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}]",
         _ => ""
     });
コード例 #2
0
        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();
        }
コード例 #3
0
    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);
            }
        }
    }
コード例 #4
0
ファイル: SlotInfoBox.cs プロジェクト: Orionsilver/PK8toPK7
 private bool Equals(SlotInfoBox other) => Box == other.Box && Slot == other.Slot;