From 9811c2396baa86e3401caef295649eaf3e12a4a5 Mon Sep 17 00:00:00 2001 From: oy Date: Fri, 4 Mar 2011 17:08:10 +0100 Subject: made network clip flags. Closes #131 --- src/game/server/gamemodes/ctf.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'src/game/server/gamemodes/ctf.cpp') diff --git a/src/game/server/gamemodes/ctf.cpp b/src/game/server/gamemodes/ctf.cpp index 92fc90c9..490067dd 100644 --- a/src/game/server/gamemodes/ctf.cpp +++ b/src/game/server/gamemodes/ctf.cpp @@ -78,6 +78,31 @@ bool CGameControllerCTF::CanBeMovedOnBalance(int ClientID) return true; } +void CGameControllerCTF::Snap(int SnappingClient) +{ + IGameController::Snap(SnappingClient); + + CNetObj_GameData *pGameDataObj = (CNetObj_GameData *)Server()->SnapNewItem(NETOBJTYPE_GAMEDATA, 0, sizeof(CNetObj_GameData)); + if(!pGameDataObj) + return; + + pGameDataObj->m_TeamscoreRed = m_aTeamscore[TEAM_RED]; + pGameDataObj->m_TeamscoreBlue = m_aTeamscore[TEAM_BLUE]; + + if(m_apFlags[TEAM_RED]->m_AtStand) + pGameDataObj->m_FlagCarrierRed = FLAG_ATSTAND; + else if(m_apFlags[TEAM_RED]->m_pCarryingCharacter && m_apFlags[TEAM_RED]->m_pCarryingCharacter->GetPlayer()) + pGameDataObj->m_FlagCarrierRed = m_apFlags[TEAM_RED]->m_pCarryingCharacter->GetPlayer()->GetCID(); + else + pGameDataObj->m_FlagCarrierRed = FLAG_TAKEN; + if(m_apFlags[TEAM_BLUE]->m_AtStand) + pGameDataObj->m_FlagCarrierBlue = FLAG_ATSTAND; + else if(m_apFlags[TEAM_BLUE]->m_pCarryingCharacter && m_apFlags[TEAM_BLUE]->m_pCarryingCharacter->GetPlayer()) + pGameDataObj->m_FlagCarrierBlue = m_apFlags[TEAM_BLUE]->m_pCarryingCharacter->GetPlayer()->GetCID(); + else + pGameDataObj->m_FlagCarrierBlue = FLAG_TAKEN; +} + void CGameControllerCTF::Tick() { IGameController::Tick(); -- cgit 1.4.1