//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // // $NoKeywords: $ //=============================================================================// #ifndef ACTIVITYLIST_H #define ACTIVITYLIST_H #ifdef _WIN32 #pragma once #endif #include typedef struct activityentry_s activityentry_t; class CActivityRemap { public: CActivityRemap() { pExtraBlock = NULL; } void SetExtraKeyValueBlock ( KeyValues *pKVBlock ) { pExtraBlock = pKVBlock; } KeyValues *GetExtraKeyValueBlock ( void ) { return pExtraBlock; } Activity activity; Activity mappedActivity; private: KeyValues *pExtraBlock; }; class CActivityRemapCache { public: CActivityRemapCache() { } CActivityRemapCache( const CActivityRemapCache& src ) { int c = src.m_cachedActivityRemaps.Count(); for ( int i = 0; i < c; i++ ) { m_cachedActivityRemaps.AddToTail( src.m_cachedActivityRemaps[ i ] ); } } CActivityRemapCache& operator = ( const CActivityRemapCache& src ) { if ( this == &src ) return *this; int c = src.m_cachedActivityRemaps.Count(); for ( int i = 0; i < c; i++ ) { m_cachedActivityRemaps.AddToTail( src.m_cachedActivityRemaps[ i ] ); } return *this; } CUtlVector< CActivityRemap > m_cachedActivityRemaps; }; void UTIL_LoadActivityRemapFile( const char *filename, const char *section, CUtlVector &entries ); //========================================================= //========================================================= extern void ActivityList_Init( void ); extern void ActivityList_Free( void ); extern bool ActivityList_RegisterSharedActivity( const char *pszActivityName, int iActivityIndex ); extern Activity ActivityList_RegisterPrivateActivity( const char *pszActivityName ); extern int ActivityList_IndexForName( const char *pszActivityName ); extern const char *ActivityList_NameForIndex( int iActivityIndex ); extern int ActivityList_HighestIndex(); // This macro guarantees that the names of each activity and the constant used to // reference it in the code are identical. #define REGISTER_SHARED_ACTIVITY( _n ) ActivityList_RegisterSharedActivity(#_n, _n); #define REGISTER_PRIVATE_ACTIVITY( _n ) _n = ActivityList_RegisterPrivateActivity( #_n ); // Implemented in shared code extern void ActivityList_RegisterSharedActivities( void ); class ISaveRestoreOps; extern ISaveRestoreOps* ActivityDataOps(); #endif // ACTIVITYLIST_H