summaryrefslogtreecommitdiff
path: root/utils/xbox/MakeGameData/XZipTool.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 /utils/xbox/MakeGameData/XZipTool.h
downloadarchived-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.h61
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