3#ifndef GAME_SERVER_GAMECONTROLLER_H
4#define GAME_SERVER_GAMECONTROLLER_H
126 virtual bool OnEntity(
int Index,
int x,
int y,
int Layer,
int Flags,
bool Initial,
int Number = 0);
145 virtual void Snap(
int SnappingClient);
163 dbg_assert(Seconds >= 0,
"Invalid Seconds: %d", Seconds);
164 dbg_assert(Milliseconds >= 0 && Milliseconds < 1000,
"Invalid Milliseconds: %d", Milliseconds);
201 virtual bool CanSpawn(
int Team,
vec2 *pOutPos,
int ClientId);
213 virtual bool CanJoinTeam(
int Team,
int NotThisId,
char *pErrorReason,
int ErrorReasonSize);
Definition character.h:24
Definition gamecontext.h:108
Definition gamecontroller.h:158
CFinishTime(int Seconds, int Milliseconds)
Definition gamecontroller.h:160
CFinishTime(int Type)
Definition gamecontroller.h:174
int m_Milliseconds
Definition gamecontroller.h:168
static CFinishTime Unset()
Definition gamecontroller.h:170
static CFinishTime NotFinished()
Definition gamecontroller.h:171
int m_Seconds
Definition gamecontroller.h:167
virtual void Snap(int SnappingClient)
Definition gamecontroller.cpp:583
void EndRound()
Definition gamecontroller.cpp:453
virtual void OnPlayerConnect(class CPlayer *pPlayer)
Definition gamecontroller.cpp:402
CGameTeams m_Teams
Definition gamecontroller.h:44
virtual void OnPlayerDisconnect(class CPlayer *pPlayer, const char *pReason)
Definition gamecontroller.cpp:435
virtual const char * GetTeamName(int Team)
Definition gamecontroller.cpp:473
std::optional< float > m_CurrentRecord
Definition gamecontroller.h:220
CClientMask GetMaskForPlayerWorldEvent(int Asker, int ExceptID=-1)
Definition gamecontroller.cpp:735
virtual CFinishTime SnapMapBestTime(int SnappingClient)
Definition gamecontroller.h:198
virtual void OnReset()
Definition gamecontroller.cpp:505
virtual void SetArmorProgress(CCharacter *pCharacter, int Progress)
Definition gamecontroller.h:112
class CConfig * m_pConfig
Definition gamecontroller.h:41
virtual bool CanJoinTeam(int Team, int NotThisId, char *pErrorReason, int ErrorReasonSize)
Definition gamecontroller.cpp:705
std::shared_ptr< CScoreLoadBestTimeResult > m_pLoadBestTimeResult
Definition gamecontroller.h:222
virtual bool IsValidTeam(int Team)
Definition gamecontroller.cpp:468
int m_Warmup
Definition gamecontroller.h:79
virtual void Tick()
Definition gamecontroller.cpp:543
virtual void HandleCharacterTiles(class CCharacter *pChr, int MapIndex)
Definition gamecontroller.cpp:530
void ResetGame()
Definition gamecontroller.cpp:463
int TileFlagsToPickupFlags(int TileFlags) const
Definition gamecontroller.cpp:768
bool IsTeamPlay() const
Definition gamecontroller.h:217
const char * m_pGameType
Definition gamecontroller.h:85
int m_GameOverTick
Definition gamecontroller.h:76
virtual int SnapPlayerScore(int SnappingClient, CPlayer *pPlayer)
Definition gamecontroller.h:155
char m_aMapWish[MAX_MAP_LENGTH]
Definition gamecontroller.h:73
CConfig * Config()
Definition gamecontroller.h:48
virtual void OnCharacterSpawn(class CCharacter *pChr)
Definition gamecontroller.cpp:517
CGameTeams & Teams()
Definition gamecontroller.h:221
virtual ~IGameController()
friend class CSaveTeam
Definition gamecontroller.h:25
void EvaluateSpawnType(CSpawnEval *pEval, ESpawnType SpawnType, int ClientId)
Definition gamecontroller.cpp:105
virtual void DoTeamChange(class CPlayer *pPlayer, int Team, bool DoChatMsg=true)
Definition gamecontroller.cpp:743
CGameContext * GameServer() const
Definition gamecontroller.h:47
virtual int OnCharacterDeath(class CCharacter *pVictim, class CPlayer *pKiller, int Weapon)
Definition gamecontroller.cpp:512
virtual void DoWarmup(int Seconds)
Definition gamecontroller.cpp:535
virtual CFinishTime SnapPlayerTime(int SnappingClient, CPlayer *pPlayer)
Definition gamecontroller.h:189
IServer * Server() const
Definition gamecontroller.h:49
ESpawnType
Definition gamecontroller.h:29
@ NUM_SPAWNTYPES
Definition gamecontroller.h:34
@ SPAWNTYPE_RED
Definition gamecontroller.h:31
@ SPAWNTYPE_BLUE
Definition gamecontroller.h:32
@ SPAWNTYPE_DEFAULT
Definition gamecontroller.h:30
void ChangeMap(const char *pToMap)
Definition gamecontroller.cpp:500
class IServer * m_pServer
Definition gamecontroller.h:42
virtual bool OnEntity(int Index, int x, int y, int Layer, int Flags, bool Initial, int Number=0)
Definition gamecontroller.cpp:183
void StartRound()
Definition gamecontroller.cpp:486
std::vector< vec2 > m_avSpawnPoints[NUM_SPAWNTYPES]
Definition gamecontroller.h:38
int m_SuddenDeath
Definition gamecontroller.h:77
class CGameContext * m_pGameServer
Definition gamecontroller.h:40
int m_RoundCount
Definition gamecontroller.h:80
int m_RoundStartTick
Definition gamecontroller.h:75
virtual int GetAutoTeam(int NotThisId)
Definition gamecontroller.cpp:696
float EvaluateSpawnPos(CSpawnEval *pEval, vec2 Pos, int ClientId)
Definition gamecontroller.cpp:89
virtual bool CanSpawn(int Team, vec2 *pOutPos, int ClientId)
Definition gamecontroller.cpp:168
void DoActivityCheck()
Definition gamecontroller.cpp:46
IGameController(class CGameContext *pGameServer)
Definition gamecontroller.cpp:24
int m_GameFlags
Definition gamecontroller.h:82
@ MAX_MAP_LENGTH
Definition map.h:13
std::bitset< MAX_CLIENTS > CClientMask
Definition protocol.h:166
@ GAMEFLAG_TEAMS
Definition protocol.h:168
#define dbg_assert(test, fmt,...)
Definition dbg.h:27
constexpr int UNSET
Definition protocol.h:163
constexpr int NOT_FINISHED_MILLIS
Definition protocol.h:162
Definition scoreworker.h:68
Definition gamecontroller.h:54
bool m_Got
Definition gamecontroller.h:63
int m_FriendlyTeam
Definition gamecontroller.h:64
float m_Score
Definition gamecontroller.h:65
vec2 m_Pos
Definition gamecontroller.h:62
CSpawnEval()
Definition gamecontroller.h:55
vector2_base< float > vec2
Definition vmath.h:161