private void _ReanimatorLoad(object sender, EventArgs e) { try { Height = Config.ClientHeight; Width = Config.ClientWidth; Show(); Refresh(); if (_CheckInstallation()) { ProgressForm progressForm = new ProgressForm(_DoLoadingThread, null); progressForm.SetStyle(ProgressBarStyle.Marquee); progressForm.SetLoadingText("Initializing Reanimator subsystems..."); progressForm.Disposed += delegate { _OpenExcelTableEditor(); _OpenExcelTableEditorTCv4(); if (Config.ShowFileExplorer) { _OpenFileExplorer(); } }; progressForm.Show(this); } } catch (Exception ex) { ExceptionLogger.LogException(ex); MessageBox.Show(ex.Message, "ReanimatorLoad"); } }
private void _OpenFileExplorer() { if (_fileExplorer != null && !_fileExplorer.IsDisposed) // it works - but probably should be tested a bit more if we keep this option { DialogResult dr = MessageBox.Show("An instance of FileExplorer is already open.\nDo you want to open another instance? (Not fully tested)", "Already Open", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (dr == DialogResult.No) { return; } } ProgressForm progressForm = new ProgressForm(_LoadFileExplorerThread, null); progressForm.SetStyle(ProgressBarStyle.Marquee); progressForm.SetLoadingText("Initializing File Explorer..."); progressForm.SetCurrentItemText(""); progressForm.Disposed += delegate { _fileExplorer.Show(); }; progressForm.Show(this); }
private void _ReanimatorLoad(object sender, EventArgs e) { try { Height = Config.ClientHeight; Width = Config.ClientWidth; Show(); Refresh(); if (_CheckInstallation()) { ProgressForm progressForm = new ProgressForm(_DoLoadingThread, null); progressForm.SetStyle(ProgressBarStyle.Marquee); progressForm.SetLoadingText("Initializing Reanimator subsystems..."); progressForm.Disposed += delegate { _OpenExcelTableEditor(); _OpenExcelTableEditorTCv4(); if (Config.ShowFileExplorer) _OpenFileExplorer(); }; progressForm.Show(this); } } catch (Exception ex) { ExceptionLogger.LogException(ex); MessageBox.Show(ex.Message, "ReanimatorLoad"); } }
/// <summary> /// Event Function for "Extract and Patch Index" Button - Click. /// Checks and extracts files to HGL data locations, then patches out files and saves updated index files. /// </summary> /// <param name="sender">The button clicked.</param> /// <param name="e">The Click event args.</param> private void _ExtractPatchButton_Click(object sender, EventArgs e) { // make sure we have at least 1 checked file List<TreeNode> checkedNodes = new List<TreeNode>(); if (_GetCheckedNodes(_files_fileTreeView.Nodes, checkedNodes) == 0) { MessageBox.Show("No files checked for extraction!", "Need Files", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } DialogResult dialogResult = MessageBox.Show( "Extract & Patch out checked file's?", "Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (dialogResult == DialogResult.No) return; ExtractPackPatchArgs extractPatchArgs = new ExtractPackPatchArgs { ExtractFiles = true, KeepStructure = true, PatchFiles = true, RootDir = Config.HglDir, CheckedNodes = checkedNodes }; _files_fileTreeView.BeginUpdate(); ProgressForm progressForm = new ProgressForm(_DoExtractPatch, extractPatchArgs); progressForm.SetLoadingText(String.Format("Extracting and Patching file(s)... ({0})", checkedNodes.Count)); progressForm.Disposed += delegate { _files_fileTreeView.EndUpdate(); }; progressForm.Show(this); }
/// <summary> /// Event Function for "Extract to..." Button - Click. /// Checks and extracts files to prompted location. /// </summary> /// <param name="sender">The button clicked.</param> /// <param name="e">The Click event args.</param> private void _ExtractButton_Click(object sender, EventArgs e) { // make sure we have at least 1 checked file List<TreeNode> checkedNodes = new List<TreeNode>(); if (_GetCheckedNodes(_files_fileTreeView.Nodes, checkedNodes) == 0) { MessageBox.Show("No files checked for extraction!", "Need Files", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } // where do we want to save it FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog { SelectedPath = Config.HglDir }; if (folderBrowserDialog.ShowDialog(this) != DialogResult.OK) return; // do we want to keep the directory structure? DialogResult drKeepStructure = MessageBox.Show("Keep directory structure?", "Path", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); if (drKeepStructure == DialogResult.Cancel) return; ExtractPackPatchArgs extractPatchArgs = new ExtractPackPatchArgs { ExtractFiles = true, KeepStructure = (drKeepStructure == DialogResult.Yes), PatchFiles = false, RootDir = folderBrowserDialog.SelectedPath, CheckedNodes = checkedNodes }; ProgressForm progressForm = new ProgressForm(_DoExtractPatch, extractPatchArgs); progressForm.SetLoadingText(String.Format("Extracting file(s)... ({0})", checkedNodes.Count)); progressForm.Show(this); }
/// <summary> /// Determines if the file HGL tries to load exists.<br /> /// That is, checks .dat, if patched out, checks HGL data dir's. /// </summary> /// <param name="filePath">The path to the file - relative to HGL e.g. "data\colorsets.xml.cooked"</param> /// <returns>true for file exists, false otherwise.</returns> //public bool GetFileExists(String filePath) //{ // if (String.IsNullOrEmpty(filePath)) return false; // if (filePath[0] == '\\') // { // filePath = filePath.Replace(@"\data", "data"); // } // TreeNode treeNode = (TreeNode)_fileTable[filePath]; // if (treeNode == null) return false; // // is not backup (in idx/dat) // NodeObject nodeObject = (NodeObject)treeNode.Tag; // if (!nodeObject.IsBackup) return true; // // get full file path // filePath = Path.Combine(Config.HglDir, treeNode.FullPath); // return File.Exists(filePath); //} /// <summary> /// Event Function for "Uncook" Button - Click. /// Uncooks checked files to their respective HGL file system location. /// </summary> /// <param name="sender">The button clicked.</param> /// <param name="e">The Click event args.</param> private void _UncookButton_Click(object sender, EventArgs e) { // make sure we have at least 1 checked file List<TreeNode> checkedNodes = new List<TreeNode>(); if (_GetCheckedNodes(_files_fileTreeView.Nodes, checkedNodes) == 0) { MessageBox.Show("No files checked for extraction!", "Need Files", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } // we're uncooking, so we want only uncook-able files List<TreeNode> uncookingNodes = (from treeNode in checkedNodes let nodeObject = (NodeObject)treeNode.Tag where nodeObject.CanCookWith && !nodeObject.IsUncookedVersion select treeNode).ToList(); if (uncookingNodes.Count == 0) { MessageBox.Show("Unable to find any checked files that can be uncooked!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } ProgressForm progressForm = new ProgressForm(_DoUnooking, uncookingNodes); progressForm.SetLoadingText(String.Format("Uncooking file(s)... ({0})", uncookingNodes.Count)); progressForm.Show(this); }
/// <summary> /// Event Function for "Start" Button - Click. /// Extracts and/or patches files out of selected index files to the specified location. /// </summary> /// <param name="sender">The button clicked.</param> /// <param name="e">The Click event args.</param> private void _StartProcess_Button_Click(object sender, EventArgs e) { // make sure we have at least 1 checked file List<TreeNode> checkedNodes = new List<TreeNode>(); if (_GetCheckedNodes(_files_fileTreeView.Nodes, checkedNodes) == 0) { MessageBox.Show("No files checked for extraction!", "Need Files", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } // are we extracting? bool extractFiles = _fileActionsExtract_checkBox.Checked; String savePath = String.Empty; bool keepStructure = false; if (extractFiles) { // where do we want to save it savePath = _fileActionsPath_textBox.Text; if (String.IsNullOrEmpty(savePath)) { // where do we want to save it FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog { SelectedPath = Config.HglDir }; if (folderBrowserDialog.ShowDialog(this) != DialogResult.OK) return; savePath = folderBrowserDialog.SelectedPath; } // do we want to keep the directory structure? DialogResult drKeepStructure = MessageBox.Show("Keep directory structure?", "Path", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); if (drKeepStructure == DialogResult.Cancel) return; keepStructure = (drKeepStructure == DialogResult.Yes); } // are we patching? bool patchFiles = _fileActionsPatch_checkBox.Checked; // are we doing anything... if (!extractFiles && !patchFiles) { MessageBox.Show("Please select at least one action out of extracting or patching to perform!", "No Actions Checked", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } // start process ExtractPackPatchArgs extractPatchArgs = new ExtractPackPatchArgs { ExtractFiles = extractFiles, KeepStructure = keepStructure, PatchFiles = patchFiles, RootDir = savePath, CheckedNodes = checkedNodes }; ProgressForm progressForm = new ProgressForm(_DoExtractPatch, extractPatchArgs); progressForm.SetLoadingText(String.Format("Extracting file(s)... ({0})", checkedNodes.Count)); progressForm.Show(this); }
private void _QuickXmlButtonClick(object sender, EventArgs e) { // where do we want to save it FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog { SelectedPath = Config.HglDir, Description = "Select folder to save uncooked XML files..."}; if (folderBrowserDialog.ShowDialog(this) != DialogResult.OK) return; ExtractPackPatchArgs extractPatchArgs = new ExtractPackPatchArgs { RootDir = folderBrowserDialog.SelectedPath }; ProgressForm progressForm = new ProgressForm(_QuickXmlWorker, extractPatchArgs); progressForm.SetLoadingText("Extracting and uncooking *.xml.cooked files..."); progressForm.Show(this); }
private void _QuickExcel_Button_Click(object sender, EventArgs e) { ProgressForm progressForm = new ProgressForm(_DoQuickExcel, _fileManager); progressForm.ConfigBar(0, 20, 1); progressForm.SetLoadingText("Uncooking excel files..."); ; progressForm.Show(this); if (!_quickExcelTCv4_checkBox.Checked || !_quickExcelTCv4_checkBox.Enabled) return; ProgressForm progressFormTCv4 = new ProgressForm(_DoQuickExcel, _fileManagerTCv4); progressFormTCv4.ConfigBar(0, 20, 1); progressFormTCv4.SetLoadingText("Uncooking TCv4 excel files..."); ; progressFormTCv4.Show(this); progressFormTCv4.Top = progressForm.Top + progressForm.Height + 20; }
// todo: rewrite me private void _PackPatchButton_Click(object sender, EventArgs e) { // make sure we have at least 1 checked file List<TreeNode> checkedNodes = new List<TreeNode>(); if (_GetCheckedNodes(_files_fileTreeView.Nodes, checkedNodes) == 0) { MessageBox.Show("No files checked for packing!", "Need Files", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } // get our custom index - or create if doesn't exist IndexFile packIndex = null; // todo: rewrite IndexFiles.FirstOrDefault(index => index.FileNameWithoutExtension == ReanimatorIndex); if (packIndex == null) { String indexPath = String.Format(@"data\{0}.idx", ReanimatorIndex); indexPath = Path.Combine(Config.HglDir, indexPath); try { File.Create(indexPath); } catch (Exception ex) { MessageBox.Show("Failed to create custom index file!\n\n" + ex, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // todo: rewrite packIndex = new Index(indexPath); // todo: rewrite IndexFiles.Add(packIndex); } ExtractPackPatchArgs extractPackPatchArgs = new ExtractPackPatchArgs { PackIndex = packIndex, RootDir = Config.HglDir, CheckedNodes = checkedNodes, PatchFiles = false }; _files_fileTreeView.BeginUpdate(); ProgressForm progressForm = new ProgressForm(_DoPackPatch, extractPackPatchArgs); progressForm.Disposed += delegate { _files_fileTreeView.EndUpdate(); }; progressForm.SetLoadingText("Packing and Patching files..."); progressForm.Show(); }
private void _OpenFileExplorer() { if (_fileExplorer != null && !_fileExplorer.IsDisposed) // it works - but probably should be tested a bit more if we keep this option { DialogResult dr = MessageBox.Show("An instance of FileExplorer is already open.\nDo you want to open another instance? (Not fully tested)", "Already Open", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (dr == DialogResult.No) return; } ProgressForm progressForm = new ProgressForm(_LoadFileExplorerThread, null); progressForm.SetStyle(ProgressBarStyle.Marquee); progressForm.SetLoadingText("Initializing File Explorer..."); progressForm.SetCurrentItemText(""); progressForm.Disposed += delegate { _fileExplorer.Show(); }; progressForm.Show(this); }