BSPParser
Simple and modern library for parsing the Valve BSP format
Loading...
Searching...
No Matches
zip.hpp
1#pragma once
2
3#include "../enums/zip.hpp"
4#include <cstdint>
5
10#pragma pack(push, 1)
11
13 static constexpr auto SIGNATURE = 0x06054b50;
14
15 uint32_t signature;
16 uint16_t thisDiskNumber;
17 uint16_t diskOfCentralDirectoryStart;
18 uint16_t numCentralDirectoryEntriesInThisDisk;
19 uint16_t numCentralDirectoryEntriesTotal;
20 uint32_t centralDirectorySizeBytes;
21 uint32_t startOfCentralDirOffset;
22 uint16_t commentLength;
23 };
24
25 struct FileHeader {
26 static constexpr auto SIGNATURE = 0x02014b50;
27
28 uint32_t signature;
29 uint16_t versionMadeBy;
30 uint16_t versionNeededToExtract;
31 uint16_t flags;
32 Enums::ZipCompressionMethod compressionMethod;
33 uint16_t lastModifiedTime;
34 uint16_t lastModifiedDate;
35 uint32_t crc32;
36 uint32_t compressedSize;
37 uint32_t uncompressedSize;
38 uint16_t fileNameLength;
39 uint16_t extraFieldLength;
40 uint16_t fileCommentLength;
41 uint16_t diskNumberStart;
42 uint16_t internalFileAttributes;
43 uint32_t externalFileAttributes;
44 uint32_t localFileHeaderOffset; // From start of disk
45 };
46
48 static constexpr auto SIGNATURE = 0x04034b50;
49
50 uint32_t signature;
51 uint16_t versionNeededToExtract;
52 uint16_t flags;
53 Enums::ZipCompressionMethod compressionMethod;
54 uint16_t lastModifiedTime;
55 uint16_t lastModifiedDate;
56 uint32_t crc32;
57 uint32_t compressedSize;
58 uint32_t uncompressedSize;
59 uint16_t fileNameLength;
60 uint16_t extraFieldLength;
61 };
62
63#pragma pack(pop)
64}
ZipCompressionMethod
Definition: zip.hpp:8
Definition: zip.hpp:9