mirror of
https://github.com/SabreTools/SabreTools.Serialization.git
synced 2026-04-13 17:53:07 +00:00
This change looks dramatic, but it's just separating out the already-split namespaces into separate top-level folders. In theory, every single one could be built into their own Nuget package. `SabreTools.Serialization` still builds the normal Nuget package that is used by all other projects and includes all namespaces.
119 lines
3.6 KiB
C#
119 lines
3.6 KiB
C#
using System.Collections.Generic;
|
|
|
|
namespace SabreTools.Data.Models.GCF
|
|
{
|
|
/// <summary>
|
|
/// Half-Life Game Cache File
|
|
/// </summary>
|
|
/// <see href="https://github.com/RavuAlHemio/hllib/blob/master/HLLib/GCFFile.h"/>
|
|
public sealed class File
|
|
{
|
|
/// <summary>
|
|
/// Header data
|
|
/// </summary>
|
|
public Header Header { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// Block entry header data
|
|
/// </summary>
|
|
public BlockEntryHeader BlockEntryHeader { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// Block entries data
|
|
/// </summary>
|
|
public BlockEntry[] BlockEntries { get; set; } = [];
|
|
|
|
/// <summary>
|
|
/// Fragmentation map header data
|
|
/// </summary>
|
|
public FragmentationMapHeader FragmentationMapHeader { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// Fragmentation map data
|
|
/// </summary>
|
|
public FragmentationMap[] FragmentationMaps { get; set; } = [];
|
|
|
|
/// <summary>
|
|
/// Block entry map header data
|
|
/// </summary>
|
|
/// <remarks>Part of version 5 but not version 6.</remarks>
|
|
public BlockEntryMapHeader BlockEntryMapHeader { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// Block entry map data
|
|
/// </summary>
|
|
/// <remarks>Part of version 5 but not version 6.</remarks>
|
|
public BlockEntryMap[] BlockEntryMaps { get; set; } = [];
|
|
|
|
/// <summary>
|
|
/// Directory header data
|
|
/// </summary>
|
|
public DirectoryHeader DirectoryHeader { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// Directory entries data
|
|
/// </summary>
|
|
public DirectoryEntry[] DirectoryEntries { get; set; } = [];
|
|
|
|
/// <summary>
|
|
/// Directory names data
|
|
/// </summary>
|
|
public Dictionary<long, string?> DirectoryNames { get; set; } = [];
|
|
|
|
/// <summary>
|
|
/// Directory info 1 entries data
|
|
/// </summary>
|
|
public DirectoryInfo1Entry[] DirectoryInfo1Entries { get; set; } = [];
|
|
|
|
/// <summary>
|
|
/// Directory info 2 entries data
|
|
/// </summary>
|
|
public DirectoryInfo2Entry[] DirectoryInfo2Entries { get; set; } = [];
|
|
|
|
/// <summary>
|
|
/// Directory copy entries data
|
|
/// </summary>
|
|
public DirectoryCopyEntry[] DirectoryCopyEntries { get; set; } = [];
|
|
|
|
/// <summary>
|
|
/// Directory local entries data
|
|
/// </summary>
|
|
public DirectoryLocalEntry[] DirectoryLocalEntries { get; set; } = [];
|
|
|
|
/// <summary>
|
|
/// Directory map header data
|
|
/// </summary>
|
|
public DirectoryMapHeader DirectoryMapHeader { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// Directory map entries data
|
|
/// </summary>
|
|
public DirectoryMapEntry[] DirectoryMapEntries { get; set; } = [];
|
|
|
|
/// <summary>
|
|
/// Checksum header data
|
|
/// </summary>
|
|
public ChecksumHeader ChecksumHeader { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// Checksum map header data
|
|
/// </summary>
|
|
public ChecksumMapHeader ChecksumMapHeader { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// Checksum map entries data
|
|
/// </summary>
|
|
public ChecksumMapEntry[] ChecksumMapEntries { get; set; } = [];
|
|
|
|
/// <summary>
|
|
/// Checksum entries data
|
|
/// </summary>
|
|
public ChecksumEntry[] ChecksumEntries { get; set; } = [];
|
|
|
|
/// <summary>
|
|
/// Data block header data
|
|
/// </summary>
|
|
public DataBlockHeader DataBlockHeader { get; set; } = new();
|
|
}
|
|
}
|