IBinaryStream migration.

This commit is contained in:
morkt
2016-10-16 09:22:53 +04:00
parent d0c1d5da01
commit bb18303eb4
251 changed files with 3277 additions and 3630 deletions

View File

@@ -122,7 +122,7 @@ namespace GameRes.Formats.TopCat
return OpenScript (arc, entry);
if (entry.Name.EndsWith (".SPD", StringComparison.InvariantCultureIgnoreCase))
return OpenSpdc (arc, entry);
return arc.File.CreateStream (entry.Offset, entry.Size);
return base.OpenEntry (arc, entry);
}
Stream OpenSpdc (ArcFile arc, Entry entry)
@@ -187,7 +187,7 @@ namespace GameRes.Formats.TopCat
using (var input = arc.File.CreateStream (entry.Offset+4, entry.Size-4))
UnpackLz (input, data);
DecryptScript (data);
return new MemoryStream (data);
return new BinMemoryStream (data, entry.Name);
}
void UnpackLz (Stream input, byte[] output)
@@ -253,7 +253,7 @@ namespace GameRes.Formats.TopCat
LittleEndian.Pack (crc, data, src+0x16);
src += page_size;
}
return new MemoryStream (data);
return new BinMemoryStream (data, entry.Name);
}
}

View File

@@ -62,11 +62,9 @@ namespace GameRes.Formats.TopCat
Signatures = new uint[] { 0x43445053, 0x38445053 }; // 'SPD8'
}
public override ImageMetaData ReadMetaData (Stream stream)
public override ImageMetaData ReadMetaData (IBinaryStream stream)
{
var header = new byte[0x14];
if (header.Length != stream.Read (header, 0, header.Length))
return null;
var header = stream.ReadHeader (0x14).ToArray();
unsafe
{
fixed (byte* raw = header)
@@ -88,13 +86,13 @@ namespace GameRes.Formats.TopCat
}
}
public override ImageData Read (Stream stream, ImageMetaData info)
public override ImageData Read (IBinaryStream stream, ImageMetaData info)
{
var meta = (SpdMetaData)info;
if (Compression.Jpeg == meta.Method)
return ReadJpeg (stream, meta);
return ReadJpeg (stream.AsStream, meta);
using (var reader = new SpdReader (stream, meta))
using (var reader = new SpdReader (stream.AsStream, meta))
{
reader.Unpack();
return ImageData.Create (info, reader.Format, null, reader.Data);