- [Core] fix issue with parsing types for new entry

This commit is contained in:
Razmoth
2023-11-28 22:59:12 +04:00
parent 61032350fd
commit 6945bff896
4 changed files with 30 additions and 33 deletions

View File

@@ -117,6 +117,7 @@ namespace AssetStudio.GUI
assetMapTypeMenuItem = new System.Windows.Forms.ToolStripMenuItem(); assetMapTypeMenuItem = new System.Windows.Forms.ToolStripMenuItem();
toolStripSeparator8 = new System.Windows.Forms.ToolStripSeparator(); toolStripSeparator8 = new System.Windows.Forms.ToolStripSeparator();
loadAIToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); loadAIToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
loadCABMapToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
assetBrowserToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); assetBrowserToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
assetHelpersToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); assetHelpersToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
MapToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); MapToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@@ -172,7 +173,6 @@ namespace AssetStudio.GUI
exportAnimatorwithselectedAnimationClipMenuItem = new System.Windows.Forms.ToolStripMenuItem(); exportAnimatorwithselectedAnimationClipMenuItem = new System.Windows.Forms.ToolStripMenuItem();
goToSceneHierarchyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); goToSceneHierarchyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
showOriginalFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); showOriginalFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
loadCABMapToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
menuStrip1.SuspendLayout(); menuStrip1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)splitContainer1).BeginInit(); ((System.ComponentModel.ISupportInitialize)splitContainer1).BeginInit();
splitContainer1.Panel1.SuspendLayout(); splitContainer1.Panel1.SuspendLayout();
@@ -659,7 +659,7 @@ namespace AssetStudio.GUI
allToolStripMenuItem.CheckOnClick = true; allToolStripMenuItem.CheckOnClick = true;
allToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked; allToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked;
allToolStripMenuItem.Name = "allToolStripMenuItem"; allToolStripMenuItem.Name = "allToolStripMenuItem";
allToolStripMenuItem.Size = new System.Drawing.Size(88, 22); allToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
allToolStripMenuItem.Text = "All"; allToolStripMenuItem.Text = "All";
allToolStripMenuItem.Click += typeToolStripMenuItem_Click; allToolStripMenuItem.Click += typeToolStripMenuItem_Click;
// //
@@ -794,6 +794,13 @@ namespace AssetStudio.GUI
loadAIToolStripMenuItem.Text = "Load AI"; loadAIToolStripMenuItem.Text = "Load AI";
loadAIToolStripMenuItem.Click += loadAIToolStripMenuItem_Click; loadAIToolStripMenuItem.Click += loadAIToolStripMenuItem_Click;
// //
// loadCABMapToolStripMenuItem
//
loadCABMapToolStripMenuItem.Name = "loadCABMapToolStripMenuItem";
loadCABMapToolStripMenuItem.Size = new System.Drawing.Size(181, 22);
loadCABMapToolStripMenuItem.Text = "Load CABMap";
loadCABMapToolStripMenuItem.Click += loadCABMapToolStripMenuItem_Click;
//
// assetBrowserToolStripMenuItem // assetBrowserToolStripMenuItem
// //
assetBrowserToolStripMenuItem.Name = "assetBrowserToolStripMenuItem"; assetBrowserToolStripMenuItem.Name = "assetBrowserToolStripMenuItem";
@@ -1345,13 +1352,6 @@ namespace AssetStudio.GUI
showOriginalFileToolStripMenuItem.Visible = false; showOriginalFileToolStripMenuItem.Visible = false;
showOriginalFileToolStripMenuItem.Click += showOriginalFileToolStripMenuItem_Click; showOriginalFileToolStripMenuItem.Click += showOriginalFileToolStripMenuItem_Click;
// //
// loadCABMapToolStripMenuItem
//
loadCABMapToolStripMenuItem.Name = "loadCABMapToolStripMenuItem";
loadCABMapToolStripMenuItem.Size = new System.Drawing.Size(181, 22);
loadCABMapToolStripMenuItem.Text = "Load CABMap";
loadCABMapToolStripMenuItem.Click += loadCABMapToolStripMenuItem_Click;
//
// MainForm // MainForm
// //
AllowDrop = true; AllowDrop = true;

View File

@@ -161,31 +161,28 @@ namespace AssetStudio
switch (header.signature) switch (header.signature)
{ {
case "UnityFS": case "UnityFS":
if (Game.Type.IsBH3Group()) if (Game.Type.IsBH3Group() || Game.Type.IsBH3PrePre())
{ {
var version = Game.Type.IsBH3PrePre() ? 12 : reader.ReadUInt32(); if (Game.Type.IsBH3Group())
if (version > 11)
{ {
if (Game.Type.IsBH3PrePre()) var key = reader.ReadUInt32();
if (key <= 11)
{ {
Logger.Verbose($"Encrypted bundle header with key {reader.Length}"); reader.Position -= 4;
XORShift128.InitSeed((uint)reader.Length); goto default;
}
else
{
Logger.Verbose($"Encrypted bundle header with key {version}");
XORShift128.InitSeed(version);
} }
Logger.Verbose($"Encrypted bundle header with key {key}");
XORShift128.InitSeed(key);
}
else if (Game.Type.IsBH3PrePre())
{
Logger.Verbose($"Encrypted bundle header with key {reader.Length}");
XORShift128.InitSeed((uint)reader.Length);
}
header.version = 6; header.version = 6;
header.unityVersion = "5.x.x"; header.unityVersion = "5.x.x";
header.unityRevision = "2017.4.18f1"; header.unityRevision = "2017.4.18f1";
}
else
{
reader.Position -= 4;
goto default;
}
} }
else else
{ {
@@ -333,7 +330,7 @@ namespace AssetStudio
private void ReadHeader(FileReader reader) private void ReadHeader(FileReader reader)
{ {
if (Game.Type.IsBH3Group() && XORShift128.Init) if (XORShift128.Init)
{ {
if (Game.Type.IsBH3PrePre()) if (Game.Type.IsBH3PrePre())
{ {

View File

@@ -194,7 +194,7 @@ namespace AssetStudio
public static bool IsBH3Group(this GameType type) => type switch public static bool IsBH3Group(this GameType type) => type switch
{ {
GameType.BH3 or GameType.BH3Pre or GameType.BH3PrePre => true, GameType.BH3 or GameType.BH3Pre => true,
_ => false, _ => false,
}; };
@@ -206,7 +206,7 @@ namespace AssetStudio
public static bool IsBlockFile(this GameType type) => type switch public static bool IsBlockFile(this GameType type) => type switch
{ {
GameType.BH3 or GameType.BH3Pre or GameType.BH3PrePre or GameType.SR or GameType.GI_Pack or GameType.TOT or GameType.ArknightsEndfield => true, GameType.BH3 or GameType.BH3Pre or GameType.SR or GameType.GI_Pack or GameType.TOT or GameType.ArknightsEndfield => true,
_ => false, _ => false,
}; };

View File

@@ -92,7 +92,7 @@ namespace AssetStudio
Logger.Verbose($"Parsed target format {m_TargetPlatform} doesn't match any of supported formats, defaulting to {BuildTarget.UnknownPlatform}"); Logger.Verbose($"Parsed target format {m_TargetPlatform} doesn't match any of supported formats, defaulting to {BuildTarget.UnknownPlatform}");
m_TargetPlatform = BuildTarget.UnknownPlatform; m_TargetPlatform = BuildTarget.UnknownPlatform;
} }
else if (game.Type.IsMhyGroup()) else if (m_TargetPlatform == BuildTarget.NoTarget && game.Type.IsMhyGroup())
{ {
Logger.Verbose($"Selected game {game.Name} is a mhy game, forcing target format {BuildTarget.StandaloneWindows64}"); Logger.Verbose($"Selected game {game.Name} is a mhy game, forcing target format {BuildTarget.StandaloneWindows64}");
m_TargetPlatform = BuildTarget.StandaloneWindows64; m_TargetPlatform = BuildTarget.StandaloneWindows64;