summaryrefslogtreecommitdiff
path: root/utils/vbsp/manifest.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/vbsp/manifest.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'utils/vbsp/manifest.h')
-rw-r--r--utils/vbsp/manifest.h73
1 files changed, 73 insertions, 0 deletions
diff --git a/utils/vbsp/manifest.h b/utils/vbsp/manifest.h
new file mode 100644
index 0000000..e7b801e
--- /dev/null
+++ b/utils/vbsp/manifest.h
@@ -0,0 +1,73 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+//=====================================================================================//
+
+#ifndef __MANIFEST_H
+#define __MANIFEST_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "boundbox.h"
+
+//
+// Each cordon is a named collection of bounding boxes.
+//
+struct Cordon_t
+{
+ inline Cordon_t()
+ {
+ m_bActive = false;
+ }
+
+ CUtlString m_szName;
+ bool m_bActive; // True means cull using this cordon when cordoning is enabled.
+ CUtlVector<BoundBox> m_Boxes;
+};
+
+class CManifestMap
+{
+public:
+ CManifestMap( void );
+ char m_RelativeMapFileName[ MAX_PATH ];
+ bool m_bTopLevelMap;
+};
+
+class CManifest
+{
+public:
+ CManifest( void );
+
+ static ChunkFileResult_t LoadManifestMapKeyCallback( const char *szKey, const char *szValue, CManifestMap *pManifestMap );
+ static ChunkFileResult_t LoadManifestVMFCallback( CChunkFile *pFile, CManifest *pManifest );
+ static ChunkFileResult_t LoadManifestMapsCallback( CChunkFile *pFile, CManifest *pManifest );
+ static ChunkFileResult_t LoadCordonBoxCallback( CChunkFile *pFile, Cordon_t *pCordon );
+ static ChunkFileResult_t LoadCordonBoxKeyCallback( const char *szKey, const char *szValue, BoundBox *pBox );
+ static ChunkFileResult_t LoadCordonKeyCallback( const char *szKey, const char *szValue, Cordon_t *pCordon );
+ static ChunkFileResult_t LoadCordonCallback( CChunkFile *pFile, CManifest *pManifest );
+ static ChunkFileResult_t LoadCordonsKeyCallback( const char *pszKey, const char *pszValue, CManifest *pManifest );
+ static ChunkFileResult_t LoadCordonsCallback( CChunkFile *pFile, CManifest *pManifest );
+ static ChunkFileResult_t LoadManifestCordoningPrefsCallback( CChunkFile *pFile, CManifest *pManifest );
+
+ bool LoadSubMaps( CMapFile *pMapFile, const char *pszFileName );
+ epair_t *CreateEPair( char *pKey, char *pValue );
+ bool LoadVMFManifest( const char *pszFileName );
+ const char *GetInstancePath( ) { return m_InstancePath; }
+
+ void CordonWorld( );
+
+private:
+ bool LoadVMFManifestUserPrefs( const char *pszFileName );
+
+
+ CUtlVector< CManifestMap * > m_Maps;
+ char m_InstancePath[ MAX_PATH ];
+ bool m_bIsCordoning;
+ CUtlVector< Cordon_t > m_Cordons;
+ entity_t *m_CordoningMapEnt;
+};
+
+#endif // #ifndef __MANIFEST_H