mirror of
https://github.com/DrBeef/Raze.git
synced 2024-11-16 01:11:28 +00:00
71 lines
1.4 KiB
C
71 lines
1.4 KiB
C
|
#ifndef __W_ZIP
|
||
|
#define __W_ZIP
|
||
|
|
||
|
#include "basics.h"
|
||
|
|
||
|
#pragma pack(1)
|
||
|
// FZipCentralInfo
|
||
|
struct FZipEndOfCentralDirectory
|
||
|
{
|
||
|
uint32_t Magic;
|
||
|
uint16_t DiskNumber;
|
||
|
uint16_t FirstDisk;
|
||
|
uint16_t NumEntries;
|
||
|
uint16_t NumEntriesOnAllDisks;
|
||
|
uint32_t DirectorySize;
|
||
|
uint32_t DirectoryOffset;
|
||
|
uint16_t ZipCommentLength;
|
||
|
} FORCE_PACKED;
|
||
|
|
||
|
// FZipFileInfo
|
||
|
struct FZipCentralDirectoryInfo
|
||
|
{
|
||
|
uint32_t Magic;
|
||
|
uint8_t VersionMadeBy[2];
|
||
|
uint8_t VersionToExtract[2];
|
||
|
uint16_t Flags;
|
||
|
uint16_t Method;
|
||
|
uint16_t ModTime;
|
||
|
uint16_t ModDate;
|
||
|
uint32_t CRC32;
|
||
|
uint32_t CompressedSize;
|
||
|
uint32_t UncompressedSize;
|
||
|
uint16_t NameLength;
|
||
|
uint16_t ExtraLength;
|
||
|
uint16_t CommentLength;
|
||
|
uint16_t StartingDiskNumber;
|
||
|
uint16_t InternalAttributes;
|
||
|
uint32_t ExternalAttributes;
|
||
|
uint32_t LocalHeaderOffset;
|
||
|
// file name and other variable length info follows
|
||
|
} FORCE_PACKED;
|
||
|
|
||
|
// FZipLocalHeader
|
||
|
struct FZipLocalFileHeader
|
||
|
{
|
||
|
uint32_t Magic;
|
||
|
uint8_t VersionToExtract[2];
|
||
|
uint16_t Flags;
|
||
|
uint16_t Method;
|
||
|
uint16_t ModTime;
|
||
|
uint16_t ModDate;
|
||
|
uint32_t CRC32;
|
||
|
uint32_t CompressedSize;
|
||
|
uint32_t UncompressedSize;
|
||
|
uint16_t NameLength;
|
||
|
uint16_t ExtraLength;
|
||
|
// file name and other variable length info follows
|
||
|
} FORCE_PACKED;
|
||
|
|
||
|
|
||
|
#pragma pack()
|
||
|
|
||
|
#define ZIP_LOCALFILE MAKE_ID('P','K',3,4)
|
||
|
#define ZIP_CENTRALFILE MAKE_ID('P','K',1,2)
|
||
|
#define ZIP_ENDOFDIR MAKE_ID('P','K',5,6)
|
||
|
|
||
|
// File header flags.
|
||
|
#define ZF_ENCRYPTED 0x1
|
||
|
|
||
|
#endif
|