//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============// // // Purpose: // // $NoKeywords: $ //=============================================================================// #ifndef EXPCLASS_H #define EXPCLASS_H #ifdef _WIN32 #pragma once #endif #include "utlvector.h" class CExpression; //----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- class CExpClass { public: CExpClass( const char *classname ); virtual ~CExpClass( void ); void Save( void ); void Export( void ); void CheckBitmapConsistency( void ); void ReloadBitmaps( void ); const char *GetName() const; const char *GetBaseName() const; const char *GetFileName() const; void SetFileName( const char *filename ); CExpression *AddExpression( const char *name, const char *description, float *flexsettings, float *flexweights, bool selectnewitem, bool bDirtyClass ); CExpression *FindExpression( const char *name ); int FindExpressionIndex( CExpression *exp ); void DeleteExpression( const char *name ); int GetNumExpressions( void ); CExpression *GetExpression( int num ); bool GetDirty( void ); void SetDirty( bool dirty ); void SelectExpression( int num, bool deselect = true ); int GetSelectedExpression( void ); void DeselectExpression( void ); void SwapExpressionOrder( int exp1, int exp2 ); // Get index of this class in the global class list int GetIndex( void ); bool IsPhonemeClass( void ) const; private: void BuildValidChecksums( CUtlRBTree< CRC32_t > &tree ); char m_szBaseName[ 128 ]; // name w/out any subdirectory names char m_szClassName[ 128 ]; char m_szFileName[ 128 ]; bool m_bDirty; int m_nSelectedExpression; CUtlVector < CExpression > m_Expressions; bool m_bIsPhonemeClass; }; #endif // EXPCLASS_H