Skip to content
This repository has been archived by the owner on May 11, 2024. It is now read-only.

Commit

Permalink
- [Core] fix issue with parsing types for new entry
Browse files Browse the repository at this point in the history
  • Loading branch information
Razmoth committed Nov 28, 2023
1 parent 6103235 commit 6945bff
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 31 deletions.
18 changes: 9 additions & 9 deletions AssetStudio.GUI/MainForm.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

35 changes: 16 additions & 19 deletions AssetStudio/BundleFile.cs
Original file line number Diff line number Diff line change
Expand Up @@ -161,31 +161,28 @@ private Header ReadBundleHeader(FileReader reader)
switch (header.signature)
{
case "UnityFS":
if (Game.Type.IsBH3Group())
if (Game.Type.IsBH3Group() || Game.Type.IsBH3PrePre())
{
var version = Game.Type.IsBH3PrePre() ? 12 : reader.ReadUInt32();
if (version > 11)
if (Game.Type.IsBH3Group())
{
if (Game.Type.IsBH3PrePre())
var key = reader.ReadUInt32();
if (key <= 11)
{
Logger.Verbose($"Encrypted bundle header with key {reader.Length}");
XORShift128.InitSeed((uint)reader.Length);
reader.Position -= 4;
goto default;
}
else
{
Logger.Verbose($"Encrypted bundle header with key {version}");
XORShift128.InitSeed(version);
}

header.version = 6;
header.unityVersion = "5.x.x";
header.unityRevision = "2017.4.18f1";
Logger.Verbose($"Encrypted bundle header with key {key}");
XORShift128.InitSeed(key);
}
else
else if (Game.Type.IsBH3PrePre())
{
reader.Position -= 4;
goto default;
Logger.Verbose($"Encrypted bundle header with key {reader.Length}");
XORShift128.InitSeed((uint)reader.Length);
}

header.version = 6;
header.unityVersion = "5.x.x";
header.unityRevision = "2017.4.18f1";
}
else
{
Expand Down Expand Up @@ -333,7 +330,7 @@ public void ReadFiles(Stream blocksStream, string path)

private void ReadHeader(FileReader reader)
{
if (Game.Type.IsBH3Group() && XORShift128.Init)
if (XORShift128.Init)
{
if (Game.Type.IsBH3PrePre())
{
Expand Down
4 changes: 2 additions & 2 deletions AssetStudio/GameManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ public static class GameTypes

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,
};

Expand All @@ -206,7 +206,7 @@ public static class GameTypes

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,
};

Expand Down
2 changes: 1 addition & 1 deletion AssetStudio/SerializedFile.cs
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ public SerializedFile(FileReader reader, AssetsManager assetsManager)
Logger.Verbose($"Parsed target format {m_TargetPlatform} doesn't match any of supported formats, defaulting to {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}");
m_TargetPlatform = BuildTarget.StandaloneWindows64;
Expand Down

0 comments on commit 6945bff

Please sign in to comment.