diff options
| author | oy <Tom_Adams@web.de> | 2011-03-10 10:14:41 +0100 |
|---|---|---|
| committer | oy <Tom_Adams@web.de> | 2011-03-10 10:14:41 +0100 |
| commit | 1f10c1e8bf05335ab4377ce592d87c4210c14285 (patch) | |
| tree | 90220121be601da30ee285c1f38b233b42d39b05 /src/game/server/gamemodes | |
| parent | ee2f625754ca9f01be6732550f16098c5afa704a (diff) | |
| download | zcatch-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.cpp | 30 |
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() |