diff --git a/WiiExplorer.sln b/WiiExplorer.sln index 59e9c05..cd4252d 100644 --- a/WiiExplorer.sln +++ b/WiiExplorer.sln @@ -5,6 +5,8 @@ VisualStudioVersion = 15.0.28307.902 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WiiExplorer", "WiiExplorer\WiiExplorer.csproj", "{3711A74A-B9FB-4C8F-A7AB-E1198ACB19B9}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hack.io.RARC", "..\Hack.io\Hack.io.RARC\Hack.io.RARC.csproj", "{4F4162CC-70FF-4EB9-AB34-D5FF98490C34}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -15,6 +17,10 @@ Global {3711A74A-B9FB-4C8F-A7AB-E1198ACB19B9}.Debug|Any CPU.Build.0 = Debug|Any CPU {3711A74A-B9FB-4C8F-A7AB-E1198ACB19B9}.Release|Any CPU.ActiveCfg = Release|Any CPU {3711A74A-B9FB-4C8F-A7AB-E1198ACB19B9}.Release|Any CPU.Build.0 = Release|Any CPU + {4F4162CC-70FF-4EB9-AB34-D5FF98490C34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4F4162CC-70FF-4EB9-AB34-D5FF98490C34}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4F4162CC-70FF-4EB9-AB34-D5FF98490C34}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4F4162CC-70FF-4EB9-AB34-D5FF98490C34}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/WiiExplorer/ArcUtil.cs b/WiiExplorer/ArcUtil.cs index 844fdae..3c13719 100644 --- a/WiiExplorer/ArcUtil.cs +++ b/WiiExplorer/ArcUtil.cs @@ -20,34 +20,37 @@ public static TreeNode[] ToTreeNode(this RARC Arc, int FolderClosedID, ImageList return Nodes.ToArray(); } - private static TreeNode ToTreeNode(this RARCDirectory Dir, int FolderClosedID, ImageList images) + private static TreeNode ToTreeNode(this RARC.Directory Dir, int FolderClosedID, ImageList images) { TreeNode Final = new TreeNode(Dir.Name) { ImageIndex = FolderClosedID, SelectedImageIndex = FolderClosedID }; - for (int i = 0; i < Dir.SubDirectories.Count; i++) - Final.Nodes.Add(Dir.SubDirectories[i].ToTreeNode(FolderClosedID, images)); - for (int i = 0; i < Dir.Files.Count; i++) + foreach (KeyValuePair item in Dir.Items) { - FileInfo fi = new FileInfo(Dir.Files[i].Name); - int imageindex = 2; - if (images.Images.ContainsKey("*" + fi.Extension)) - imageindex = images.Images.IndexOfKey("*" + fi.Extension); - Final.Nodes.Add(new TreeNode(Dir.Files[i].Name) { Tag = Dir.Files[i], ImageIndex = imageindex, SelectedImageIndex = imageindex }); + if (item.Value is RARC.Directory dir) + Final.Nodes.Add(dir.ToTreeNode(FolderClosedID, images)); + else if (item.Value is RARC.File file) + { + FileInfo fi = new FileInfo(file.Name); + int imageindex = 2; + if (images.Images.ContainsKey("*" + fi.Extension)) + imageindex = images.Images.IndexOfKey("*" + fi.Extension); + Final.Nodes.Add(new TreeNode(file.Name) { Tag = file, ImageIndex = imageindex, SelectedImageIndex = imageindex }); + } } return Final; } public static void FromTreeNode(this RARC Arc, TreeNode Root) => Arc.Root = FromTreeNode(Root); - public static RARCDirectory FromTreeNode(this TreeNode TN) + public static RARC.Directory FromTreeNode(this TreeNode TN) { - RARCDirectory Dir = new RARCDirectory() { Name = TN.Text }; + RARC.Directory Dir = new RARC.Directory() { Name = TN.Text }; for (int i = 0; i < TN.Nodes.Count; i++) if (TN.Nodes[i].Tag == null) - Dir.SubDirectories.Add(FromTreeNode(TN.Nodes[i])); + Dir.Items.Add(TN.Nodes[i].Text, FromTreeNode(TN.Nodes[i])); else { - Dir.Files.Add((RARCFile)TN.Nodes[i].Tag); - Dir.Files[Dir.Files.Count - 1].Name = TN.Nodes[i].Text; + ((RARC.File)TN.Nodes[i].Tag).Name = TN.Nodes[i].Text; + Dir.Items.Add(TN.Nodes[i].Text, (RARC.File)TN.Nodes[i].Tag); } return Dir; } diff --git a/WiiExplorer/MainForm.Designer.cs b/WiiExplorer/MainForm.Designer.cs index 5e015be..95a3d3f 100644 --- a/WiiExplorer/MainForm.Designer.cs +++ b/WiiExplorer/MainForm.Designer.cs @@ -64,6 +64,7 @@ private void InitializeComponent() this.ContextExportSelectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.ContextExportAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.ContextReplaceSelectedToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.Yaz0BackgroundWorker = new System.ComponentModel.BackgroundWorker(); this.MainFormMenuStrip.SuspendLayout(); this.MainFormStatusStrip.SuspendLayout(); this.RootPanel.SuspendLayout(); @@ -405,6 +406,10 @@ private void InitializeComponent() this.ContextReplaceSelectedToolStripMenuItem.Text = "Replace Selected"; this.ContextReplaceSelectedToolStripMenuItem.Click += new System.EventHandler(this.ReplaceSelectedToolStripMenuItem_Click); // + // Yaz0BackgroundWorker + // + this.Yaz0BackgroundWorker.DoWork += new System.ComponentModel.DoWorkEventHandler(this.Yaz0BackgroundWorker_DoWork); + // // MainForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -469,6 +474,7 @@ private void InitializeComponent() private System.Windows.Forms.ToolStripMenuItem ContextAddFolderToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem ContextImportFolderToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem ContextExportAllToolStripMenuItem; + private System.ComponentModel.BackgroundWorker Yaz0BackgroundWorker; } } diff --git a/WiiExplorer/MainForm.cs b/WiiExplorer/MainForm.cs index 4d8942a..901c70b 100644 --- a/WiiExplorer/MainForm.cs +++ b/WiiExplorer/MainForm.cs @@ -7,6 +7,7 @@ using System.Text; using System.Windows.Forms; using Microsoft.WindowsAPICodePack.Dialogs; +using System.Diagnostics; namespace WiiExplorer { @@ -43,8 +44,8 @@ private void MainForm_Load(object sender, EventArgs e) OpenWith = null; } - OpenFileDialog ofd = new OpenFileDialog() { Filter = "Revolution Archives|*.arc|All Files|*.*" }; - SaveFileDialog sfd = new SaveFileDialog() { Filter = "Revolution Archives|*.arc|All Files|*.*" }; + OpenFileDialog ofd = new OpenFileDialog() { Filter = "All Supported Files|*.arc;*.szs|Revolution Archives|*.arc|YAZ0 Identified Revolution Archives|*.szs|All Files|*.*" }; + SaveFileDialog sfd = new SaveFileDialog() { Filter = "All Supported Files|*.arc;*.szs|Revolution Archives|*.arc|YAZ0 Identified Revolution Archives|*.szs|All Files|*.*" }; OpenFileDialog Fileofd = new OpenFileDialog() { Multiselect = true }; SaveFileDialog Exportsfd = new SaveFileDialog(); @@ -467,21 +468,30 @@ private void ArchiveTreeView_BeforeCollapse(object sender, TreeViewCancelEventAr #endregion - private void EnableControls() - { - EditToolStripMenuItem.Enabled = true; - AddFileToolStripMenuItem.Enabled = true; - AddFolderToolStripMenuItem.Enabled = true; - DeleteSelectedToolStripMenuItem.Enabled = true; - RenameSelectedToolStripMenuItem.Enabled = true; - ExportSelectedToolStripMenuItem.Enabled = true; - ExportAllToolStripMenuItem.Enabled = true; - ReplaceSelectedToolStripMenuItem.Enabled = true; - ImportFolderToolStripMenuItem.Enabled = true; - ArchiveTreeView.Enabled = true; - RootNameTextBox.Enabled = true; - SaveToolStripMenuItem.Enabled = true; - SaveAsToolStripMenuItem.Enabled = true; + private void SetControlsEnabled(bool toggle = true, bool affectall = false) + { + EditToolStripMenuItem.Enabled = toggle; + AddFileToolStripMenuItem.Enabled = toggle; + AddFolderToolStripMenuItem.Enabled = toggle; + DeleteSelectedToolStripMenuItem.Enabled = toggle; + RenameSelectedToolStripMenuItem.Enabled = toggle; + ExportSelectedToolStripMenuItem.Enabled = toggle; + ExportAllToolStripMenuItem.Enabled = toggle; + ReplaceSelectedToolStripMenuItem.Enabled = toggle; + ImportFolderToolStripMenuItem.Enabled = toggle; + ArchiveTreeView.Enabled = toggle; + RootNameTextBox.Enabled = toggle; + SaveToolStripMenuItem.Enabled = toggle; + SaveAsToolStripMenuItem.Enabled = toggle; + + if (affectall) + { + FileToolStripMenuItem.Enabled = toggle; + NewToolStripMenuItem.Enabled = toggle; + NewFromFolderToolStripMenuItem.Enabled = toggle; + OpenToolStripMenuItem.Enabled = toggle; + Yaz0ToolStripComboBox.Enabled = toggle; + } } private void NewToolStripMenuItem_Click(object sender, EventArgs e) @@ -493,7 +503,7 @@ private void NewToolStripMenuItem_Click(object sender, EventArgs e) RootNameTextBox.Text = "New Archive"; Edited = false; - EnableControls(); + SetControlsEnabled(); MainToolStripProgressBar.Value = 100; MainToolStripStatusLabel.Text = "Created a new Archive."; Text = $"WiiExplorer {Application.ProductVersion} - New Archive"; @@ -520,8 +530,10 @@ private void OpenArchive(string Filename) ArchiveTreeView.Nodes.AddRange(Archive.ToTreeNode(0, ArchiveImageList)); RootNameTextBox.Text = Archive.Root.Name; + RARC.File InitSensor = Archive["AirBubble/ActorInfo/InitSensor.bcsv"] as RARC.File; + Archive["AirBubble/ActorInfo/InitSensor.bcsv"] = InitSensor; Edited = false; - EnableControls(); + SetControlsEnabled(); MainToolStripProgressBar.Value = 100; MainToolStripStatusLabel.Text = $"Archive loaded successfully!"; Text = $"WiiExplorer {Application.ProductVersion} - {new FileInfo(Filename).Name}"; @@ -564,12 +576,23 @@ private void SaveArchive(string Filename) Archive.FromTreeNode(RootNode); MainToolStripProgressBar.Value = 80; Archive.Save(Filename); - YAZ0.Compress(Filename, Program.Yaz0Mode == 2); + Stopwatch timer = new Stopwatch(); + timer.Start(); + if (Program.Yaz0Mode != 0) + Yaz0BackgroundWorker.RunWorkerAsync(Filename); + SetControlsEnabled(false, true); + while (Yaz0BackgroundWorker.IsBusy) + { + MainToolStripStatusLabel.Text = $"{(Program.Yaz0Mode == 2 ? "Fast ":"")}Yaz0 Encoding, Please Wait. ({timer.Elapsed.ToString("mm\\:ss")} Elapsed)"; + Application.DoEvents(); + } + timer.Stop(); ArchiveTreeView.Nodes.AddRange(Archive.ToTreeNode(0, ArchiveImageList)); Edited = false; MainToolStripProgressBar.Value = 100; - MainToolStripStatusLabel.Text = $"Archive saved successfully!"; + MainToolStripStatusLabel.Text = $"Archive saved successfully!{(Program.Yaz0Mode != 0 ? $"({timer.Elapsed.ToString("mm\\:ss")} Elapsed)":"")}"; + SetControlsEnabled(affectall:true); Text = $"WiiExplorer {Application.ProductVersion} - {new FileInfo(Filename).Name}"; Properties.Settings.Default.PreviousOpenArchivePath = new FileInfo(Filename).DirectoryName; Properties.Settings.Default.Save(); @@ -583,7 +606,6 @@ private void AddFileToolStripMenuItem_Click(object sender, EventArgs e) return; } - TreeNode tmp = ArchiveTreeView.SelectedNode; Fileofd.InitialDirectory = Properties.Settings.Default.PreviousAddFilePath; if (Fileofd.ShowDialog() == DialogResult.OK && Fileofd.FileName != "") @@ -596,21 +618,21 @@ private void AddFileToolStripMenuItem_Click(object sender, EventArgs e) if (ArchiveImageList.Images.ContainsKey("*" + fi.Extension)) imageindex = ArchiveImageList.Images.IndexOfKey("*" + fi.Extension); if (ArchiveTreeView.SelectedNode == null) - ArchiveTreeView.Nodes.Add(new TreeNode(fi.Name) { Tag = new RARCFile(Fileofd.FileNames[i]), ImageIndex = imageindex, SelectedImageIndex = imageindex }); + ArchiveTreeView.Nodes.Add(new TreeNode(fi.Name) { Tag = new RARC.File(Fileofd.FileNames[i]), ImageIndex = imageindex, SelectedImageIndex = imageindex }); else { //Add file to directory if (ArchiveTreeView.SelectedNode.Tag is null) { - ArchiveTreeView.SelectedNode.Nodes.Add(new TreeNode(fi.Name) { Tag = new RARCFile(Fileofd.FileNames[i]), ImageIndex = imageindex, SelectedImageIndex = imageindex }); + ArchiveTreeView.SelectedNode.Nodes.Add(new TreeNode(fi.Name) { Tag = new RARC.File(Fileofd.FileNames[i]), ImageIndex = imageindex, SelectedImageIndex = imageindex }); } else if (ArchiveTreeView.SelectedNode.Parent == null) { - ArchiveTreeView.Nodes.Add(new TreeNode(fi.Name) { Tag = new RARCFile(Fileofd.FileNames[i]), ImageIndex = imageindex, SelectedImageIndex = imageindex }); + ArchiveTreeView.Nodes.Add(new TreeNode(fi.Name) { Tag = new RARC.File(Fileofd.FileNames[i]), ImageIndex = imageindex, SelectedImageIndex = imageindex }); } else { - ArchiveTreeView.SelectedNode.Parent.Nodes.Add(new TreeNode(fi.Name) { Tag = new RARCFile(Fileofd.FileNames[i]), ImageIndex = imageindex, SelectedImageIndex = imageindex }); + ArchiveTreeView.SelectedNode.Parent.Nodes.Add(new TreeNode(fi.Name) { Tag = new RARC.File(Fileofd.FileNames[i]), ImageIndex = imageindex, SelectedImageIndex = imageindex }); } } } @@ -725,7 +747,7 @@ private void ReplaceSelectedToolStripMenuItem_Click(object sender, EventArgs e) if (Fileofd.ShowDialog() == DialogResult.OK && Fileofd.FileName != "") { string oldname = ArchiveTreeView.SelectedNode.Text; - RARCFile file = new RARCFile(ofd.FileName); + RARC.File file = new RARC.File(ofd.FileName); TreeNode ParentNode = ArchiveTreeView.SelectedNode.Parent; int selectindex = ArchiveTreeView.SelectedNode.Index; ArchiveTreeView.SelectedNode.Remove(); @@ -734,9 +756,9 @@ private void ReplaceSelectedToolStripMenuItem_Click(object sender, EventArgs e) if (ArchiveImageList.Images.ContainsKey("*" + fi.Extension)) imageindex = ArchiveImageList.Images.IndexOfKey("*" + fi.Extension); if (ParentNode == null) - ArchiveTreeView.Nodes.Insert(selectindex, new TreeNode(fi.Name) { Tag = new RARCFile(Fileofd.FileName), ImageIndex = imageindex, SelectedImageIndex = imageindex }); + ArchiveTreeView.Nodes.Insert(selectindex, new TreeNode(fi.Name) { Tag = new RARC.File(Fileofd.FileName), ImageIndex = imageindex, SelectedImageIndex = imageindex }); else - ParentNode.Nodes.Insert(selectindex, new TreeNode(fi.Name) { Tag = new RARCFile(Fileofd.FileName), ImageIndex = imageindex, SelectedImageIndex = imageindex }); + ParentNode.Nodes.Insert(selectindex, new TreeNode(fi.Name) { Tag = new RARC.File(Fileofd.FileName), ImageIndex = imageindex, SelectedImageIndex = imageindex }); Properties.Settings.Default.PreviousAddFilePath = new FileInfo(Fileofd.FileName).DirectoryName; @@ -746,7 +768,7 @@ private void ReplaceSelectedToolStripMenuItem_Click(object sender, EventArgs e) } } - private void MainForm_FormClosing(object sender, FormClosingEventArgs e) => e.Cancel = (e.CloseReason == CloseReason.UserClosing & Edited) && MessageBox.Show("You have unsaved changes.\nAre you sure you want to quit?", "Unsaved Changes", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.No; + private void MainForm_FormClosing(object sender, FormClosingEventArgs e) => e.Cancel = Yaz0BackgroundWorker.IsBusy || (e.CloseReason == CloseReason.UserClosing & Edited) && MessageBox.Show("You have unsaved changes.\nAre you sure you want to quit?", "Unsaved Changes", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.No; private void Yaz0ToolStripComboBox_SelectedIndexChanged(object sender, EventArgs e) => Program.Yaz0Mode = (byte)Yaz0ToolStripComboBox.SelectedIndex; @@ -767,7 +789,7 @@ private void ExportArchiveFile(TreeNode TN) else if (Directory.Exists(Exportsfd.FileName)) Directory.Delete(Exportsfd.FileName, true); - RARCDirectory test = TN.FromTreeNode(); + RARC.Directory test = TN.FromTreeNode(); Directory.CreateDirectory(Exportsfd.FileName); test.Export(Exportsfd.FileName); MainToolStripStatusLabel.Text = $"\"{TN.Text}\" has been saved!"; @@ -791,7 +813,7 @@ private void ExportArchiveFile(TreeNode TN) Exportsfd.InitialDirectory = Properties.Settings.Default.PreviousExportPath; if (Exportsfd.ShowDialog() == DialogResult.OK && Exportsfd.FileName != "") { - File.WriteAllBytes(Exportsfd.FileName, ((RARCFile)TN.Tag).FileData); + File.WriteAllBytes(Exportsfd.FileName, ((RARC.File)TN.Tag).FileData); MainToolStripStatusLabel.Text = $"\"{TN.Text}\" has been saved!"; Properties.Settings.Default.PreviousExportPath = new FileInfo(Exportsfd.FileName).DirectoryName; @@ -807,7 +829,7 @@ private void ArchiveTreeView_AfterSelect(object sender, TreeViewEventArgs e) else if (ArchiveTreeView.SelectedNode.Tag == null) MainToolStripStatusLabel.Text = $"Folder \"{ArchiveTreeView.SelectedNode.Text}\" ({ArchiveTreeView.SelectedNode.Nodes.Count} Item{(ArchiveTreeView.SelectedNode.Nodes.Count > 1 ? "s":"")})"; else - MainToolStripStatusLabel.Text = $"File \"{ArchiveTreeView.SelectedNode.Text}\" ({((RARCFile)ArchiveTreeView.SelectedNode.Tag).FileData.Length} Bytes)"; + MainToolStripStatusLabel.Text = $"File \"{ArchiveTreeView.SelectedNode.Text}\" ({((RARC.File)ArchiveTreeView.SelectedNode.Tag).FileData.Length} Bytes)"; } private void ImportFolderToolStripMenuItem_Click(object sender, EventArgs e) @@ -854,7 +876,7 @@ private void NewFromFolderToolStripMenuItem_Click(object sender, EventArgs e) Properties.Settings.Default.Save(); Edited = true; - EnableControls(); + SetControlsEnabled(); MainToolStripProgressBar.Value = 100; MainToolStripStatusLabel.Text = $"Created a new Archive from \"{BFB.FileName}\""; Text = $"WiiExplorer {Application.ProductVersion} - New Archive"; @@ -868,5 +890,10 @@ private void ArchiveTreeView_NodeMouseClick(object sender, TreeNodeMouseClickEve ArchiveContextMenuStrip.Show(ArchiveTreeView, e.Location); } } + + private void Yaz0BackgroundWorker_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e) + { + YAZ0.Compress((string)e.Argument, Program.Yaz0Mode == 2); + } } } \ No newline at end of file diff --git a/WiiExplorer/MainForm.resx b/WiiExplorer/MainForm.resx index 272209e..c0513e8 100644 --- a/WiiExplorer/MainForm.resx +++ b/WiiExplorer/MainForm.resx @@ -128,65 +128,65 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABS - DgAAAk1TRnQBSQFMAgEBAwEAAZgBAAGYAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA + DgAAAk1TRnQBSQFMAgEBAwEAAbgBAAG4AQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA AwABEAMAAQEBAAEgBgABEJoAAwwEEAEWAxABFgMQARYDEAEWAxABFgMQARYDEAEWAxABFgMQARYDEAEW AxABFgMEAQVLAAEBAwYBCAMKAQ0DCgENAwoBDQMKAQ0DCgENAwoBDQMKAQ0DCgENAwoBDQMKAQ0DBwEK - AwMBBAsAAQEDBgEIAwoBDQMKAQ0DCgENAwoBDQMKAQ0DCgENAwoBDQMKAQ0DBwEKAwMBBBQAA20B8wKu + AwMBBAsAAQEDBgEIAwoBDQMKAQ0DCgENAwoBDQMKAQ0DCgENAwoBDQMKAQ0DBwEKAwMBBBQAA2gB8wKu AasB/wKtAasB/wKtAasB/wKtAasB/wKtAasB/wKtAasB/wKtAasB/wKtAasB/wKtAasB/wKtAasB/wKv Aa0B/wMQARZEAAMEAQUDJAE2A0QBeQNKAYsDSgGLA0oBiwNKAYsDSgGLA0oBiwNKAYsDSgGLA0oBiwNK AYsDRwGCAzMBUgMLAQ8DBAEFAyQBNgNEAXkDSgGLA0oBiwNKAYsDSgGLA0oBiwNKAYsDSgGLA0oBiwNF AX8DKQE/AwMBBBAAAq4BqwX/A/4B/wP+Af8D/gH/A/4B/wP+Af8D/gH/A/4B/wP+Af8D/gX/AxABFkQA - Ax0BKgEAAVwBtQH/AQABXAG1Af8BAAFcAbUB/wEAAVwBtQH/AQABXAG1Af8BAAFcAbUB/wEAAVwBtQH/ - AQABXAG1Af8BAAFcAbUB/wEAAVwBtQH/AQABXAG1Af8BAAFcAbUB/wEAAVwBtQH/A1IBqQM1AVgDHQEq - AQABXAG1Af8BAAFcAbUB/wEAAVwBtQH/AQABXAG1Af8BAAFcAbUB/wEAAVwBtQH/AQABXAG1Af8BAAFc - AbUB/wEAAVwBtQH/AQABXAG1Af8BAAFcAbUB/wNLAY4DFAEbAwABAQwAAq0BqwH/A/wB/wP7Af8D+wH/ - A/sB/wP7Af8D+wH/A/sB/wP7Af8D+wH/A/sF/wMQARZFAAFcAbUB/wEAAZ0C/wEAAVwBtQH/AUsBtQL/ - AUoBtQL/AUgBtAL/AUUBswL/AUEBsQL/AT0BrwL/ATgBrQL/ATQBqwL/ATQBqwL/ARABuwHlAf8BNAGr - Av8BAAFcAbUB/wNIAYgBAAFcAbUB/wEAAVwBtQH/AQQBnAL/AVcBugL/AUYBswL/AUQBsgL/AUIBsQL/ - AT4BsAL/ATwBrwL/ATgBrQL/ATQBqwL/AQABXAG1Af8DVAGvAzYBWQMbASYMAAKtAasB/wH6AvgB/wH5 - AvgB/wH5AvgB/wH5AvgB/wH5AvgB/wH5AvgB/wH5AvgB/wH5AvgB/wH5AvgB/wH5AvgF/wMQARZFAAFc - AbUB/wENAaEC/wEAAVwBtQH/AV4BvgL/AV0BvgL/AVwBvQL/AVgBuwL/AVIBuQL/AUwBtgL/AUkBtAL/ - AUQBsgL/AUABsAL/ARUBvQHlAf8BQAGwAv8BAAFcAbUB/wNLAZABAAFcAbUB/wEAAZoC/wEAAVwBtQH/ - AQABXAG1Af8BVwG6Av8BVQG5Av8BUwG4Av8BTgG2Av8BSgG0Av8BRgGzAv8BQgGxAv8BFwG+AeUB/wEA - AVwBtQH/A0wBkQMUARsMAAKtAasB/wP2Af8D9gH/A/YB/wP2Af8D9gH/A/YB/wP2Af8D9gH/A/YB/wP2 - Bf8DEAEWRQABXAG1Af8BHwGpAv8BAAFcAbUB/wGHAcgC/wGGAccC/wGDAcYC/wFrAcMC/wFmAcEC/wFf - Ab4C/wFZAbsC/wFUAbkC/wFPAbcC/wEcAcAB5QH/AUwBtQL/AQABXAG1Af8DSwGQAQABXAG1Af8BJwGn - Av8BCgGdAv8BAAFcAbUB/wFrAcMC/wFmAcAC/wFkAcAC/wFgAb4C/wFZAbsC/wFXAboC/wFTAbgC/wEg - AcIB5QH/AQABXAG1Af8DVAGvAzUBWAMDAQQIAAKtAasB/wL0AfMB/wL0AfMB/wL0AfMB/wL0AfMB/wL0 - AfMB/wL0AfMB/wL0AfMB/wL0AfMB/wL0AfMB/wL0AfMF/wMQARZFAAFcAbUB/wEzAbAC/wEAAVwBtQH/ - AZoB0QL/AZgBzwL/AZYBzwL/AZABywL/AYsBygL/AYQBxgL/AWoBwwL/AWMBvwL/AV4BvgL/ASMBwwHl - Af8BWQG7Av8BAAFcAbUB/wNLAZABAAFcAbUB/wE8Aa8C/wE8Aa8C/wEAAZoC/wEAAVwBtQH/AY4BygL/ - AYkByAL/AYQBxQL/AWsBwwL/AWYBwAL/AWIBvwL/ASMBwwHlAf8BWQG7Av8BAAFcAbUB/wNMAZEDEwEa + Ax0BKgEAAVgBtQH/AQABWAG1Af8BAAFYAbUB/wEAAVgBtQH/AQABWAG1Af8BAAFYAbUB/wEAAVgBtQH/ + AQABWAG1Af8BAAFYAbUB/wEAAVgBtQH/AQABWAG1Af8BAAFYAbUB/wEAAVgBtQH/A1IBqQM1AVgDHQEq + AQABWAG1Af8BAAFYAbUB/wEAAVgBtQH/AQABWAG1Af8BAAFYAbUB/wEAAVgBtQH/AQABWAG1Af8BAAFY + AbUB/wEAAVgBtQH/AQABWAG1Af8BAAFYAbUB/wNLAY4DFAEbAwABAQwAAq0BqwH/A/wB/wP7Af8D+wH/ + A/sB/wP7Af8D+wH/A/sB/wP7Af8D+wH/A/sF/wMQARZFAAFYAbUB/wEAAZ0C/wEAAVgBtQH/AUcBtQL/ + AUYBtQL/AUQBtAL/AUEBswL/AT0BsQL/ATkBrwL/ATQBrQL/ATABqwL/ATABqwL/AQwBuwHlAf8BMAGr + Av8BAAFYAbUB/wNIAYgBAAFYAbUB/wEAAVgBtQH/AQABnAL/AVMBugL/AUIBswL/AUABsgL/AT4BsQL/ + AToBsAL/ATgBrwL/ATQBrQL/ATABqwL/AQABWAG1Af8DVAGvAzYBWQMbASYMAAKtAasB/wH6AvgB/wH5 + AvgB/wH5AvgB/wH5AvgB/wH5AvgB/wH5AvgB/wH5AvgB/wH5AvgB/wH5AvgB/wH5AvgF/wMQARZFAAFY + AbUB/wEJAaEC/wEAAVgBtQH/AVoBvgL/AVkBvgL/AVgBvQL/AVQBuwL/AU4BuQL/AUgBtgL/AUUBtAL/ + AUABsgL/ATwBsAL/AREBvQHlAf8BPAGwAv8BAAFYAbUB/wNLAZABAAFYAbUB/wEAAZoC/wEAAVgBtQH/ + AQABWAG1Af8BUwG6Av8BUQG5Av8BTwG4Av8BSgG2Av8BRgG0Av8BQgGzAv8BPgGxAv8BEwG+AeUB/wEA + AVgBtQH/A0wBkQMUARsMAAKtAasB/wP2Af8D9gH/A/YB/wP2Af8D9gH/A/YB/wP2Af8D9gH/A/YB/wP2 + Bf8DEAEWRQABWAG1Af8BGwGpAv8BAAFYAbUB/wGHAcgC/wGGAccC/wGDAcYC/wFnAcMC/wFiAcEC/wFb + Ab4C/wFVAbsC/wFQAbkC/wFLAbcC/wEYAcAB5QH/AUgBtQL/AQABWAG1Af8DSwGQAQABWAG1Af8BIwGn + Av8BBgGdAv8BAAFYAbUB/wFnAcMC/wFiAcAC/wFgAcAC/wFcAb4C/wFVAbsC/wFTAboC/wFPAbgC/wEc + AcIB5QH/AQABWAG1Af8DVAGvAzUBWAMDAQQIAAKtAasB/wL0AfMB/wL0AfMB/wL0AfMB/wL0AfMB/wL0 + AfMB/wL0AfMB/wL0AfMB/wL0AfMB/wL0AfMB/wL0AfMF/wMQARZFAAFYAbUB/wEvAbAC/wEAAVgBtQH/ + AZoB0QL/AZgBzwL/AZYBzwL/AZABywL/AYsBygL/AYQBxgL/AWYBwwL/AV8BvwL/AVoBvgL/AR8BwwHl + Af8BVQG7Av8BAAFYAbUB/wNLAZABAAFYAbUB/wE4Aa8C/wE4Aa8C/wEAAZoC/wEAAVgBtQH/AY4BygL/ + AYkByAL/AYQBxQL/AWcBwwL/AWIBwAL/AV4BvwL/AR8BwwHlAf8BVQG7Av8BAAFYAbUB/wNMAZEDEwEa CAACrQGrAf8B8gLxAf8B8gLxAf8B8gLxAf8B8gLxAf8B8gLxAf8B8gLxAf8B8gLxAf8B8gLxAf8B8gLx - Af8B8gLxBf8DEAEWRQABXAG1Af8BSAG5Av8BAAFcAbUB/wGsAdgC/wGtAdkC/wGpAdcC/wGkAdUC/wGe - AdIC/wGVAc0C/wGQAcsC/wGKAckC/wGEAcYC/wErAcYB5QH/AWsBwwL/AQABXAG1Af8DSwGPAQABXAG1 - Af8BUAG3Av8BUAG3Av8BKQGoAv8BAAFcAbUB/wGgAdEC/wGcAc8C/wGXAc0C/wGSAcwC/wGLAcgC/wGH - AccC/wEwAckB5QH/AWsBwwL/AQABXAG1Af8DVAGvAzUBWAgAAq0BqwH/Ae4B7wHuAf8C7wHuAf8C7wHu - Af8C7wHuAf8C7wHuAf8C7wHuAf8C7wHuAf8C7wHuAf8C7wHuAf8C7wHuBf8DEAEWRQABXAG1Af8BXgHC - Av8BAAFcAbUB/wG+AeEC/wG+AeEC/wG5Ad4C/wG1AdwC/wGvAdkC/wGpAdcC/wGiAdMC/wGaAc8C/wGX - Ac4C/wE2AcwB5QH/AY4BygL/AQABXAG1Af8DRAF8AQABXAG1Af8BZgHAAv8BZgHAAv8BZgHAAv8BFwGh - Av8BAAFcAbUB/wGtAdcC/wGoAdUC/wGjAdIC/wGeAdAC/wGZAc4C/wE5AcwB5QH/AZIBzAL/AZIBzAL/ - AQABXAG1Af8DQgF1CAACrQGrAf8B7ALrAf8B7QLsAf8B7QLsAf8B7QLsAf8B7QLsAf8B7QLsAf8B7QLs - Af8B7QLsAf8B7QLsAf8B7QLsBf8DEAEWRQABXAG1Af8BiAHMAv8BAAFcAbUt/wEAAVwBtQH/AyUBNwEA - AVwBtQH/AZABywL/AZABywL/AZABywL/AU4BtgL/AQABXAG1Af8B7AH1Hv8BAAFcAbUB/wMuAUcIAAKt + Af8B8gLxBf8DEAEWRQABWAG1Af8BRAG5Av8BAAFYAbUB/wGsAdgC/wGtAdkC/wGpAdcC/wGkAdUC/wGe + AdIC/wGVAc0C/wGQAcsC/wGKAckC/wGEAcYC/wEnAcYB5QH/AWcBwwL/AQABWAG1Af8DSwGPAQABWAG1 + Af8BTAG3Av8BTAG3Av8BJQGoAv8BAAFYAbUB/wGgAdEC/wGcAc8C/wGXAc0C/wGSAcwC/wGLAcgC/wGH + AccC/wEsAckB5QH/AWcBwwL/AQABWAG1Af8DVAGvAzUBWAgAAq0BqwH/Ae4B7wHuAf8C7wHuAf8C7wHu + Af8C7wHuAf8C7wHuAf8C7wHuAf8C7wHuAf8C7wHuAf8C7wHuAf8C7wHuBf8DEAEWRQABWAG1Af8BWgHC + Av8BAAFYAbUB/wG+AeEC/wG+AeEC/wG5Ad4C/wG1AdwC/wGvAdkC/wGpAdcC/wGiAdMC/wGaAc8C/wGX + Ac4C/wEyAcwB5QH/AY4BygL/AQABWAG1Af8DRAF8AQABWAG1Af8BYgHAAv8BYgHAAv8BYgHAAv8BEwGh + Av8BAAFYAbUB/wGtAdcC/wGoAdUC/wGjAdIC/wGeAdAC/wGZAc4C/wE1AcwB5QH/AZIBzAL/AZIBzAL/ + AQABWAG1Af8DQgF1CAACrQGrAf8B7ALrAf8B7QLsAf8B7QLsAf8B7QLsAf8B7QLsAf8B7QLsAf8B7QLs + Af8B7QLsAf8B7QLsAf8B7QLsBf8DEAEWRQABWAG1Af8BiAHMAv8BAAFYAbUt/wEAAVgBtQH/AyUBNwEA + AVgBtQH/AZABywL/AZABywL/AZABywL/AUoBtgL/AQABWAG1Af8B7AH1Hv8BAAFYAbUB/wMuAUcIAAKt AasB/wHqAekB6AH/AesB6gHpAf8B6wHqAekB/wHrAeoB6QH/AesB6gHpAf8B6wHqAekB/wHrAeoB6QH/ - AeoB6QHnAf8B6gHpAegB/wHpAegB5wX/AxABFkUAAVwBtQH/AZ8B1QL/AWMBwwL/AQABXAG1Af8BAAFc - AbUB/wEAAVwBtQH/AQABXAG1Af8BAAFcAbUB/wEAAVwBtQH/AQABXAG1Af8BAAFcAbUB/wEAAVwBtQH/ - AQABXAG1Af8BAAFcAbUB/wMqAUADBAEFAQABXAG1Af8BqAHVAv8BoAHRAv8BqAHVAv8BqAHVAv8BMgGr - Av8BAAFcAbUB/wEAAVwBtQH/AQABXAG1Af8BAAFcAbUB/wEAAVwBtQH/AQABXAG1Af8BAAFcAbUB/wEA - AVwBtQH/A0ABcQMHAQoIAAKtAasB/wLnAeYB/wLoAecB/wLoAecB/wLoAecB/wLoAecB/wLoAecB/wHm - AecB5QH/AssBygH/AqcBpQH/AqcBpAX/AwoBDUUAAVwBtQH/AbUB3wL/AbUB3wL/AbQB3gL/AbUB3gL/ - AbMB3QL/AbMB3Rb/AQABXAG1Af8DKgFAAwQBBQUAAVwBtQH/Ab4B3wL/Ab4B3wL/AbsB3QL/Ab4B3wL/ - AbsB3QL/AbsB3RL/AQABXAG1Af8DKwFCAwcBCgMAAQEMAAKuAasB/wHkAeMB4gH/AeYB5QHkAf8B5gHl - AeQB/wHmAeUB5AH/AeYB5QHkAf8B5gHlAeQB/wHkAeMB4gH/AqcBpQH/AfMC8gX/A1QBrkkAAVwBtQH/ - AccB5gL/AccB5gL/AccB5gL/AccB5gL/AccB5gb/AQABXAG1Af8BAAFcAbUB/wEAAVwBtQH/AQABXAG1 - Af8BAAFcAbUB/wMdASoDBAEFAwIBAwUAAVwBtQH/Ac0B5gL/Ac0B5gL/Ac0B5gL/Ac0B5gL/Ac0B5gb/ - AQABXAG1Af8BAAFcAbUB/wEAAVwBtQH/AQABXAG1Af8DHQEqAwQBBRQAAq4BqwH/AeIB4QHgAf8B5AHj - AeIB/wHkAeMB4gH/AeQB4wHiAf8B5AHjAeIB/wHkAeMB4gH/AeIB4QHgAf8CpwGkBf8DVAGuTQABXAG1 - Ff8BAAFcAbUB/wMrAUIDBwEKAwMBBAMDAQQDAgEDAwABAQ0AAVwBtRX/AQABXAG1Af8DKwFCAwcBCgMD - AQQDAgEDAwABARgAAq8BrSH/A1QBrlAAAwEBAgEAAVwBtQH/AQABXAG1Af8BAAFcAbUB/wEAAVwBtQH/ - AQABXAG1Af8DHQEqAwQBBQMCAQMcAAMBAQIBAAFcAbUB/wEAAVwBtQH/AQABXAG1Af8BAAFcAbUB/wEA - AVwBtQH/Ax0BKgMEAQWgAAFCAU0BPgcAAT4DAAEoAwABQAMAARADAAEBAQABAQUAAYAXAAP/AQAE/wHA + AeoB6QHnAf8B6gHpAegB/wHpAegB5wX/AxABFkUAAVgBtQH/AZ8B1QL/AV8BwwL/AQABWAG1Af8BAAFY + AbUB/wEAAVgBtQH/AQABWAG1Af8BAAFYAbUB/wEAAVgBtQH/AQABWAG1Af8BAAFYAbUB/wEAAVgBtQH/ + AQABWAG1Af8BAAFYAbUB/wMqAUADBAEFAQABWAG1Af8BqAHVAv8BoAHRAv8BqAHVAv8BqAHVAv8BLgGr + Av8BAAFYAbUB/wEAAVgBtQH/AQABWAG1Af8BAAFYAbUB/wEAAVgBtQH/AQABWAG1Af8BAAFYAbUB/wEA + AVgBtQH/A0ABcQMHAQoIAAKtAasB/wLnAeYB/wLoAecB/wLoAecB/wLoAecB/wLoAecB/wLoAecB/wHm + AecB5QH/AssBygH/AqcBpQH/AqcBpAX/AwoBDUUAAVgBtQH/AbUB3wL/AbUB3wL/AbQB3gL/AbUB3gL/ + AbMB3QL/AbMB3Rb/AQABWAG1Af8DKgFAAwQBBQUAAVgBtQH/Ab4B3wL/Ab4B3wL/AbsB3QL/Ab4B3wL/ + AbsB3QL/AbsB3RL/AQABWAG1Af8DKwFCAwcBCgMAAQEMAAKuAasB/wHkAeMB4gH/AeYB5QHkAf8B5gHl + AeQB/wHmAeUB5AH/AeYB5QHkAf8B5gHlAeQB/wHkAeMB4gH/AqcBpQH/AfMC8gX/A1QBrkkAAVgBtQH/ + AccB5gL/AccB5gL/AccB5gL/AccB5gL/AccB5gb/AQABWAG1Af8BAAFYAbUB/wEAAVgBtQH/AQABWAG1 + Af8BAAFYAbUB/wMdASoDBAEFAwIBAwUAAVgBtQH/Ac0B5gL/Ac0B5gL/Ac0B5gL/Ac0B5gL/Ac0B5gb/ + AQABWAG1Af8BAAFYAbUB/wEAAVgBtQH/AQABWAG1Af8DHQEqAwQBBRQAAq4BqwH/AeIB4QHgAf8B5AHj + AeIB/wHkAeMB4gH/AeQB4wHiAf8B5AHjAeIB/wHkAeMB4gH/AeIB4QHgAf8CpwGkBf8DVAGuTQABWAG1 + Ff8BAAFYAbUB/wMrAUIDBwEKAwMBBAMDAQQDAgEDAwABAQ0AAVgBtRX/AQABWAG1Af8DKwFCAwcBCgMD + AQQDAgEDAwABARgAAq8BrSH/A1QBrlAAAwEBAgEAAVgBtQH/AQABWAG1Af8BAAFYAbUB/wEAAVgBtQH/ + AQABWAG1Af8DHQEqAwQBBQMCAQMcAAMBAQIBAAFYAbUB/wEAAVgBtQH/AQABWAG1Af8BAAFYAbUB/wEA + AVgBtQH/Ax0BKgMEAQWgAAFCAU0BPgcAAT4DAAEoAwABQAMAARADAAEBAQABAQUAAYAXAAP/AQAE/wHA AQECAAGAAQEBgAEHAcABAQUAAQMBwAEBBQABAQHAAQEFAAEBAcABAQUAAQEBwAEBBgABwAEBBgABwAEB BgABwAEBBgABwAEBBgABwAEBBgABwAEBAwABAQEAAQEBwAEDAwABAQEAAQcBwAEHAwABBwEAAQ8BwAEP AwABfwEAA/8CAAs= @@ -198,6 +198,9 @@ 491, 17 + + 682, 17 + diff --git a/WiiExplorer/Properties/AssemblyInfo.cs b/WiiExplorer/Properties/AssemblyInfo.cs index 319f1e1..f63431a 100644 --- a/WiiExplorer/Properties/AssemblyInfo.cs +++ b/WiiExplorer/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.2.1.0")] -[assembly: AssemblyFileVersion("1.2.1.0")] +[assembly: AssemblyVersion("1.2.5.0")] +[assembly: AssemblyFileVersion("1.2.5.0")] diff --git a/WiiExplorer/WiiExplorer.csproj b/WiiExplorer/WiiExplorer.csproj index afded2e..bc25c7d 100644 --- a/WiiExplorer/WiiExplorer.csproj +++ b/WiiExplorer/WiiExplorer.csproj @@ -37,14 +37,13 @@ WiiExplorer.ico - - ..\..\Hack.io\Hack.io\bin\Release\Hack.io.dll + + False + ..\..\Hack.io\Hack.io\bin\Debug\Hack.io.dll - - ..\..\Hack.io\Hack.io.RARC\bin\Release\Hack.io.RARC.dll - - - ..\..\Hack.io\Hack.io.YAZ0\bin\Release\Hack.io.YAZ0.dll + + False + ..\..\Hack.io\Hack.io.YAZ0\bin\Debug\Hack.io.YAZ0.dll ..\packages\Microsoft.WindowsAPICodePack-Core.1.1.0.0\lib\Microsoft.WindowsAPICodePack.dll @@ -120,5 +119,11 @@ + + + {4f4162cc-70ff-4eb9-ab34-d5ff98490c34} + Hack.io.RARC + + \ No newline at end of file