Exemplo n.º 1
0
        // Important Events
        private void ClickView(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;
            }

            PKME_Tabs.PopulateFields(Results[index], false);
            slotSelected = index;
            slotColor    = Resources.slotView;
            FillPKXBoxes(SCR_Box.Value);
            L_Viewed.Text = string.Format(Viewed, Results[index].Identifier);
        }
Exemplo n.º 2
0
        private int GetSenderIndex(object sender)
        {
            var pb    = WinFormsUtil.GetUnderlyingControl <PictureBox>(sender);
            int index = Array.IndexOf(PKXBOXES, pb);

            if (index >= RES_MAX)
            {
                System.Media.SystemSounds.Exclamation.Play();
                return(-1);
            }
            index += SCR_Box.Value * RES_MIN;
            if (index >= Results.Count)
            {
                System.Media.SystemSounds.Exclamation.Play();
                return(-1);
            }
            return(index);
        }
Exemplo n.º 3
0
        private void ClickView(object sender, EventArgs e)
        {
            var pb    = WinFormsUtil.GetUnderlyingControl <PictureBox>(sender);
            int index = Box.Entries.IndexOf(pb);

            var group = Groups[CurrentGroup];

            View.PopulateFields(group.Slots[index], false);

            if (slotSelected != index && (uint)slotSelected < Box.Entries.Count)
            {
                Box.Entries[slotSelected].BackgroundImage = null;
            }

            groupSelected = CurrentGroup;
            slotSelected  = index;
            Box.Entries[index].BackgroundImage = SpriteUtil.Spriter.View;
        }
Exemplo n.º 4
0
        private void ClickSet(object sender, EventArgs e)
        {
            if (!IsSpecialWonderCard(mg))
            {
                return;
            }

            sender = WinFormsUtil.GetUnderlyingControl(sender);
            int index = Array.IndexOf(pba, sender);

            // Hijack to the latest unfilled slot if index creates interstitial empty slots.
            int lastUnfilled = GetLastUnfilledByType(mg, mga);

            if (lastUnfilled > -1 && lastUnfilled < index)
            {
                index = lastUnfilled;
            }

            if (mg is PCD pcd && mga.Gifts[index] is PGT)
            {
                mg = pcd.Gift;
            }
Exemplo n.º 5
0
        // Important Events
        private void ClickView(object sender, EventArgs e)
        {
            sender = WinFormsUtil.GetUnderlyingControl(sender);
            int index = Array.IndexOf(PKXBOXES, sender);

            if (index >= RES_MAX)
            {
                System.Media.SystemSounds.Exclamation.Play();
                return;
            }
            index += SCR_Box.Value * RES_MIN;
            if (index >= Results.Count)
            {
                System.Media.SystemSounds.Exclamation.Play();
                return;
            }

            PKME_Tabs.PopulateFields(Results[index].ConvertToPKM(SAV), false);
            slotSelected = index;
            slotColor    = Properties.Resources.slotView;
            FillPKXBoxes(SCR_Box.Value);
        }
Exemplo n.º 6
0
        private void ClickSet(object sender, EventArgs e)
        {
            if (!mg.IsCardCompatible(SAV, out var msg))
            {
                WinFormsUtil.Alert(MsgMysteryGiftSlotFail, msg);
                return;
            }

            var pb    = WinFormsUtil.GetUnderlyingControl <PictureBox>(sender);
            int index = Array.IndexOf(pba, pb);

            // Hijack to the latest unfilled slot if index creates interstitial empty slots.
            int lastUnfilled = GetLastUnfilledByType(mg, mga);

            if (lastUnfilled > -1 && lastUnfilled < index)
            {
                index = lastUnfilled;
            }

            if (mg is PCD pcd && mga.Gifts[index] is PGT)
            {
                mg = pcd.Gift;
            }
Exemplo n.º 7
0
        private void ClickDelete(object sender, EventArgs e)
        {
            sender = WinFormsUtil.GetUnderlyingControl(sender);
            int index = Array.IndexOf(PKXBOXES, sender);

            if (index >= RES_MAX)
            {
                System.Media.SystemSounds.Exclamation.Play();
                return;
            }
            index += SCR_Box.Value * RES_MIN;
            if (index >= Results.Count)
            {
                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;
                int offset = SAV.GetBoxOffset(box) + (slot * SAV.SIZE_STORED);
                PKM pkSAV  = SAV.GetStoredSlot(offset);

                if (!pkSAV.DecryptedBoxData.SequenceEqual(pk.DecryptedBoxData)) // data still exists in SAV, unmodified
                {
                    WinFormsUtil.Error(MsgDBDeleteFailModified, MsgDBDeleteFailWarning);
                    return;
                }
                var change = new SlotChange {
                    Box = box, Offset = offset, Slot = slot
                };
                BoxView.M.SetPKM(BoxView.SAV.BlankPKM, change, true, Properties.Resources.slotDel);
            }
            // 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();
        }