namespace SabreTools.Data.Models.AdvancedInstaller
{
///
/// Structure similar to the end of central directory
/// header in PKZIP files
///
public class Footer
{
///
/// Unknown
///
///
/// Observed values:
/// - 00 00 00 00
///
public uint Unknown0 { get; set; }
///
/// Size of the original filename?
///
/// Doesn't exist in some cases?
public uint? OriginalFilenameSize { get; set; }
///
/// Unicode-encoded original filename?
///
/// Doesn't exist in some cases?
public string? OriginalFilename { get; set; }
///
/// Unknown, possibly a string count?
///
///
/// Only seen when the preceeding two fields exist
///
/// Observed values:
/// - 01 00 00 00
///
public uint? Unknown1 { get; set; }
///
/// Pointer to ?
///
public uint FooterOffset { get; set; }
///
/// Number of entries that preceed the footer
///
public uint EntryCount { get; set; }
///
/// Unknown
///
///
/// Observed values:
/// - 64 00 00 00
///
public uint Unknown2 { get; set; }
///
/// Unknown offset
///
///
/// Points to if no original filename.
/// Points to if contains an original filename.
///
public uint UnknownOffset { get; set; }
///
/// Offset of the start of the file table
///
public uint TablePointer { get; set; }
///
/// Offset to the start of the file data
///
public uint FileDataStart { get; set; }
///
/// Hex string that looks like a key or other identifier
///
/// 32 bytes
public string HexString { get; set; } = string.Empty;
///
/// Unknown
///
///
/// Offset pointer to
/// relative to the end of the signature if no filename
/// exists.
///
/// Observed values:
/// - 32 00 00 00 (No original filename)
/// - 13 02 00 00 (Original filename)
///
public uint Unknown3 { get; set; }
///
/// "ADVINSTSFX"
///
public string Signature { get; set; } = string.Empty;
///
/// Unknown, always 0? Padding?
///
public ushort? Unknown4 { get; set; }
}
}