(ACTGS): archive variation.

This commit is contained in:
morkt
2018-02-02 03:23:59 +04:00
parent 6460761487
commit 332d2a4c2a
2 changed files with 76 additions and 8 deletions

View File

@@ -125,10 +125,7 @@ namespace GameRes.Formats.Actgs
var input = arc.File.CreateStream (entry.Offset+12, packed_size);
return new LzssStream (input);
}
uint length = Math.Min (entry.Size, 0x20u);
var header = new byte[length];
arc.File.View.Read (entry.Offset, header, 0, length);
Decrypt (header, 0, (int)length, actarc.Key);
var header = ReadEntryHeader (actarc, entry);
if (entry.Size <= 0x20)
return new BinMemoryStream (header, entry.Name);
var rest = arc.File.CreateStream (entry.Offset+0x20, entry.Size-0x20);
@@ -150,6 +147,14 @@ namespace GameRes.Formats.Actgs
}
}
internal byte[] ReadEntryHeader (ActressArchive arc, Entry entry)
{
uint length = Math.Min (entry.Size, 0x20u);
var header = arc.File.View.ReadBytes (entry.Offset, length);
Decrypt (header, 0, header.Length, arc.Key);
return header;
}
public override ResourceScheme Scheme
{
get { return new ActressScheme { KnownKeys = KnownKeys }; }