//========= 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 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 m_Maps; char m_InstancePath[MAX_PATH]; bool m_bIsCordoning; CUtlVector m_Cordons; entity_t *m_CordoningMapEnt; }; #endif // #ifndef __MANIFEST_H