private void patchConverterToolStripMenuItem_Click(object sender, EventArgs e) { openFileDialog.Title = "Select the patch you wish to convert"; openFileDialog.Filter = "MUO patch (*.muo)|*.muo|UOP patch (*.uop)|*.uop|Verdata patch (verdata.mul)|verdata.mul"; openFileDialog.FileName = string.Empty; if (openFileDialog.ShowDialog() == DialogResult.OK) { UpdateStatus("Loading " = openFileDialog.FileName + "..."); PatchReader reader = new PatchReader(File.Open(openFileDialog.FileName, FileMode.Open), PatchReader.ExtensionToPatchFileType(Path.GetExtension(openFileDialog.FileName))); UpdateStatus("Reading patches, please wait... "); List<Patch> patches = reader.ReadPatches(); UpdateStatus("Loaded " + patches.Count.ToString() + " patches into memory..."); saveFileDialog.Title = "Select where you wish to save the patches to"; saveFileDialog.Filter = "MUO patch (*.muo)|*.muo|UOP patch (*.uop)|*.uop|Verdata patch (verdata.mul)|verdata.mul"; saveFileDialog.FileName = string.Empty; if (saveFileDialog.ShowDialog() == DialogResult.OK) { PatchFileType type = PatchReader.ExtensionToPatchFileType(Path.GetExtension(saveFileDialog.FileName)); UpdateStatus("Saving patches, please wait... "); PatchWriter writer = new PatchWriter(File.Open(saveFileDialog.FileName, FileMode.OpenOrCreate), type); switch (type) { case PatchFileType.MUO: PatchWriter.CreateMUO(saveFileDialog.FileName, patches); break; case PatchFileType.UOP: PatchWriter.CreateUOP(saveFileDialog.FileName, patches); break; case PatchFileType.Verdata: break; } UpdateStatus("Patch conversion complete"); MessageBox.Show("Patch conversion complete", "Success"); } else MessageBox.Show("Patch conversion process aborted", "Aborted"); if (reader != null) reader.Close(); patches = null; } }
private void ApplyPatches(DirectoryInfo patchFolder) { OnStatusChange(null, new StatusChangeEventArgs("Gathering Patch data...")); FileInfo[] muoFiles = patchFolder.GetFiles("*.muo"); FileInfo[] uopFiles = patchFolder.GetFiles("*.uop"); FileInfo[] mulFiles = patchFolder.GetFiles("verdata.mul"); _allPatchFiles = new List <FileInfo>(); _allPatchFiles.AddRange(muoFiles); _allPatchFiles.AddRange(uopFiles); for (int i = 0; i < mulFiles.Length; i++) { _allPatchFiles.Add(mulFiles[i]); } if (!CrcCheck(_allPatchFiles)) { List <Patch> patches = new List <Patch>(); for (int i = 0; i < _allPatchFiles.Count; i++) { PatchReader reader = new PatchReader(File.OpenRead(_allPatchFiles[i].FullName), PatchReader.ExtensionToPatchFileType(_allPatchFiles[i].FullName)); patches.AddRange(reader.ReadPatches()); reader.Close(); } _patcher = new Patcher(patches.ToArray(), patchFolder.FullName, _oldPatchingStyle); //Switch argument 2 to false for new patching system. _patcher.ProgressChange += new ProgressChangeHandler(OnPatchProgressChange); _patcher.PatchingComplete += new OperationCompleteHandler(OnPatchingComplete); _patcher.StatusChange += new StatusChangeHandler(OnStatusChange); _patcher.WritePatches(); } else { OnPatchingComplete(null, new OperationCompleteArgs()); } }
private void ApplyPatches(DirectoryInfo patchFolder) { OnStatusChange(null, new StatusChangeEventArgs("Gathering Patch data...")); FileInfo[] muoFiles = patchFolder.GetFiles("*.muo"); FileInfo[] uopFiles = patchFolder.GetFiles("*.uop"); FileInfo[] mulFiles = patchFolder.GetFiles("verdata.mul"); _allPatchFiles = new List<FileInfo>(); _allPatchFiles.AddRange(muoFiles); _allPatchFiles.AddRange(uopFiles); for( int i = 0; i < mulFiles.Length; i++ ) _allPatchFiles.Add(mulFiles[i]); if( !CrcCheck(_allPatchFiles) ) { List<Patch> patches = new List<Patch>(); for( int i = 0; i < _allPatchFiles.Count; i++ ) { PatchReader reader = new PatchReader(File.OpenRead(_allPatchFiles[i].FullName), PatchReader.ExtensionToPatchFileType(_allPatchFiles[i].FullName)); patches.AddRange(reader.ReadPatches()); reader.Close(); } _patcher = new Patcher(patches.ToArray(), patchFolder.FullName, _oldPatchingStyle);//Switch argument 2 to false for new patching system. _patcher.ProgressChange += new ProgressChangeHandler(OnPatchProgressChange); _patcher.PatchingComplete += new OperationCompleteHandler(OnPatchingComplete); _patcher.StatusChange += new StatusChangeHandler(OnStatusChange); _patcher.WritePatches(); } else OnPatchingComplete(null, new OperationCompleteArgs()); }