diff options
Diffstat (limited to 'public/vcollide_parse.h')
| -rw-r--r-- | public/vcollide_parse.h | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/public/vcollide_parse.h b/public/vcollide_parse.h new file mode 100644 index 0000000..675c456 --- /dev/null +++ b/public/vcollide_parse.h @@ -0,0 +1,68 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#ifndef VCOLLIDE_PARSE_H +#define VCOLLIDE_PARSE_H +#ifdef _WIN32 +#pragma once +#endif + +#include "vphysics_interface.h" + +struct solid_t +{ + int index; + char name[512]; + char parent[512]; + char surfaceprop[512]; + Vector massCenterOverride; + objectparams_t params; +}; + +struct fluid_t +{ + int index; + char surfaceprop[512]; + + fluidparams_t params; + + fluid_t() {} + fluid_t( fluid_t const& src ) : params(src.params) + { + index = src.index; + } +}; + +//----------------------------------------------------------------------------- +// Purpose: Pass this into the parser to handle the keys that vphysics does not +// parse. +//----------------------------------------------------------------------------- +class IVPhysicsKeyHandler +{ +public: + virtual void ParseKeyValue( void *pData, const char *pKey, const char *pValue ) = 0; + virtual void SetDefaults( void *pData ) = 0; +}; + + +class IVPhysicsKeyParser +{ +public: + virtual ~IVPhysicsKeyParser() {} + + virtual const char *GetCurrentBlockName( void ) = 0; + virtual bool Finished( void ) = 0; + virtual void ParseSolid( solid_t *pSolid, IVPhysicsKeyHandler *unknownKeyHandler ) = 0; + virtual void ParseFluid( fluid_t *pFluid, IVPhysicsKeyHandler *unknownKeyHandler ) = 0; + virtual void ParseRagdollConstraint( constraint_ragdollparams_t *pConstraint, IVPhysicsKeyHandler *unknownKeyHandler ) = 0; + virtual void ParseSurfaceTable( int *table, IVPhysicsKeyHandler *unknownKeyHandler ) = 0; + virtual void ParseCustom( void *pCustom, IVPhysicsKeyHandler *unknownKeyHandler ) = 0; + virtual void ParseVehicle( vehicleparams_t *pVehicle, IVPhysicsKeyHandler *unknownKeyHandler ) = 0; + virtual void SkipBlock( void ) = 0; +}; + +#endif // VCOLLIDE_PARSE_H |