Files
BinaryObjectScanner/BinaryObjectScanner.Models/MoPaQ/Archive.cs
Matt Nadareski 473cbc5694 BOS.* -> BOS.*
2023-03-07 16:59:14 -05:00

62 lines
1.9 KiB
C#

namespace BinaryObjectScanner.Models.MoPaQ
{
/// <summary>
/// MPQ (MoPaQ) is an archive format developed by Blizzard Entertainment,
/// purposed for storing data files, images, sounds, music and videos for
/// their games. The name MoPaQ comes from the author of the format,
/// Mike O'Brien (Mike O'brien PaCK).
/// </summary>
/// <see href="http://zezula.net/en/mpq/mpqformat.html"/>
public sealed class Archive
{
// TODO: Data before archive, ignored
/// <summary>
/// MPQ User Data (optional)
/// </summary>
public UserData UserData { get; set; }
/// <summary>
/// MPQ Header (required)
/// </summary>
public ArchiveHeader ArchiveHeader { get; set; }
// TODO: Files (optional)
// TODO: Special files (optional)
/// <summary>
/// HET Table (optional)
/// </summary>
public HetTable HetTable { get; set; }
/// <summary>
/// BET Table (optional)
/// </summary>
public BetTable BetTable { get; set; }
/// <summary>
/// Hash Table (optional)
/// </summary>
public HashEntry[] HashTable { get; set; }
/// <summary>
/// Block Table (optional)
/// </summary>
public BlockEntry[] BlockTable { get; set; }
/// <summary>
/// Hi-Block Table (optional)
/// </summary>
/// <remarks>
/// Since World of Warcraft - The Burning Crusade, Blizzard extended
/// the MPQ format to support archives larger than 4GB. The hi-block
/// table holds the higher 16-bits of the file position in the MPQ.
/// Hi-block table is plain array of 16-bit values. This table is
/// not encrypted.
/// </remarks>
public short[] HiBlockTable { get; set; }
// TODO: Strong digital signature
}
}