diff options
| author | oy <Tom_Adams@web.de> | 2011-03-22 22:41:27 +0100 |
|---|---|---|
| committer | oy <Tom_Adams@web.de> | 2011-03-22 22:41:27 +0100 |
| commit | b64db75a6b5e6a08c356278ab73d29707579844c (patch) | |
| tree | cc58c2a2def9972c8e04892b9527e08a4ef97f29 /src/game/client/gameclient.cpp | |
| parent | 05244d4dad5a08eb53fdd738588a29e26af72736 (diff) | |
| download | zcatch-b64db75a6b5e6a08c356278ab73d29707579844c.tar.gz zcatch-b64db75a6b5e6a08c356278ab73d29707579844c.zip | |
added an option to ignore other players in chat
Diffstat (limited to 'src/game/client/gameclient.cpp')
| -rw-r--r-- | src/game/client/gameclient.cpp | 43 |
1 files changed, 28 insertions, 15 deletions
diff --git a/src/game/client/gameclient.cpp b/src/game/client/gameclient.cpp index a7e9e66f..9f0898fc 100644 --- a/src/game/client/gameclient.cpp +++ b/src/game/client/gameclient.cpp @@ -341,20 +341,7 @@ void CGameClient::OnReset() mem_zero(&g_GameClient.m_Snap, sizeof(g_GameClient.m_Snap)); for(int i = 0; i < MAX_CLIENTS; i++) - { - m_aClients[i].m_aName[0] = 0; - m_aClients[i].m_aClan[0] = 0; - m_aClients[i].m_Country = -1; - m_aClients[i].m_SkinID = 0; - m_aClients[i].m_Team = 0; - m_aClients[i].m_Angle = 0; - m_aClients[i].m_Emoticon = 0; - m_aClients[i].m_EmoticonStart = -1; - m_aClients[i].m_SkinInfo.m_Texture = g_GameClient.m_pSkins->Get(0)->m_ColorTexture; - m_aClients[i].m_SkinInfo.m_ColorBody = vec4(1,1,1,1); - m_aClients[i].m_SkinInfo.m_ColorFeet = vec4(1,1,1,1); - m_aClients[i].UpdateRenderInfo(); - } + m_aClients[i].Reset(); for(int i = 0; i < m_All.m_Num; i++) m_All.m_paComponents[i]->OnReset(); @@ -744,7 +731,6 @@ void CGameClient::OnNewSnapshot() } m_aClients[ClientID].UpdateRenderInfo(); - g_GameClient.m_Snap.m_NumPlayers++; } else if(Item.m_Type == NETOBJTYPE_PLAYERINFO) @@ -752,7 +738,9 @@ void CGameClient::OnNewSnapshot() const CNetObj_PlayerInfo *pInfo = (const CNetObj_PlayerInfo *)pData; m_aClients[pInfo->m_ClientID].m_Team = pInfo->m_Team; + m_aClients[pInfo->m_ClientID].m_Active = true; m_Snap.m_paPlayerInfos[pInfo->m_ClientID] = pInfo; + m_Snap.m_NumPlayers++; if(pInfo->m_Local) { @@ -839,6 +827,13 @@ void CGameClient::OnNewSnapshot() m_Snap.m_SpecInfo.m_SpectatorID = SPEC_FREEVIEW; } + // clear out unneeded client data + for(int i = 0; i < MAX_CLIENTS; ++i) + { + if(!m_Snap.m_paPlayerInfos[i] && m_aClients[i].m_Active) + m_aClients[i].Reset(); + } + // sort player infos by score mem_copy(m_Snap.m_paInfoByScore, m_Snap.m_paPlayerInfos, sizeof(m_Snap.m_paInfoByScore)); for(int k = 0; k < MAX_CLIENTS-1; k++) // ffs, bubblesort @@ -1017,6 +1012,24 @@ void CGameClient::CClientData::UpdateRenderInfo() } } +void CGameClient::CClientData::Reset() +{ + m_aName[0] = 0; + m_aClan[0] = 0; + m_Country = -1; + m_SkinID = 0; + m_Team = 0; + m_Angle = 0; + m_Emoticon = 0; + m_EmoticonStart = -1; + m_Active = false; + m_ChatIgnore = false; + m_SkinInfo.m_Texture = g_GameClient.m_pSkins->Get(0)->m_ColorTexture; + m_SkinInfo.m_ColorBody = vec4(1,1,1,1); + m_SkinInfo.m_ColorFeet = vec4(1,1,1,1); + UpdateRenderInfo(); +} + void CGameClient::SendSwitchTeam(int Team) { CNetMsg_Cl_SetTeam Msg; |