Skip to content

Commit 2b2ba33

Browse files
committed
Fix for detecting SerializedFile or BinaryData
1 parent bdf3960 commit 2b2ba33

1 file changed

Lines changed: 9 additions & 7 deletions

File tree

UnityAsset.NET/Files/BundleFiles/BundleFile.cs

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public class BundleFile
1717
/// </summary>
1818
public BlocksAndDirectoryInfo? DataInfo;
1919
/// <summary>
20-
/// SerializedFiles and BinaryFiles
20+
/// SerializedFiles and BinaryData
2121
/// </summary>
2222
public List<FileWrapper>? Files;
2323
/// <summary>
@@ -102,15 +102,17 @@ public static (List<FileWrapper>, uint) ParseFiles(ref DataBuffer db, BlocksAndD
102102
var crc32 = CRC32.CalculateCRC32(blocksBuffer.AsSpan());
103103

104104
var files = new List<FileWrapper>();
105-
foreach (var cab in dataInfo.DirectoryInfo)
105+
foreach (var dir in dataInfo.DirectoryInfo)
106106
{
107-
if (cab.Path.EndsWith(".resS"))
108-
files.Add(new FileWrapper(new HeapDataBuffer(blocksBuffer.ReadSpanBytes((int)cab.Size).ToArray()), cab));
107+
if (dir.Path.StartsWith("CAB-") && !dir.Path.EndsWith(".resS"))
108+
{
109+
var cabBuffer = blocksBuffer.SliceBuffer((int)dir.Size);
110+
files.Add(new FileWrapper(SerializedFile.Parse(ref cabBuffer), dir));
111+
blocksBuffer.Advance((int)dir.Size);
112+
}
109113
else
110114
{
111-
var cabBuffer = blocksBuffer.SliceBuffer((int)cab.Size);
112-
files.Add(new FileWrapper(SerializedFile.Parse(ref cabBuffer), cab));
113-
blocksBuffer.Advance((int)cab.Size);
115+
files.Add(new FileWrapper(new HeapDataBuffer(blocksBuffer.ReadSpanBytes((int)dir.Size).ToArray()), dir));
114116
}
115117
}
116118

0 commit comments

Comments
 (0)