mirror of
https://github.com/celisej567/source-sdk-2013.git
synced 2026-09-17 20:10:21 +03:00
- Fixed a major oversight in Source 2013 which was causing some code to think all logic entities were worldspawn - Added WIP background nodraw for point_cameras set to not draw skybox at all - Fixed map-specific talker not flushing on restore - Added optional HUD hint to code-based game instructor hints - Added workaround for suspicious crashes in HL2 NPC rappelling code (reported by 1upD) - Made antlions summoned by npc_antlionguard report as dead when removed with the "Kill" input - Fixed math_mod not saving mod value (reported by Klems) - Added SDK_WindowImposter, which uses the SteamPipe cubemap bug workaround and includes support for parallax corrected cubemaps - Updated thirdpartylegalnotices.txt to mention the Squirrel API - Fixed incorrect type checking for script instances in VScript - Added a bunch of new misc. VScript constants - Added a few new base VScript functions - Added a separate "Clientside Script Language" keyvalue to worldspawn for VScript, allowing client scripts to use a different language from server scripts - Fixed worldspawn crashing the game when running entity scripts (reported by krassell) - Fixed manifests creating a second worldspawn, allowing them to function properly in HL2 - Added tons of remapping-related fixes for instances and manifests, including node IDs and overlay remapping - Added a keyvalue to func_instance which allows vector axis lines to be remapped properly - Added support for manifest root path instances in VBSP - Added missing PrintBrushContents() contents to VBSP - Added -nohiddenmaps parameter - Made manifest cordon somewhat functional
88 lines
2.7 KiB
C++
88 lines
2.7 KiB
C++
//========= 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 );
|
|
int m_nInternalId;
|
|
char m_RelativeMapFileName[ MAX_PATH ];
|
|
bool m_bTopLevelMap;
|
|
bool m_bIsVisible;
|
|
};
|
|
|
|
class CManifestMapPrefs
|
|
{
|
|
public:
|
|
CManifestMapPrefs( void );
|
|
int m_nInternalId;
|
|
bool m_bIsVisible;
|
|
//int m_bIsPrimary;
|
|
};
|
|
|
|
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 );
|
|
static ChunkFileResult_t LoadPrefsVmfKeyCallback( const char *szKey, const char *szValue, CManifestMapPrefs *pManifestMapPrefs );
|
|
static ChunkFileResult_t LoadPrefsVmfCallback( CChunkFile *pFile, CManifest *pManifest );
|
|
static ChunkFileResult_t LoadPrefsMapsCallback( 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
|