Fix Endfield

This commit is contained in:
Maverick Chang
2025-02-17 14:30:24 +09:00
parent dbf3a8f16a
commit 8446538322
17 changed files with 481 additions and 157 deletions

View File

@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFrameworks>net7.0-windows;net8.0-windows</TargetFrameworks>
<TargetFrameworks>net8.0-windows</TargetFrameworks>
<ApplicationIcon>Resources\as.ico</ApplicationIcon>
<Version>1.36.00</Version>
<AssemblyVersion>1.36.00</AssemblyVersion>

View File

@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net7.0;net8.0</TargetFrameworks>
<TargetFrameworks>net8.0</TargetFrameworks>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<Version>1.36.00</Version>
<AssemblyVersion>1.36.00</AssemblyVersion>

View File

@@ -66,7 +66,7 @@ namespace AssetStudio.GUI
tableLayoutPanel2.Name = "tableLayoutPanel2";
tableLayoutPanel2.RowCount = 1;
tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
tableLayoutPanel2.Size = new System.Drawing.Size(518, 29);
tableLayoutPanel2.Size = new System.Drawing.Size(518, 34);
tableLayoutPanel2.TabIndex = 3;
//
// loadAssetMap
@@ -74,7 +74,7 @@ namespace AssetStudio.GUI
loadAssetMap.Dock = DockStyle.Fill;
loadAssetMap.Location = new System.Drawing.Point(3, 3);
loadAssetMap.Name = "loadAssetMap";
loadAssetMap.Size = new System.Drawing.Size(114, 23);
loadAssetMap.Size = new System.Drawing.Size(114, 28);
loadAssetMap.TabIndex = 0;
loadAssetMap.Text = "Load AssetMap";
loadAssetMap.UseVisualStyleBackColor = true;
@@ -85,7 +85,7 @@ namespace AssetStudio.GUI
clear.Dock = DockStyle.Fill;
clear.Location = new System.Drawing.Point(123, 3);
clear.Name = "clear";
clear.Size = new System.Drawing.Size(54, 23);
clear.Size = new System.Drawing.Size(54, 28);
clear.TabIndex = 1;
clear.Text = "Clear";
clear.UseVisualStyleBackColor = true;
@@ -96,7 +96,7 @@ namespace AssetStudio.GUI
loadSelected.Dock = DockStyle.Fill;
loadSelected.Location = new System.Drawing.Point(183, 3);
loadSelected.Name = "loadSelected";
loadSelected.Size = new System.Drawing.Size(114, 23);
loadSelected.Size = new System.Drawing.Size(114, 28);
loadSelected.TabIndex = 2;
loadSelected.Text = "Load Selected";
loadSelected.UseVisualStyleBackColor = true;
@@ -107,7 +107,7 @@ namespace AssetStudio.GUI
exportSelected.Dock = DockStyle.Fill;
exportSelected.Location = new System.Drawing.Point(303, 3);
exportSelected.Name = "exportSelected";
exportSelected.Size = new System.Drawing.Size(212, 23);
exportSelected.Size = new System.Drawing.Size(212, 28);
exportSelected.TabIndex = 3;
exportSelected.Text = "Export Selected";
exportSelected.UseVisualStyleBackColor = true;
@@ -120,11 +120,10 @@ namespace AssetStudio.GUI
assetDataGridView.AllowUserToResizeRows = false;
assetDataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
assetDataGridView.Dock = DockStyle.Fill;
assetDataGridView.Location = new System.Drawing.Point(3, 73);
assetDataGridView.Location = new System.Drawing.Point(3, 83);
assetDataGridView.Name = "assetDataGridView";
assetDataGridView.ReadOnly = true;
assetDataGridView.RowTemplate.Height = 25;
assetDataGridView.Size = new System.Drawing.Size(518, 263);
assetDataGridView.Size = new System.Drawing.Size(518, 298);
assetDataGridView.TabIndex = 2;
assetDataGridView.VirtualMode = true;
assetDataGridView.CellValueNeeded += AssetDataGridView_CellValueNeeded;
@@ -138,13 +137,13 @@ namespace AssetStudio.GUI
tableLayoutPanel1.Controls.Add(assetDataGridView, 0, 2);
tableLayoutPanel1.Controls.Add(tableLayoutPanel2, 0, 0);
tableLayoutPanel1.Controls.Add(tableLayoutPanel3, 0, 1);
tableLayoutPanel1.Location = new System.Drawing.Point(12, 12);
tableLayoutPanel1.Location = new System.Drawing.Point(12, 14);
tableLayoutPanel1.Name = "tableLayoutPanel1";
tableLayoutPanel1.RowCount = 3;
tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 35F));
tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 35F));
tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 40F));
tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 40F));
tableLayoutPanel1.RowStyles.Add(new RowStyle());
tableLayoutPanel1.Size = new System.Drawing.Size(524, 333);
tableLayoutPanel1.Size = new System.Drawing.Size(524, 377);
tableLayoutPanel1.TabIndex = 3;
//
// tableLayoutPanel3
@@ -161,11 +160,11 @@ namespace AssetStudio.GUI
tableLayoutPanel3.Controls.Add(containerTextBox, 0, 0);
tableLayoutPanel3.Controls.Add(typeTextBox, 4, 0);
tableLayoutPanel3.Dock = DockStyle.Fill;
tableLayoutPanel3.Location = new System.Drawing.Point(3, 38);
tableLayoutPanel3.Location = new System.Drawing.Point(3, 43);
tableLayoutPanel3.Name = "tableLayoutPanel3";
tableLayoutPanel3.RowCount = 1;
tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
tableLayoutPanel3.Size = new System.Drawing.Size(518, 29);
tableLayoutPanel3.Size = new System.Drawing.Size(518, 34);
tableLayoutPanel3.TabIndex = 4;
//
// sourceTextBox
@@ -220,9 +219,9 @@ namespace AssetStudio.GUI
//
// AssetBrowser
//
AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new System.Drawing.Size(548, 357);
ClientSize = new System.Drawing.Size(548, 405);
Controls.Add(tableLayoutPanel1);
Name = "AssetBrowser";
ShowIcon = false;

View File

@@ -2,7 +2,7 @@
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFrameworks>net7.0-windows;net8.0-windows</TargetFrameworks>
<TargetFrameworks>net8.0-windows</TargetFrameworks>
<UseWindowsForms>true</UseWindowsForms>
<ApplicationIcon>Resources\as.ico</ApplicationIcon>
<Version>1.36.00</Version>

View File

@@ -200,7 +200,7 @@ namespace AssetStudio.GUI
menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { fileToolStripMenuItem, optionsToolStripMenuItem, modelToolStripMenuItem, exportToolStripMenuItem, filterTypeToolStripMenuItem, debugMenuItem, miscToolStripMenuItem });
menuStrip1.Location = new System.Drawing.Point(0, 0);
menuStrip1.Name = "menuStrip1";
menuStrip1.Size = new System.Drawing.Size(1264, 24);
menuStrip1.Size = new System.Drawing.Size(1264, 25);
menuStrip1.TabIndex = 0;
menuStrip1.Text = "menuStrip1";
//
@@ -208,58 +208,58 @@ namespace AssetStudio.GUI
//
fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { loadFileToolStripMenuItem, loadFolderToolStripMenuItem, toolStripMenuItem1, extractFileToolStripMenuItem, extractFolderToolStripMenuItem, toolStripSeparator6, resetToolStripMenuItem, abortStripMenuItem });
fileToolStripMenuItem.Name = "fileToolStripMenuItem";
fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
fileToolStripMenuItem.Size = new System.Drawing.Size(39, 21);
fileToolStripMenuItem.Text = "File";
//
// loadFileToolStripMenuItem
//
loadFileToolStripMenuItem.Name = "loadFileToolStripMenuItem";
loadFileToolStripMenuItem.Size = new System.Drawing.Size(144, 22);
loadFileToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
loadFileToolStripMenuItem.Text = "Load file";
loadFileToolStripMenuItem.Click += loadFile_Click;
//
// loadFolderToolStripMenuItem
//
loadFolderToolStripMenuItem.Name = "loadFolderToolStripMenuItem";
loadFolderToolStripMenuItem.Size = new System.Drawing.Size(144, 22);
loadFolderToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
loadFolderToolStripMenuItem.Text = "Load folder";
loadFolderToolStripMenuItem.Click += loadFolder_Click;
//
// toolStripMenuItem1
//
toolStripMenuItem1.Name = "toolStripMenuItem1";
toolStripMenuItem1.Size = new System.Drawing.Size(141, 6);
toolStripMenuItem1.Size = new System.Drawing.Size(177, 6);
//
// extractFileToolStripMenuItem
//
extractFileToolStripMenuItem.Name = "extractFileToolStripMenuItem";
extractFileToolStripMenuItem.Size = new System.Drawing.Size(144, 22);
extractFileToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
extractFileToolStripMenuItem.Text = "Extract file";
extractFileToolStripMenuItem.Click += extractFileToolStripMenuItem_Click;
//
// extractFolderToolStripMenuItem
//
extractFolderToolStripMenuItem.Name = "extractFolderToolStripMenuItem";
extractFolderToolStripMenuItem.Size = new System.Drawing.Size(144, 22);
extractFolderToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
extractFolderToolStripMenuItem.Text = "Extract folder";
extractFolderToolStripMenuItem.Click += extractFolderToolStripMenuItem_Click;
//
// toolStripSeparator6
//
toolStripSeparator6.Name = "toolStripSeparator6";
toolStripSeparator6.Size = new System.Drawing.Size(141, 6);
toolStripSeparator6.Size = new System.Drawing.Size(177, 6);
//
// resetToolStripMenuItem
//
resetToolStripMenuItem.Name = "resetToolStripMenuItem";
resetToolStripMenuItem.Size = new System.Drawing.Size(144, 22);
resetToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
resetToolStripMenuItem.Text = "Reset";
resetToolStripMenuItem.Click += resetToolStripMenuItem_Click;
//
// abortStripMenuItem
//
abortStripMenuItem.Name = "abortStripMenuItem";
abortStripMenuItem.Size = new System.Drawing.Size(144, 22);
abortStripMenuItem.Size = new System.Drawing.Size(180, 22);
abortStripMenuItem.Text = "Abort";
abortStripMenuItem.Click += abortStripMenuItem_Click;
//
@@ -267,14 +267,14 @@ namespace AssetStudio.GUI
//
optionsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { displayAll, toolStripSeparator10, enablePreview, enableModelPreview, modelsOnly, toolStripSeparator11, displayInfo, enableResolveDependencies, allowDuplicates, skipContainer, toolStripSeparator12, toolStripMenuItem14, specifyUnityCNKey, toolStripSeparator13, toolStripMenuItem18, toolStripMenuItem19, showExpOpt });
optionsToolStripMenuItem.Name = "optionsToolStripMenuItem";
optionsToolStripMenuItem.Size = new System.Drawing.Size(61, 20);
optionsToolStripMenuItem.Size = new System.Drawing.Size(66, 21);
optionsToolStripMenuItem.Text = "Options";
//
// displayAll
//
displayAll.CheckOnClick = true;
displayAll.Name = "displayAll";
displayAll.Size = new System.Drawing.Size(225, 22);
displayAll.Size = new System.Drawing.Size(246, 22);
displayAll.Text = "Display all assets";
displayAll.ToolTipText = "Check this option will display all types assets. Not extractable assets can export the RAW file.";
displayAll.CheckedChanged += displayAll_CheckedChanged;
@@ -282,7 +282,7 @@ namespace AssetStudio.GUI
// toolStripSeparator10
//
toolStripSeparator10.Name = "toolStripSeparator10";
toolStripSeparator10.Size = new System.Drawing.Size(222, 6);
toolStripSeparator10.Size = new System.Drawing.Size(243, 6);
//
// enablePreview
//
@@ -290,7 +290,7 @@ namespace AssetStudio.GUI
enablePreview.CheckOnClick = true;
enablePreview.CheckState = System.Windows.Forms.CheckState.Checked;
enablePreview.Name = "enablePreview";
enablePreview.Size = new System.Drawing.Size(225, 22);
enablePreview.Size = new System.Drawing.Size(246, 22);
enablePreview.Text = "Enable preview";
enablePreview.ToolTipText = "Toggle the loading and preview of readable assets, such as images, sounds, text, etc.\r\nDisable preview if you have performance or compatibility issues.";
enablePreview.CheckedChanged += enablePreview_Check;
@@ -299,7 +299,7 @@ namespace AssetStudio.GUI
//
enableModelPreview.CheckOnClick = true;
enableModelPreview.Name = "enableModelPreview";
enableModelPreview.Size = new System.Drawing.Size(225, 22);
enableModelPreview.Size = new System.Drawing.Size(246, 22);
enableModelPreview.Text = "Enable model preview";
enableModelPreview.CheckedChanged += enableModelPreview_CheckedChanged;
//
@@ -307,14 +307,14 @@ namespace AssetStudio.GUI
//
modelsOnly.CheckOnClick = true;
modelsOnly.Name = "modelsOnly";
modelsOnly.Size = new System.Drawing.Size(225, 22);
modelsOnly.Size = new System.Drawing.Size(246, 22);
modelsOnly.Text = "Filter models only";
modelsOnly.CheckedChanged += modelsOnly_CheckedChanged;
//
// toolStripSeparator11
//
toolStripSeparator11.Name = "toolStripSeparator11";
toolStripSeparator11.Size = new System.Drawing.Size(222, 6);
toolStripSeparator11.Size = new System.Drawing.Size(243, 6);
//
// displayInfo
//
@@ -322,7 +322,7 @@ namespace AssetStudio.GUI
displayInfo.CheckOnClick = true;
displayInfo.CheckState = System.Windows.Forms.CheckState.Checked;
displayInfo.Name = "displayInfo";
displayInfo.Size = new System.Drawing.Size(225, 22);
displayInfo.Size = new System.Drawing.Size(246, 22);
displayInfo.Text = "Display asset information";
displayInfo.ToolTipText = "Toggle the overlay that shows information about each asset, eg. image size, format, audio bitrate, etc.";
displayInfo.CheckedChanged += displayAssetInfo_Check;
@@ -333,7 +333,7 @@ namespace AssetStudio.GUI
enableResolveDependencies.CheckOnClick = true;
enableResolveDependencies.CheckState = System.Windows.Forms.CheckState.Checked;
enableResolveDependencies.Name = "enableResolveDependencies";
enableResolveDependencies.Size = new System.Drawing.Size(225, 22);
enableResolveDependencies.Size = new System.Drawing.Size(246, 22);
enableResolveDependencies.Text = "Enable resolve dependencies";
enableResolveDependencies.ToolTipText = "Toggle the behaviour of loading assets.\r\nDisable to load file(s) without its dependencies.";
enableResolveDependencies.CheckedChanged += enableResolveDependencies_CheckedChanged;
@@ -342,7 +342,7 @@ namespace AssetStudio.GUI
//
allowDuplicates.CheckOnClick = true;
allowDuplicates.Name = "allowDuplicates";
allowDuplicates.Size = new System.Drawing.Size(225, 22);
allowDuplicates.Size = new System.Drawing.Size(246, 22);
allowDuplicates.Text = "Allow duplicates";
allowDuplicates.ToolTipText = "Toggle the behaviour of exporting assets.\r\nEnable to allow assets with duplicate names to be exported.";
allowDuplicates.CheckedChanged += allowDuplicates_CheckedChanged;
@@ -351,7 +351,7 @@ namespace AssetStudio.GUI
//
skipContainer.CheckOnClick = true;
skipContainer.Name = "skipContainer";
skipContainer.Size = new System.Drawing.Size(225, 22);
skipContainer.Size = new System.Drawing.Size(246, 22);
skipContainer.Text = "Skip container recovery";
skipContainer.ToolTipText = "Skips the container recovery step.\nImproves loading when dealing with a large number of files.";
skipContainer.CheckedChanged += skipContainer_CheckedChanged;
@@ -359,51 +359,51 @@ namespace AssetStudio.GUI
// toolStripSeparator12
//
toolStripSeparator12.Name = "toolStripSeparator12";
toolStripSeparator12.Size = new System.Drawing.Size(222, 6);
toolStripSeparator12.Size = new System.Drawing.Size(243, 6);
//
// toolStripMenuItem14
//
toolStripMenuItem14.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { specifyUnityVersion });
toolStripMenuItem14.Name = "toolStripMenuItem14";
toolStripMenuItem14.Size = new System.Drawing.Size(225, 22);
toolStripMenuItem14.Size = new System.Drawing.Size(246, 22);
toolStripMenuItem14.Text = "Specify Unity version";
//
// specifyUnityVersion
//
specifyUnityVersion.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
specifyUnityVersion.Name = "specifyUnityVersion";
specifyUnityVersion.Size = new System.Drawing.Size(100, 23);
//
// specifyUnityCNKey
//
specifyUnityCNKey.Name = "specifyUnityCNKey";
specifyUnityCNKey.Size = new System.Drawing.Size(225, 22);
specifyUnityCNKey.Size = new System.Drawing.Size(246, 22);
specifyUnityCNKey.Text = "Specify UnityCN Key";
specifyUnityCNKey.Click += specifyUnityCNKey_Click;
//
// toolStripSeparator13
//
toolStripSeparator13.Name = "toolStripSeparator13";
toolStripSeparator13.Size = new System.Drawing.Size(222, 6);
toolStripSeparator13.Size = new System.Drawing.Size(243, 6);
//
// toolStripMenuItem18
//
toolStripMenuItem18.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { specifyGame });
toolStripMenuItem18.Name = "toolStripMenuItem18";
toolStripMenuItem18.Size = new System.Drawing.Size(225, 22);
toolStripMenuItem18.Size = new System.Drawing.Size(246, 22);
toolStripMenuItem18.Text = "Specify Game";
//
// specifyGame
//
specifyGame.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
specifyGame.Name = "specifyGame";
specifyGame.Size = new System.Drawing.Size(121, 23);
specifyGame.Size = new System.Drawing.Size(121, 25);
specifyGame.Click += specifyGame_Click;
//
// toolStripMenuItem19
//
toolStripMenuItem19.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { specifyAIVersion });
toolStripMenuItem19.Name = "toolStripMenuItem19";
toolStripMenuItem19.Size = new System.Drawing.Size(225, 22);
toolStripMenuItem19.Size = new System.Drawing.Size(246, 22);
toolStripMenuItem19.Text = "Specify AI version";
toolStripMenuItem19.DropDownOpening += toolStripMenuItem19_DropDownOpening;
//
@@ -412,12 +412,12 @@ namespace AssetStudio.GUI
specifyAIVersion.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
specifyAIVersion.Items.AddRange(new object[] { "None" });
specifyAIVersion.Name = "specifyAIVersion";
specifyAIVersion.Size = new System.Drawing.Size(121, 23);
specifyAIVersion.Size = new System.Drawing.Size(121, 25);
//
// showExpOpt
//
showExpOpt.Name = "showExpOpt";
showExpOpt.Size = new System.Drawing.Size(225, 22);
showExpOpt.Size = new System.Drawing.Size(246, 22);
showExpOpt.Text = "Export options";
showExpOpt.Click += showExpOpt_Click;
//
@@ -425,65 +425,65 @@ namespace AssetStudio.GUI
//
modelToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { exportAllObjectssplitToolStripMenuItem1, exportSelectedObjectsToolStripMenuItem, exportSelectedObjectsWithAnimationClipToolStripMenuItem, toolStripSeparator1, exportSelectedObjectsmergeToolStripMenuItem, exportSelectedObjectsmergeWithAnimationClipToolStripMenuItem, toolStripSeparator9, exportSelectedNodessplitToolStripMenuItem, exportSelectedNodessplitSelectedAnimationClipsToolStripMenuItem });
modelToolStripMenuItem.Name = "modelToolStripMenuItem";
modelToolStripMenuItem.Size = new System.Drawing.Size(53, 20);
modelToolStripMenuItem.Size = new System.Drawing.Size(58, 21);
modelToolStripMenuItem.Text = "Model";
//
// exportAllObjectssplitToolStripMenuItem1
//
exportAllObjectssplitToolStripMenuItem1.Name = "exportAllObjectssplitToolStripMenuItem1";
exportAllObjectssplitToolStripMenuItem1.Size = new System.Drawing.Size(382, 22);
exportAllObjectssplitToolStripMenuItem1.Size = new System.Drawing.Size(417, 22);
exportAllObjectssplitToolStripMenuItem1.Text = "Export all objects (split)";
exportAllObjectssplitToolStripMenuItem1.Click += exportAllObjectssplitToolStripMenuItem1_Click;
//
// exportSelectedObjectsToolStripMenuItem
//
exportSelectedObjectsToolStripMenuItem.Name = "exportSelectedObjectsToolStripMenuItem";
exportSelectedObjectsToolStripMenuItem.Size = new System.Drawing.Size(382, 22);
exportSelectedObjectsToolStripMenuItem.Size = new System.Drawing.Size(417, 22);
exportSelectedObjectsToolStripMenuItem.Text = "Export selected objects (split)";
exportSelectedObjectsToolStripMenuItem.Click += exportSelectedObjectsToolStripMenuItem_Click;
//
// exportSelectedObjectsWithAnimationClipToolStripMenuItem
//
exportSelectedObjectsWithAnimationClipToolStripMenuItem.Name = "exportSelectedObjectsWithAnimationClipToolStripMenuItem";
exportSelectedObjectsWithAnimationClipToolStripMenuItem.Size = new System.Drawing.Size(382, 22);
exportSelectedObjectsWithAnimationClipToolStripMenuItem.Size = new System.Drawing.Size(417, 22);
exportSelectedObjectsWithAnimationClipToolStripMenuItem.Text = "Export selected objects (split) + selected AnimationClips";
exportSelectedObjectsWithAnimationClipToolStripMenuItem.Click += exportObjectswithAnimationClipMenuItem_Click;
//
// toolStripSeparator1
//
toolStripSeparator1.Name = "toolStripSeparator1";
toolStripSeparator1.Size = new System.Drawing.Size(379, 6);
toolStripSeparator1.Size = new System.Drawing.Size(414, 6);
//
// exportSelectedObjectsmergeToolStripMenuItem
//
exportSelectedObjectsmergeToolStripMenuItem.Name = "exportSelectedObjectsmergeToolStripMenuItem";
exportSelectedObjectsmergeToolStripMenuItem.Size = new System.Drawing.Size(382, 22);
exportSelectedObjectsmergeToolStripMenuItem.Size = new System.Drawing.Size(417, 22);
exportSelectedObjectsmergeToolStripMenuItem.Text = "Export selected objects (merge)";
exportSelectedObjectsmergeToolStripMenuItem.Click += exportSelectedObjectsmergeToolStripMenuItem_Click;
//
// exportSelectedObjectsmergeWithAnimationClipToolStripMenuItem
//
exportSelectedObjectsmergeWithAnimationClipToolStripMenuItem.Name = "exportSelectedObjectsmergeWithAnimationClipToolStripMenuItem";
exportSelectedObjectsmergeWithAnimationClipToolStripMenuItem.Size = new System.Drawing.Size(382, 22);
exportSelectedObjectsmergeWithAnimationClipToolStripMenuItem.Size = new System.Drawing.Size(417, 22);
exportSelectedObjectsmergeWithAnimationClipToolStripMenuItem.Text = "Export selected objects (merge) + selected AnimationClips";
exportSelectedObjectsmergeWithAnimationClipToolStripMenuItem.Click += exportSelectedObjectsmergeWithAnimationClipToolStripMenuItem_Click;
//
// toolStripSeparator9
//
toolStripSeparator9.Name = "toolStripSeparator9";
toolStripSeparator9.Size = new System.Drawing.Size(379, 6);
toolStripSeparator9.Size = new System.Drawing.Size(414, 6);
//
// exportSelectedNodessplitToolStripMenuItem
//
exportSelectedNodessplitToolStripMenuItem.Name = "exportSelectedNodessplitToolStripMenuItem";
exportSelectedNodessplitToolStripMenuItem.Size = new System.Drawing.Size(382, 22);
exportSelectedNodessplitToolStripMenuItem.Size = new System.Drawing.Size(417, 22);
exportSelectedNodessplitToolStripMenuItem.Text = "Export selected nodes (split)";
exportSelectedNodessplitToolStripMenuItem.Click += exportSelectedNodessplitToolStripMenuItem_Click;
//
// exportSelectedNodessplitSelectedAnimationClipsToolStripMenuItem
//
exportSelectedNodessplitSelectedAnimationClipsToolStripMenuItem.Name = "exportSelectedNodessplitSelectedAnimationClipsToolStripMenuItem";
exportSelectedNodessplitSelectedAnimationClipsToolStripMenuItem.Size = new System.Drawing.Size(382, 22);
exportSelectedNodessplitSelectedAnimationClipsToolStripMenuItem.Size = new System.Drawing.Size(417, 22);
exportSelectedNodessplitSelectedAnimationClipsToolStripMenuItem.Text = "Export selected nodes (split) + selected AnimationClips";
exportSelectedNodessplitSelectedAnimationClipsToolStripMenuItem.Click += exportSelectedNodessplitSelectedAnimationClipsToolStripMenuItem_Click;
//
@@ -491,72 +491,72 @@ namespace AssetStudio.GUI
//
exportToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { exportAllAssetsMenuItem, exportSelectedAssetsMenuItem, exportFilteredAssetsMenuItem, toolStripSeparator3, exportAnimatorWithSelectedAnimationClipToolStripMenuItem, toolStripSeparator4, toolStripMenuItem2, toolStripMenuItem3, toolStripMenuItem16, toolStripSeparator2, toolStripMenuItem10, sceneHierarchy });
exportToolStripMenuItem.Name = "exportToolStripMenuItem";
exportToolStripMenuItem.Size = new System.Drawing.Size(53, 20);
exportToolStripMenuItem.Size = new System.Drawing.Size(58, 21);
exportToolStripMenuItem.Text = "Export";
//
// exportAllAssetsMenuItem
//
exportAllAssetsMenuItem.Name = "exportAllAssetsMenuItem";
exportAllAssetsMenuItem.Size = new System.Drawing.Size(266, 22);
exportAllAssetsMenuItem.Size = new System.Drawing.Size(284, 22);
exportAllAssetsMenuItem.Text = "All assets";
exportAllAssetsMenuItem.Click += exportAllAssetsMenuItem_Click;
//
// exportSelectedAssetsMenuItem
//
exportSelectedAssetsMenuItem.Name = "exportSelectedAssetsMenuItem";
exportSelectedAssetsMenuItem.Size = new System.Drawing.Size(266, 22);
exportSelectedAssetsMenuItem.Size = new System.Drawing.Size(284, 22);
exportSelectedAssetsMenuItem.Text = "Selected assets";
exportSelectedAssetsMenuItem.Click += exportSelectedAssetsMenuItem_Click;
//
// exportFilteredAssetsMenuItem
//
exportFilteredAssetsMenuItem.Name = "exportFilteredAssetsMenuItem";
exportFilteredAssetsMenuItem.Size = new System.Drawing.Size(266, 22);
exportFilteredAssetsMenuItem.Size = new System.Drawing.Size(284, 22);
exportFilteredAssetsMenuItem.Text = "Filtered assets";
exportFilteredAssetsMenuItem.Click += exportFilteredAssetsMenuItem_Click;
//
// toolStripSeparator3
//
toolStripSeparator3.Name = "toolStripSeparator3";
toolStripSeparator3.Size = new System.Drawing.Size(263, 6);
toolStripSeparator3.Size = new System.Drawing.Size(281, 6);
//
// exportAnimatorWithSelectedAnimationClipToolStripMenuItem
//
exportAnimatorWithSelectedAnimationClipToolStripMenuItem.Name = "exportAnimatorWithSelectedAnimationClipToolStripMenuItem";
exportAnimatorWithSelectedAnimationClipToolStripMenuItem.Size = new System.Drawing.Size(266, 22);
exportAnimatorWithSelectedAnimationClipToolStripMenuItem.Size = new System.Drawing.Size(284, 22);
exportAnimatorWithSelectedAnimationClipToolStripMenuItem.Text = "Animator + selected AnimationClips";
exportAnimatorWithSelectedAnimationClipToolStripMenuItem.Click += exportAnimatorwithAnimationClipMenuItem_Click;
//
// toolStripSeparator4
//
toolStripSeparator4.Name = "toolStripSeparator4";
toolStripSeparator4.Size = new System.Drawing.Size(263, 6);
toolStripSeparator4.Size = new System.Drawing.Size(281, 6);
//
// toolStripMenuItem2
//
toolStripMenuItem2.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { toolStripMenuItem4, toolStripMenuItem5, toolStripMenuItem6 });
toolStripMenuItem2.Name = "toolStripMenuItem2";
toolStripMenuItem2.Size = new System.Drawing.Size(266, 22);
toolStripMenuItem2.Size = new System.Drawing.Size(284, 22);
toolStripMenuItem2.Text = "Raw";
//
// toolStripMenuItem4
//
toolStripMenuItem4.Name = "toolStripMenuItem4";
toolStripMenuItem4.Size = new System.Drawing.Size(152, 22);
toolStripMenuItem4.Size = new System.Drawing.Size(165, 22);
toolStripMenuItem4.Text = "All assets";
toolStripMenuItem4.Click += toolStripMenuItem4_Click;
//
// toolStripMenuItem5
//
toolStripMenuItem5.Name = "toolStripMenuItem5";
toolStripMenuItem5.Size = new System.Drawing.Size(152, 22);
toolStripMenuItem5.Size = new System.Drawing.Size(165, 22);
toolStripMenuItem5.Text = "Selected assets";
toolStripMenuItem5.Click += toolStripMenuItem5_Click;
//
// toolStripMenuItem6
//
toolStripMenuItem6.Name = "toolStripMenuItem6";
toolStripMenuItem6.Size = new System.Drawing.Size(152, 22);
toolStripMenuItem6.Size = new System.Drawing.Size(165, 22);
toolStripMenuItem6.Text = "Filtered assets";
toolStripMenuItem6.Click += toolStripMenuItem6_Click;
//
@@ -564,27 +564,27 @@ namespace AssetStudio.GUI
//
toolStripMenuItem3.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { toolStripMenuItem7, toolStripMenuItem8, toolStripMenuItem9 });
toolStripMenuItem3.Name = "toolStripMenuItem3";
toolStripMenuItem3.Size = new System.Drawing.Size(266, 22);
toolStripMenuItem3.Size = new System.Drawing.Size(284, 22);
toolStripMenuItem3.Text = "Dump";
//
// toolStripMenuItem7
//
toolStripMenuItem7.Name = "toolStripMenuItem7";
toolStripMenuItem7.Size = new System.Drawing.Size(152, 22);
toolStripMenuItem7.Size = new System.Drawing.Size(165, 22);
toolStripMenuItem7.Text = "All assets";
toolStripMenuItem7.Click += toolStripMenuItem7_Click;
//
// toolStripMenuItem8
//
toolStripMenuItem8.Name = "toolStripMenuItem8";
toolStripMenuItem8.Size = new System.Drawing.Size(152, 22);
toolStripMenuItem8.Size = new System.Drawing.Size(165, 22);
toolStripMenuItem8.Text = "Selected assets";
toolStripMenuItem8.Click += toolStripMenuItem8_Click;
//
// toolStripMenuItem9
//
toolStripMenuItem9.Name = "toolStripMenuItem9";
toolStripMenuItem9.Size = new System.Drawing.Size(152, 22);
toolStripMenuItem9.Size = new System.Drawing.Size(165, 22);
toolStripMenuItem9.Text = "Filtered assets";
toolStripMenuItem9.Click += toolStripMenuItem9_Click;
//
@@ -592,67 +592,67 @@ namespace AssetStudio.GUI
//
toolStripMenuItem16.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { toolStripMenuItem17, toolStripMenuItem24, toolStripMenuItem25 });
toolStripMenuItem16.Name = "toolStripMenuItem16";
toolStripMenuItem16.Size = new System.Drawing.Size(266, 22);
toolStripMenuItem16.Size = new System.Drawing.Size(284, 22);
toolStripMenuItem16.Text = "JSON";
//
// toolStripMenuItem17
//
toolStripMenuItem17.Name = "toolStripMenuItem17";
toolStripMenuItem17.Size = new System.Drawing.Size(152, 22);
toolStripMenuItem17.Size = new System.Drawing.Size(165, 22);
toolStripMenuItem17.Text = "All assets";
toolStripMenuItem17.Click += toolStripMenuItem17_Click;
//
// toolStripMenuItem24
//
toolStripMenuItem24.Name = "toolStripMenuItem24";
toolStripMenuItem24.Size = new System.Drawing.Size(152, 22);
toolStripMenuItem24.Size = new System.Drawing.Size(165, 22);
toolStripMenuItem24.Text = "Selected assets";
toolStripMenuItem24.Click += toolStripMenuItem24_Click;
//
// toolStripMenuItem25
//
toolStripMenuItem25.Name = "toolStripMenuItem25";
toolStripMenuItem25.Size = new System.Drawing.Size(152, 22);
toolStripMenuItem25.Size = new System.Drawing.Size(165, 22);
toolStripMenuItem25.Text = "Filtered assets";
toolStripMenuItem25.Click += toolStripMenuItem25_Click;
//
// toolStripSeparator2
//
toolStripSeparator2.Name = "toolStripSeparator2";
toolStripSeparator2.Size = new System.Drawing.Size(263, 6);
toolStripSeparator2.Size = new System.Drawing.Size(281, 6);
//
// toolStripMenuItem10
//
toolStripMenuItem10.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { toolStripMenuItem11, toolStripMenuItem12, toolStripMenuItem13 });
toolStripMenuItem10.Name = "toolStripMenuItem10";
toolStripMenuItem10.Size = new System.Drawing.Size(266, 22);
toolStripMenuItem10.Size = new System.Drawing.Size(284, 22);
toolStripMenuItem10.Text = "Asset list to XML";
//
// toolStripMenuItem11
//
toolStripMenuItem11.Name = "toolStripMenuItem11";
toolStripMenuItem11.Size = new System.Drawing.Size(152, 22);
toolStripMenuItem11.Size = new System.Drawing.Size(165, 22);
toolStripMenuItem11.Text = "All assets";
toolStripMenuItem11.Click += toolStripMenuItem11_Click;
//
// toolStripMenuItem12
//
toolStripMenuItem12.Name = "toolStripMenuItem12";
toolStripMenuItem12.Size = new System.Drawing.Size(152, 22);
toolStripMenuItem12.Size = new System.Drawing.Size(165, 22);
toolStripMenuItem12.Text = "Selected assets";
toolStripMenuItem12.Click += toolStripMenuItem12_Click;
//
// toolStripMenuItem13
//
toolStripMenuItem13.Name = "toolStripMenuItem13";
toolStripMenuItem13.Size = new System.Drawing.Size(152, 22);
toolStripMenuItem13.Size = new System.Drawing.Size(165, 22);
toolStripMenuItem13.Text = "Filtered assets";
toolStripMenuItem13.Click += toolStripMenuItem13_Click;
//
// sceneHierarchy
//
sceneHierarchy.Name = "sceneHierarchy";
sceneHierarchy.Size = new System.Drawing.Size(266, 22);
sceneHierarchy.Size = new System.Drawing.Size(284, 22);
sceneHierarchy.Text = "Scene hierarchy";
sceneHierarchy.Click += sceneHierarchy_Click;
//
@@ -660,7 +660,7 @@ namespace AssetStudio.GUI
//
filterTypeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { allToolStripMenuItem });
filterTypeToolStripMenuItem.Name = "filterTypeToolStripMenuItem";
filterTypeToolStripMenuItem.Size = new System.Drawing.Size(72, 20);
filterTypeToolStripMenuItem.Size = new System.Drawing.Size(80, 21);
filterTypeToolStripMenuItem.Text = "Filter Type";
//
// allToolStripMenuItem
@@ -677,7 +677,7 @@ namespace AssetStudio.GUI
//
debugMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { toolStripMenuItem15, exportClassStructuresMenuItem, enableConsole, clearConsoleToolStripMenuItem, enableFileLogging, loggedEventsMenuItem });
debugMenuItem.Name = "debugMenuItem";
debugMenuItem.Size = new System.Drawing.Size(54, 20);
debugMenuItem.Size = new System.Drawing.Size(59, 21);
debugMenuItem.Text = "Debug";
//
// toolStripMenuItem15
@@ -686,14 +686,14 @@ namespace AssetStudio.GUI
toolStripMenuItem15.CheckOnClick = true;
toolStripMenuItem15.CheckState = System.Windows.Forms.CheckState.Checked;
toolStripMenuItem15.Name = "toolStripMenuItem15";
toolStripMenuItem15.Size = new System.Drawing.Size(191, 22);
toolStripMenuItem15.Size = new System.Drawing.Size(207, 22);
toolStripMenuItem15.Text = "Show error message";
toolStripMenuItem15.Click += toolStripMenuItem15_Click;
//
// exportClassStructuresMenuItem
//
exportClassStructuresMenuItem.Name = "exportClassStructuresMenuItem";
exportClassStructuresMenuItem.Size = new System.Drawing.Size(191, 22);
exportClassStructuresMenuItem.Size = new System.Drawing.Size(207, 22);
exportClassStructuresMenuItem.Text = "Export class structures";
exportClassStructuresMenuItem.Click += exportClassStructuresMenuItem_Click;
//
@@ -703,14 +703,14 @@ namespace AssetStudio.GUI
enableConsole.CheckOnClick = true;
enableConsole.CheckState = System.Windows.Forms.CheckState.Checked;
enableConsole.Name = "enableConsole";
enableConsole.Size = new System.Drawing.Size(191, 22);
enableConsole.Size = new System.Drawing.Size(207, 22);
enableConsole.Text = "Enable Console";
enableConsole.CheckedChanged += enableConsole_CheckedChanged;
//
// clearConsoleToolStripMenuItem
//
clearConsoleToolStripMenuItem.Name = "clearConsoleToolStripMenuItem";
clearConsoleToolStripMenuItem.Size = new System.Drawing.Size(191, 22);
clearConsoleToolStripMenuItem.Size = new System.Drawing.Size(207, 22);
clearConsoleToolStripMenuItem.Text = "Clear Console";
clearConsoleToolStripMenuItem.Click += clearConsoleToolStripMenuItem_Click;
//
@@ -720,30 +720,29 @@ namespace AssetStudio.GUI
enableFileLogging.CheckOnClick = true;
enableFileLogging.CheckState = System.Windows.Forms.CheckState.Checked;
enableFileLogging.Name = "enableFileLogging";
enableFileLogging.Size = new System.Drawing.Size(191, 22);
enableFileLogging.Size = new System.Drawing.Size(207, 22);
enableFileLogging.Text = "Enable file logging";
enableFileLogging.CheckedChanged += enableFileLogging_CheckedChanged;
//
// loggedEventsMenuItem
//
loggedEventsMenuItem.Name = "loggedEventsMenuItem";
loggedEventsMenuItem.Size = new System.Drawing.Size(191, 22);
loggedEventsMenuItem.Size = new System.Drawing.Size(207, 22);
loggedEventsMenuItem.Text = "Logged events";
loggedEventsMenuItem.DropDown.Closing += loggedEventsMenuItem_DropDownClosing;
loggedEventsMenuItem.DropDownClosed += loggedEventsMenuItem_DropDownClosed;
//
// miscToolStripMenuItem
//
miscToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { MapNameComboBox, buildMapToolStripMenuItem, buildBothToolStripMenuItem, clearMapToolStripMenuItem, toolStripSeparator7, assetMapNameTextBox, buildAssetMapToolStripMenuItem, assetMapTypeMenuItem, toolStripSeparator8, loadAIToolStripMenuItem, loadCABMapToolStripMenuItem, assetBrowserToolStripMenuItem });
miscToolStripMenuItem.Name = "miscToolStripMenuItem";
miscToolStripMenuItem.Size = new System.Drawing.Size(47, 20);
miscToolStripMenuItem.Size = new System.Drawing.Size(50, 21);
miscToolStripMenuItem.Text = "Misc.";
miscToolStripMenuItem.DropDownOpening += miscToolStripMenuItem_DropDownOpening;
//
// MapNameComboBox
//
MapNameComboBox.Name = "MapNameComboBox";
MapNameComboBox.Size = new System.Drawing.Size(121, 23);
MapNameComboBox.Size = new System.Drawing.Size(121, 25);
MapNameComboBox.ToolTipText = "Enter name of Map here";
//
// buildMapToolStripMenuItem
@@ -842,7 +841,7 @@ namespace AssetStudio.GUI
//
splitContainer1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
splitContainer1.Location = new System.Drawing.Point(0, 24);
splitContainer1.Location = new System.Drawing.Point(0, 25);
splitContainer1.Name = "splitContainer1";
//
// splitContainer1.Panel1
@@ -856,7 +855,7 @@ namespace AssetStudio.GUI
splitContainer1.Panel2.Controls.Add(tabControl2);
splitContainer1.Panel2.Controls.Add(statusStrip1);
splitContainer1.Panel2MinSize = 400;
splitContainer1.Size = new System.Drawing.Size(1264, 657);
splitContainer1.Size = new System.Drawing.Size(1264, 656);
splitContainer1.SplitterDistance = 482;
splitContainer1.TabIndex = 2;
splitContainer1.TabStop = false;
@@ -871,7 +870,7 @@ namespace AssetStudio.GUI
tabControl1.Name = "tabControl1";
tabControl1.Padding = new System.Drawing.Point(17, 3);
tabControl1.SelectedIndex = 0;
tabControl1.Size = new System.Drawing.Size(480, 635);
tabControl1.Size = new System.Drawing.Size(480, 634);
tabControl1.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
tabControl1.TabIndex = 0;
tabControl1.Selected += tabPageSelected;
@@ -880,9 +879,9 @@ namespace AssetStudio.GUI
//
tabPage1.Controls.Add(sceneTreeView);
tabPage1.Controls.Add(treeSearch);
tabPage1.Location = new System.Drawing.Point(4, 24);
tabPage1.Location = new System.Drawing.Point(4, 26);
tabPage1.Name = "tabPage1";
tabPage1.Size = new System.Drawing.Size(472, 607);
tabPage1.Size = new System.Drawing.Size(472, 604);
tabPage1.TabIndex = 0;
tabPage1.Text = "Scene Hierarchy";
tabPage1.UseVisualStyleBackColor = true;
@@ -894,7 +893,7 @@ namespace AssetStudio.GUI
sceneTreeView.HideSelection = false;
sceneTreeView.Location = new System.Drawing.Point(0, 23);
sceneTreeView.Name = "sceneTreeView";
sceneTreeView.Size = new System.Drawing.Size(472, 584);
sceneTreeView.Size = new System.Drawing.Size(472, 581);
sceneTreeView.TabIndex = 1;
sceneTreeView.AfterCheck += sceneTreeView_AfterCheck;
//
@@ -914,9 +913,9 @@ namespace AssetStudio.GUI
//
tabPage2.Controls.Add(assetListView);
tabPage2.Controls.Add(listSearch);
tabPage2.Location = new System.Drawing.Point(4, 24);
tabPage2.Location = new System.Drawing.Point(4, 26);
tabPage2.Name = "tabPage2";
tabPage2.Size = new System.Drawing.Size(472, 607);
tabPage2.Size = new System.Drawing.Size(472, 605);
tabPage2.TabIndex = 1;
tabPage2.Text = "Asset List";
tabPage2.UseVisualStyleBackColor = true;
@@ -929,7 +928,7 @@ namespace AssetStudio.GUI
assetListView.GridLines = true;
assetListView.Location = new System.Drawing.Point(0, 23);
assetListView.Name = "assetListView";
assetListView.Size = new System.Drawing.Size(472, 584);
assetListView.Size = new System.Drawing.Size(472, 582);
assetListView.TabIndex = 1;
assetListView.UseCompatibleStateImageBehavior = false;
assetListView.View = System.Windows.Forms.View.Details;
@@ -977,9 +976,9 @@ namespace AssetStudio.GUI
// tabPage3
//
tabPage3.Controls.Add(classesListView);
tabPage3.Location = new System.Drawing.Point(4, 24);
tabPage3.Location = new System.Drawing.Point(4, 26);
tabPage3.Name = "tabPage3";
tabPage3.Size = new System.Drawing.Size(472, 607);
tabPage3.Size = new System.Drawing.Size(472, 605);
tabPage3.TabIndex = 2;
tabPage3.Text = "Asset Classes";
tabPage3.UseVisualStyleBackColor = true;
@@ -992,7 +991,7 @@ namespace AssetStudio.GUI
classesListView.Location = new System.Drawing.Point(0, 0);
classesListView.MultiSelect = false;
classesListView.Name = "classesListView";
classesListView.Size = new System.Drawing.Size(472, 607);
classesListView.Size = new System.Drawing.Size(472, 605);
classesListView.TabIndex = 0;
classesListView.UseCompatibleStateImageBehavior = false;
classesListView.View = System.Windows.Forms.View.Details;
@@ -1014,7 +1013,7 @@ namespace AssetStudio.GUI
//
progressbarPanel.Controls.Add(progressBar1);
progressbarPanel.Dock = System.Windows.Forms.DockStyle.Bottom;
progressbarPanel.Location = new System.Drawing.Point(0, 635);
progressbarPanel.Location = new System.Drawing.Point(0, 634);
progressbarPanel.Name = "progressbarPanel";
progressbarPanel.Padding = new System.Windows.Forms.Padding(1, 3, 1, 1);
progressbarPanel.Size = new System.Drawing.Size(480, 20);
@@ -1037,16 +1036,16 @@ namespace AssetStudio.GUI
tabControl2.Location = new System.Drawing.Point(0, 0);
tabControl2.Name = "tabControl2";
tabControl2.SelectedIndex = 0;
tabControl2.Size = new System.Drawing.Size(776, 633);
tabControl2.Size = new System.Drawing.Size(776, 632);
tabControl2.TabIndex = 4;
tabControl2.SelectedIndexChanged += tabControl2_SelectedIndexChanged;
//
// tabPage4
//
tabPage4.Controls.Add(previewPanel);
tabPage4.Location = new System.Drawing.Point(4, 24);
tabPage4.Location = new System.Drawing.Point(4, 26);
tabPage4.Name = "tabPage4";
tabPage4.Size = new System.Drawing.Size(768, 605);
tabPage4.Size = new System.Drawing.Size(768, 602);
tabPage4.TabIndex = 0;
tabPage4.Text = "Preview";
tabPage4.UseVisualStyleBackColor = true;
@@ -1065,7 +1064,7 @@ namespace AssetStudio.GUI
previewPanel.Dock = System.Windows.Forms.DockStyle.Fill;
previewPanel.Location = new System.Drawing.Point(0, 0);
previewPanel.Name = "previewPanel";
previewPanel.Size = new System.Drawing.Size(768, 605);
previewPanel.Size = new System.Drawing.Size(768, 602);
previewPanel.TabIndex = 1;
previewPanel.Resize += preview_Resize;
//
@@ -1076,7 +1075,7 @@ namespace AssetStudio.GUI
assetInfoLabel.ForeColor = System.Drawing.SystemColors.ControlLightLight;
assetInfoLabel.Location = new System.Drawing.Point(4, 7);
assetInfoLabel.Name = "assetInfoLabel";
assetInfoLabel.Size = new System.Drawing.Size(0, 15);
assetInfoLabel.Size = new System.Drawing.Size(0, 17);
assetInfoLabel.TabIndex = 0;
//
// FMODpanel
@@ -1095,7 +1094,7 @@ namespace AssetStudio.GUI
FMODpanel.Dock = System.Windows.Forms.DockStyle.Fill;
FMODpanel.Location = new System.Drawing.Point(0, 0);
FMODpanel.Name = "FMODpanel";
FMODpanel.Size = new System.Drawing.Size(768, 605);
FMODpanel.Size = new System.Drawing.Size(768, 602);
FMODpanel.TabIndex = 2;
FMODpanel.Visible = false;
//
@@ -1105,7 +1104,7 @@ namespace AssetStudio.GUI
FMODcopyright.ForeColor = System.Drawing.SystemColors.ControlLight;
FMODcopyright.Location = new System.Drawing.Point(214, 337);
FMODcopyright.Name = "FMODcopyright";
FMODcopyright.Size = new System.Drawing.Size(316, 15);
FMODcopyright.Size = new System.Drawing.Size(350, 17);
FMODcopyright.TabIndex = 9;
FMODcopyright.Text = "Audio Engine supplied by FMOD by Firelight Technologies.";
//
@@ -1115,7 +1114,7 @@ namespace AssetStudio.GUI
FMODinfoLabel.ForeColor = System.Drawing.SystemColors.ControlLightLight;
FMODinfoLabel.Location = new System.Drawing.Point(269, 235);
FMODinfoLabel.Name = "FMODinfoLabel";
FMODinfoLabel.Size = new System.Drawing.Size(0, 15);
FMODinfoLabel.Size = new System.Drawing.Size(0, 17);
FMODinfoLabel.TabIndex = 8;
//
// FMODtimerLabel
@@ -1124,7 +1123,7 @@ namespace AssetStudio.GUI
FMODtimerLabel.ForeColor = System.Drawing.SystemColors.ControlLightLight;
FMODtimerLabel.Location = new System.Drawing.Point(460, 235);
FMODtimerLabel.Name = "FMODtimerLabel";
FMODtimerLabel.Size = new System.Drawing.Size(78, 15);
FMODtimerLabel.Size = new System.Drawing.Size(89, 17);
FMODtimerLabel.TabIndex = 7;
FMODtimerLabel.Text = "0:00.0 / 0:00.0";
//
@@ -1134,7 +1133,7 @@ namespace AssetStudio.GUI
FMODstatusLabel.ForeColor = System.Drawing.SystemColors.ControlLightLight;
FMODstatusLabel.Location = new System.Drawing.Point(213, 235);
FMODstatusLabel.Name = "FMODstatusLabel";
FMODstatusLabel.Size = new System.Drawing.Size(51, 15);
FMODstatusLabel.Size = new System.Drawing.Size(58, 17);
FMODstatusLabel.TabIndex = 6;
FMODstatusLabel.Text = "Stopped";
//
@@ -1211,7 +1210,7 @@ namespace AssetStudio.GUI
fontPreviewBox.Location = new System.Drawing.Point(0, 0);
fontPreviewBox.Name = "fontPreviewBox";
fontPreviewBox.ReadOnly = true;
fontPreviewBox.Size = new System.Drawing.Size(768, 605);
fontPreviewBox.Size = new System.Drawing.Size(768, 602);
fontPreviewBox.TabIndex = 0;
fontPreviewBox.Text = resources.GetString("fontPreviewBox.Text");
fontPreviewBox.Visible = false;
@@ -1228,7 +1227,7 @@ namespace AssetStudio.GUI
glControl.Location = new System.Drawing.Point(0, 0);
glControl.Name = "glControl";
glControl.Profile = OpenTK.Windowing.Common.ContextProfile.Core;
glControl.Size = new System.Drawing.Size(768, 605);
glControl.Size = new System.Drawing.Size(768, 602);
glControl.TabIndex = 4;
glControl.Visible = false;
glControl.Load += glControl_Load;
@@ -1241,13 +1240,13 @@ namespace AssetStudio.GUI
// textPreviewBox
//
textPreviewBox.Dock = System.Windows.Forms.DockStyle.Fill;
textPreviewBox.Font = new System.Drawing.Font("Consolas", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
textPreviewBox.Font = new System.Drawing.Font("Consolas", 9.75F);
textPreviewBox.Location = new System.Drawing.Point(0, 0);
textPreviewBox.Multiline = true;
textPreviewBox.Name = "textPreviewBox";
textPreviewBox.ReadOnly = true;
textPreviewBox.ScrollBars = System.Windows.Forms.ScrollBars.Both;
textPreviewBox.Size = new System.Drawing.Size(768, 605);
textPreviewBox.Size = new System.Drawing.Size(768, 602);
textPreviewBox.TabIndex = 2;
textPreviewBox.Visible = false;
textPreviewBox.WordWrap = false;
@@ -1260,7 +1259,7 @@ namespace AssetStudio.GUI
classTextBox.Name = "classTextBox";
classTextBox.ReadOnly = true;
classTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Both;
classTextBox.Size = new System.Drawing.Size(768, 605);
classTextBox.Size = new System.Drawing.Size(768, 602);
classTextBox.TabIndex = 3;
classTextBox.Visible = false;
classTextBox.WordWrap = false;
@@ -1268,9 +1267,9 @@ namespace AssetStudio.GUI
// tabPage5
//
tabPage5.Controls.Add(dumpTextBox);
tabPage5.Location = new System.Drawing.Point(4, 24);
tabPage5.Location = new System.Drawing.Point(4, 26);
tabPage5.Name = "tabPage5";
tabPage5.Size = new System.Drawing.Size(768, 605);
tabPage5.Size = new System.Drawing.Size(768, 603);
tabPage5.TabIndex = 1;
tabPage5.Text = "Dump";
tabPage5.UseVisualStyleBackColor = true;
@@ -1283,14 +1282,14 @@ namespace AssetStudio.GUI
dumpTextBox.Name = "dumpTextBox";
dumpTextBox.ReadOnly = true;
dumpTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Both;
dumpTextBox.Size = new System.Drawing.Size(768, 605);
dumpTextBox.Size = new System.Drawing.Size(768, 603);
dumpTextBox.TabIndex = 0;
dumpTextBox.WordWrap = false;
//
// statusStrip1
//
statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { toolStripStatusLabel1 });
statusStrip1.Location = new System.Drawing.Point(0, 633);
statusStrip1.Location = new System.Drawing.Point(0, 632);
statusStrip1.Name = "statusStrip1";
statusStrip1.Size = new System.Drawing.Size(776, 22);
statusStrip1.TabIndex = 2;
@@ -1322,26 +1321,26 @@ namespace AssetStudio.GUI
contextMenuStrip1.ImageScalingSize = new System.Drawing.Size(20, 20);
contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { copyToolStripMenuItem, exportSelectedAssetsToolStripMenuItem, exportAnimatorwithselectedAnimationClipMenuItem, goToSceneHierarchyToolStripMenuItem, showOriginalFileToolStripMenuItem });
contextMenuStrip1.Name = "contextMenuStrip1";
contextMenuStrip1.Size = new System.Drawing.Size(304, 114);
contextMenuStrip1.Size = new System.Drawing.Size(327, 114);
//
// copyToolStripMenuItem
//
copyToolStripMenuItem.Name = "copyToolStripMenuItem";
copyToolStripMenuItem.Size = new System.Drawing.Size(303, 22);
copyToolStripMenuItem.Size = new System.Drawing.Size(326, 22);
copyToolStripMenuItem.Text = "Copy text";
copyToolStripMenuItem.Click += copyToolStripMenuItem_Click;
//
// exportSelectedAssetsToolStripMenuItem
//
exportSelectedAssetsToolStripMenuItem.Name = "exportSelectedAssetsToolStripMenuItem";
exportSelectedAssetsToolStripMenuItem.Size = new System.Drawing.Size(303, 22);
exportSelectedAssetsToolStripMenuItem.Size = new System.Drawing.Size(326, 22);
exportSelectedAssetsToolStripMenuItem.Text = "Export selected assets";
exportSelectedAssetsToolStripMenuItem.Click += exportSelectedAssetsToolStripMenuItem_Click;
//
// exportAnimatorwithselectedAnimationClipMenuItem
//
exportAnimatorwithselectedAnimationClipMenuItem.Name = "exportAnimatorwithselectedAnimationClipMenuItem";
exportAnimatorwithselectedAnimationClipMenuItem.Size = new System.Drawing.Size(303, 22);
exportAnimatorwithselectedAnimationClipMenuItem.Size = new System.Drawing.Size(326, 22);
exportAnimatorwithselectedAnimationClipMenuItem.Text = "Export Animator + selected AnimationClips";
exportAnimatorwithselectedAnimationClipMenuItem.Visible = false;
exportAnimatorwithselectedAnimationClipMenuItem.Click += exportAnimatorwithAnimationClipMenuItem_Click;
@@ -1349,7 +1348,7 @@ namespace AssetStudio.GUI
// goToSceneHierarchyToolStripMenuItem
//
goToSceneHierarchyToolStripMenuItem.Name = "goToSceneHierarchyToolStripMenuItem";
goToSceneHierarchyToolStripMenuItem.Size = new System.Drawing.Size(303, 22);
goToSceneHierarchyToolStripMenuItem.Size = new System.Drawing.Size(326, 22);
goToSceneHierarchyToolStripMenuItem.Text = "Go to scene hierarchy";
goToSceneHierarchyToolStripMenuItem.Visible = false;
goToSceneHierarchyToolStripMenuItem.Click += goToSceneHierarchyToolStripMenuItem_Click;
@@ -1357,7 +1356,7 @@ namespace AssetStudio.GUI
// showOriginalFileToolStripMenuItem
//
showOriginalFileToolStripMenuItem.Name = "showOriginalFileToolStripMenuItem";
showOriginalFileToolStripMenuItem.Size = new System.Drawing.Size(303, 22);
showOriginalFileToolStripMenuItem.Size = new System.Drawing.Size(326, 22);
showOriginalFileToolStripMenuItem.Text = "Show original file";
showOriginalFileToolStripMenuItem.Visible = false;
showOriginalFileToolStripMenuItem.Click += showOriginalFileToolStripMenuItem_Click;

View File

@@ -1221,12 +1221,13 @@ namespace AssetStudio.GUI
else if (m_Mesh.m_Normals.Length == m_Mesh.m_VertexCount * 4)
count = 4;
normalData = new OpenTK.Mathematics.Vector3[m_Mesh.m_VertexCount];
for (int n = 0; n < m_Mesh.m_VertexCount; n++)
for (int n = 0; n < m_Mesh.m_VertexCount; n++)//Kh0n5u Debug1
{
normalData[n] = new OpenTK.Mathematics.Vector3(
m_Mesh.m_Normals[n * count],
m_Mesh.m_Normals[n * count + 1],
m_Mesh.m_Normals[n * count + 2]);
//0.5f, 0.5f, 1.0f);
}
}
else
@@ -2955,5 +2956,10 @@ namespace AssetStudio.GUI
}
}
#endregion
private void specifyGame_Click(object sender, EventArgs e)
{
}
}
}

View File

@@ -120,9 +120,6 @@
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>312, 17</value>
</metadata>
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>432, 17</value>
</metadata>
<data name="fontPreviewBox.Text" xml:space="preserve">
<value>abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWYZ
1234567890.:,;'\"(!?)+-*/=
@@ -141,6 +138,9 @@ The quick brown fox jumps over the lazy dog. 1234567890
The quick brown fox jumps over the lazy dog. 1234567890</value>
</data>
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>432, 17</value>
</metadata>
<metadata name="timer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>553, 17</value>
</metadata>

View File

@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net7.0;net8.0</TargetFrameworks>
<TargetFrameworks>net8.0</TargetFrameworks>
<Version>1.36.00</Version>
<AssemblyVersion>1.36.00</AssemblyVersion>
<FileVersion>1.36.00</FileVersion>

View File

@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net7.0;net8.0</TargetFrameworks>
<TargetFrameworks>net8.0</TargetFrameworks>
<Version>1.36.00</Version>
<AssemblyVersion>1.36.00</AssemblyVersion>
<FileVersion>1.36.00</FileVersion>

View File

@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net7.0;net8.0</TargetFrameworks>
<TargetFrameworks>net8.0</TargetFrameworks>
<Version>1.36.00</Version>
<AssemblyVersion>1.36.00</AssemblyVersion>
<FileVersion>1.36.00</FileVersion>

View File

@@ -624,7 +624,7 @@ namespace AssetStudio
{
NetEaseUtils.DecryptWithHeader(compressedBytesSpan);
}
if (Game.Type.IsArknightsEndfield() && i == 0)
if (Game.Type.IsArknightsEndfield() && i == 0 && compressedBytesSpan[..32].Count((byte)0xa6) > 5)
{
FairGuardUtils.Decrypt(compressedBytesSpan);
}
@@ -660,7 +660,7 @@ namespace AssetStudio
try
{
reader.Read(compressedBytesSpan);
if (i == 0)
if (i == 0 && compressedBytesSpan[..32].Count((byte)0xa6) > 5)
{
FairGuardUtils.Decrypt(compressedBytesSpan);
}

View File

@@ -17,6 +17,7 @@ namespace AssetStudio
m_Min = reader.ReadVector3();
m_Max = reader.ReadVector3();
}
}
public class CompressedMesh
@@ -146,6 +147,11 @@ namespace AssetStudio
for (int i = 0; i < m_ChannelsSize; i++)
{
m_Channels.Add(new ChannelInfo(reader));
////Kh0n5u Debug2
//if (i == 1){
// m_Channels[i].dimension = 3;
//}
}
}
@@ -801,6 +807,7 @@ namespace AssetStudio
GetTriangles();
}
private void ReadVertexData()
{
m_VertexCount = (int)m_VertexData.m_VertexCount;
@@ -818,6 +825,11 @@ namespace AssetStudio
{
m_Channel.dimension = 4;
}
////Kh0n5u Debug4
//if (reader.Game.Type.IsArknightsEndfield() && chn == 1)
//{
// m_Channel.dimension = 3;
//}
var vertexFormat = MeshHelper.ToVertexFormat(m_Channel.format, version);
var componentByteSize = (int)MeshHelper.GetFormatSize(vertexFormat);
@@ -845,10 +857,18 @@ namespace AssetStudio
int[] componentsIntArray = null;
float[] componentsFloatArray = null;
if (reader.Game.Type.IsArknightsEndfield() && chn == 1)
{
//componentsFloatArray = MeshHelper.BytesToFloatArray(componentBytes, vertexFormat);
componentsFloatArray = MeshHelper.DecompressEndfieldNormal(componentBytes,vertexFormat);
}
else
{
if (MeshHelper.IsIntFormat(vertexFormat))
componentsIntArray = MeshHelper.BytesToIntArray(componentBytes, vertexFormat);
else
componentsFloatArray = MeshHelper.BytesToFloatArray(componentBytes, vertexFormat);
}
if (version[0] >= 2018)
{
@@ -858,7 +878,22 @@ namespace AssetStudio
m_Vertices = componentsFloatArray;
break;
case 1: //kShaderChannelNormal
//Kh0n5u Debug3
//if (reader.Game.Type.IsArknightsEndfield())
//{
// float[] m_Vertices_zero = new float[m_VertexCount * 3];
// for (int i = 0; i < m_VertexCount; i++)
// {
// m_Vertices_zero[i * 3] = 0.0f;
// m_Vertices_zero[i * 3 + 1] = 0.0f;
// m_Vertices_zero[i * 3 + 2] = 1.0f;
// }
// m_Normals = m_Vertices_zero;
//}
//else
//{
m_Normals = componentsFloatArray;
//}
break;
case 2: //kShaderChannelTangent
m_Tangents = componentsFloatArray;
@@ -1457,6 +1492,187 @@ namespace AssetStudio
return result;
}
public static UInt32[] BytesToUInt32Array(byte[] inputBytes, VertexFormat format)
{
var size = GetFormatSize(format);
var len = inputBytes.Length / size;
var result = new UInt32[len];
for (int i = 0; i < len; i++)
{
switch (format)
{
case VertexFormat.UInt32:
result[i] = BinaryPrimitives.ReadUInt32LittleEndian(inputBytes.AsSpan(i * 4));
break;
case VertexFormat.SInt32:
result[i] = (UInt32)BinaryPrimitives.ReadInt32LittleEndian(inputBytes.AsSpan(i * 4));
break;
}
}
return result;
}
public static int[] BytesToSInt32Array(byte[] inputBytes, VertexFormat format)
{
var size = GetFormatSize(format);
var len = inputBytes.Length / size;
var result = new int[len];
for (int i = 0; i < len; i++)
{
switch (format)
{
case VertexFormat.UInt32:
result[i] = (int)BinaryPrimitives.ReadUInt32LittleEndian(inputBytes.AsSpan(i * 4));
break;
case VertexFormat.SInt32:
result[i] = BinaryPrimitives.ReadInt32LittleEndian(inputBytes.AsSpan(i * 4));
break;
}
}
return result;
}
public static float[] DecompressEndfieldNormal(this byte[] inputBytes, VertexFormat format) // 8bits per component
{
var size = MeshHelper.GetFormatSize(format);
var len = inputBytes.Length / size;
var result = new float[len * 3];
var readFloat = new float[len];
readFloat = MeshHelper.BytesToFloatArray(inputBytes, format);
for (int i = 0; i < len; i++)
{
float value = readFloat[i];
float r0x = BitConverter.ToInt32(BitConverter.GetBytes(value)) & 0x40000000;
r0x = (BitConverter.ToUInt32(BitConverter.GetBytes(r0x)) > 0) ? 1.0f : 0.0f;
// (((int3)v2.xxx << (32 - int3(10,10,10) - int3(0,10,20))) >> (32 - int3(10,10,10)))
float r0y = (BitConverter.ToInt32(BitConverter.GetBytes(value)) << 22) >> 22;
float r0z = (BitConverter.ToInt32(BitConverter.GetBytes(value)) << 12) >> 22;
float r0w = (BitConverter.ToInt32(BitConverter.GetBytes(value)) << 2) >> 22;
float r1x = (BitConverter.ToUInt32(BitConverter.GetBytes(value))) >> 31;
float r1y = 0.00195694715f * r0y;
float r1z = 0.00195694715f * r0z;
float r1w = 0.00195694715f * r0w;
float leng = r1x * r1x + r1y * r1y + r1z * r1z + r1w * r1w;
float r2x = 1.0f - Math.Abs(r1y);
float r2y = 1.0f - Math.Abs(r1z);
float r2z = 1.0f - Math.Abs(r1y);
float r3z = r2x - Math.Abs(r1z);
r2x = r3z < 0.0f ? 1.0f : 0.0f;
r0y = r0y >= 0.0f ? 1.0f : 0.0f;
r0z = r0z >= 0.0f ? 1.0f : 0.0f;
r0y = r0y * 2.0f - 1.0f;
r0z = r0z * 2.0f - 1.0f;
r0y = r2y * r0y;
r0z = r2z * r0z;
float r3x = (r2x == 1.0f) ? r0y : r1y;
float r3y = (r2x == 1.0f) ? r0z : r1z;
r0y = r3x* r3x + r3y * r3y + r3z * r3z;
r0y = 1.0f / (float)Math.Sqrt(r0y);
r2x = r3x * r0y;
r2y = r3y * r0y;
r2z = r3z * r0y;
//float old_r3x = r3x;
//r3x = r3y * r0y - r2z;
//r3y = r3z * r0y - r2x;
//r3z = old_r3x * r0y - r2y;
//r0y = r3x * r2x + r3y * r2y + r3z * r2z;
//r3x = r3x - r0y;
//r3y = r3y - r0y;
//r3z = r3z - r0y;
//r0y = r3x * r3x + r3y * r3y + r3z * r3z;
//r0y = 1.0f / (float)Math.Sqrt(r0y);
//r3x = r3x * r0y;
//r3y = r3y * r0y;
//r3z = r3z * r0y;
//float length = r2x * r2x + r2y * r2y + r2z * r2z;
// 计算result[i * 3]的值
result[i * 3] = r2x;
result[i * 3 + 1] = r2y;
result[i * 3 + 2] = r2z;
//result[i * 3] = 0;
//result[i * 3 + 1] = 0;
//result[i * 3 + 2] = 1;
}
return result;
}
public static float[] DecompressOctahedron(this byte[] inputBytes, VertexFormat format) // 8bits per component
{
var size = GetFormatSize(format);
var len = inputBytes.Length / size;
var result = new float[len*3];
var readFloat = new UInt32[len];
readFloat = BytesToUInt32Array(inputBytes, VertexFormat.UInt32);
// read per 8 bits per component
for (int i = 0; i < len; i++)
{
var x = readFloat[i] & 0xFFFF;
var y = (readFloat[i] >> 16) & 0xFFFF;
var z = (readFloat[i] >> 16) & 0xFF;
var w = (readFloat[i] >> 24) & 0xFF;
/* HLSL Decode Example
* float3 Decode(float2 f)
* {
* f = f * 2.0 - 1.0;
* float3 n = float3(f.x, f.y, 1.0 - abs(f.x) - abs(f.y));
* float t = saturate(-n.z);
* n.xy += n.xy >= 0.0 ? -t : t;
* return normalize(n);
* }
*/
float f_x = x / 65535.0f * 2.0f - 1.0f;
float f_y = y / 65535.0f * 2.0f - 1.0f;
float f_z = 1.0f - Math.Abs(f_x) - Math.Abs(f_y);
if (f_z < 0.0f)
{
float f_t = Math.Max(Math.Min(-f_z, 1.0f), 0.0f);
f_x += f_x >= 0.0f ? -f_t : f_t;
f_y += f_y >= 0.0f ? -f_t : f_t;
}
float length = (float)Math.Sqrt(f_x * f_x + f_y * f_y + f_z * f_z);
if (length > 1e-6f)
{
f_x /= length;
f_y /= length;
f_z /= length;
}
result[i * 3] = f_x;
result[i * 3 + 1] = f_y;
result[i * 3 + 2] = f_z;
}
return result;
}
public static int[] BytesToIntArray(byte[] inputBytes, VertexFormat format)
{
var size = GetFormatSize(format);

View File

@@ -11,11 +11,11 @@ namespace AssetStudio
Logger.Verbose($"Attempting to decrypt block with FairGuard encryption...");
var encryptedOffset = 0;
var encryptedSize = bytes.Length > 0x500 ? 0x500 : bytes.Length;
var encryptedSize = Math.Min(0x500, bytes.Length);
if (encryptedSize < 0x20)
{
Logger.Verbose($"block size is less that minimum, skipping...");
Logger.Verbose("block size is less that minimum, skipping...");
return;
}
@@ -27,11 +27,20 @@ namespace AssetStudio
encrypted[i] ^= 0xA6;
}
// old
/*
var seedPart0 = (uint)(encryptedInts[2] ^ 0x1274CBEC ^ encryptedInts[6] ^ 0x3F72EAF3);
var seedPart1 = (uint)(encryptedInts[3] ^ 0xBE482704 ^ encryptedInts[0] ^ encryptedSize);
var seedPart2 = (uint)(encryptedInts[1] ^ encryptedSize ^ encryptedInts[5] ^ 0x753BDCAA);
var seedPart3 = (uint)(encryptedInts[0] ^ 0x82C57E3C ^ encryptedInts[7] ^ 0xE3D947D3);
var seedPart4 = (uint)(encryptedInts[4] ^ 0x6F2A7347 ^ encryptedInts[7] ^ 0x4736C714);
*/
var seedPart0 = (uint)(encryptedInts[2] ^ encryptedInts[6] ^ 0x226a61b9);
var seedPart1 = (uint)(encryptedInts[3] ^ encryptedInts[0] ^ 0x7a39d018 ^ encryptedSize);
var seedPart2 = (uint)(encryptedInts[1] ^ encryptedInts[5] ^ 0x18f6d8aa ^ encryptedSize);
var seedPart3 = (uint)(encryptedInts[0] ^ encryptedInts[7] ^ 0xaa255fb1);
var seedPart4 = (uint)(encryptedInts[4] ^ encryptedInts[7] ^ 0xf78dd8eb);
var seedInts = new uint[] { seedPart0, seedPart1, seedPart2, seedPart3, seedPart4 };
var seedBytes = MemoryMarshal.AsBytes<uint>(seedInts);

View File

@@ -4,6 +4,16 @@ namespace AssetStudio;
public class LZ4Inv : LZ4
{
public new static LZ4Inv Instance => new();
protected override (int encCount, int litCount) GetLiteralToken(ReadOnlySpan<byte> cmp, ref int cmpPos) => ((cmp[cmpPos] >> 4) & 0xf, (cmp[cmpPos++] >> 0) & 0xf);
protected override (int encCount, int litCount) GetLiteralToken(ReadOnlySpan<byte> cmp, ref int cmpPos)
{
var val = cmp[cmpPos++];
var lit = val & 0b00110011;
var enc = val & 0b11001100;
enc >>= 2;
return ((enc & 0b11) | enc >> 2, (lit & 0b11) | lit >> 2);
}
protected override int GetChunkEnd(ReadOnlySpan<byte> cmp, ref int cmpPos) => cmp[cmpPos++] << 8 | cmp[cmpPos++] << 0;
}

View File

@@ -1,7 +1,7 @@
# Studio
Check out the [original AssetStudio project](https://github.com/Perfare/AssetStudio) for more information.
Note: Requires Internet connection to fetch asset_index jsons.
Note: Requires Internet connection to fetch asset_index jsons. Added the ability to depress normals from Endfield.
_____________________________________________________________________________________________________________________________
How to use:
@@ -47,3 +47,4 @@ Special Thank to:
- Radioegor146: [Asset-indexes](https://github.com/radioegor146/gi-asset-indexes) for recovered/updated asset_index's.
- Ds5678: [AssetRipper](https://github.com/AssetRipper/AssetRipper)[[discord](https://discord.gg/XqXa53W2Yh)] for information about Asset Formats & Parsing.
- mafaca: [uTinyRipper](https://github.com/mafaca/UtinyRipper) for `YAML` and `AnimationClipConverter`.
- [LukeFZ](https://github.com/LukeFZ/): for decryption of Endfield.

84
a.diff Normal file
View File

@@ -0,0 +1,84 @@
diff --git a/AssetStudio/BundleFile.cs b/AssetStudio/BundleFile.cs
index 86c306f..a59ee47 100644
--- a/AssetStudio/BundleFile.cs
+++ b/AssetStudio/BundleFile.cs
@@ -586,7 +586,7 @@ namespace AssetStudio
{
NetEaseUtils.DecryptWithHeader(compressedBytesSpan);
}
- if (Game.Type.IsArknightsEndfield() && i == 0)
+ if (Game.Type.IsArknightsEndfield() && i == 0 && compressedBytesSpan[..32].Count((byte)0xa6) > 5)
{
FairGuardUtils.Decrypt(compressedBytesSpan);
}
@@ -622,7 +622,7 @@ namespace AssetStudio
try
{
reader.Read(compressedBytesSpan);
- if (i == 0)
+ if (i == 0 && compressedBytesSpan[..32].Count((byte)0xa6) > 5)
{
FairGuardUtils.Decrypt(compressedBytesSpan);
}
diff --git a/AssetStudio/Crypto/FairGuardUtils.cs b/AssetStudio/Crypto/FairGuardUtils.cs
index 23a53a5..6e9e7f1 100644
--- a/AssetStudio/Crypto/FairGuardUtils.cs
+++ b/AssetStudio/Crypto/FairGuardUtils.cs
@@ -11,11 +11,11 @@ namespace AssetStudio
Logger.Verbose($"Attempting to decrypt block with FairGuard encryption...");
var encryptedOffset = 0;
- var encryptedSize = bytes.Length > 0x500 ? 0x500 : bytes.Length;
+ var encryptedSize = Math.Min(0x500, bytes.Length);
if (encryptedSize < 0x20)
{
- Logger.Verbose($"block size is less that minimum, skipping...");
+ Logger.Verbose("block size is less that minimum, skipping...");
return;
}
@@ -27,11 +27,20 @@ namespace AssetStudio
encrypted[i] ^= 0xA6;
}
+ // old
+ /*
var seedPart0 = (uint)(encryptedInts[2] ^ 0x1274CBEC ^ encryptedInts[6] ^ 0x3F72EAF3);
var seedPart1 = (uint)(encryptedInts[3] ^ 0xBE482704 ^ encryptedInts[0] ^ encryptedSize);
var seedPart2 = (uint)(encryptedInts[1] ^ encryptedSize ^ encryptedInts[5] ^ 0x753BDCAA);
var seedPart3 = (uint)(encryptedInts[0] ^ 0x82C57E3C ^ encryptedInts[7] ^ 0xE3D947D3);
var seedPart4 = (uint)(encryptedInts[4] ^ 0x6F2A7347 ^ encryptedInts[7] ^ 0x4736C714);
+ */
+
+ var seedPart0 = (uint)(encryptedInts[2] ^ encryptedInts[6] ^ 0x226a61b9);
+ var seedPart1 = (uint)(encryptedInts[3] ^ encryptedInts[0] ^ 0x7a39d018 ^ encryptedSize);
+ var seedPart2 = (uint)(encryptedInts[1] ^ encryptedInts[5] ^ 0x18f6d8aa ^ encryptedSize);
+ var seedPart3 = (uint)(encryptedInts[0] ^ encryptedInts[7] ^ 0xaa255fb1);
+ var seedPart4 = (uint)(encryptedInts[4] ^ encryptedInts[7] ^ 0xf78dd8eb);
var seedInts = new uint[] { seedPart0, seedPart1, seedPart2, seedPart3, seedPart4 };
var seedBytes = MemoryMarshal.AsBytes<uint>(seedInts);
diff --git a/AssetStudio/LZ4/LZ4Inv.cs b/AssetStudio/LZ4/LZ4Inv.cs
index 042fea2..a7fe492 100644
--- a/AssetStudio/LZ4/LZ4Inv.cs
+++ b/AssetStudio/LZ4/LZ4Inv.cs
@@ -4,6 +4,16 @@ namespace AssetStudio;
public class LZ4Inv : LZ4
{
public new static LZ4Inv Instance => new();
- protected override (int encCount, int litCount) GetLiteralToken(ReadOnlySpan<byte> cmp, ref int cmpPos) => ((cmp[cmpPos] >> 4) & 0xf, (cmp[cmpPos++] >> 0) & 0xf);
+
+ protected override (int encCount, int litCount) GetLiteralToken(ReadOnlySpan<byte> cmp, ref int cmpPos)
+ {
+ var val = cmp[cmpPos++];
+ var lit = val & 0b00110011;
+ var enc = val & 0b11001100;
+ enc >>= 2;
+
+ return ((enc & 0b11) | enc >> 2, (lit & 0b11) | lit >> 2);
+ }
+
protected override int GetChunkEnd(ReadOnlySpan<byte> cmp, ref int cmpPos) => cmp[cmpPos++] << 8 | cmp[cmpPos++] << 0;
}
\ No newline at end of file