// 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); }
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); }
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; }
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; }
// 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); }
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; }
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(); }