diff options
| author | oy <Tom_Adams@web.de> | 2011-01-18 17:56:09 +0100 |
|---|---|---|
| committer | oy <Tom_Adams@web.de> | 2011-01-18 17:56:09 +0100 |
| commit | 0b14286c7f4accc1e38e0c84269d0c50b165a679 (patch) | |
| tree | 56d279711e8bd321b868af7ee8377fb1469919ca /src/game/client/components | |
| parent | 3b3ca9cd67badc96622b52ed5de6a9a387d47472 (diff) | |
| download | zcatch-0b14286c7f4accc1e38e0c84269d0c50b165a679.tar.gz zcatch-0b14286c7f4accc1e38e0c84269d0c50b165a679.zip | |
skip spectators in dm hud
Diffstat (limited to 'src/game/client/components')
| -rw-r--r-- | src/game/client/components/hud.cpp | 38 |
1 files changed, 24 insertions, 14 deletions
diff --git a/src/game/client/components/hud.cpp b/src/game/client/components/hud.cpp index 9f49952d..c49abca1 100644 --- a/src/game/client/components/hud.cpp +++ b/src/game/client/components/hud.cpp @@ -138,24 +138,34 @@ void CHud::RenderScoreHud() } else { - int Local = 1; + int Local = -1; int aPos[2] = { 1, 2 }; - const CNetObj_PlayerInfo *apPlayerInfo[2] = { m_pClient->m_Snap.m_paInfoByScore[0], 0 }; - if(m_pClient->m_Snap.m_paInfoByScore[0]) + const CNetObj_PlayerInfo *apPlayerInfo[2] = { 0, 0 }; + int i = 0; + for(int t = 0; t < 2 && i < MAX_CLIENTS && m_pClient->m_Snap.m_paInfoByScore[i]; ++i) { - if(m_pClient->m_Snap.m_paInfoByScore[0]->m_ClientId == m_pClient->m_Snap.m_LocalCid) + if(m_pClient->m_Snap.m_paInfoByScore[i]->m_Team != TEAM_SPECTATORS) { - apPlayerInfo[1] = m_pClient->m_Snap.m_paInfoByScore[1]; - Local = 0; + apPlayerInfo[t] = m_pClient->m_Snap.m_paInfoByScore[i]; + if(apPlayerInfo[t]->m_ClientId == m_pClient->m_Snap.m_LocalCid) + Local = t; + ++t; + } + } + // search local player info if not a spectator, nor within top2 scores + if(Local == -1 && m_pClient->m_Snap.m_pLocalInfo && m_pClient->m_Snap.m_pLocalInfo->m_Team != TEAM_SPECTATORS) + { + for(; i < MAX_CLIENTS && m_pClient->m_Snap.m_paInfoByScore[i]; ++i) + { + if(m_pClient->m_Snap.m_paInfoByScore[i]->m_Team != TEAM_SPECTATORS) + ++aPos[1]; + if(m_pClient->m_Snap.m_paInfoByScore[i]->m_ClientId == m_pClient->m_Snap.m_LocalCid) + { + apPlayerInfo[1] = m_pClient->m_Snap.m_paInfoByScore[i]; + Local = 1; + break; + } } - else - for(int i = 1; i < MAX_CLIENTS; ++i) - if(m_pClient->m_Snap.m_paInfoByScore[i]->m_ClientId == m_pClient->m_Snap.m_LocalCid) - { - apPlayerInfo[1] = m_pClient->m_Snap.m_paInfoByScore[i]; - aPos[1] = i+1; - break; - } } char aScore[2][32]; for(int t = 0; t < 2; ++t) |