You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
98 lines
2.4 KiB
98 lines
2.4 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
// $NoKeywords: $ |
|
//=============================================================================// |
|
|
|
#ifndef ACTIVITYLIST_H |
|
#define ACTIVITYLIST_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#include <KeyValues.h> |
|
|
|
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() = default; |
|
|
|
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 <CActivityRemap> &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
|
|
|