add wangyue(test)

This commit is contained in:
Maverick Chang
2025-06-17 19:00:39 +09:00
parent 8446538322
commit ba7a63822f
3 changed files with 12 additions and 5 deletions

View File

@@ -628,6 +628,10 @@ namespace AssetStudio
{
FairGuardUtils.Decrypt(compressedBytesSpan);
}
if (Game.Type.IsWangYue() && i == 0 && compressedBytesSpan[..32].Count((byte)0xa6) > 5)
{
FairGuardUtils.Decrypt(compressedBytesSpan);
}
if (Game.Type.IsOPFP())
{
OPFPUtils.Decrypt(compressedBytesSpan, reader.FullPath);
@@ -646,7 +650,7 @@ namespace AssetStudio
}
break;
}
case CompressionType.Lz4Inv when Game.Type.IsArknightsEndfield():
case CompressionType.Lz4Inv when (Game.Type.IsArknightsEndfield() || Game.Type.IsWangYue()):
{
var compressedSize = (int)blockInfo.compressedSize;
var uncompressedSize = (int)blockInfo.uncompressedSize;

View File

@@ -1148,7 +1148,7 @@ namespace AssetStudio
m_nEulerCurves = reader.ReadUInt32();
m_nScaleCurves = reader.ReadUInt32();
}
else if (reader.Game.Type.IsExAstris())
else if (reader.Game.Type.IsExAstris() || reader.Game.Type.IsWangYue())
{
m_nPositionCurves = reader.ReadUInt32();
m_nRotationCurves = reader.ReadUInt32();
@@ -1316,7 +1316,7 @@ namespace AssetStudio
{
var version = reader.version;
m_StreamedClip = new StreamedClip(reader);
if (reader.Game.Type.IsArknightsEndfield() || reader.Game.Type.IsExAstris())
if (reader.Game.Type.IsArknightsEndfield() || reader.Game.Type.IsWangYue() || reader.Game.Type.IsExAstris())
{
m_DenseClip = new ACLDenseClip(reader);
}
@@ -1931,7 +1931,7 @@ namespace AssetStudio
m_SampleRate = reader.ReadSingle();
m_WrapMode = reader.ReadInt32();
if (reader.Game.Type.IsArknightsEndfield())
if (reader.Game.Type.IsArknightsEndfield() || reader.Game.Type.IsWangYue())
{
var m_aclType = reader.ReadInt32();
}

View File

@@ -43,6 +43,7 @@ namespace AssetStudio
Games.Add(index++, new Game(GameType.GirlsFrontline));
Games.Add(index++, new Game(GameType.Reverse1999));
Games.Add(index++, new Game(GameType.ArknightsEndfield));
Games.Add(index++, new Game(GameType.WangYue));
Games.Add(index++, new Game(GameType.JJKPhantomParade));
Games.Add(index++, new Game(GameType.MuvLuvDimensions));
Games.Add(index++, new Game(GameType.PartyAnimals));
@@ -171,6 +172,7 @@ namespace AssetStudio
SchoolGirlStrikers,
ExAstris,
PerpetualNovelty,
WangYue,
}
public static class GameTypes
@@ -194,6 +196,7 @@ namespace AssetStudio
public static bool IsOPFP(this GameType type) => type == GameType.OPFP;
public static bool IsNetEase(this GameType type) => type == GameType.NetEase;
public static bool IsArknightsEndfield(this GameType type) => type == GameType.ArknightsEndfield;
public static bool IsWangYue(this GameType type) => type == GameType.WangYue;
public static bool IsLoveAndDeepspace(this GameType type) => type == GameType.LoveAndDeepspace;
public static bool IsExAstris(this GameType type) => type == GameType.ExAstris;
public static bool IsPerpetualNovelty(this GameType type) => type == GameType.PerpetualNovelty;
@@ -223,7 +226,7 @@ namespace AssetStudio
public static bool IsBlockFile(this GameType type) => type switch
{
GameType.BH3 or GameType.BH3Pre 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.WangYue or GameType.ArknightsEndfield => true,
_ => false,
};