<?xml version="1.0"?>
<doc>
    <assembly>
        <name>GsaEditor.Core</name>
    </assembly>
    <members>
        <member name="T:GsaEditor.Core.Compression.ZlibHelper">
            <summary>
            Provides zlib compression and decompression utilities for GSA archive entries.
            The GSA format stores zlib-wrapped data: 2-byte header (CMF+FLG) + deflate stream + 4-byte Adler-32 checksum.
            This helper skips the 2-byte zlib header and uses <see cref="T:System.IO.Compression.DeflateStream"/> for the core deflate data.
            </summary>
        </member>
        <member name="M:GsaEditor.Core.Compression.ZlibHelper.Decompress(System.Byte[],System.UInt32)">
            <summary>
            Decompresses zlib-wrapped data into a byte array of the specified original size.
            Skips the 2-byte zlib header before feeding data to <see cref="T:System.IO.Compression.DeflateStream"/>.
            </summary>
            <param name="compressedData">The zlib-wrapped compressed data (header + deflate + checksum).</param>
            <param name="originalLength">The expected decompressed size in bytes.</param>
            <returns>The decompressed byte array.</returns>
            <exception cref="T:System.IO.InvalidDataException">Thrown when decompression fails or data is corrupt.</exception>
        </member>
        <member name="M:GsaEditor.Core.Compression.ZlibHelper.Compress(System.Byte[])">
            <summary>
            Compresses data using zlib format: 2-byte header + deflate stream + 4-byte Adler-32 checksum.
            </summary>
            <param name="data">The uncompressed data to compress.</param>
            <returns>The zlib-wrapped compressed byte array.</returns>
        </member>
        <member name="M:GsaEditor.Core.Compression.ZlibHelper.ComputeAdler32(System.Byte[])">
            <summary>
            Computes the Adler-32 checksum of the given data.
            </summary>
            <param name="data">The data to checksum.</param>
            <returns>The 32-bit Adler-32 checksum value.</returns>
        </member>
        <member name="T:GsaEditor.Core.IO.GsaIndexEntry">
            <summary>
            Represents a single entry parsed from a .idx NML index file.
            </summary>
        </member>
        <member name="P:GsaEditor.Core.IO.GsaIndexEntry.Id">
            <summary>
            The file alias (relative path) of the entry.
            </summary>
        </member>
        <member name="P:GsaEditor.Core.IO.GsaIndexEntry.Method">
            <summary>
            Compression method: 0 = raw, 1 = zlib.
            </summary>
        </member>
        <member name="P:GsaEditor.Core.IO.GsaIndexEntry.Length">
            <summary>
            Original (decompressed) size in bytes.
            </summary>
        </member>
        <member name="P:GsaEditor.Core.IO.GsaIndexEntry.CompressedLength">
            <summary>
            Compressed size in bytes.
            </summary>
        </member>
        <member name="P:GsaEditor.Core.IO.GsaIndexEntry.Offset">
            <summary>
            Byte offset of the data block within the archive.
            </summary>
        </member>
        <member name="T:GsaEditor.Core.IO.GsaIndexReader">
            <summary>
            Parses .idx NML index files (XML-compatible format) into a list of <see cref="T:GsaEditor.Core.IO.GsaIndexEntry"/>.
            </summary>
        </member>
        <member name="M:GsaEditor.Core.IO.GsaIndexReader.Read(System.String)">
            <summary>
            Reads index entries from the specified .idx file.
            </summary>
            <param name="filePath">The path to the .idx file.</param>
            <returns>A list of parsed index entries.</returns>
        </member>
        <member name="T:GsaEditor.Core.IO.GsaIndexWriter">
            <summary>
            Writes a .idx NML index file from a <see cref="T:GsaEditor.Core.Models.GsaArchive"/>.
            The index file is XML-compatible and lists each entry with its alias, compression method,
            sizes, and data offset for fast lookup without a full sequential scan.
            </summary>
        </member>
        <member name="M:GsaEditor.Core.IO.GsaIndexWriter.Write(GsaEditor.Core.Models.GsaArchive,System.String)">
            <summary>
            Writes the index file for the given archive to the specified path.
            </summary>
            <param name="archive">The archive whose entries will be indexed.</param>
            <param name="filePath">The output .idx file path.</param>
        </member>
        <member name="T:GsaEditor.Core.IO.GsaReader">
            <summary>
            Reads a .gsa binary archive from a stream or file and produces a <see cref="T:GsaEditor.Core.Models.GsaArchive"/>.
            Supports both NARC (legacy) and NARD (enhanced with padding) format variants.
            </summary>
        </member>
        <member name="F:GsaEditor.Core.IO.GsaReader.MAGIC_NARC">
            <summary>Magic word for the NARC (legacy) format.</summary>
        </member>
        <member name="F:GsaEditor.Core.IO.GsaReader.MAGIC_NARD">
            <summary>Magic word for the NARD (enhanced) format.</summary>
        </member>
        <member name="F:GsaEditor.Core.IO.GsaReader.MAX_ALIAS_LENGTH">
            <summary>Maximum allowed alias length in characters.</summary>
        </member>
        <member name="M:GsaEditor.Core.IO.GsaReader.Read(System.String)">
            <summary>
            Reads a GSA archive from the specified file path.
            </summary>
            <param name="filePath">The path to the .gsa archive file.</param>
            <returns>A fully populated <see cref="T:GsaEditor.Core.Models.GsaArchive"/>.</returns>
            <exception cref="T:System.IO.InvalidDataException">Thrown if the file has an invalid magic word.</exception>
        </member>
        <member name="M:GsaEditor.Core.IO.GsaReader.Read(System.IO.Stream)">
            <summary>
            Reads a GSA archive from a stream by performing a sequential scan of all entries.
            </summary>
            <param name="stream">A readable, seekable stream positioned at the start of the archive.</param>
            <returns>A fully populated <see cref="T:GsaEditor.Core.Models.GsaArchive"/>.</returns>
            <exception cref="T:System.IO.InvalidDataException">Thrown if the stream has an invalid magic word.</exception>
        </member>
        <member name="M:GsaEditor.Core.IO.GsaReader.ReadEntry(System.IO.BinaryReader,GsaEditor.Core.Models.GsaArchive)">
            <summary>
            Reads a single file entry from the current stream position.
            </summary>
            <param name="reader">The binary reader positioned at the start of an entry.</param>
            <param name="archive">The parent archive (used for NARD padding alignment).</param>
            <returns>A populated <see cref="T:GsaEditor.Core.Models.GsaEntry"/>, or null if no more entries can be read.</returns>
        </member>
        <member name="M:GsaEditor.Core.IO.GsaReader.AlignStream(System.IO.Stream,System.Int32)">
            <summary>
            Advances the stream position to the next aligned boundary.
            </summary>
            <param name="stream">The stream to align.</param>
            <param name="alignment">The alignment boundary in bytes.</param>
        </member>
        <member name="T:GsaEditor.Core.IO.GsaWriter">
            <summary>
            Writes a <see cref="T:GsaEditor.Core.Models.GsaArchive"/> to a binary .gsa stream or file.
            Supports both NARC (legacy) and NARD (enhanced with padding) format variants.
            </summary>
        </member>
        <member name="F:GsaEditor.Core.IO.GsaWriter.MAGIC_NARC">
            <summary>Magic word for the NARC (legacy) format.</summary>
        </member>
        <member name="F:GsaEditor.Core.IO.GsaWriter.MAGIC_NARD">
            <summary>Magic word for the NARD (enhanced) format.</summary>
        </member>
        <member name="M:GsaEditor.Core.IO.GsaWriter.Write(GsaEditor.Core.Models.GsaArchive,System.String)">
            <summary>
            Writes the archive to the specified file path.
            </summary>
            <param name="archive">The archive to write.</param>
            <param name="filePath">The output file path.</param>
        </member>
        <member name="M:GsaEditor.Core.IO.GsaWriter.Write(GsaEditor.Core.Models.GsaArchive,System.IO.Stream)">
            <summary>
            Writes the archive to the given stream.
            Each entry's <see cref="P:GsaEditor.Core.Models.GsaEntry.DataOffset"/> is updated to reflect the new position in the output.
            </summary>
            <param name="archive">The archive to write.</param>
            <param name="stream">A writable stream.</param>
        </member>
        <member name="M:GsaEditor.Core.IO.GsaWriter.WriteEntry(System.IO.BinaryWriter,GsaEditor.Core.Models.GsaEntry,GsaEditor.Core.Models.GsaArchive)">
            <summary>
            Writes a single file entry at the current stream position.
            </summary>
            <param name="writer">The binary writer.</param>
            <param name="entry">The entry to write.</param>
            <param name="archive">The parent archive (used for NARD padding alignment).</param>
        </member>
        <member name="M:GsaEditor.Core.IO.GsaWriter.WritePadding(System.IO.BinaryWriter,System.Int32)">
            <summary>
            Writes zero-bytes to pad the stream to the next aligned boundary.
            </summary>
            <param name="writer">The binary writer.</param>
            <param name="alignment">The alignment boundary in bytes.</param>
        </member>
        <member name="T:GsaEditor.Core.Models.GsaArchive">
            <summary>
            Represents a loaded GSA archive with its global header information and file entries.
            </summary>
        </member>
        <member name="P:GsaEditor.Core.Models.GsaArchive.Format">
            <summary>
            The format variant of this archive (NARC or NARD).
            </summary>
        </member>
        <member name="P:GsaEditor.Core.Models.GsaArchive.OffsetPadding">
            <summary>
            (NARD only) Byte alignment for data offsets. Zero or unused for NARC.
            </summary>
        </member>
        <member name="P:GsaEditor.Core.Models.GsaArchive.SizePadding">
            <summary>
            (NARD only) Byte alignment for data sizes. Zero or unused for NARC.
            </summary>
        </member>
        <member name="P:GsaEditor.Core.Models.GsaArchive.Entries">
            <summary>
            The ordered list of file entries in the archive.
            </summary>
        </member>
        <member name="T:GsaEditor.Core.Models.GsaEntry">
            <summary>
            Represents a single file entry within a GSA archive.
            </summary>
        </member>
        <member name="P:GsaEditor.Core.Models.GsaEntry.Alias">
            <summary>
            Relative path (alias) of the file within the archive, using '/' as separator.
            Maximum 511 characters.
            </summary>
        </member>
        <member name="P:GsaEditor.Core.Models.GsaEntry.IsCompressed">
            <summary>
            Whether this entry's data is zlib-compressed.
            </summary>
        </member>
        <member name="P:GsaEditor.Core.Models.GsaEntry.OriginalLength">
            <summary>
            Original (decompressed) size of the file in bytes.
            </summary>
        </member>
        <member name="P:GsaEditor.Core.Models.GsaEntry.CompressedLength">
            <summary>
            Compressed size of the file in bytes. Equal to <see cref="P:GsaEditor.Core.Models.GsaEntry.OriginalLength"/> if not compressed.
            </summary>
        </member>
        <member name="P:GsaEditor.Core.Models.GsaEntry.RawData">
            <summary>
            Raw data as stored in the archive (compressed bytes if <see cref="P:GsaEditor.Core.Models.GsaEntry.IsCompressed"/> is true).
            </summary>
        </member>
        <member name="P:GsaEditor.Core.Models.GsaEntry.DataOffset">
            <summary>
            Byte offset of this entry's data block within the archive file.
            </summary>
        </member>
        <member name="M:GsaEditor.Core.Models.GsaEntry.GetDecompressedData">
            <summary>
            Returns the decompressed data for this entry.
            If the entry is not compressed, returns <see cref="P:GsaEditor.Core.Models.GsaEntry.RawData"/> directly.
            </summary>
            <returns>The decompressed file content.</returns>
        </member>
        <member name="M:GsaEditor.Core.Models.GsaEntry.SetData(System.Byte[],System.Boolean)">
            <summary>
            Sets the entry data from uncompressed bytes, optionally compressing with zlib.
            Updates <see cref="P:GsaEditor.Core.Models.GsaEntry.OriginalLength"/>, <see cref="P:GsaEditor.Core.Models.GsaEntry.CompressedLength"/>,
            <see cref="P:GsaEditor.Core.Models.GsaEntry.IsCompressed"/>, and <see cref="P:GsaEditor.Core.Models.GsaEntry.RawData"/>.
            </summary>
            <param name="uncompressedData">The uncompressed file content.</param>
            <param name="compress">Whether to compress the data with zlib.</param>
        </member>
        <member name="T:GsaEditor.Core.Models.GsaFormat">
            <summary>
            Identifies the archive format variant.
            </summary>
        </member>
        <member name="F:GsaEditor.Core.Models.GsaFormat.NARC">
            <summary>
            Legacy format with no padding support. Magic word = 0x4E415243 ("NARC").
            </summary>
        </member>
        <member name="F:GsaEditor.Core.Models.GsaFormat.NARD">
            <summary>
            Enhanced format with offset and size padding for console DVD alignment.
            Magic word = 0x4E415244 ("NARD").
            </summary>
        </member>
    </members>
</doc>
