Files
funnygame/public/gamemode.h
2025-07-13 15:47:42 +03:00

44 lines
887 B
C++

#ifndef GAMEMODE_H
#define GAMEMODE_H
#include "tier0/platform.h"
class CGameMode
{
public:
virtual void RoundBegin( void );
virtual void RoundEnd( void );
bool bCanPlayerSpawnMidRound;
};
interface IGameModeManager
{
public:
static void Init( void );
static void Frame( 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