mirror of
https://github.com/crskycode/GARbro.git
synced 2026-07-08 01:30:18 +08:00
IBinaryStream migration.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user