about summary refs log tree commit diff
path: root/src/game/server/gamemodes
diff options
context:
space:
mode:
authoroy <Tom_Adams@web.de>2011-03-10 10:14:41 +0100
committeroy <Tom_Adams@web.de>2011-03-10 10:14:41 +0100
commit1f10c1e8bf05335ab4377ce592d87c4210c14285 (patch)
tree90220121be601da30ee285c1f38b233b42d39b05 /src/game/server/gamemodes
parentee2f625754ca9f01be6732550f16098c5afa704a (diff)
downloadzcatch-1f10c1e8bf05335ab4377ce592d87c4210c14285.tar.gz
zcatch-1f10c1e8bf05335ab4377ce592d87c4210c14285.zip
fixed problem with ctf if there're no flags
Diffstat (limited to 'src/game/server/gamemodes')
-rw-r--r--src/game/server/gamemodes/ctf.cpp30
1 files changed, 20 insertions, 10 deletions
diff --git a/src/game/server/gamemodes/ctf.cpp b/src/game/server/gamemodes/ctf.cpp
index 490067dd..fb177d5d 100644
--- a/src/game/server/gamemodes/ctf.cpp
+++ b/src/game/server/gamemodes/ctf.cpp
@@ -89,18 +89,28 @@ void CGameControllerCTF::Snap(int SnappingClient)
 	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();
+	if(m_apFlags[TEAM_RED])
+	{
+		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;
+	}
 	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();
+		pGameDataObj->m_FlagCarrierRed = FLAG_MISSING;
+	if(m_apFlags[TEAM_BLUE])
+	{
+		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;
+	}
 	else
-		pGameDataObj->m_FlagCarrierBlue = FLAG_TAKEN;
+		pGameDataObj->m_FlagCarrierBlue = FLAG_MISSING;
 }
 
 void CGameControllerCTF::Tick()