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

View File

@@ -1148,7 +1148,7 @@ namespace AssetStudio
m_nEulerCurves = reader.ReadUInt32(); m_nEulerCurves = reader.ReadUInt32();
m_nScaleCurves = 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_nPositionCurves = reader.ReadUInt32();
m_nRotationCurves = reader.ReadUInt32(); m_nRotationCurves = reader.ReadUInt32();
@@ -1316,7 +1316,7 @@ namespace AssetStudio
{ {
var version = reader.version; var version = reader.version;
m_StreamedClip = new StreamedClip(reader); 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); m_DenseClip = new ACLDenseClip(reader);
} }
@@ -1931,7 +1931,7 @@ namespace AssetStudio
m_SampleRate = reader.ReadSingle(); m_SampleRate = reader.ReadSingle();
m_WrapMode = reader.ReadInt32(); m_WrapMode = reader.ReadInt32();
if (reader.Game.Type.IsArknightsEndfield()) if (reader.Game.Type.IsArknightsEndfield() || reader.Game.Type.IsWangYue())
{ {
var m_aclType = reader.ReadInt32(); 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.GirlsFrontline));
Games.Add(index++, new Game(GameType.Reverse1999)); Games.Add(index++, new Game(GameType.Reverse1999));
Games.Add(index++, new Game(GameType.ArknightsEndfield)); 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.JJKPhantomParade));
Games.Add(index++, new Game(GameType.MuvLuvDimensions)); Games.Add(index++, new Game(GameType.MuvLuvDimensions));
Games.Add(index++, new Game(GameType.PartyAnimals)); Games.Add(index++, new Game(GameType.PartyAnimals));
@@ -171,6 +172,7 @@ namespace AssetStudio
SchoolGirlStrikers, SchoolGirlStrikers,
ExAstris, ExAstris,
PerpetualNovelty, PerpetualNovelty,
WangYue,
} }
public static class GameTypes public static class GameTypes
@@ -194,6 +196,7 @@ namespace AssetStudio
public static bool IsOPFP(this GameType type) => type == GameType.OPFP; public static bool IsOPFP(this GameType type) => type == GameType.OPFP;
public static bool IsNetEase(this GameType type) => type == GameType.NetEase; public static bool IsNetEase(this GameType type) => type == GameType.NetEase;
public static bool IsArknightsEndfield(this GameType type) => type == GameType.ArknightsEndfield; 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 IsLoveAndDeepspace(this GameType type) => type == GameType.LoveAndDeepspace;
public static bool IsExAstris(this GameType type) => type == GameType.ExAstris; public static bool IsExAstris(this GameType type) => type == GameType.ExAstris;
public static bool IsPerpetualNovelty(this GameType type) => type == GameType.PerpetualNovelty; 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 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, _ => false,
}; };