Files
BinaryObjectScanner/BurnOutSharp.Models/Compression/Quantum/Archive.cs
2022-12-28 09:47:25 -08:00

49 lines
1.3 KiB
C#

using System.Runtime.InteropServices;
namespace BurnOutSharp.Models.Compression.Quantum
{
/// <summary>
/// Quantum archive file structure
/// </summary>
/// <see href="https://handwiki.org/wiki/Software:Quantum_compression"/>
[StructLayout(LayoutKind.Sequential)]
public class Archive
{
/// <summary>
/// Quantum signature: 0x44 0x53
/// </summary>
public ushort Signature;
/// <summary>
/// Quantum major version number
/// </summary>
public byte MajorVersion;
/// <summary>
/// Quantum minor version number
/// </summary>
public byte MinorVersion;
/// <summary>
/// Number of files within this archive
/// </summary>
public ushort FileCount;
/// <summary>
/// Table size required for decompression
/// </summary>
public byte TableSize;
/// <summary>
/// Compression flags
/// </summary>
public byte CompressionFlags;
/// <summary>
/// This is immediately followed by the list of files
/// </summary>
public FileDescriptor[] FileList;
// Immediately following the list of files is the compressed data.
}
}