private IRawAsset AttemptLoadOfFile(FileInfo file, string name)
{
if (file.Exists)
{
using (var stream = new FileStream(file.FullName, FileMode.Open, FileAccess.Read, FileShare.Read))
{
using (var reader = new BinaryReader(stream))
{
switch (reader.ReadByte())
{
case CompiledAsset.FORMAT_LZMA_COMPRESSED:
using (var memory = new MemoryStream())
{
LzmaHelper.Decompress(reader.BaseStream, memory);
memory.Seek(0, SeekOrigin.Begin);
var serializer = new CompiledAssetSerializer();
var result = (CompiledAsset)serializer.Deserialize(memory, null, typeof(CompiledAsset));
return result;
}
case CompiledAsset.FORMAT_UNCOMPRESSED:
var ucserializer = new CompiledAssetSerializer();
var ucresult = (CompiledAsset)ucserializer.Deserialize(reader.BaseStream, null, typeof(CompiledAsset));
return ucresult;
default:
throw new InvalidDataException();
}
}
}
}
return null;
}