From 1f10c1e8bf05335ab4377ce592d87c4210c14285 Mon Sep 17 00:00:00 2001 From: oy Date: Thu, 10 Mar 2011 10:14:41 +0100 Subject: fixed problem with ctf if there're no flags --- src/game/server/gamemodes/ctf.cpp | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) (limited to 'src/game/server') 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() -- cgit 1.4.1