diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /utils/xbox/MakeGameData/XZipTool.h | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'utils/xbox/MakeGameData/XZipTool.h')
| -rw-r--r-- | utils/xbox/MakeGameData/XZipTool.h | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/utils/xbox/MakeGameData/XZipTool.h b/utils/xbox/MakeGameData/XZipTool.h new file mode 100644 index 0000000..41713cf --- /dev/null +++ b/utils/xbox/MakeGameData/XZipTool.h @@ -0,0 +1,61 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//=====================================================================================// + +#pragma once + +#include <stdio.h> +#include "utlbuffer.h" +#include "zip_uncompressed.h" +#include "generichash.h" +#include "zip_utils.h" +#include "byteswap.h" +#include "tier1/UtlVector.h" +#include "UtlSortVector.h" + +struct CRCEntry_t +{ + unsigned int fileNameCRC; + CUtlString filename; +}; + +struct preloadRemap_t +{ + CUtlString filename; + unsigned short preloadDirIndex; +}; + +class CZipCRCLessFunc +{ +public: + bool Less( CRCEntry_t const& src1, CRCEntry_t const& src2, void *pCtx ) + { + return ( src1.fileNameCRC < src2.fileNameCRC ); + } +}; + +class CXZipTool +{ +public: + CXZipTool(); + ~CXZipTool(); + + void Reset(); + bool Begin( const char* pFileName, unsigned int alignment = 0 ); + bool End(); + bool AddBuffer( const char* pFileName, CUtlBuffer &buffer, bool bPreload = true ); + bool AddFile( const char* pFileName, bool bPreload = true ); + void SpewPreloadInfo( const char *pZipName ); + +private: + IZip *m_pZip; + char m_PreloadFilename[MAX_PATH]; + HANDLE m_hPreloadFile; + HANDLE m_hOutputZipFile; + ZIP_PreloadHeader m_ZipPreloadHeader; + CUtlVector< ZIP_PreloadDirectoryEntry > m_ZipPreloadDirectoryEntries; + CUtlSortVector< CRCEntry_t, CZipCRCLessFunc > m_ZipCRCList; + CUtlVector< preloadRemap_t > m_ZipPreloadRemapEntries; +};
\ No newline at end of file |