mirror of
https://github.com/crskycode/GARbro.git
synced 2024-11-23 13:45:34 +08:00
(NoaOpener): recognize ancient RSA archives.
This commit is contained in:
parent
7809225e52
commit
fc724ee4c7
@ -76,7 +76,7 @@ namespace GameRes.Formats.Entis
|
|||||||
|
|
||||||
public NoaOpener ()
|
public NoaOpener ()
|
||||||
{
|
{
|
||||||
Extensions = new string[] { "noa", "dat" };
|
Extensions = new string[] { "noa", "dat", "rsa" };
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Dictionary<string, Dictionary<string, string>> KnownKeys =
|
public static Dictionary<string, Dictionary<string, string>> KnownKeys =
|
||||||
@ -118,7 +118,7 @@ namespace GameRes.Formats.Entis
|
|||||||
public override Stream OpenEntry (ArcFile arc, Entry entry)
|
public override Stream OpenEntry (ArcFile arc, Entry entry)
|
||||||
{
|
{
|
||||||
var nent = entry as NoaEntry;
|
var nent = entry as NoaEntry;
|
||||||
if (null == nent || !arc.File.View.AsciiEqual (entry.Offset, "filedata"))
|
if (null == nent)
|
||||||
return arc.File.CreateStream (entry.Offset, entry.Size);
|
return arc.File.CreateStream (entry.Offset, entry.Size);
|
||||||
ulong size = arc.File.View.ReadUInt64 (entry.Offset+8);
|
ulong size = arc.File.View.ReadUInt64 (entry.Offset+8);
|
||||||
if (size > int.MaxValue)
|
if (size > int.MaxValue)
|
||||||
@ -264,8 +264,8 @@ namespace GameRes.Formats.Entis
|
|||||||
dir_offset += 4;
|
dir_offset += 4;
|
||||||
if (extra_length > 0 && 0 == (entry.Attr & 0x70))
|
if (extra_length > 0 && 0 == (entry.Attr & 0x70))
|
||||||
{
|
{
|
||||||
entry.Extra = new byte[extra_length];
|
entry.Extra = m_file.View.ReadBytes (dir_offset, extra_length);
|
||||||
if (entry.Extra.Length != m_file.View.Read (dir_offset, entry.Extra, 0, extra_length))
|
if (entry.Extra.Length != extra_length)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
dir_offset += extra_length;
|
dir_offset += extra_length;
|
||||||
|
Loading…
Reference in New Issue
Block a user