mirror of
https://github.com/SabreTools/SabreTools.Serialization.git
synced 2026-07-09 02:16:55 +00:00
34 lines
1.3 KiB
C#
34 lines
1.3 KiB
C#
namespace SabreTools.Data.Models.GCZ
|
|
{
|
|
/// <summary>
|
|
/// Represents a parsed GCZ (GameCube Zip) compressed disc image.
|
|
/// Contains header metadata and block lookup tables.
|
|
/// Actual compressed block data is accessed via the source stream.
|
|
/// </summary>
|
|
public class DiscImage
|
|
{
|
|
/// <summary>
|
|
/// GCZ file header
|
|
/// </summary>
|
|
public GczHeader Header { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// Block pointer table (one entry per block).
|
|
/// Each value encodes both the offset of the block within the compressed data section
|
|
/// and a compression flag in the top bit:
|
|
/// <list type="bullet">
|
|
/// <item>Top bit CLEAR -> block is zlib/deflate-compressed at that offset.</item>
|
|
/// <item>Top bit SET -> block is stored uncompressed at that offset.</item>
|
|
/// </list>
|
|
/// Offset is value & ~UncompressedFlag.
|
|
/// </summary>
|
|
public ulong[] BlockPointers { get; set; } = [];
|
|
|
|
/// <summary>
|
|
/// Adler-32 checksums of the uncompressed block data, one per block.
|
|
/// Used for integrity verification after decompression.
|
|
/// </summary>
|
|
public uint[] BlockHashes { get; set; } = [];
|
|
}
|
|
}
|