#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(); }