- [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

@@ -161,31 +161,28 @@ namespace AssetStudio
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);
}
else
{
Logger.Verbose($"Encrypted bundle header with key {version}");
XORShift128.InitSeed(version);
reader.Position -= 4;
goto default;
}
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.unityVersion = "5.x.x";
header.unityRevision = "2017.4.18f1";
}
else
{
reader.Position -= 4;
goto default;
}
header.version = 6;
header.unityVersion = "5.x.x";
header.unityRevision = "2017.4.18f1";
}
else
{
@@ -333,7 +330,7 @@ namespace AssetStudio
private void ReadHeader(FileReader reader)
{
if (Game.Type.IsBH3Group() && XORShift128.Init)
if (XORShift128.Init)
{
if (Game.Type.IsBH3PrePre())
{

View File

@@ -194,7 +194,7 @@ namespace AssetStudio
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,
};
@@ -206,7 +206,7 @@ namespace AssetStudio
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,
};

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}");
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;