- [Core] fix parsing issues [LoD]
This commit is contained in:
@@ -272,6 +272,15 @@ namespace AssetStudio
|
||||
gpuProgramID = reader.ReadInt32();
|
||||
m_Tags = new SerializedTagMap(reader);
|
||||
m_LOD = reader.ReadInt32();
|
||||
if (reader.Game.Type.IsLoveAndDeepspace())
|
||||
{
|
||||
int numOverrideKeywordAndStage = reader.ReadInt32();
|
||||
var m_OverrideKeywordAndStage = new List<KeyValuePair<string, uint>>();
|
||||
for (int i = 0; i < numOverrideKeywordAndStage; i++)
|
||||
{
|
||||
m_OverrideKeywordAndStage.Add(new KeyValuePair<string, uint>(reader.ReadAlignedString(), reader.ReadUInt32()));
|
||||
}
|
||||
}
|
||||
lighting = reader.ReadBoolean();
|
||||
reader.AlignStream();
|
||||
}
|
||||
@@ -584,6 +593,11 @@ namespace AssetStudio
|
||||
public SerializedSubProgram(ObjectReader reader)
|
||||
{
|
||||
var version = reader.version;
|
||||
|
||||
if (reader.Game.Type.IsLoveAndDeepspace())
|
||||
{
|
||||
var m_CodeHash = new Hash128(reader);
|
||||
}
|
||||
|
||||
m_BlobIndex = reader.ReadUInt32();
|
||||
m_Channels = new ParserBindChannels(reader);
|
||||
@@ -1074,6 +1088,15 @@ namespace AssetStudio
|
||||
}
|
||||
}
|
||||
|
||||
if (reader.Game.Type.IsLoveAndDeepspace())
|
||||
{
|
||||
var codeOffsets = reader.ReadUInt32ArrayArray();
|
||||
var codeCompressedLengths = reader.ReadUInt32ArrayArray();
|
||||
var codeDecompressedLengths = reader.ReadUInt32ArrayArray();
|
||||
var codeCompressedBlob = reader.ReadUInt8Array();
|
||||
reader.AlignStream();
|
||||
}
|
||||
|
||||
if ((version[0] == 2021 && version[1] > 3) ||
|
||||
version[0] == 2021 && version[1] == 3 && version[2] >= 12 || //2021.3.12f1 and up
|
||||
(version[0] == 2022 && version[1] > 1) ||
|
||||
|
||||
Reference in New Issue
Block a user