Files
funnygame/engine/gamemode.cpp

86 lines
2.2 KiB
C++

#include "gamemode.h"
#include "playerstart.h"
#include "tier1/utlvector.h"
CGameMode *pCurrentMode = NULL;
//-----------------------------------------------------------------------------
// Round begin handler
//-----------------------------------------------------------------------------
void CGameMode::RoundBegin( void )
{
size_t i = 0;
for (auto &start: g_PlayerStarts)
{
start->RoundEnd();
}
for (auto &player: g_clients)
{
CPlayerStart *pSelectedStart = NULL;
for (auto &start: g_PlayerStarts)
{
if (start->m_bIsRunning == false)
pSelectedStart = start;
};
if (pSelectedStart)
pSelectedStart->RoundStart(player);
i++;
}
}
//-----------------------------------------------------------------------------
// Round end handler
//-----------------------------------------------------------------------------
void CGameMode::RoundEnd( void )
{
}
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
void IGameModeManager::Init( void )
{
}
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
void IGameModeManager::Frame( void )
{
}
//-----------------------------------------------------------------------------
// Sets gamemode
//-----------------------------------------------------------------------------
void IGameModeManager::StartGameMode(CGameMode *pGameMode)
{
if (pCurrentMode)
pCurrentMode->RoundEnd();
pCurrentMode = pGameMode;
if (pCurrentMode)
pCurrentMode->RoundBegin();
}
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
CGameMode *IGameModeManager::GetCurrentMode( void )
{
return pCurrentMode;
}
//-----------------------------------------------------------------------------
// Restarts the gamemode
//-----------------------------------------------------------------------------
void IGameModeManager::RestartCurrentMode( void )
{
if (!pCurrentMode)
return;
pCurrentMode->RoundEnd();
pCurrentMode->RoundBegin();
}