namespace SabreTools.Data.Models.GCZ { /// /// 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. /// public class DiscImage { /// /// GCZ file header /// public GczHeader Header { get; set; } = new(); /// /// 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: /// /// Top bit CLEAR -> block is zlib/deflate-compressed at that offset. /// Top bit SET -> block is stored uncompressed at that offset. /// /// Offset is value & ~UncompressedFlag. /// public ulong[] BlockPointers { get; set; } = []; /// /// Adler-32 checksums of the uncompressed block data, one per block. /// Used for integrity verification after decompression. /// public uint[] BlockHashes { get; set; } = []; } }