networking
This commit is contained in:
@@ -16,9 +16,28 @@ interface IGameModeManager
|
||||
public:
|
||||
static void Init( void );
|
||||
static void Frame( void );
|
||||
static void StartGameMode(CGameMode *pGameMode);
|
||||
static CGameMode *GetCurrentMode( void );
|
||||
static void RestartCurrentMode( void );
|
||||
|
||||
static void StartGameMode( const char *szName );
|
||||
static const char *GetCurrentGameMode( void );
|
||||
static CGameMode *GetCurrentGameModeClass( void );
|
||||
static void RestartCurrentGameMode( void );
|
||||
};
|
||||
|
||||
typedef CGameMode*(*GameModeRegistryFn)();
|
||||
class CGameModeRegistry
|
||||
{
|
||||
public:
|
||||
CGameModeRegistry( const char *szName, GameModeRegistryFn pfn );
|
||||
const char *m_szName;
|
||||
GameModeRegistryFn m_pfn;
|
||||
};
|
||||
|
||||
#define DECLARE_GAME_MODE( class, name ) \
|
||||
CGameMode *__gamemode_alloc_##name() \
|
||||
{ \
|
||||
return new class; \
|
||||
}; \
|
||||
CGameModeRegistry __gamemode_##name##_registry(#name, __gamemode_alloc_##name); \
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user