diff options
| author | oy <Tom_Adams@web.de> | 2011-03-04 17:08:10 +0100 |
|---|---|---|
| committer | oy <Tom_Adams@web.de> | 2011-03-04 17:08:10 +0100 |
| commit | 9811c2396baa86e3401caef295649eaf3e12a4a5 (patch) | |
| tree | 15232e5f180a844e8702f6ef99cd97e9e55a6365 /src/game/server/gamecontroller.cpp | |
| parent | 4bede550be18cfc9bb4df669c147032917160066 (diff) | |
| download | zcatch-9811c2396baa86e3401caef295649eaf3e12a4a5.tar.gz zcatch-9811c2396baa86e3401caef295649eaf3e12a4a5.zip | |
made network clip flags. Closes #131
Diffstat (limited to 'src/game/server/gamecontroller.cpp')
| -rw-r--r-- | src/game/server/gamecontroller.cpp | 47 |
1 files changed, 18 insertions, 29 deletions
diff --git a/src/game/server/gamecontroller.cpp b/src/game/server/gamecontroller.cpp index e51b503c..e37bde65 100644 --- a/src/game/server/gamecontroller.cpp +++ b/src/game/server/gamecontroller.cpp @@ -571,37 +571,26 @@ bool IGameController::IsTeamplay() const void IGameController::Snap(int SnappingClient) { - CNetObj_Game *pGameObj = (CNetObj_Game *)Server()->SnapNewItem(NETOBJTYPE_GAME, 0, sizeof(CNetObj_Game)); - if(!pGameObj) + CNetObj_GameInfo *pGameInfoObj = (CNetObj_GameInfo *)Server()->SnapNewItem(NETOBJTYPE_GAMEINFO, 0, sizeof(CNetObj_GameInfo)); + if(!pGameInfoObj) return; - pGameObj->m_Paused = GameServer()->m_World.m_Paused; - pGameObj->m_GameOver = m_GameOverTick==-1?0:1; - pGameObj->m_SuddenDeath = m_SuddenDeath; - - pGameObj->m_ScoreLimit = g_Config.m_SvScorelimit; - pGameObj->m_TimeLimit = g_Config.m_SvTimelimit; - pGameObj->m_RoundStartTick = m_RoundStartTick; - pGameObj->m_Flags = m_GameFlags; - - pGameObj->m_Warmup = m_Warmup; - - pGameObj->m_RoundNum = (str_length(g_Config.m_SvMaprotation) && g_Config.m_SvRoundsPerMap) ? g_Config.m_SvRoundsPerMap : 0; - pGameObj->m_RoundCurrent = m_RoundCount+1; - - - if(SnappingClient == -1) - { - // we are recording a demo, just set the scores - pGameObj->m_TeamscoreRed = m_aTeamscore[TEAM_RED]; - pGameObj->m_TeamscoreBlue = m_aTeamscore[TEAM_BLUE]; - } - else - { - // TODO: this little hack should be removed - pGameObj->m_TeamscoreRed = IsTeamplay() ? m_aTeamscore[TEAM_RED] : GameServer()->m_apPlayers[SnappingClient]->m_Score; - pGameObj->m_TeamscoreBlue = m_aTeamscore[TEAM_BLUE]; - } + pGameInfoObj->m_GameFlags = m_GameFlags; + pGameInfoObj->m_GameStateFlags = 0; + if(m_GameOverTick != -1) + pGameInfoObj->m_GameStateFlags |= GAMESTATEFLAG_GAMEOVER; + if(m_SuddenDeath) + pGameInfoObj->m_GameStateFlags |= GAMESTATEFLAG_SUDDENDEATH; + if(GameServer()->m_World.m_Paused) + pGameInfoObj->m_GameStateFlags |= GAMESTATEFLAG_PAUSED; + pGameInfoObj->m_RoundStartTick = m_RoundStartTick; + pGameInfoObj->m_WarmupTimer = m_Warmup; + + pGameInfoObj->m_ScoreLimit = g_Config.m_SvScorelimit; + pGameInfoObj->m_TimeLimit = g_Config.m_SvTimelimit; + + pGameInfoObj->m_RoundNum = (str_length(g_Config.m_SvMaprotation) && g_Config.m_SvRoundsPerMap) ? g_Config.m_SvRoundsPerMap : 0; + pGameInfoObj->m_RoundCurrent = m_RoundCount+1; } int IGameController::GetAutoTeam(int NotThisID) |