diff --git a/BinarySearchForm.cs b/BinarySearchForm.cs index ca8507b..c1b4e83 100644 --- a/BinarySearchForm.cs +++ b/BinarySearchForm.cs @@ -420,7 +420,7 @@ namespace CodeWalker for (int f = 0; f < scannedFiles.Count; f++) { var rpffile = scannedFiles[f]; - totfiles += rpffile.GrandTotalFileCount; + totfiles += rpffile.TotalFileCount; } diff --git a/ExploreForm.Designer.cs b/ExploreForm.Designer.cs index f743e46..b5a3e1c 100644 --- a/ExploreForm.Designer.cs +++ b/ExploreForm.Designer.cs @@ -94,6 +94,7 @@ this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); this.ListContextExportXmlMenu = new System.Windows.Forms.ToolStripMenuItem(); this.ListContextExtractRawMenu = new System.Windows.Forms.ToolStripMenuItem(); + this.ListContextExtractUncompressedMenu = new System.Windows.Forms.ToolStripMenuItem(); this.ListContextExtractAllMenu = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator(); this.ListContextImportXmlMenu = new System.Windows.Forms.ToolStripMenuItem(); @@ -120,7 +121,7 @@ this.SaveFileDialog = new System.Windows.Forms.SaveFileDialog(); this.OpenFileDialog = new System.Windows.Forms.OpenFileDialog(); this.FolderBrowserDialog = new System.Windows.Forms.FolderBrowserDialog(); - this.ListContextExtractUncompressedMenu = new System.Windows.Forms.ToolStripMenuItem(); + this.ToolsBinSearchMenu = new System.Windows.Forms.ToolStripMenuItem(); this.MainMenu.SuspendLayout(); this.MainToolbar.SuspendLayout(); this.StatusBar.SuspendLayout(); @@ -386,6 +387,7 @@ // ToolsMenu // this.ToolsMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.ToolsBinSearchMenu, this.ToolsRpfBrowserMenu, this.toolStripSeparator7, this.ToolsOptionsMenu}); @@ -733,7 +735,7 @@ this.ListContextEditSeparator, this.ListContextSelectAllMenu}); this.ListContextMenu.Name = "MainContextMenu"; - this.ListContextMenu.Size = new System.Drawing.Size(208, 414); + this.ListContextMenu.Size = new System.Drawing.Size(208, 392); // // ListContextViewMenu // @@ -776,6 +778,13 @@ this.ListContextExtractRawMenu.Text = "Extract Raw..."; this.ListContextExtractRawMenu.Click += new System.EventHandler(this.ListContextExtractRawMenu_Click); // + // ListContextExtractUncompressedMenu + // + this.ListContextExtractUncompressedMenu.Name = "ListContextExtractUncompressedMenu"; + this.ListContextExtractUncompressedMenu.Size = new System.Drawing.Size(207, 22); + this.ListContextExtractUncompressedMenu.Text = "Extract Uncompressed..."; + this.ListContextExtractUncompressedMenu.Click += new System.EventHandler(this.ListContextExtractUncompressedMenu_Click); + // // ListContextExtractAllMenu // this.ListContextExtractAllMenu.Name = "ListContextExtractAllMenu"; @@ -949,12 +958,12 @@ this.TreeContextCollapseAllMenu.Text = "Collapse All"; this.TreeContextCollapseAllMenu.Click += new System.EventHandler(this.TreeContextCollapseAllMenu_Click); // - // ListContextExtractUncompressedMenu + // ToolsBinSearchMenu // - this.ListContextExtractUncompressedMenu.Name = "ListContextExtractUncompressedMenu"; - this.ListContextExtractUncompressedMenu.Size = new System.Drawing.Size(207, 22); - this.ListContextExtractUncompressedMenu.Text = "Extract Uncompressed..."; - this.ListContextExtractUncompressedMenu.Click += new System.EventHandler(this.ListContextExtractUncompressedMenu_Click); + this.ToolsBinSearchMenu.Name = "ToolsBinSearchMenu"; + this.ToolsBinSearchMenu.Size = new System.Drawing.Size(161, 22); + this.ToolsBinSearchMenu.Text = "Binary Search..."; + this.ToolsBinSearchMenu.Click += new System.EventHandler(this.ToolsBinSearchMenu_Click); // // ExploreForm // @@ -1080,5 +1089,6 @@ private System.Windows.Forms.ToolStripMenuItem ListContextOpenFileLocationMenu; private System.Windows.Forms.ToolStripSeparator ListContextOpenFileLocationSeparator; private System.Windows.Forms.ToolStripMenuItem ListContextExtractUncompressedMenu; + private System.Windows.Forms.ToolStripMenuItem ToolsBinSearchMenu; } } \ No newline at end of file diff --git a/ExploreForm.cs b/ExploreForm.cs index 9488756..4cda937 100644 --- a/ExploreForm.cs +++ b/ExploreForm.cs @@ -2453,6 +2453,12 @@ namespace CodeWalker BrowseForm f = new BrowseForm(); f.Show(this); } + + private void ToolsBinSearchMenu_Click(object sender, EventArgs e) + { + BinarySearchForm f = new BinarySearchForm(FileCache); + f.Show(this); + } } diff --git a/ExploreForm.resx b/ExploreForm.resx index 8f03b52..d945c3d 100644 --- a/ExploreForm.resx +++ b/ExploreForm.resx @@ -300,7 +300,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADo - HwAAAk1TRnQBSQFMAgEBGAEAAZgBAAGYAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + HwAAAk1TRnQBSQFMAgEBGAEAAaABAAGgAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAAXADAAEBAQABCAYAARwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA diff --git a/GameFiles/FileTypes/RelFile.cs b/GameFiles/FileTypes/RelFile.cs index 7980640..f5df815 100644 --- a/GameFiles/FileTypes/RelFile.cs +++ b/GameFiles/FileTypes/RelFile.cs @@ -9,6 +9,43 @@ using TC = System.ComponentModel.TypeConverterAttribute; using EXP = System.ComponentModel.ExpandableObjectConverter; using SharpDX; + + + +/* + +Parts of this are adapted from CamxxCore's RageAudioTool, although it's been completely reworked for CW. +-dexyfex + + +https://github.com/CamxxCore/RageAudioTool + +MIT License + +Copyright (c) 2017 Cameron Berry + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ + + + namespace CodeWalker.GameFiles { [TC(typeof(EXP))] public class RelFile : PackedFile diff --git a/Notice.txt b/Notice.txt index a41bc0c..2aa7ea8 100644 --- a/Notice.txt +++ b/Notice.txt @@ -29,7 +29,29 @@ - +/* + +Copyright (c) 2017 Cameron Berry + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ diff --git a/Readme.txt b/Readme.txt index fde752f..70a0654 100644 --- a/Readme.txt +++ b/Readme.txt @@ -21,12 +21,12 @@ in the default location (C:\Program Files (x86)\Steam\SteamApps\common\Grand The be skipped automatically. The World View will load by default. It will take a while to load. -Use the WASD keys to move the camera. +Use the WASD keys to move the camera. Hold shift to move faster. Drag the left mouse button to rotate the view. -Use the mouse wheel to zoom in/out, and change the movement speed. (Zoom in = slower motion) +Use the mouse wheel to zoom in/out, and change the base movement speed. (Zoom in = slower motion) XBox controller input is also supported. The Toolbox can be shown by clicking the "<<" button in the top right-hand corner of the screen. -T opens the toolbar. +T opens the main toolbar. First-person mode can be activated with the P key, or by pressing the Start button on the XBox controller. While in first-person mode, the left mouse button (or right trigger) will fire an egg.