4 Commits
1.5.4 ... 1.5.5

Author SHA1 Message Date
Matt Nadareski
bf02266f0f Bump version 2024-11-29 19:51:47 -05:00
Matt Nadareski
b521e503c2 Rearrange SGA 2024-11-28 20:26:58 -05:00
Matt Nadareski
48e79d26ed Ensure nullable arrays are correct 2024-11-27 23:37:25 -05:00
Matt Nadareski
989ef41c6d Get/Set may be fully disallowed? 2024-11-27 21:31:33 -05:00
79 changed files with 243 additions and 223 deletions

View File

@@ -21,6 +21,6 @@ namespace SabreTools.Models.AACS
/// <summary>
/// Revocation list entries
/// </summary>
public DriveRevocationSignatureBlock?[]? SignatureBlocks { get; set; }
public DriveRevocationSignatureBlock[]? SignatureBlocks { get; set; }
}
}

View File

@@ -12,6 +12,6 @@ namespace SabreTools.Models.AACS
/// A list of 8-byte Host Drive List Entry fields, the length of this
/// list being equal to the number in the signature block.
/// </summary>
public DriveRevocationListEntry?[]? EntryFields { get; set; }
public DriveRevocationListEntry[]? EntryFields { get; set; }
}
}

View File

@@ -6,6 +6,6 @@ namespace SabreTools.Models.AACS
/// <summary>
/// In this record, each subset-difference is encoded with 5 bytes.
/// </summary>
public SubsetDifference?[]? SubsetDifferences { get; set; }
public SubsetDifference[]? SubsetDifferences { get; set; }
}
}

View File

@@ -24,6 +24,6 @@ namespace SabreTools.Models.AACS
/// <summary>
/// Revocation list entries
/// </summary>
public HostRevocationSignatureBlock?[]? SignatureBlocks { get; set; }
public HostRevocationSignatureBlock[]? SignatureBlocks { get; set; }
}
}

View File

@@ -12,6 +12,6 @@ namespace SabreTools.Models.AACS
/// A list of 8-byte Host Revocation List Entry fields, the length of this
/// list being equal to the number in the signature block.
/// </summary>
public HostRevocationListEntry?[]? EntryFields { get; set; }
public HostRevocationListEntry[]? EntryFields { get; set; }
}
}

View File

@@ -9,6 +9,6 @@ namespace SabreTools.Models.AACS
/// <summary>
/// Records
/// </summary>
public Record?[]? Records { get; set; }
public Record[]? Records { get; set; }
}
}

View File

@@ -7,6 +7,6 @@ namespace SabreTools.Models.ArchiveDotOrg
public class Files
{
[XmlElement("file")]
public File?[]? File { get; set; }
public File[]? File { get; set; }
}
}

View File

@@ -8,6 +8,6 @@ namespace SabreTools.Models.AttractMode
[Required]
public string[]? Header { get; set; }
public Row?[]? Row { get; set; }
public Row[]? Row { get; set; }
}
}

View File

@@ -10,8 +10,8 @@ namespace SabreTools.Models.BSP
[StructLayout(LayoutKind.Sequential)]
public class QAngle
{
public float X { get; set; }
public float Y { get; set; }
public float Z { get; set; }
public float X;
public float Y;
public float Z;
}
}

View File

@@ -10,8 +10,8 @@ namespace SabreTools.Models.BSP
[StructLayout(LayoutKind.Sequential)]
public class Vector3D
{
public float X { get; set; }
public float Y { get; set; }
public float Z { get; set; }
public float X;
public float Y;
public float Z;
}
}

View File

@@ -6,6 +6,6 @@ namespace SabreTools.Models.ClrMamePro
public ClrMamePro? ClrMamePro { get; set; }
/// <remarks>game, machine, resource, set</remarks>
public GameBase?[]? Game { get; set; }
public GameBase[]? Game { get; set; }
}
}

View File

@@ -10,7 +10,7 @@ namespace SabreTools.Models.Compression.Quantum
/// order in the table, and with every symbol in the table
/// having a frequency of 1
/// </remarks>
public ModelSymbol?[]? Symbols { get; set; }
public ModelSymbol[]? Symbols { get; set; }
/// <remarks>
/// The initial total frequency is equal to the number of entries

View File

@@ -25,6 +25,6 @@ namespace SabreTools.Models.CueSheets
/// <summary>
/// List of TRACK in FILE
/// </summary>
public CueTrack?[]? Tracks { get; set; }
public CueTrack[]? Tracks { get; set; }
}
}

View File

@@ -36,6 +36,6 @@ namespace SabreTools.Models.CueSheets
/// <summary>
/// List of FILE in cuesheet
/// </summary>
public CueFile?[]? Files { get; set; }
public CueFile[]? Files { get; set; }
}
}

View File

@@ -53,7 +53,7 @@ namespace SabreTools.Models.CueSheets
/// List of INDEX in TRACK
/// </summary>
/// <remarks>Must start with 0 or 1 and then sequential</remarks>
public CueIndex?[]? Indices { get; set; }
public CueIndex[]? Indices { get; set; }
/// <summary>
/// POSTGAP

View File

@@ -21,7 +21,7 @@ namespace SabreTools.Models.GCF
/// <summary>
/// Block entries data
/// </summary>
public BlockEntry?[]? BlockEntries { get; set; }
public BlockEntry[]? BlockEntries { get; set; }
/// <summary>
/// Fragmentation map header data
@@ -31,7 +31,7 @@ namespace SabreTools.Models.GCF
/// <summary>
/// Fragmentation map data
/// </summary>
public FragmentationMap?[]? FragmentationMaps { get; set; }
public FragmentationMap[]? FragmentationMaps { get; set; }
/// <summary>
/// Block entry map header data
@@ -43,7 +43,7 @@ namespace SabreTools.Models.GCF
/// Block entry map data
/// </summary>
/// <remarks>Part of version 5 but not version 6.</remarks>
public BlockEntryMap?[]? BlockEntryMaps { get; set; }
public BlockEntryMap[]? BlockEntryMaps { get; set; }
/// <summary>
/// Directory header data
@@ -53,7 +53,7 @@ namespace SabreTools.Models.GCF
/// <summary>
/// Directory entries data
/// </summary>
public DirectoryEntry?[]? DirectoryEntries { get; set; }
public DirectoryEntry[]? DirectoryEntries { get; set; }
/// <summary>
/// Directory names data
@@ -63,22 +63,22 @@ namespace SabreTools.Models.GCF
/// <summary>
/// Directory info 1 entries data
/// </summary>
public DirectoryInfo1Entry?[]? DirectoryInfo1Entries { get; set; }
public DirectoryInfo1Entry[]? DirectoryInfo1Entries { get; set; }
/// <summary>
/// Directory info 2 entries data
/// </summary>
public DirectoryInfo2Entry?[]? DirectoryInfo2Entries { get; set; }
public DirectoryInfo2Entry[]? DirectoryInfo2Entries { get; set; }
/// <summary>
/// Directory copy entries data
/// </summary>
public DirectoryCopyEntry?[]? DirectoryCopyEntries { get; set; }
public DirectoryCopyEntry[]? DirectoryCopyEntries { get; set; }
/// <summary>
/// Directory local entries data
/// </summary>
public DirectoryLocalEntry?[]? DirectoryLocalEntries { get; set; }
public DirectoryLocalEntry[]? DirectoryLocalEntries { get; set; }
/// <summary>
/// Directory map header data
@@ -88,7 +88,7 @@ namespace SabreTools.Models.GCF
/// <summary>
/// Directory map entries data
/// </summary>
public DirectoryMapEntry?[]? DirectoryMapEntries { get; set; }
public DirectoryMapEntry[]? DirectoryMapEntries { get; set; }
/// <summary>
/// Checksum header data
@@ -103,12 +103,12 @@ namespace SabreTools.Models.GCF
/// <summary>
/// Checksum map entries data
/// </summary>
public ChecksumMapEntry?[]? ChecksumMapEntries { get; set; }
public ChecksumMapEntry[]? ChecksumMapEntries { get; set; }
/// <summary>
/// Checksum entries data
/// </summary>
public ChecksumEntry?[]? ChecksumEntries { get; set; }
public ChecksumEntry[]? ChecksumEntries { get; set; }
/// <summary>
/// Data block header data

View File

@@ -40,7 +40,7 @@ namespace SabreTools.Models.InstallShieldCabinet
/// <summary>
/// Standard file descriptors
/// </summary>
public FileDescriptor?[]? FileDescriptors { get; set; }
public FileDescriptor[]? FileDescriptors { get; set; }
#endregion
@@ -54,7 +54,7 @@ namespace SabreTools.Models.InstallShieldCabinet
/// <summary>
/// File groups
/// </summary>
public FileGroup?[]? FileGroups { get; set; }
public FileGroup[]? FileGroups { get; set; }
#endregion
@@ -68,7 +68,7 @@ namespace SabreTools.Models.InstallShieldCabinet
/// <summary>
/// Components
/// </summary>
public Component?[]? Components { get; set; }
public Component[]? Components { get; set; }
#endregion
}

View File

@@ -51,6 +51,6 @@
/// <summary>
/// Table entries in the bundle
/// </summary>
public EntryTableEntry?[]? TableEntries { get; set; }
public EntryTableEntry[]? TableEntries { get; set; }
}
}

View File

@@ -23,69 +23,69 @@ namespace SabreTools.Models.LinearExecutable
/// <summary>
/// Object table
/// </summary>
public ObjectTableEntry?[]? ObjectTable { get; set; }
public ObjectTableEntry[]? ObjectTable { get; set; }
/// <summary>
/// Object page map
/// </summary>
public ObjectPageMapEntry?[]? ObjectPageMap { get; set; }
public ObjectPageMapEntry[]? ObjectPageMap { get; set; }
// TODO: Object iterate data map table (Undefined)
/// <summary>
/// Resource table
/// </summary>
public ResourceTableEntry?[]? ResourceTable { get; set; }
public ResourceTableEntry[]? ResourceTable { get; set; }
/// <summary>
/// Resident Name table
/// </summary>
public ResidentNamesTableEntry?[]? ResidentNamesTable { get; set; }
public ResidentNamesTableEntry[]? ResidentNamesTable { get; set; }
/// <summary>
/// Entry table
/// </summary>
public EntryTableBundle?[]? EntryTable { get; set; }
public EntryTableBundle[]? EntryTable { get; set; }
/// <summary>
/// Module format directives table (optional)
/// </summary>
public ModuleFormatDirectivesTableEntry?[]? ModuleFormatDirectivesTable { get; set; }
public ModuleFormatDirectivesTableEntry[]? ModuleFormatDirectivesTable { get; set; }
/// <summary>
/// Verify record directive table (optional)
/// </summary>
public VerifyRecordDirectiveTableEntry?[]? VerifyRecordDirectiveTable { get; set; }
public VerifyRecordDirectiveTableEntry[]? VerifyRecordDirectiveTable { get; set; }
/// <summary>
/// Fix-up page table
/// </summary>
public FixupPageTableEntry?[]? FixupPageTable { get; set; }
public FixupPageTableEntry[]? FixupPageTable { get; set; }
/// <summary>
/// Fix-up record table
/// </summary>
public FixupRecordTableEntry?[]? FixupRecordTable { get; set; }
public FixupRecordTableEntry[]? FixupRecordTable { get; set; }
/// <summary>
/// Import module name table
/// </summary>
public ImportModuleNameTableEntry?[]? ImportModuleNameTable { get; set; }
public ImportModuleNameTableEntry[]? ImportModuleNameTable { get; set; }
/// <summary>
/// Import procedure name table
/// </summary>
public ImportModuleProcedureNameTableEntry?[]? ImportModuleProcedureNameTable { get; set; }
public ImportModuleProcedureNameTableEntry[]? ImportModuleProcedureNameTable { get; set; }
/// <summary>
/// Per-Page checksum table
/// </summary>
public PerPageChecksumTableEntry?[]? PerPageChecksumTable { get; set; }
public PerPageChecksumTableEntry[]? PerPageChecksumTable { get; set; }
/// <summary>
/// Non-Resident Name table
/// </summary>
public NonResidentNamesTableEntry?[]? NonResidentNamesTable { get; set; }
public NonResidentNamesTableEntry[]? NonResidentNamesTable { get; set; }
// TODO: Non-resident directives data (Undefined)

View File

@@ -24,6 +24,6 @@ namespace SabreTools.Models.MSDOS
/// make the loader add start segment address to the value at offset
/// 1*0x10+0x1A=0x2A within the program data.
/// </summary>
public RelocationEntry?[]? RelocationTable { get; set; }
public RelocationEntry[]? RelocationTable { get; set; }
}
}

View File

@@ -51,6 +51,6 @@
/// <summary>
/// Data blocks associated with this folder
/// </summary>
public CFDATA?[]? DataBlocks { get; set; }
public CFDATA[]? DataBlocks { get; set; }
}
}

View File

@@ -17,11 +17,11 @@
/// <summary>
/// One or more CFFOLDER entries
/// </summary>
public CFFOLDER?[]? Folders { get; set; }
public CFFOLDER[]? Folders { get; set; }
/// <summary>
/// A series of one or more cabinet file (CFFILE) entries
/// </summary>
public CFFILE?[]? Files { get; set; }
public CFFILE[]? Files { get; set; }
}
}

View File

@@ -37,12 +37,12 @@
/// <summary>
/// Hash Table (optional)
/// </summary>
public HashEntry?[]? HashTable { get; set; }
public HashEntry[]? HashTable { get; set; }
/// <summary>
/// Block Table (optional)
/// </summary>
public BlockEntry?[]? BlockTable { get; set; }
public BlockEntry[]? BlockTable { get; set; }
/// <summary>
/// Hi-Block Table (optional)

View File

@@ -25,7 +25,7 @@ namespace SabreTools.Models.N3DS
/// <remarks>
/// https://www.3dbrew.org/wiki/CIA#Certificate_Chain
/// </remarks>
public Certificate?[]? CertificateChain { get; set; }
public Certificate[]? CertificateChain { get; set; }
/// <summary>
/// Ticket
@@ -40,7 +40,7 @@ namespace SabreTools.Models.N3DS
/// <summary>
/// Content file data
/// </summary>
public NCCHHeader?[]? Partitions { get; set; }
public NCCHHeader[]? Partitions { get; set; }
/// <summary>
/// Content file data

View File

@@ -23,21 +23,21 @@ namespace SabreTools.Models.N3DS
/// <summary>
/// NCCH partitions
/// </summary>
public NCCHHeader?[]? Partitions { get; set; }
public NCCHHeader[]? Partitions { get; set; }
/// <summary>
/// NCCH extended headers
/// </summary>
public NCCHExtendedHeader?[]? ExtendedHeaders { get; set; }
public NCCHExtendedHeader[]? ExtendedHeaders { get; set; }
/// <summary>
/// ExeFS headers associated with each partition
/// </summary>
public ExeFSHeader?[]? ExeFSHeaders { get; set; }
public ExeFSHeader[]? ExeFSHeaders { get; set; }
/// <summary>
/// RomFS headers associated with each partition
/// </summary>
public RomFSHeader?[]? RomFSHeaders { get; set; }
public RomFSHeader[]? RomFSHeaders { get; set; }
}
}

View File

@@ -16,7 +16,7 @@
/// <summary>
/// File headers (10 headers maximum, 16 bytes each)
/// </summary>
public ExeFSFileHeader?[]? FileHeaders { get; set; }
public ExeFSFileHeader[]? FileHeaders { get; set; }
/// <summary>
/// Reserved

View File

@@ -46,7 +46,7 @@
/// <summary>
/// Offset & Length partition table, in media units
/// </summary>
public PartitionTableEntry?[]? PartitionsTable { get; set; }
public PartitionTableEntry[]? PartitionsTable { get; set; }
#endregion

View File

@@ -173,6 +173,6 @@ namespace SabreTools.Models.N3DS
/// <remarks>
/// https://www.3dbrew.org/wiki/Ticket#Certificate_Chain
/// </remarks>
public Certificate?[]? CertificateChain { get; set; }
public Certificate[]? CertificateChain { get; set; }
}
}

View File

@@ -136,13 +136,13 @@ namespace SabreTools.Models.N3DS
/// <summary>
/// There are 64 of these records, usually only the first is used.
/// </summary>
public ContentInfoRecord?[]? ContentInfoRecords { get; set; }
public ContentInfoRecord[]? ContentInfoRecords { get; set; }
/// <summary>
/// There is one of these for each content contained in this title.
/// (Determined by "Content Count" in the TMD Header).
/// </summary>
public ContentChunkRecord?[]? ContentChunkRecords { get; set; }
public ContentChunkRecord[]? ContentChunkRecords { get; set; }
/// <summary>
/// Certificate chain
@@ -150,6 +150,6 @@ namespace SabreTools.Models.N3DS
/// <remarks>
/// https://www.3dbrew.org/wiki/Title_metadata#Certificate_Chain
/// </remarks>
public Certificate?[]? CertificateChain { get; set; }
public Certificate[]? CertificateChain { get; set; }
}
}

View File

@@ -21,7 +21,7 @@ namespace SabreTools.Models.NCF
/// <summary>
/// Directory entries data
/// </summary>
public DirectoryEntry?[]? DirectoryEntries { get; set; }
public DirectoryEntry[]? DirectoryEntries { get; set; }
/// <summary>
/// Directory names data
@@ -31,22 +31,22 @@ namespace SabreTools.Models.NCF
/// <summary>
/// Directory info 1 entries data
/// </summary>
public DirectoryInfo1Entry?[]? DirectoryInfo1Entries { get; set; }
public DirectoryInfo1Entry[]? DirectoryInfo1Entries { get; set; }
/// <summary>
/// Directory info 2 entries data
/// </summary>
public DirectoryInfo2Entry?[]? DirectoryInfo2Entries { get; set; }
public DirectoryInfo2Entry[]? DirectoryInfo2Entries { get; set; }
/// <summary>
/// Directory copy entries data
/// </summary>
public DirectoryCopyEntry?[]? DirectoryCopyEntries { get; set; }
public DirectoryCopyEntry[]? DirectoryCopyEntries { get; set; }
/// <summary>
/// Directory local entries data
/// </summary>
public DirectoryLocalEntry?[]? DirectoryLocalEntries { get; set; }
public DirectoryLocalEntry[]? DirectoryLocalEntries { get; set; }
/// <summary>
/// Unknown header data
@@ -56,7 +56,7 @@ namespace SabreTools.Models.NCF
/// <summary>
/// Unknown entries data
/// </summary>
public UnknownEntry?[]? UnknownEntries { get; set; }
public UnknownEntry[]? UnknownEntries { get; set; }
/// <summary>
/// Checksum header data
@@ -71,11 +71,11 @@ namespace SabreTools.Models.NCF
/// <summary>
/// Checksum map entries data
/// </summary>
public ChecksumMapEntry?[]? ChecksumMapEntries { get; set; }
public ChecksumMapEntry[]? ChecksumMapEntries { get; set; }
/// <summary>
/// Checksum entries data
/// </summary>
public ChecksumEntry?[]? ChecksumEntries { get; set; }
public ChecksumEntry[]? ChecksumEntries { get; set; }
}
}

View File

@@ -18,6 +18,6 @@
/// <summary>
/// A table of relocation records follows.
/// </summary>
public RelocationRecord?[]? RelocationRecords { get; set; }
public RelocationRecord[]? RelocationRecords { get; set; }
}
}

View File

@@ -23,7 +23,7 @@ namespace SabreTools.Models.NewExecutable
/// <summary>
/// A table of resource type information blocks follows.
/// </summary>
public ResourceTypeInformationEntry?[]? ResourceTypes { get; set; }
public ResourceTypeInformationEntry[]? ResourceTypes { get; set; }
/// <summary>
/// Resource type and name strings are stored at the end of the

View File

@@ -29,6 +29,6 @@
/// <summary>
/// A table of resources for this type follows.
/// </summary>
public ResourceTypeResourceEntry?[]? Resources { get; set; }
public ResourceTypeResourceEntry[]? Resources { get; set; }
}
}

View File

@@ -28,6 +28,6 @@ namespace SabreTools.Models.Nitro
/// <summary>
/// File allocation table
/// </summary>
public FileAllocationTableEntry?[]? FileAllocationTable { get; set; }
public FileAllocationTableEntry[]? FileAllocationTable { get; set; }
}
}

View File

@@ -15,11 +15,11 @@ namespace SabreTools.Models.Nitro
/// <summary>
/// Folder allocation table
/// </summary>
public FolderAllocationTableEntry?[]? FolderAllocationTable { get; set; }
public FolderAllocationTableEntry[]? FolderAllocationTable { get; set; }
/// <summary>
/// Name list
/// </summary>
public NameListEntry?[]? NameList { get; set; }
public NameListEntry[]? NameList { get; set; }
}
}

View File

@@ -14,6 +14,6 @@ namespace SabreTools.Models.PAK
/// <summary>
/// Deserialized directory items data
/// </summary>
public DirectoryItem?[]? DirectoryItems { get; set; }
public DirectoryItem[]? DirectoryItems { get; set; }
}
}

View File

@@ -14,7 +14,7 @@ namespace SabreTools.Models.PFF
/// <summary>
/// Segments
/// </summary>
public Segment?[]? Segments { get; set; }
public Segment[]? Segments { get; set; }
/// <summary>
/// Footer

View File

@@ -29,6 +29,6 @@
/// <summary>
/// Disc information and emergency brake units
/// </summary>
public DiscInformationUnit?[]? Units { get; set; }
public DiscInformationUnit[]? Units { get; set; }
}
}

View File

@@ -17,7 +17,7 @@ namespace SabreTools.Models.PKZIP
/// Encryption headers, may appear second in each group
/// </summary>
/// TODO: Determine the model for the encryption headers
public byte[]?[]? EncryptionHeaders { get; set; }
public byte[][]? EncryptionHeaders { get; set; }
/// <summary>
/// File data, appears after the encryption header
@@ -28,12 +28,12 @@ namespace SabreTools.Models.PKZIP
/// <summary>
/// Data descriptors, appears after the file data
/// </summary>
public DataDescriptor?[]? DataDescriptors { get; set; }
public DataDescriptor[]? DataDescriptors { get; set; }
/// <summary>
/// ZIP64 Data descriptors, appears after the file data
/// </summary>
public DataDescriptor64?[]? ZIP64DataDescriptors { get; set; }
public DataDescriptor64[]? ZIP64DataDescriptors { get; set; }
#endregion

View File

@@ -40,7 +40,7 @@ namespace SabreTools.Models.PlayJ
/// <summary>
/// Data files (V2 only)
/// </summary>
public DataFile?[]? DataFiles { get; set; }
public DataFile[]? DataFiles { get; set; }
// After the data files is a block starting with 0x00000001
// This block then contains highly repeating data, possible audio samples?

View File

@@ -13,6 +13,6 @@ namespace SabreTools.Models.PlayJ
/// <summary>
/// Embedded audio files / headers
/// </summary>
public AudioFile?[]? AudioFiles { get; set; }
public AudioFile[]? AudioFiles { get; set; }
}
}

View File

@@ -12,10 +12,10 @@ namespace SabreTools.Models.PortableExecutable
#region Group
[XmlElement("assemblyIdentity")]
public AssemblyIdentity?[]? AssemblyIdentities { get; set; }
public AssemblyIdentity[]? AssemblyIdentities { get; set; }
[XmlElement("noInheritable")]
public AssemblyNoInheritable?[]? NoInheritables { get; set; }
public AssemblyNoInheritable[]? NoInheritables { get; set; }
#endregion
@@ -31,19 +31,19 @@ namespace SabreTools.Models.PortableExecutable
//public AssemblyNoInheritable NoInheritable { get; set; }
[XmlElement("comInterfaceExternalProxyStub")]
public AssemblyCOMInterfaceExternalProxyStub?[]? COMInterfaceExternalProxyStub { get; set; }
public AssemblyCOMInterfaceExternalProxyStub[]? COMInterfaceExternalProxyStub { get; set; }
[XmlElement("dependency")]
public AssemblyDependency?[]? Dependency { get; set; }
public AssemblyDependency[]? Dependency { get; set; }
[XmlElement("file")]
public AssemblyFile?[]? File { get; set; }
public AssemblyFile[]? File { get; set; }
[XmlElement("clrClass")]
public AssemblyCommonLanguageRuntimeClass?[]? CLRClass { get; set; }
public AssemblyCommonLanguageRuntimeClass[]? CLRClass { get; set; }
[XmlElement("clrSurrogate")]
public AssemblyCommonLanguageSurrogateClass?[]? CLRSurrogate { get; set; }
public AssemblyCommonLanguageSurrogateClass[]? CLRSurrogate { get; set; }
#endregion
@@ -94,7 +94,7 @@ namespace SabreTools.Models.PortableExecutable
public string? Description { get; set; }
[XmlElement("progid")]
public AssemblyProgID?[]? ProgIDs { get; set; }
public AssemblyProgID[]? ProgIDs { get; set; }
}
/// <see href="https://learn.microsoft.com/en-us/windows/win32/sbscs/manifest-file-schema"/>
@@ -166,7 +166,7 @@ namespace SabreTools.Models.PortableExecutable
public string? ThreadingModel { get; set; }
[XmlElement("progid")]
public AssemblyProgID?[]? ProgIDs { get; set; }
public AssemblyProgID[]? ProgIDs { get; set; }
}
/// <see href="https://learn.microsoft.com/en-us/windows/win32/sbscs/manifest-file-schema"/>
@@ -199,7 +199,7 @@ namespace SabreTools.Models.PortableExecutable
public AssemblyIdentity? AssemblyIdentity { get; set; }
[XmlElement("bindingRedirect")]
public AssemblyBindingRedirect?[]? BindingRedirect { get; set; }
public AssemblyBindingRedirect[]? BindingRedirect { get; set; }
}
/// <see href="https://learn.microsoft.com/en-us/windows/win32/sbscs/manifest-file-schema"/>
@@ -255,16 +255,16 @@ namespace SabreTools.Models.PortableExecutable
#region Group
[XmlElement("comClass")]
public AssemblyCOMClass?[]? COMClass { get; set; }
public AssemblyCOMClass[]? COMClass { get; set; }
[XmlElement("comInterfaceProxyStub")]
public AssemblyCOMInterfaceProxyStub?[]? COMInterfaceProxyStub { get; set; }
public AssemblyCOMInterfaceProxyStub[]? COMInterfaceProxyStub { get; set; }
[XmlElement("typelib")]
public AssemblyTypeLib?[]? Typelib { get; set; }
public AssemblyTypeLib[]? Typelib { get; set; }
[XmlElement("windowClass")]
public AssemblyWindowClass?[]? WindowClass { get; set; }
public AssemblyWindowClass[]? WindowClass { get; set; }
#endregion
}

View File

@@ -46,6 +46,6 @@
/// in the Page RVA field for the block. This offset
/// specifies where the base relocation is to be applied.
/// </summary>
public BaseRelocationTypeOffsetFieldEntry?[]? TypeOffsetFieldEntries { get; set; }
public BaseRelocationTypeOffsetFieldEntry[]? TypeOffsetFieldEntries { get; set; }
}
}

View File

@@ -33,6 +33,6 @@
/// file and is not mapped into the run-time address space). If it is mapped,
/// the RVA is its address.
/// </summary>
public DebugDirectoryEntry?[]? DebugDirectoryTable { get; set; }
public DebugDirectoryEntry[]? DebugDirectoryTable { get; set; }
}
}

View File

@@ -31,7 +31,7 @@
/// box. The cdit member specifies the number of DLGITEMTEMPLATE structures in the template.
/// These DLGITEMTEMPLATE structures must be aligned on DWORD boundaries.
/// </summary>
public DialogItemTemplate?[]? DialogItemTemplates { get; set; }
public DialogItemTemplate[]? DialogItemTemplates { get; set; }
/// <summary>
/// Following the DLGTEMPLATEEX header in an extended dialog box template is one or more
@@ -39,7 +39,7 @@
/// member of the DLGITEMTEMPLATEEX structure specifies the number of DLGITEMTEMPLATEEX
/// structures that follow in the template.
/// </summary>
public DialogItemTemplateExtended?[]? ExtendedDialogItemTemplates { get; set; }
public DialogItemTemplateExtended[]? ExtendedDialogItemTemplates { get; set; }
#endregion
}

View File

@@ -40,12 +40,12 @@ namespace SabreTools.Models.PortableExecutable
/// <summary>
/// Section table
/// </summary>
public SectionHeader?[]? SectionTable { get; set; }
public SectionHeader[]? SectionTable { get; set; }
/// <summary>
/// COFF symbol table
/// </summary>
public COFFSymbolTableEntry?[]? COFFSymbolTable { get; set; }
public COFFSymbolTableEntry[]? COFFSymbolTable { get; set; }
/// <summary>
/// COFF string table
@@ -55,7 +55,7 @@ namespace SabreTools.Models.PortableExecutable
/// <summary>
/// Attribute certificate table
/// </summary>
public AttributeCertificateTableEntry?[]? AttributeCertificateTable { get; set; }
public AttributeCertificateTableEntry[]? AttributeCertificateTable { get; set; }
/// <summary>
/// Delay-load directory table
@@ -71,7 +71,7 @@ namespace SabreTools.Models.PortableExecutable
/// <summary>
/// Base relocation table (.reloc)
/// </summary>
public BaseRelocationBlock?[]? BaseRelocationTable { get; set; }
public BaseRelocationBlock[]? BaseRelocationTable { get; set; }
/// <summary>
/// Debug table (.debug*)

View File

@@ -27,7 +27,7 @@
/// can import a symbol by using an index to this table (an ordinal) or, optionally, by
/// using the public name that corresponds to the ordinal if a public name is defined.
/// </summary>
public ExportAddressTableEntry?[]? ExportAddressTable { get; set; }
public ExportAddressTableEntry[]? ExportAddressTable { get; set; }
/// <summary>
/// An array of pointers to the public export names, sorted in ascending order.

View File

@@ -16,6 +16,6 @@
/// A structure that contains a unique ordinal identifier for each font in the resource. The DE
/// member is a placeholder for the variable-length array of DIRENTRY structures.
/// </summary>
public DirEntry?[]? DE { get; set; }
public DirEntry[]? DE { get; set; }
}
}

View File

@@ -23,23 +23,23 @@ namespace SabreTools.Models.PortableExecutable
/// The import information begins with the import directory table, which describes the
/// remainder of the import information.
/// </summary>
public ImportDirectoryTableEntry?[]? ImportDirectoryTable { get; set; }
public ImportDirectoryTableEntry[]? ImportDirectoryTable { get; set; }
/// <summary>
/// An import lookup table is an array of 32-bit numbers for PE32 or an array of 64-bit
/// numbers for PE32+.
/// </summary>
public Dictionary<int, ImportLookupTableEntry?[]?>? ImportLookupTables { get; set; }
public Dictionary<int, ImportLookupTableEntry[]?>? ImportLookupTables { get; set; }
/// <summary>
/// These addresses are the actual memory addresses of the symbols, although technically
/// they are still called "virtual addresses".
/// </summary>
public Dictionary<int, ImportAddressTableEntry?[]?>? ImportAddressTables { get; set; }
public Dictionary<int, ImportAddressTableEntry[]?>? ImportAddressTables { get; set; }
/// <summary>
/// One hint/name table suffices for the entire import section.
/// </summary>
public HintNameTableEntry?[]? HintNameTable { get; set; }
public HintNameTableEntry[]? HintNameTable { get; set; }
}
}

View File

@@ -17,6 +17,6 @@
/// <summary>
/// Menu items
/// </summary>
public MenuItem?[]? MenuItems { get; set; }
public MenuItem[]? MenuItems { get; set; }
}
}

View File

@@ -17,7 +17,7 @@ namespace SabreTools.Models.PortableExecutable
/// <summary>
/// An array of structures. The array is the size indicated by the NumberOfBlocks member.
/// </summary>
public MessageResourceBlock?[]? Blocks { get; set; }
public MessageResourceBlock[]? Blocks { get; set; }
/// <summary>
/// Message resource entries

View File

@@ -54,6 +54,6 @@
/// strings to identify Type, Name, or Language entries (depending on the
/// level of the table).
/// </summary>
public ResourceDirectoryEntry?[]? Entries { get; set; }
public ResourceDirectoryEntry[]? Entries { get; set; }
}
}

View File

@@ -100,11 +100,11 @@
/// <summary>
/// COFF Relocations (Object Only)
/// </summary>
public COFFRelocation?[]? COFFRelocations { get; set; }
public COFFRelocation[]? COFFRelocations { get; set; }
/// <summary>
/// COFF Line Numbers (Deprecated)
/// </summary>
public COFFLineNumber?[]? COFFLineNumbers { get; set; }
public COFFLineNumber[]? COFFLineNumbers { get; set; }
}
}

View File

@@ -56,6 +56,6 @@ namespace SabreTools.Models.PortableExecutable
/// <summary>
/// Entry table
/// </summary>
public SecuROMAddDEntry?[]? Entries { get; set; }
public SecuROMAddDEntry[]? Entries { get; set; }
}
}

View File

@@ -38,6 +38,6 @@
/// member indicates the appropriate language and code page for displaying the text in
/// that StringTable structure.
/// </summary>
public StringTable?[]? Children { get; set; }
public StringTable[]? Children { get; set; }
}
}

View File

@@ -41,6 +41,6 @@
/// <summary>
/// An array of one or more StringData structures.
/// </summary>
public StringData?[]? Children { get; set; }
public StringData[]? Children { get; set; }
}
}

View File

@@ -36,6 +36,6 @@
/// <summary>
/// Typically contains a list of languages that the application or DLL supports.
/// </summary>
public VarData?[]? Children { get; set; }
public VarData[]? Children { get; set; }
}
}

View File

@@ -14,7 +14,7 @@ namespace SabreTools.Models.Quantum
/// <summary>
/// This is immediately followed by the list of files
/// </summary>
public FileDescriptor?[]? FileList { get; set; }
public FileDescriptor[]? FileList { get; set; }
/// <summary>
/// Immediately following the list of files is the compressed data

View File

@@ -23,11 +23,11 @@
/// <summary>
/// Files
/// </summary>
public FileEntry?[]? Files { get; set; }
public FileEntry[]? Files { get; set; }
/// <summary>
/// File headers
/// </summary>
public FileHeader?[]? FileHeaders { get; set; }
public FileHeader[]? FileHeaders { get; set; }
}
}

View File

@@ -0,0 +1,19 @@
namespace SabreTools.Models.SGA
{
/// <summary>
/// SGA game archive
/// </summary>
/// <see href="https://github.com/RavuAlHemio/hllib/blob/master/HLLib/SGAFile.h"/>
public sealed class Archive
{
/// <summary>
///Header data
/// </summary>
public Header? Header { get; set; }
/// <summary>
/// Directory data
/// </summary>
public Directory? Directory { get; set; }
}
}

View File

@@ -1,5 +1,50 @@
using System.Collections.Generic;
namespace SabreTools.Models.SGA
{
/// <see href="https://github.com/RavuAlHemio/hllib/blob/master/HLLib/SGAFile.h"/>
public abstract class Directory { }
public abstract class Directory
{
/// <summary>
/// Source SGA file
/// </summary>
public Archive? File { get; set; }
}
/// <summary>
/// Specialization File7 and up where the CRC moved to the header and the CRC is of the compressed data and there are stronger hashes.
/// </summary>
/// <see href="https://github.com/RavuAlHemio/hllib/blob/master/HLLib/SGAFile.h"/>
public class Directory<THeader, TDirectoryHeader, TSection, TFolder, TFile, U> : Directory
where THeader : Header
where TDirectoryHeader : DirectoryHeader<U>
where TSection : Section<U>
where TFolder : Folder<U>
where TFile : File
{
/// <summary>
/// Directory header data
/// </summary>
public TDirectoryHeader? DirectoryHeader { get; set; }
/// <summary>
/// Sections data
/// </summary>
public TSection[]? Sections { get; set; }
/// <summary>
/// Folders data
/// </summary>
public TFolder[]? Folders { get; set; }
/// <summary>
/// Files data
/// </summary>
public TFile[]? Files { get; set; }
/// <summary>
/// String table data
/// </summary>
public Dictionary<long, string?>? StringTable { get; set; }
}
}

View File

@@ -1,5 +1,5 @@
namespace SabreTools.Models.SGA
{
/// <see href="https://github.com/RavuAlHemio/hllib/blob/master/HLLib/SGAFile.h"/>
public sealed class Directory4 : SpecializedDirectory<Header4, DirectoryHeader4, Section4, Folder4, File4, ushort> { }
public sealed class Directory4 : Directory<Header4, DirectoryHeader4, Section4, Folder4, File4, ushort> { }
}

View File

@@ -1,5 +1,5 @@
namespace SabreTools.Models.SGA
{
/// <see href="https://github.com/RavuAlHemio/hllib/blob/master/HLLib/SGAFile.h"/>
public sealed class Directory5 : SpecializedDirectory<Header4, DirectoryHeader5, Section5, Folder5, File4, uint> { }
public sealed class Directory5 : Directory<Header4, DirectoryHeader5, Section5, Folder5, File4, uint> { }
}

View File

@@ -1,5 +1,5 @@
namespace SabreTools.Models.SGA
{
/// <see href="https://github.com/RavuAlHemio/hllib/blob/master/HLLib/SGAFile.h"/>
public sealed class Directory6 : SpecializedDirectory<Header6, DirectoryHeader5, Section5, Folder5, File6, uint> { }
public sealed class Directory6 : Directory<Header6, DirectoryHeader5, Section5, Folder5, File6, uint> { }
}

View File

@@ -1,5 +1,5 @@
namespace SabreTools.Models.SGA
{
/// <see href="https://github.com/RavuAlHemio/hllib/blob/master/HLLib/SGAFile.h"/>
public sealed class Directory7 : SpecializedDirectory<Header6, DirectoryHeader7, Section5, Folder5, File7, uint> { }
public sealed class Directory7 : Directory<Header6, DirectoryHeader7, Section5, Folder5, File7, uint> { }
}

View File

@@ -1,5 +1,11 @@
namespace SabreTools.Models.SGA
{
/// <see href="https://github.com/RavuAlHemio/hllib/blob/master/HLLib/SGAFile.h"/>
public abstract class DirectoryHeader
{
// All logic lives in the typed version
}
/// <see href="https://github.com/RavuAlHemio/hllib/blob/master/HLLib/SGAFile.h"/>
public abstract class DirectoryHeader<T>
{

View File

@@ -1,5 +1,5 @@
namespace SabreTools.Models.SGA
{
/// <see href="https://github.com/RavuAlHemio/hllib/blob/master/HLLib/SGAFile.h"/>
public class DirectoryHeader5 : DirectoryHeader<uint> { }
public sealed class DirectoryHeader5 : DirectoryHeader<uint> { }
}

View File

@@ -1,7 +1,7 @@
namespace SabreTools.Models.SGA
{
/// <see href="https://github.com/RavuAlHemio/hllib/blob/master/HLLib/SGAFile.h"/>
public sealed class DirectoryHeader7 : DirectoryHeader5
public sealed class DirectoryHeader7 : DirectoryHeader<uint>
{
public uint HashTableOffset { get; set; }

View File

@@ -1,19 +1,22 @@
namespace SabreTools.Models.SGA
{
/// <summary>
/// SGA game archive
/// </summary>
/// <see href="https://github.com/RavuAlHemio/hllib/blob/master/HLLib/SGAFile.h"/>
public sealed class File
public abstract class File
{
/// <summary>
///Header data
/// </summary>
public Header? Header { get; set; }
public uint NameOffset { get; set; }
/// <summary>
/// Directory data
/// </summary>
public Directory? Directory { get; set; }
public string? Name { get; set; }
public uint Offset { get; set; }
public uint SizeOnDisk { get; set; }
public uint Size { get; set; }
public uint TimeModified { get; set; }
public byte Dummy0 { get; set; }
public byte Type { get; set; }
}
}

View File

@@ -1,22 +1,5 @@
namespace SabreTools.Models.SGA
{
/// <see href="https://github.com/RavuAlHemio/hllib/blob/master/HLLib/SGAFile.h"/>
public class File4
{
public uint NameOffset { get; set; }
public string? Name { get; set; }
public uint Offset { get; set; }
public uint SizeOnDisk { get; set; }
public uint Size { get; set; }
public uint TimeModified { get; set; }
public byte Dummy0 { get; set; }
public byte Type { get; set; }
}
public sealed class File4 : File { }
}

View File

@@ -1,7 +1,7 @@
namespace SabreTools.Models.SGA
{
/// <see href="https://github.com/RavuAlHemio/hllib/blob/master/HLLib/SGAFile.h"/>
public class File6 : File4
public sealed class File6 : File
{
public uint CRC32 { get; set; }
}

View File

@@ -1,8 +1,10 @@
namespace SabreTools.Models.SGA
{
/// <see href="https://github.com/RavuAlHemio/hllib/blob/master/HLLib/SGAFile.h"/>
public sealed class File7 : File6
public sealed class File7 : File
{
public uint CRC32 { get; set; }
public uint HashOffset { get; set; }
}
}

View File

@@ -1,12 +1,16 @@
namespace SabreTools.Models.SGA
{
/// <see href="https://github.com/RavuAlHemio/hllib/blob/master/HLLib/SGAFile.h"/>
public abstract class Folder<T>
public abstract class Folder
{
public uint NameOffset { get; set; }
public string? Name { get; set; }
}
/// <see href="https://github.com/RavuAlHemio/hllib/blob/master/HLLib/SGAFile.h"/>
public abstract class Folder<T> : Folder
{
public T? FolderStartIndex { get; set; }
public T? FolderEndIndex { get; set; }

View File

@@ -1,12 +1,16 @@
namespace SabreTools.Models.SGA
{
/// <see href="https://github.com/RavuAlHemio/hllib/blob/master/HLLib/SGAFile.h"/>
public abstract class Section<T>
public abstract class Section
{
public string? Alias { get; set; }
public string? Name { get; set; }
}
/// <see href="https://github.com/RavuAlHemio/hllib/blob/master/HLLib/SGAFile.h"/>
public abstract class Section<T> : Section
{
public T? FolderStartIndex { get; set; }
public T? FolderEndIndex { get; set; }

View File

@@ -1,46 +0,0 @@
using System.Collections.Generic;
namespace SabreTools.Models.SGA
{
/// <summary>
/// Specialization File7 and up where the CRC moved to the header and the CRC is of the compressed data and there are stronger hashes.
/// </summary>
/// <see href="https://github.com/RavuAlHemio/hllib/blob/master/HLLib/SGAFile.h"/>
public class SpecializedDirectory<THeader, TDirectoryHeader, TSection, TFolder, TFile, U> : Directory
where THeader : Header
where TDirectoryHeader : DirectoryHeader<U>
where TSection : Section<U>
where TFolder : Folder<U>
where TFile : File4
{
/// <summary>
/// Source SGA file
/// </summary>
public File? File { get; set; }
/// <summary>
/// Directory header data
/// </summary>
public TDirectoryHeader? DirectoryHeader { get; set; }
/// <summary>
/// Sections data
/// </summary>
public TSection?[]? Sections { get; set; }
/// <summary>
/// Folders data
/// </summary>
public TFolder?[]? Folders { get; set; }
/// <summary>
/// Files data
/// </summary>
public TFile?[]? Files { get; set; }
/// <summary>
/// String table data
/// </summary>
public Dictionary<long, string?>? StringTable { get; set; }
}
}

View File

@@ -7,7 +7,7 @@
<NoWarn>CS0618</NoWarn>
<Nullable>enable</Nullable>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<Version>1.5.4</Version>
<Version>1.5.5</Version>
<!-- Package Properties -->
<Authors>Matt Nadareski</Authors>

View File

@@ -19,11 +19,11 @@ namespace SabreTools.Models.VPK
/// <summary>
/// Archive hashes data
/// </summary>
public ArchiveHash?[]? ArchiveHashes { get; set; }
public ArchiveHash[]? ArchiveHashes { get; set; }
/// <summary>
/// Directory items data
/// </summary>
public DirectoryItem?[]? DirectoryItems { get; set; }
public DirectoryItem[]? DirectoryItems { get; set; }
}
}

View File

@@ -14,11 +14,11 @@ namespace SabreTools.Models.WAD3
/// <summary>
/// Deserialized dir entry data
/// </summary>
public DirEntry?[]? DirEntries { get; set; }
public DirEntry[]? DirEntries { get; set; }
/// <summary>
/// Deserialized file entry data
/// </summary>
public FileEntry?[]? FileEntries { get; set; }
public FileEntry[]? FileEntries { get; set; }
}
}

View File

@@ -14,22 +14,22 @@ namespace SabreTools.Models.XZP
/// <summary>
/// Directory entries data
/// </summary>
public DirectoryEntry?[]? DirectoryEntries { get; set; }
public DirectoryEntry[]? DirectoryEntries { get; set; }
/// <summary>
/// Preload directory entries data
/// </summary>
public DirectoryEntry?[]? PreloadDirectoryEntries { get; set; }
public DirectoryEntry[]? PreloadDirectoryEntries { get; set; }
/// <summary>
/// Preload directory mappings data
/// </summary>
public DirectoryMapping?[]? PreloadDirectoryMappings { get; set; }
public DirectoryMapping[]? PreloadDirectoryMappings { get; set; }
/// <summary>
/// Directory items data
/// </summary>
public DirectoryItem?[]? DirectoryItems { get; set; }
public DirectoryItem[]? DirectoryItems { get; set; }
/// <summary>
/// Footer data