summaryrefslogtreecommitdiff
path: root/public/zip_uncompressed.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /public/zip_uncompressed.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'public/zip_uncompressed.h')
-rw-r--r--public/zip_uncompressed.h117
1 files changed, 117 insertions, 0 deletions
diff --git a/public/zip_uncompressed.h b/public/zip_uncompressed.h
new file mode 100644
index 0000000..11f4e86
--- /dev/null
+++ b/public/zip_uncompressed.h
@@ -0,0 +1,117 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+//=============================================================================//
+
+#ifndef ZIP_UNCOMPRESSED_H
+#define ZIP_UNCOMPRESSED_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "datamap.h"
+
+#define PKID( a, b ) (((b)<<24)|((a)<<16)|('K'<<8)|'P')
+
+// compressionMethod field
+#define ZIP_COMPRESSION_NONE 0
+#define ZIP_COMPRESSION_LZMA 14
+
+#pragma pack(1)
+
+struct ZIP_EndOfCentralDirRecord
+{
+ DECLARE_BYTESWAP_DATADESC();
+ unsigned int signature; // 4 bytes PK56
+ unsigned short numberOfThisDisk; // 2 bytes
+ unsigned short numberOfTheDiskWithStartOfCentralDirectory; // 2 bytes
+ unsigned short nCentralDirectoryEntries_ThisDisk; // 2 bytes
+ unsigned short nCentralDirectoryEntries_Total; // 2 bytes
+ unsigned int centralDirectorySize; // 4 bytes
+ unsigned int startOfCentralDirOffset; // 4 bytes
+ unsigned short commentLength; // 2 bytes
+ // zip file comment follows
+};
+
+struct ZIP_FileHeader
+{
+ DECLARE_BYTESWAP_DATADESC();
+ unsigned int signature; // 4 bytes PK12
+ unsigned short versionMadeBy; // version made by 2 bytes
+ unsigned short versionNeededToExtract; // version needed to extract 2 bytes
+ unsigned short flags; // general purpose bit flag 2 bytes
+ unsigned short compressionMethod; // compression method 2 bytes
+ unsigned short lastModifiedTime; // last mod file time 2 bytes
+ unsigned short lastModifiedDate; // last mod file date 2 bytes
+ unsigned int crc32; // crc-32 4 bytes
+ unsigned int compressedSize; // compressed size 4 bytes
+ unsigned int uncompressedSize; // uncompressed size 4 bytes
+ unsigned short fileNameLength; // file name length 2 bytes
+ unsigned short extraFieldLength; // extra field length 2 bytes
+ unsigned short fileCommentLength; // file comment length 2 bytes
+ unsigned short diskNumberStart; // disk number start 2 bytes
+ unsigned short internalFileAttribs; // internal file attributes 2 bytes
+ unsigned int externalFileAttribs; // external file attributes 4 bytes
+ unsigned int relativeOffsetOfLocalHeader; // relative offset of local header 4 bytes
+ // file name (variable size)
+ // extra field (variable size)
+ // file comment (variable size)
+};
+
+struct ZIP_LocalFileHeader
+{
+ DECLARE_BYTESWAP_DATADESC();
+ unsigned int signature; //local file header signature 4 bytes PK34
+ unsigned short versionNeededToExtract; // version needed to extract 2 bytes
+ unsigned short flags; // general purpose bit flag 2 bytes
+ unsigned short compressionMethod; // compression method 2 bytes
+ unsigned short lastModifiedTime; // last mod file time 2 bytes
+ unsigned short lastModifiedDate; // last mod file date 2 bytes
+ unsigned int crc32; // crc-32 4 bytes
+ unsigned int compressedSize; // compressed size 4 bytes
+ unsigned int uncompressedSize; // uncompressed size 4 bytes
+ unsigned short fileNameLength; // file name length 2 bytes
+ unsigned short extraFieldLength; // extra field length 2 bytes
+ // file name (variable size)
+ // extra field (variable size)
+};
+
+//=============================================================================//
+// Valve Non standard Extension, Preload Section
+// An optional first file in an aligned zip that can be loaded into ram and
+// used by the FileSystem to supply header data rather than disk.
+// Is is an optimization to prevent the large of amount of small I/O performed
+/// by the map loading process.
+//=============================================================================//
+
+#define PRELOAD_SECTION_NAME "__preload_section.pre"
+#define PRELOAD_HDR_VERSION 3
+#define XZIP_COMMENT_LENGTH 32
+#define INVALID_PRELOAD_ENTRY ( (unsigned short)-1 )
+
+struct ZIP_PreloadHeader
+{
+ DECLARE_BYTESWAP_DATADESC();
+ unsigned int Version; // VERSION
+ unsigned int DirectoryEntries; // Number of zip directory entries.
+ unsigned int PreloadDirectoryEntries; // Number of preloaded directory entries (equal or less than the zip dir).
+ unsigned int Alignment; // File alignment of the zip
+};
+
+struct ZIP_PreloadDirectoryEntry
+{
+ DECLARE_BYTESWAP_DATADESC();
+ unsigned int Length; // Length of the file's preload data in bytes
+ unsigned int DataOffset; // Offset the file data in the .zip, relative to the logical beginning of the preload file.
+};
+
+struct ZIP_PreloadRemapTable
+{
+ DECLARE_BYTESWAP_DATADESC();
+ unsigned short PreloadIndex; // Index into preload directory, entry marked invalid if no preload entry present
+};
+
+#pragma pack()
+
+#endif // ZIP_UNCOMPRESSED_H