cosmetic changes.

This commit is contained in:
morkt 2014-08-31 18:49:42 +04:00
parent f06396f1e3
commit 06e651d43b
5 changed files with 16 additions and 14 deletions

View File

@ -294,12 +294,13 @@ namespace GameRes.Formats
return packed_size;
}
static readonly GrpFormat s_grp_format = FormatCatalog.Instance.ImageFormats.OfType<GrpFormat>().FirstOrDefault();
uint WriteImageEntry (PackedEntry entry, Stream input, Stream output)
{
var grp = FormatCatalog.Instance.ImageFormats.OfType<GrpFormat>().FirstOrDefault();
if (null == grp) // probably never happens
if (null == s_grp_format) // probably never happens
throw new FileFormatException ("GRP image encoder not available");
bool is_grp = grp.Signature == FormatCatalog.ReadSignature (input);
bool is_grp = s_grp_format.Signature == FormatCatalog.ReadSignature (input);
input.Position = 0;
using (var zstream = new ZLibStream (output, CompressionMode.Compress, CompressionLevel.Level9, true))
{
@ -312,7 +313,7 @@ namespace GameRes.Formats
var image = ImageFormat.Read (input);
if (null == image)
throw new InvalidFormatException (string.Format (arcStrings.MsgInvalidImageFormat, entry.Name));
grp.Write (zstream, image);
s_grp_format.Write (zstream, image);
entry.UnpackedSize = (uint)zstream.TotalIn;
}
zstream.Flush();

View File

@ -174,12 +174,15 @@ namespace GameRes.Formats.Kogado
try
{
string name = Path.GetFileNameWithoutExtension (entry.Name);
string ext = Path.GetExtension (entry.Name).TrimStart ('.').ToLowerInvariant();
string ext = Path.GetExtension (entry.Name);
byte[] name_buf = new byte[0x15];
byte[] ext_buf = new byte[3];
encoding.GetBytes (name, 0, name.Length, name_buf, 0);
if (!string.IsNullOrEmpty (ext))
{
ext = ext.TrimStart ('.').ToLowerInvariant();
encoding.GetBytes (ext, 0, ext.Length, ext_buf, 0);
}
var out_entry = new OutputEntry
{
Name = entry.Name,

View File

@ -594,9 +594,9 @@ namespace GameRes.Formats.NitroPlus
private bool m_read_mode;
private long m_base_pos;
public override bool CanRead { get { return m_read_mode; } }
public override bool CanRead { get { return m_read_mode && m_stream.CanRead; } }
public override bool CanSeek { get { return m_stream.CanSeek; } }
public override bool CanWrite { get { return !m_read_mode; } }
public override bool CanWrite { get { return !m_read_mode && m_stream.CanWrite; } }
public override long Length { get { return m_stream.Length - m_base_pos; } }
public override long Position
{

View File

@ -104,7 +104,7 @@ namespace GameRes.Formats.KiriKiri
return null;
dir_offset = file.View.ReadInt64 (0x20);
}
if (dir_offset >= file.MaxOffset)
if (dir_offset < 0x13 || dir_offset >= file.MaxOffset)
return null;
int header_type = file.View.ReadByte (dir_offset);
@ -588,7 +588,7 @@ NextEntry:
long m_offset = 0;
bool m_eof = false;
public override bool CanRead { get { return true; } }
public override bool CanRead { get { return m_stream != null; } }
public override bool CanSeek { get { return false; } }
public override bool CanWrite { get { return false; } }
public override long Length { get { return m_entry.UnpackedSize; } }
@ -616,11 +616,9 @@ NextEntry:
if (null != m_stream)
m_stream.Dispose();
var segment = m_segment.Current;
m_stream = m_file.CreateStream (segment.Offset, segment.Size);
if (segment.IsCompressed)
m_stream = new ZLibStream (m_file.CreateStream (segment.Offset, segment.PackedSize),
CompressionMode.Decompress);
else
m_stream = m_file.CreateStream (segment.Offset, segment.Size);
m_stream = new ZLibStream (m_stream, CompressionMode.Decompress);
}
public override int Read (byte[] buffer, int offset, int count)

View File

@ -222,7 +222,7 @@ namespace GameRes.Formats.YuRis
writer.Write (name_len);
writer.Write (entry.IndexName);
writer.Write (entry.FileType);
writer.Write ((byte)(entry.IsPacked ? 1 : 0));
writer.Write (entry.IsPacked);
writer.Write (entry.UnpackedSize);
writer.Write (entry.Size);
writer.Write ((uint)entry.Offset);