diff --git a/PKHeX.WinForms/MainWindow/DragDropManager.cs b/PKHeX.WinForms/MainWindow/DragDropManager.cs
new file mode 100644
index 000000000..9346b08ba
--- /dev/null
+++ b/PKHeX.WinForms/MainWindow/DragDropManager.cs
@@ -0,0 +1,94 @@
+using PKHeX.Core;
+
+namespace PKHeX.WinForms
+{
+ public class DragDropManager
+ {
+ private readonly SaveFile SAV;
+
+ public bool LeftMouseIsDown;
+ public bool RightMouseIsDown;
+ public bool DragDropInProgress;
+
+ public object Cursor;
+ public string CurrentPath;
+
+ public DragLocation Source = new DragLocation();
+ public DragLocation Destination = new DragLocation();
+
+ public DragDropManager(SaveFile sav)
+ {
+ SAV = sav;
+ Source.Data = SAV.BlankPKM.EncryptedPartyData;
+ }
+
+ public class DragLocation
+ {
+ public object Parent;
+ public byte[] Data;
+ public int Offset = -1;
+ public int Slot = -1;
+ public int Box = -1;
+
+ public bool IsParty => 30 <= Slot && Slot < 36;
+ public bool IsValid => Slot > -1 && (Box > -1 || IsParty);
+ }
+
+ public bool SameBox => Source.Box > -1 && Source.Box == Destination.Box;
+ public bool SameSlot => Source.Slot == Destination.Slot && Source.Box == Destination.Box;
+
+ // PKM Get Set
+ public PKM GetPKM(bool src)
+ {
+ var slot = src ? Source : Destination;
+ int o = slot.Offset;
+ return slot.IsParty ? SAV.getPartySlot(o) : SAV.getStoredSlot(o);
+ }
+ public void SetPKM(PKM pk, bool src)
+ {
+ var slot = src ? Source : Destination;
+ int o = slot.Offset;
+ if (!slot.IsParty)
+ { SAV.setStoredSlot(pk, o); return; }
+
+ if (src)
+ {
+ if (pk.Species == 0) // Empty Slot
+ {
+ SAV.deletePartySlot(Source.Slot - 30);
+ return;
+ }
+ }
+ else
+ {
+ if (30 + SAV.PartyCount < slot.Slot)
+ {
+ o = SAV.getPartyOffset(SAV.PartyCount);
+ slot.Slot = 30 + SAV.PartyCount;
+ }
+ }
+
+ if (pk.Stat_HPMax == 0) // Without Stats (Box)
+ {
+ pk.setStats(pk.getStats(SAV.Personal.getFormeEntry(pk.Species, pk.AltForm)));
+ pk.Stat_Level = pk.CurrentLevel;
+ }
+ SAV.setPartySlot(pk, o);
+ }
+
+ public bool? WasDragParticipant(object form, int index)
+ {
+ if (Destination.Box != index && Source.Box != index)
+ return null; // form was not watching box
+ return Source.Parent == form || Destination.Parent == form; // form already updated?
+ }
+
+ public void Reset()
+ {
+ LeftMouseIsDown = RightMouseIsDown = DragDropInProgress = false;
+ Cursor = CurrentPath = null;
+ Source = new DragLocation();
+ Destination = new DragLocation();
+ }
+ }
+}
diff --git a/PKHeX.WinForms/MainWindow/Main.cs b/PKHeX.WinForms/MainWindow/Main.cs
index 67cfb6595..4b9ab2d14 100644
--- a/PKHeX.WinForms/MainWindow/Main.cs
+++ b/PKHeX.WinForms/MainWindow/Main.cs
@@ -22,7 +22,6 @@ public Main()
{
#region Initialize Form
new Thread(() => new SplashScreen().ShowDialog()).Start();
- DragInfo.slotPkmSource = SAV.BlankPKM.EncryptedPartyData;
InitializeComponent();
// Check for Updates
@@ -1034,6 +1033,7 @@ private void openSAV(SaveFile sav, string path)
PKM pk = preparePKM();
populateFields(SAV.BlankPKM);
SAV = sav;
+ DragInfo = new DragDropManager(SAV);
string title = $"PKH{(HaX ? "a" : "e")}X ({Resources.ProgramVersion}) - " + $"{SAV.GetType().Name}: ";
if (path != null) // Actual save file
@@ -2859,7 +2859,6 @@ private void updateTSV(object sender, EventArgs e)
Tip2.SetToolTip(TB_SID, IDstr);
pkm.PID = Util.getHEXval(TB_PID.Text);
- var PSV = pkm.PSV;
Tip3.SetToolTip(TB_PID, $"PSV: {pkm.PSV:d4}");
}
private void update_ID(object sender, EventArgs e)
@@ -4248,8 +4247,9 @@ private void clickSaveFileName(object sender, EventArgs e)
}
// Drag and drop related functions
- private static Image OriginalBackground;
- private static Image CurrentBackground;
+ public static DragDropManager DragInfo;
+ private Image OriginalBackground;
+ private Image CurrentBackground;
private void pbBoxSlot_MouseEnter(object sender, EventArgs e)
{
var pb = (PictureBox) sender;
@@ -4269,29 +4269,29 @@ private void pbBoxSlot_MouseLeave(object sender, EventArgs e)
}
private void pbBoxSlot_MouseClick(object sender, MouseEventArgs e)
{
- if (!DragInfo.slotDragDropInProgress)
+ if (!DragInfo.DragDropInProgress)
clickSlot(sender, e);
}
private void pbBoxSlot_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
- DragInfo.slotLeftMouseIsDown = false;
+ DragInfo.LeftMouseIsDown = false;
if (e.Button == MouseButtons.Right)
- DragInfo.slotRightMouseIsDown = false;
+ DragInfo.RightMouseIsDown = false;
}
private void pbBoxSlot_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
- DragInfo.slotLeftMouseIsDown = true;
+ DragInfo.LeftMouseIsDown = true;
if (e.Button == MouseButtons.Right)
- DragInfo.slotRightMouseIsDown = true;
+ DragInfo.RightMouseIsDown = true;
}
private void pbBoxSlot_MouseMove(object sender, MouseEventArgs e)
{
- if (DragInfo.slotDragDropInProgress)
+ if (DragInfo.DragDropInProgress)
return;
- if (!DragInfo.slotLeftMouseIsDown)
+ if (!DragInfo.LeftMouseIsDown)
return;
// The goal is to create a temporary PKX file for the underlying Pokemon
@@ -4308,19 +4308,19 @@ private void pbBoxSlot_MouseMove(object sender, MouseEventArgs e)
return;
// Set flag to prevent re-entering.
- DragInfo.slotDragDropInProgress = true;
+ DragInfo.DragDropInProgress = true;
- DragInfo.slotSource = this;
- DragInfo.slotSourceSlotNumber = slot;
- DragInfo.slotSourceBoxNumber = box;
- DragInfo.slotSourceOffset = getPKXOffset(DragInfo.slotSourceSlotNumber);
+ DragInfo.Source.Parent = this;
+ DragInfo.Source.Slot = slot;
+ DragInfo.Source.Box = box;
+ DragInfo.Source.Offset = getPKXOffset(DragInfo.Source.Slot);
// Prepare Data
- DragInfo.slotPkmSource = SAV.getData(DragInfo.slotSourceOffset, SAV.SIZE_STORED);
+ DragInfo.Source.Data = SAV.getData(DragInfo.Source.Offset, SAV.SIZE_STORED);
// Make a new file name based off the PID
bool encrypt = ModifierKeys == Keys.Control;
- byte[] dragdata = SAV.decryptPKM(DragInfo.slotPkmSource);
+ byte[] dragdata = SAV.decryptPKM(DragInfo.Source.Data);
Array.Resize(ref dragdata, SAV.SIZE_STORED);
PKM pkx = SAV.getPKM(dragdata);
string fn = pkx.FileName; fn = fn.Substring(0, fn.LastIndexOf('.'));
@@ -4338,22 +4338,22 @@ private void pbBoxSlot_MouseMove(object sender, MouseEventArgs e)
// Thread Blocks on DoDragDrop
DragInfo.CurrentPath = newfile;
DragDropEffects result = pb.DoDragDrop(new DataObject(DataFormats.FileDrop, new[] { newfile }), DragDropEffects.Move);
- if (!DragInfo.SourceValid || result != DragDropEffects.Link) // not dropped to another box slot, restore img
+ if (!DragInfo.Source.IsValid || result != DragDropEffects.Link) // not dropped to another box slot, restore img
pb.Image = img;
else // refresh image
- getQuickFiller(pb, SAV.getStoredSlot(DragInfo.slotSourceOffset));
+ getQuickFiller(pb, SAV.getStoredSlot(DragInfo.Source.Offset));
pb.BackgroundImage = null;
- if (DragInfo.SameBox && DragInfo.DestinationValid)
+ if (DragInfo.SameBox && DragInfo.Destination.IsValid)
{
- if (SAV.getIsTeamSet(box, DragInfo.slotDestinationSlotNumber) ^ SAV.getIsTeamSet(box, DragInfo.slotSourceSlotNumber))
- getQuickFiller(SlotPictureBoxes[DragInfo.slotDestinationSlotNumber], SAV.getStoredSlot(DragInfo.slotDestinationOffset));
+ if (SAV.getIsTeamSet(box, DragInfo.Destination.Slot) ^ SAV.getIsTeamSet(box, DragInfo.Source.Slot))
+ getQuickFiller(SlotPictureBoxes[DragInfo.Destination.Slot], SAV.getStoredSlot(DragInfo.Destination.Offset));
else
- SlotPictureBoxes[DragInfo.slotDestinationSlotNumber].Image = img;
+ SlotPictureBoxes[DragInfo.Destination.Slot].Image = img;
}
if (result == DragDropEffects.Copy) // viewed in tabs, apply 'view' highlight
- getSlotColor(DragInfo.slotSourceSlotNumber, Resources.slotView);
+ getSlotColor(DragInfo.Source.Slot, Resources.slotView);
}
catch (Exception x)
{
@@ -4371,28 +4371,28 @@ private void pbBoxSlot_MouseMove(object sender, MouseEventArgs e)
if (File.Exists(newfile) && DragInfo.CurrentPath == null)
File.Delete(newfile);
}).Start();
- if (DragInfo.SourceParty || DragInfo.DestinationParty)
+ if (DragInfo.Source.IsParty || DragInfo.Destination.IsParty)
setParty();
}
private void pbBoxSlot_DragDrop(object sender, DragEventArgs e)
{
- DragInfo.slotDestination = this;
- DragInfo.slotDestinationSlotNumber = getSlot(sender);
- DragInfo.slotDestinationOffset = getPKXOffset(DragInfo.slotDestinationSlotNumber);
- DragInfo.slotDestinationBoxNumber = DragInfo.DestinationParty ? -1 : CB_BoxSelect.SelectedIndex;
+ DragInfo.Destination.Parent = this;
+ DragInfo.Destination.Slot = getSlot(sender);
+ DragInfo.Destination.Offset = getPKXOffset(DragInfo.Destination.Slot);
+ DragInfo.Destination.Box = DragInfo.Destination.IsParty ? -1 : CB_BoxSelect.SelectedIndex;
// Check for In-Dropped files (PKX,SAV,ETC)
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
if (Directory.Exists(files[0])) { loadBoxesFromDB(files[0]); return; }
if (DragInfo.SameSlot)
return;
- if (SAV.getIsSlotLocked(DragInfo.slotDestinationBoxNumber, DragInfo.slotDestinationSlotNumber))
+ if (SAV.getIsSlotLocked(DragInfo.Destination.Box, DragInfo.Destination.Slot))
{
- DragInfo.slotDestinationSlotNumber = -1; // Invalidate
+ DragInfo.Destination.Slot = -1; // Invalidate
WinFormsUtil.Alert("Unable to set to locked slot.");
return;
}
- if (DragInfo.slotSourceOffset < 0) // file
+ if (DragInfo.Source.Offset < 0) // file
{
if (files.Length <= 0)
return;
@@ -4417,50 +4417,50 @@ private void pbBoxSlot_DragDrop(object sender, DragEventArgs e)
{ Console.WriteLine(c); Console.WriteLine(concat); return; }
}
- DragInfo.setPKMtoDestination(SAV, pk);
- getQuickFiller(SlotPictureBoxes[DragInfo.slotDestinationSlotNumber], pk);
- getSlotColor(DragInfo.slotDestinationSlotNumber, Resources.slotSet);
+ DragInfo.SetPKM(pk, false);
+ getQuickFiller(SlotPictureBoxes[DragInfo.Destination.Slot], pk);
+ getSlotColor(DragInfo.Destination.Slot, Resources.slotSet);
Console.WriteLine(c);
}
else
{
- PKM pkz = DragInfo.getPKMfromSource(SAV);
- if (!DragInfo.SourceValid) { } // not overwritable, do nothing
- else if (ModifierKeys == Keys.Alt && DragInfo.DestinationValid) // overwrite delete old slot
+ PKM pkz = DragInfo.GetPKM(true);
+ if (!DragInfo.Source.IsValid) { } // not overwritable, do nothing
+ else if (ModifierKeys == Keys.Alt && DragInfo.Destination.IsValid) // overwrite delete old slot
{
// Clear from slot
if (DragInfo.SameBox)
- getQuickFiller(SlotPictureBoxes[DragInfo.slotSourceSlotNumber], SAV.BlankPKM); // picturebox
+ getQuickFiller(SlotPictureBoxes[DragInfo.Source.Slot], SAV.BlankPKM); // picturebox
- DragInfo.setPKMtoSource(SAV, SAV.BlankPKM);
+ DragInfo.SetPKM(SAV.BlankPKM, true);
}
- else if (ModifierKeys != Keys.Control && DragInfo.DestinationValid)
+ else if (ModifierKeys != Keys.Control && DragInfo.Destination.IsValid)
{
// Load data from destination
PKM pk = ((PictureBox) sender).Image != null
- ? DragInfo.getPKMfromDestination(SAV)
+ ? DragInfo.GetPKM(false)
: SAV.BlankPKM;
// Set destination pokemon image to source picture box
if (DragInfo.SameBox)
- getQuickFiller(SlotPictureBoxes[DragInfo.slotSourceSlotNumber], pk);
+ getQuickFiller(SlotPictureBoxes[DragInfo.Source.Slot], pk);
// Set destination pokemon data to source slot
- DragInfo.setPKMtoSource(SAV, pk);
+ DragInfo.SetPKM(pk, true);
}
else if (DragInfo.SameBox)
- getQuickFiller(SlotPictureBoxes[DragInfo.slotSourceSlotNumber], pkz);
+ getQuickFiller(SlotPictureBoxes[DragInfo.Source.Slot], pkz);
// Copy from temp to destination slot.
- DragInfo.setPKMtoDestination(SAV, pkz);
- getQuickFiller(SlotPictureBoxes[DragInfo.slotDestinationSlotNumber], pkz);
+ DragInfo.SetPKM(pkz, false);
+ getQuickFiller(SlotPictureBoxes[DragInfo.Destination.Slot], pkz);
e.Effect = DragDropEffects.Link;
Cursor = DefaultCursor;
}
- if (DragInfo.SourceParty || DragInfo.DestinationParty)
+ if (DragInfo.Source.IsParty || DragInfo.Destination.IsParty)
setParty();
- if (DragInfo.slotSource == null) // another instance or file
+ if (DragInfo.Source.Parent == null) // another instance or file
{
notifyBoxViewerRefresh();
DragInfo.Reset();
@@ -4473,120 +4473,18 @@ private void pbBoxSlot_DragEnter(object sender, DragEventArgs e)
else if (e.Data != null) // within
e.Effect = DragDropEffects.Move;
- if (DragInfo.slotDragDropInProgress)
+ if (DragInfo.DragDropInProgress)
Cursor = (Cursor)DragInfo.Cursor;
}
private void pbBoxSlot_QueryContinueDrag(object sender, QueryContinueDragEventArgs e)
{
if (e.Action == DragAction.Cancel || e.Action == DragAction.Drop)
{
- DragInfo.slotLeftMouseIsDown = false;
- DragInfo.slotRightMouseIsDown = false;
- DragInfo.slotDragDropInProgress = false;
+ DragInfo.LeftMouseIsDown = false;
+ DragInfo.RightMouseIsDown = false;
+ DragInfo.DragDropInProgress = false;
}
}
-
- public static class DragInfo
- {
- public static bool slotLeftMouseIsDown;
- public static bool slotRightMouseIsDown;
- public static bool slotDragDropInProgress;
-
- public static byte[] slotPkmSource;
- public static byte[] slotPkmDestination;
-
- public static object slotSource;
- public static int slotSourceOffset = -1;
- public static int slotSourceSlotNumber = -1;
- public static int slotSourceBoxNumber = -1;
-
- public static object slotDestination;
- public static int slotDestinationOffset = -1;
- public static int slotDestinationSlotNumber = -1;
- public static int slotDestinationBoxNumber = -1;
-
- public static object Cursor;
- public static string CurrentPath;
-
- public static bool SameBox => slotSourceBoxNumber > -1 && slotSourceBoxNumber == slotDestinationBoxNumber;
- public static bool SameSlot => slotSourceSlotNumber == slotDestinationSlotNumber && slotSourceBoxNumber == slotDestinationBoxNumber;
- public static bool SourceValid => slotSourceSlotNumber > -1 && (slotSourceBoxNumber > -1 || SourceParty);
- public static bool DestinationValid => slotDestinationSlotNumber > -1 && (slotDestinationBoxNumber > -1 || DestinationParty);
- public static bool SourceParty => 30 <= slotSourceSlotNumber && slotSourceSlotNumber < 36;
- public static bool DestinationParty => 30 <= slotDestinationSlotNumber && slotDestinationSlotNumber < 36;
-
- // PKM Get Set
- public static PKM getPKMfromSource(SaveFile SAV)
- {
- int o = slotSourceOffset;
- return SourceParty ? SAV.getPartySlot(o) : SAV.getStoredSlot(o);
- }
- public static PKM getPKMfromDestination(SaveFile SAV)
- {
- int o = slotDestinationOffset;
- return DestinationParty ? SAV.getPartySlot(o) : SAV.getStoredSlot(o);
- }
- public static void setPKMtoSource(SaveFile SAV, PKM pk)
- {
- int o = slotSourceOffset;
- if (!SourceParty)
- { SAV.setStoredSlot(pk, o); return; }
-
- if (pk.Species == 0) // Empty Slot
- { SAV.deletePartySlot(slotSourceSlotNumber-30); return; }
-
- if (pk.Stat_HPMax == 0) // Without Stats (Box)
- {
- pk.setStats(pk.getStats(SAV.Personal.getFormeEntry(pk.Species, pk.AltForm)));
- pk.Stat_Level = pk.CurrentLevel;
- }
- SAV.setPartySlot(pk, o);
- }
- public static void setPKMtoDestination(SaveFile SAV, PKM pk)
- {
- int o = slotDestinationOffset;
- if (!DestinationParty)
- { SAV.setStoredSlot(pk, o); return; }
-
- if (30 + SAV.PartyCount < slotDestinationSlotNumber)
- {
- o = SAV.getPartyOffset(SAV.PartyCount);
- slotDestinationSlotNumber = 30 + SAV.PartyCount;
- }
- if (pk.Stat_HPMax == 0) // Without Stats (Box/File)
- {
- pk.setStats(pk.getStats(SAV.Personal.getFormeEntry(pk.Species, pk.AltForm)));
- pk.Stat_Level = pk.CurrentLevel;
- }
- SAV.setPartySlot(pk, o);
- }
-
- public static void Reset()
- {
- slotLeftMouseIsDown = false;
- slotRightMouseIsDown = false;
- slotDragDropInProgress = false;
-
- slotPkmSource = null;
- slotSourceOffset = slotSourceSlotNumber = slotSourceBoxNumber = -1;
- slotPkmDestination = null;
- slotDestinationOffset = slotSourceBoxNumber = slotDestinationBoxNumber = -1;
-
- Cursor = null;
- CurrentPath = null;
-
- slotSource = null;
- slotDestination = null;
- }
-
- public static bool? WasDragParticipant(object form, int index)
- {
- if (slotDestinationBoxNumber != index && slotSourceBoxNumber != index)
- return null; // form was not watching box
- return slotSource == form || slotDestination == form; // form already updated?
- }
- }
-
#endregion
}
}
diff --git a/PKHeX.WinForms/PKHeX.WinForms.csproj b/PKHeX.WinForms/PKHeX.WinForms.csproj
index 0fce22803..e47f353c0 100644
--- a/PKHeX.WinForms/PKHeX.WinForms.csproj
+++ b/PKHeX.WinForms/PKHeX.WinForms.csproj
@@ -165,6 +165,7 @@
+
Form
diff --git a/PKHeX.WinForms/Subforms/Save Editors/SAV_BoxViewer.cs b/PKHeX.WinForms/Subforms/Save Editors/SAV_BoxViewer.cs
index 8c2925148..1ba527297 100644
--- a/PKHeX.WinForms/Subforms/Save Editors/SAV_BoxViewer.cs
+++ b/PKHeX.WinForms/Subforms/Save Editors/SAV_BoxViewer.cs
@@ -157,23 +157,23 @@ private void pbBoxSlot_MouseLeave(object sender, EventArgs e)
private void pbBoxSlot_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
- DragInfo.slotLeftMouseIsDown = false;
+ DragInfo.LeftMouseIsDown = false;
if (e.Button == MouseButtons.Right)
- DragInfo.slotRightMouseIsDown = false;
+ DragInfo.RightMouseIsDown = false;
}
private void pbBoxSlot_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
- DragInfo.slotLeftMouseIsDown = true;
+ DragInfo.LeftMouseIsDown = true;
if (e.Button == MouseButtons.Right)
- DragInfo.slotRightMouseIsDown = true;
+ DragInfo.RightMouseIsDown = true;
}
private void pbBoxSlot_MouseMove(object sender, MouseEventArgs e)
{
- if (DragInfo.slotDragDropInProgress)
+ if (DragInfo.DragDropInProgress)
return;
- if (!DragInfo.slotLeftMouseIsDown)
+ if (!DragInfo.LeftMouseIsDown)
return;
// The goal is to create a temporary PKX file for the underlying Pokemon
@@ -190,18 +190,18 @@ private void pbBoxSlot_MouseMove(object sender, MouseEventArgs e)
return;
// Set flag to prevent re-entering.
- DragInfo.slotDragDropInProgress = true;
+ DragInfo.DragDropInProgress = true;
- DragInfo.slotSource = this;
- DragInfo.slotSourceSlotNumber = slot;
- DragInfo.slotSourceBoxNumber = box;
- DragInfo.slotSourceOffset = getPKXOffset(DragInfo.slotSourceSlotNumber);
+ DragInfo.Source.Parent = this;
+ DragInfo.Source.Slot = slot;
+ DragInfo.Source.Box = box;
+ DragInfo.Source.Offset = getPKXOffset(DragInfo.Source.Slot);
// Prepare Data
- DragInfo.slotPkmSource = SAV.getData(DragInfo.slotSourceOffset, SAV.SIZE_STORED);
+ DragInfo.Source.Data = SAV.getData(DragInfo.Source.Offset, SAV.SIZE_STORED);
// Make a new file name based off the PID
- byte[] dragdata = SAV.decryptPKM(DragInfo.slotPkmSource);
+ byte[] dragdata = SAV.decryptPKM(DragInfo.Source.Data);
Array.Resize(ref dragdata, SAV.SIZE_STORED);
PKM pkx = SAV.getPKM(dragdata);
string filename = pkx.FileName;
@@ -218,18 +218,18 @@ private void pbBoxSlot_MouseMove(object sender, MouseEventArgs e)
// Thread Blocks on DoDragDrop
DragInfo.CurrentPath = newfile;
DragDropEffects result = pb.DoDragDrop(new DataObject(DataFormats.FileDrop, new[] { newfile }), DragDropEffects.Move);
- if (!DragInfo.SourceValid || result != DragDropEffects.Link) // not dropped to another box slot, restore img
+ if (!DragInfo.Source.IsValid || result != DragDropEffects.Link) // not dropped to another box slot, restore img
pb.Image = img;
else // refresh image
- getQuickFiller(pb, SAV.getStoredSlot(DragInfo.slotSourceOffset));
+ getQuickFiller(pb, SAV.getStoredSlot(DragInfo.Source.Offset));
pb.BackgroundImage = null;
- if (DragInfo.SameBox && DragInfo.DestinationValid)
+ if (DragInfo.SameBox && DragInfo.Destination.IsValid)
{
- if (SAV.getIsTeamSet(box, DragInfo.slotDestinationSlotNumber) ^ SAV.getIsTeamSet(box, DragInfo.slotSourceSlotNumber))
- getQuickFiller(SlotPictureBoxes[DragInfo.slotDestinationSlotNumber], SAV.getStoredSlot(DragInfo.slotDestinationOffset));
+ if (SAV.getIsTeamSet(box, DragInfo.Destination.Slot) ^ SAV.getIsTeamSet(box, DragInfo.Source.Slot))
+ getQuickFiller(SlotPictureBoxes[DragInfo.Destination.Slot], SAV.getStoredSlot(DragInfo.Destination.Offset));
else
- SlotPictureBoxes[DragInfo.slotDestinationSlotNumber].Image = img;
+ SlotPictureBoxes[DragInfo.Destination.Slot].Image = img;
}
}
catch (Exception x)
@@ -251,21 +251,21 @@ private void pbBoxSlot_MouseMove(object sender, MouseEventArgs e)
}
private void pbBoxSlot_DragDrop(object sender, DragEventArgs e)
{
- DragInfo.slotDestination = this;
- DragInfo.slotDestinationSlotNumber = getSlot(sender);
- DragInfo.slotDestinationOffset = getPKXOffset(DragInfo.slotDestinationSlotNumber);
- DragInfo.slotDestinationBoxNumber = CB_BoxSelect.SelectedIndex;
+ DragInfo.Destination.Parent = this;
+ DragInfo.Destination.Slot = getSlot(sender);
+ DragInfo.Destination.Offset = getPKXOffset(DragInfo.Destination.Slot);
+ DragInfo.Destination.Box = CB_BoxSelect.SelectedIndex;
// Check for In-Dropped files (PKX,SAV,ETC)
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
if (Directory.Exists(files[0])) { return; }
- if (SAV.getIsSlotLocked(DragInfo.slotDestinationBoxNumber, DragInfo.slotDestinationSlotNumber))
+ if (SAV.getIsSlotLocked(DragInfo.Destination.Box, DragInfo.Destination.Slot))
{
- DragInfo.slotDestinationSlotNumber = -1; // Invalidate
+ DragInfo.Destination.Slot = -1; // Invalidate
WinFormsUtil.Alert("Unable to set to locked slot.");
return;
}
- if (DragInfo.slotSourceOffset < 0) // file
+ if (DragInfo.Source.Offset < 0) // file
{
if (files.Length <= 0)
return;
@@ -291,49 +291,49 @@ private void pbBoxSlot_DragDrop(object sender, DragEventArgs e)
{ Console.WriteLine(c); Console.WriteLine(concat); return; }
}
- DragInfo.setPKMtoDestination(SAV, pk);
- getQuickFiller(SlotPictureBoxes[DragInfo.slotDestinationSlotNumber], pk);
+ DragInfo.SetPKM(pk, false);
+ getQuickFiller(SlotPictureBoxes[DragInfo.Destination.Slot], pk);
Console.WriteLine(c);
}
else
{
- PKM pkz = DragInfo.getPKMfromSource(SAV);
- if (!DragInfo.SourceValid) { } // not overwritable, do nothing
- else if (ModifierKeys == Keys.Alt && DragInfo.DestinationValid) // overwrite
+ PKM pkz = DragInfo.GetPKM(true);
+ if (!DragInfo.Source.IsValid) { } // not overwritable, do nothing
+ else if (ModifierKeys == Keys.Alt && DragInfo.Destination.IsValid) // overwrite
{
// Clear from slot
if (DragInfo.SameBox)
- getQuickFiller(SlotPictureBoxes[DragInfo.slotSourceSlotNumber], SAV.BlankPKM); // picturebox
+ getQuickFiller(SlotPictureBoxes[DragInfo.Source.Slot], SAV.BlankPKM); // picturebox
- DragInfo.setPKMtoSource(SAV, SAV.BlankPKM);
+ DragInfo.SetPKM(SAV.BlankPKM, true);
}
- else if (ModifierKeys != Keys.Control && DragInfo.DestinationValid) // move
+ else if (ModifierKeys != Keys.Control && DragInfo.Destination.IsValid) // move
{
// Load data from destination
PKM pk = ((PictureBox)sender).Image != null
- ? DragInfo.getPKMfromDestination(SAV)
+ ? DragInfo.GetPKM(false)
: SAV.BlankPKM;
// Set destination pokemon image to source picture box
if (DragInfo.SameBox)
- getQuickFiller(SlotPictureBoxes[DragInfo.slotSourceSlotNumber], pk);
+ getQuickFiller(SlotPictureBoxes[DragInfo.Source.Slot], pk);
// Set destination pokemon data to source slot
- DragInfo.setPKMtoSource(SAV, pk);
+ DragInfo.SetPKM(pk, true);
}
else if (DragInfo.SameBox) // clone
- getQuickFiller(SlotPictureBoxes[DragInfo.slotSourceSlotNumber], pkz);
+ getQuickFiller(SlotPictureBoxes[DragInfo.Source.Slot], pkz);
// Copy from temp to destination slot.
- DragInfo.setPKMtoDestination(SAV, pkz);
- getQuickFiller(SlotPictureBoxes[DragInfo.slotDestinationSlotNumber], pkz);
+ DragInfo.SetPKM(pkz, false);
+ getQuickFiller(SlotPictureBoxes[DragInfo.Destination.Slot], pkz);
e.Effect = DragDropEffects.Link;
Cursor = DefaultCursor;
}
- if (DragInfo.SourceParty || DragInfo.DestinationParty)
+ if (DragInfo.Source.IsParty || DragInfo.Destination.IsParty)
parent.setParty();
- if (DragInfo.slotSource == null) // another instance or file
+ if (DragInfo.Source.Parent == null) // another instance or file
{
parent.notifyBoxViewerRefresh();
DragInfo.Reset();
@@ -346,16 +346,16 @@ private void pbBoxSlot_DragEnter(object sender, DragEventArgs e)
else if (e.Data != null) // within
e.Effect = DragDropEffects.Move;
- if (DragInfo.slotDragDropInProgress)
+ if (DragInfo.DragDropInProgress)
Cursor = (Cursor)DragInfo.Cursor;
}
private void pbBoxSlot_QueryContinueDrag(object sender, QueryContinueDragEventArgs e)
{
if (e.Action == DragAction.Cancel || e.Action == DragAction.Drop)
{
- DragInfo.slotLeftMouseIsDown = false;
- DragInfo.slotRightMouseIsDown = false;
- DragInfo.slotDragDropInProgress = false;
+ DragInfo.LeftMouseIsDown = false;
+ DragInfo.RightMouseIsDown = false;
+ DragInfo.DragDropInProgress = false;
}
}