public FileEntry(MixedString name, byte[] file, int linkStartIndex, int linkCount) { Name = name; File = file; LinkStartIndex = linkStartIndex; LinkCount = linkCount; }
public Tid(Bitmap bitmap, MixedString filename, CompressionAlgorithm compression = CompressionAlgorithm.None, byte version = 0x90) { Bitmap = bitmap; Filename = filename.GetCustomLength(0x20); Compression = compression; Version = version; Loaded = true; }
public PacEntry(Pac archive, MixedString path, bool compressed, int decompressedSize, Stream fileStream, int fileOffset, int fileSize, bool cacheFromStream, bool keepCompressed) { Contract.Requires <ArgumentNullException>(archive != null); Archive = archive; Path = path; SetFile(compressed, decompressedSize, fileStream, fileOffset, fileSize, cacheFromStream, keepCompressed); }
public PacEntry(Pac archive, MixedString path, bool compressed, int decompressedSize, byte[] file, bool keepCompressed) { Contract.Requires <ArgumentNullException>(archive != null); Archive = archive; Path = path; SetFile(compressed, decompressedSize, file, keepCompressed); }
private static Section ReadSection(EndianBinaryReader reader, uint offset) { reader.BaseStream.Seek(offset, SeekOrigin.Begin); MixedString name = reader.ReadBytes(0x20); var count = reader.ReadInt32(); var dataSize = reader.ReadInt32(); var dataOffset = reader.ReadInt32(); string realName = name.ZeroTerminatedString; if (realName == "FILE_COLLECTION") { var fileEntries = new List <FileEntry>(); for (int i = 0; i < count; i++) { reader.BaseStream.Seek(dataOffset + i * 0x230, SeekOrigin.Begin); var fileName = reader.ReadBytes(0x200); var fileId = reader.ReadInt32(); var fileOffset = reader.ReadInt32(); var fileSize = reader.ReadInt32(); var linkIndex = reader.ReadInt32(); var linkCount = reader.ReadInt32(); reader.BaseStream.Seek(fileOffset + dataOffset, SeekOrigin.Begin); var file = reader.ReadBytes(fileSize); fileEntries.Add(new FileEntry(fileName, file, linkIndex, linkCount)); } return(new Section <FileEntry>(name, fileEntries)); } if (realName == "FILE_LINK") { var fileLinks = new List <FileLink>(); for (int i = 0; i < count; i++) { reader.BaseStream.Seek(dataOffset + i * 0x20 + 0x04, SeekOrigin.Begin); fileLinks.Add(new FileLink(reader.ReadUInt32(), reader.ReadUInt32())); } return(new Section <FileLink>(name, fileLinks)); } reader.BaseStream.Seek(dataOffset, SeekOrigin.Begin); return(new UnknownSection(name, reader.ReadBytes(dataSize), count)); }
public UnknownSection(MixedString name, byte[] data, int count) { Name = name; Data = data; Count = count; }
public Section(MixedString name, List <T> entries) { Name = name; Entries = entries; }