diff options
Diffstat (limited to 'sp/src/utils/vbsp/ivp.h')
| -rw-r--r-- | sp/src/utils/vbsp/ivp.h | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/sp/src/utils/vbsp/ivp.h b/sp/src/utils/vbsp/ivp.h new file mode 100644 index 00000000..d3c310dc --- /dev/null +++ b/sp/src/utils/vbsp/ivp.h @@ -0,0 +1,75 @@ +//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+//=============================================================================//
+
+#ifndef IVP_H
+#define IVP_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "utlvector.h"
+
+class CPhysCollide;
+class CTextBuffer;
+class IPhysicsCollision;
+extern IPhysicsCollision *physcollision;
+
+// a list of all of the materials in the world model
+extern int RemapWorldMaterial( int materialIndexIn );
+
+class CPhysCollisionEntry
+{
+public:
+ CPhysCollisionEntry( CPhysCollide *pCollide );
+
+ virtual void WriteToTextBuffer( CTextBuffer *pTextBuffer, int modelIndex, int collideIndex ) = 0;
+ virtual void DumpCollide( CTextBuffer *pTextBuffer, int modelIndex, int collideIndex ) = 0;
+
+ unsigned int GetCollisionBinarySize();
+ unsigned int WriteCollisionBinary( char *pDest );
+
+protected:
+ void DumpCollideFileName( const char *pName, int modelIndex, CTextBuffer *pTextBuffer );
+
+protected:
+ CPhysCollide *m_pCollide;
+};
+
+class CPhysCollisionEntryStaticMesh : public CPhysCollisionEntry
+{
+public:
+ CPhysCollisionEntryStaticMesh( CPhysCollide *pCollide, const char *pMaterialName );
+
+ virtual void WriteToTextBuffer( CTextBuffer *pTextBuffer, int modelIndex, int collideIndex );
+ virtual void DumpCollide( CTextBuffer *pTextBuffer, int modelIndex, int collideIndex );
+
+private:
+ const char *m_pMaterial;
+};
+
+
+class CTextBuffer
+{
+public:
+ CTextBuffer( void );
+ ~CTextBuffer( void );
+ inline int GetSize( void ) { return m_buffer.Count(); }
+ inline char *GetData( void ) { return m_buffer.Base(); }
+
+ void WriteText( const char *pText );
+ void WriteIntKey( const char *pKeyName, int outputData );
+ void WriteStringKey( const char *pKeyName, const char *outputData );
+ void WriteFloatKey( const char *pKeyName, float outputData );
+ void WriteFloatArrayKey( const char *pKeyName, const float *outputData, int count );
+
+ void CopyStringQuotes( const char *pString );
+ void Terminate( void );
+private:
+ void CopyData( const char *pData, int len );
+ CUtlVector<char> m_buffer;
+};
+
+#endif // IVP_H
|