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) => { UnityWatch.currentFileInfo.bigEndian = !UnityStub.UnityWatch.currentFileInfo.bigEndian; if (VanguardCore.vanguardConnected) { UnityWatch.UpdateDomains(); } }))).Checked = UnityWatch.currentFileInfo.bigEndian; ((ToolStripMenuItem)columnsMenu.Items.Add("Auto-Uncorrupt", null, new EventHandler((ob, ev) => { UnityWatch.currentFileInfo.autoUncorrupt = !UnityWatch.currentFileInfo.autoUncorrupt; }))).Checked = UnityWatch.currentFileInfo.autoUncorrupt; ((ToolStripMenuItem)columnsMenu.Items.Add("Use Caching + Multithreading", null, new EventHandler((ob, ev) => { UnityWatch.currentFileInfo.useCacheAndMultithread = !UnityWatch.currentFileInfo.useCacheAndMultithread; }))).Checked = UnityWatch.currentFileInfo.useCacheAndMultithread; columnsMenu.Show(this, locate); } }
internal static bool LoadTarget() { FileInterface.identity = FileInterfaceIdentity.HASHED_PREFIX; string filename = null; OpenFileDialog OpenFileDialog1; OpenFileDialog1 = new OpenFileDialog(); OpenFileDialog1.Title = "Select the Game Executable"; OpenFileDialog1.Filter = "Executable Files|*.exe"; OpenFileDialog1.RestoreDirectory = true; if (OpenFileDialog1.ShowDialog() == DialogResult.OK) { if (OpenFileDialog1.FileName.ToString().Contains('^')) { MessageBox.Show("You can't use a file that contains the character ^ "); return(false); } filename = OpenFileDialog1.FileName; } else { return(false); } if (!CloseTarget(false)) { return(false); } FileInfo unityExeFile = new FileInfo(filename); UnityWatch.currentFileInfo.targetShortName = unityExeFile.Name; UnityWatch.currentFileInfo.targetFullName = unityExeFile.FullName; DirectoryInfo unityFolder = unityExeFile.Directory; var allFiles = DirSearch(unityFolder.FullName).ToArray(); if (allFiles.FirstOrDefault(it => it.ToUpper().Contains("UNITY")) == null) { MessageBox.Show("Could not find unity files"); return(false); } var allDllFiles = allFiles.Where(it => it.ToUpper().EndsWith(".DLL")).ToArray(); var allUnityDllFiles = allDllFiles.Where(it => it.ToUpper().Contains("UNITY")).ToArray(); var unityEngineDll = allDllFiles.Where(it => it.ToUpper().Contains("UNITYENGINE.DLL")).ToArray(); List <string> targetFiles = new List <string>(); switch (UnityWatch.currentFileInfo.selectedTargetType) { case TargetType.UNITYEXE: targetFiles.Add(unityExeFile.FullName); break; case TargetType.UNITYEXE_ALLDLL: targetFiles.Add(unityExeFile.FullName); targetFiles.AddRange(allDllFiles); break; case TargetType.UNITYEXE_UNITYDLL: targetFiles.Add(unityExeFile.FullName); targetFiles.AddRange(allUnityDllFiles); break; case TargetType.UNITYEXE_KNOWNDLL: targetFiles.Add(unityExeFile.FullName); var allKnownGames = allDllFiles.Where(it => it.ToUpper().Contains("PHYSICS") || it.ToUpper().Contains("CLOTH") || it.ToUpper().Contains("ANIMATION") || it.ToUpper().Contains("PARTICLE") || it.ToUpper().Contains("TERRAIN") || it.ToUpper().Contains("VEHICLES") || it.ToUpper().Contains("UNITYENGINE.DLL") ).ToArray(); targetFiles.AddRange(allKnownGames); break; case TargetType.ALLTHEGAME: targetFiles.AddRange(allFiles); break; case TargetType.UNITYENGINE: targetFiles.AddRange(unityEngineDll); break; } string multipleFiles = ""; for (int i = 0; i < targetFiles.Count; i++) { multipleFiles += targetFiles[i]; if (i < targetFiles.Count - 1) { multipleFiles += "|"; } } var mfi = new MultipleFileInterface(multipleFiles, UnityWatch.currentFileInfo.bigEndian, UnityWatch.currentFileInfo.useAutomaticBackups); if (UnityWatch.currentFileInfo.useCacheAndMultithread) { mfi.getMemoryDump(); } UnityWatch.currentFileInfo.targetInterface = mfi; Executor.unityExeFile = unityExeFile.FullName; StockpileManagerEmuSide.UnCorruptBL = null; if (VanguardCore.vanguardConnected) { UnityWatch.UpdateDomains(); } return(true); }