private void BtnTargetSettings_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { Control c = (Control)sender; Point locate = new Point(c.Location.X + e.Location.X, ((Control)sender).Location.Y + e.Location.Y); ContextMenuStrip columnsMenu = new ContextMenuStrip(); ((ToolStripMenuItem)columnsMenu.Items.Add("Big endian", null, new EventHandler((ob, ev) => { FileWatch.currentFileInfo.bigEndian = !FileStub.FileWatch.currentFileInfo.bigEndian; if (VanguardCore.vanguardConnected) { FileWatch.UpdateDomains(); } }))).Checked = FileWatch.currentFileInfo.bigEndian; ((ToolStripMenuItem)columnsMenu.Items.Add("Auto-Uncorrupt", null, new EventHandler((ob, ev) => { FileWatch.currentFileInfo.autoUncorrupt = !FileWatch.currentFileInfo.autoUncorrupt; }))).Checked = FileWatch.currentFileInfo.autoUncorrupt; ((ToolStripMenuItem)columnsMenu.Items.Add("Use Caching + Multithreading", null, new EventHandler((ob, ev) => { FileWatch.currentFileInfo.useCacheAndMultithread = !FileWatch.currentFileInfo.useCacheAndMultithread; }))).Checked = FileWatch.currentFileInfo.useCacheAndMultithread; columnsMenu.Show(this, locate); } }
private void btnSendList_Click(object sender, EventArgs e) { if (lbMultipleFiles.Items.Count == 0) { MessageBox.Show("No files are selected"); return; } FileWatch.CloseTarget(false); List <string> allFiles = new List <string>(); for (int i = 0; i < lbMultipleFiles.Items.Count; i++) { allFiles.Add(lbMultipleFiles.Items[i].ToString()); } allFiles.Sort(); string multipleFiles = ""; for (int i = 0; i < allFiles.Count; i++) { multipleFiles += allFiles[i]; if (i < allFiles.Count - 1) { multipleFiles += "|"; } } var mfi = new MultipleFileInterface(multipleFiles, FileWatch.currentFileInfo.bigEndian, FileWatch.currentFileInfo.useAutomaticBackups); if (FileWatch.currentFileInfo.useCacheAndMultithread) { mfi.getMemoryDump(); } FileWatch.currentFileInfo.targetInterface = mfi; if (VanguardCore.vanguardConnected) { FileWatch.UpdateDomains(); } this.DialogResult = DialogResult.OK; this.Close(); }
internal static bool LoadTargets(FileTarget[] provided = null) { FileTarget[] targets; string requestedFileType = currentSession.selectedTargetType; if (provided == null) { var lbTargets = S.GET <StubForm>().lbTargets; if (lbTargets.Items.Count == 0) { MessageBox.Show("No targets scheduled for loading. Aborting loading."); return(false); } targets = lbTargets.Items.Cast <FileTarget>().ToArray(); } else { targets = provided; } if (requestedFileType == TargetType.SINGLE_FILE) { FileInterface.identity = FileInterfaceIdentity.SELF_DESCRIBE; var target = targets[0]; string filename = targets[0].ToString(); target.BigEndian = FileWatch.currentSession.bigEndian; CloseActiveTargets(false); FileInterface fi = null; Action <object, EventArgs> action = (ob, ea) => { fi = new FileInterface(target); if (FileWatch.currentSession.useCacheAndMultithread) { fi.getMemoryDump(); } }; Action <object, EventArgs> postAction = (ob, ea) => { if (fi == null || fi.lastMemorySize == null) { MessageBox.Show("Failed to load target"); S.GET <StubForm>().DisableTargetInterface(); return; } FileWatch.currentSession.targetShortName = fi.ShortFilename; FileWatch.currentSession.targetFullName = fi.Filename; FileWatch.currentSession.fileInterface = fi; S.GET <StubForm>().lbTarget.Text = fi.GetType().ToString() + "|MemorySize:" + fi.lastMemorySize.ToString(); if (VanguardCore.vanguardConnected) { UpdateDomains(); } //Refresh the UI //RefreshUIPostLoad(); }; S.GET <StubForm>().RunProgressBar($"Loading target...", 0, action, postAction); } else //MULTIPLE_FILE { switch (currentSession.selectedTargetType) { case TargetType.MULTIPLE_FILE_SINGLEDOMAIN: FileInterface.identity = FileInterfaceIdentity.SELF_DESCRIBE; break; case TargetType.MULTIPLE_FILE_MULTIDOMAIN: default: FileInterface.identity = FileInterfaceIdentity.HASHED_PREFIX; break; case TargetType.MULTIPLE_FILE_MULTIDOMAIN_FULLPATH: FileInterface.identity = FileInterfaceIdentity.FULL_PATH; break; } foreach (var target in targets) { target.BigEndian = FileWatch.currentSession.bigEndian; } var mfi = new MultipleFileInterface(targets, FileWatch.currentSession.bigEndian, FileWatch.currentSession.useAutomaticBackups); if (FileWatch.currentSession.useCacheAndMultithread) { mfi.getMemoryDump(); } FileWatch.currentSession.fileInterface = mfi; if (VanguardCore.vanguardConnected) { FileWatch.UpdateDomains(); } S.GET <StubForm>().lbTarget.Text = mfi.ShortFilename + "|MemorySize:" + mfi.lastMemorySize.ToString(); StockpileManagerEmuSide.UnCorruptBL = null; } return(true); }