about summary refs log tree commit diff
path: root/src/game/server/gamemodes/ctf.cpp
diff options
context:
space:
mode:
authoroy <Tom_Adams@web.de>2011-03-04 17:08:10 +0100
committeroy <Tom_Adams@web.de>2011-03-04 17:08:10 +0100
commit9811c2396baa86e3401caef295649eaf3e12a4a5 (patch)
tree15232e5f180a844e8702f6ef99cd97e9e55a6365 /src/game/server/gamemodes/ctf.cpp
parent4bede550be18cfc9bb4df669c147032917160066 (diff)
downloadzcatch-9811c2396baa86e3401caef295649eaf3e12a4a5.tar.gz
zcatch-9811c2396baa86e3401caef295649eaf3e12a4a5.zip
made network clip flags. Closes #131
Diffstat (limited to 'src/game/server/gamemodes/ctf.cpp')
-rw-r--r--src/game/server/gamemodes/ctf.cpp25
1 files changed, 25 insertions, 0 deletions
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();