diff options
| author | Jørgen P. Tjernø <[email protected]> | 2013-12-02 19:31:46 -0800 |
|---|---|---|
| committer | Jørgen P. Tjernø <[email protected]> | 2013-12-02 19:46:31 -0800 |
| commit | f56bb35301836e56582a575a75864392a0177875 (patch) | |
| tree | de61ddd39de3e7df52759711950b4c288592f0dc /mp/src/game/server/player_resource.cpp | |
| parent | Mark some more files as text. (diff) | |
| download | source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.tar.xz source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.zip | |
Fix line endings. WHAMMY.
Diffstat (limited to 'mp/src/game/server/player_resource.cpp')
| -rw-r--r-- | mp/src/game/server/player_resource.cpp | 260 |
1 files changed, 130 insertions, 130 deletions
diff --git a/mp/src/game/server/player_resource.cpp b/mp/src/game/server/player_resource.cpp index e3ed47f6..e4829cde 100644 --- a/mp/src/game/server/player_resource.cpp +++ b/mp/src/game/server/player_resource.cpp @@ -1,130 +1,130 @@ -//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose: Entity that propagates general data needed by clients for every player.
-//
-// $NoKeywords: $
-//=============================================================================//
-#include "cbase.h"
-#include "player.h"
-#include "player_resource.h"
-#include <coordsize.h>
-
-// memdbgon must be the last include file in a .cpp file!!!
-#include "tier0/memdbgon.h"
-
-// Datatable
-IMPLEMENT_SERVERCLASS_ST_NOBASE(CPlayerResource, DT_PlayerResource)
-// SendPropArray( SendPropString( SENDINFO(m_szName[0]) ), SENDARRAYINFO(m_szName) ),
- SendPropArray3( SENDINFO_ARRAY3(m_iPing), SendPropInt( SENDINFO_ARRAY(m_iPing), 10, SPROP_UNSIGNED ) ),
-// SendPropArray( SendPropInt( SENDINFO_ARRAY(m_iPacketloss), 7, SPROP_UNSIGNED ), m_iPacketloss ),
- SendPropArray3( SENDINFO_ARRAY3(m_iScore), SendPropInt( SENDINFO_ARRAY(m_iScore), 12 ) ),
- SendPropArray3( SENDINFO_ARRAY3(m_iDeaths), SendPropInt( SENDINFO_ARRAY(m_iDeaths), 12 ) ),
- SendPropArray3( SENDINFO_ARRAY3(m_bConnected), SendPropInt( SENDINFO_ARRAY(m_bConnected), 1, SPROP_UNSIGNED ) ),
- SendPropArray3( SENDINFO_ARRAY3(m_iTeam), SendPropInt( SENDINFO_ARRAY(m_iTeam), 4 ) ),
- SendPropArray3( SENDINFO_ARRAY3(m_bAlive), SendPropInt( SENDINFO_ARRAY(m_bAlive), 1, SPROP_UNSIGNED ) ),
- SendPropArray3( SENDINFO_ARRAY3(m_iHealth), SendPropInt( SENDINFO_ARRAY(m_iHealth), -1, SPROP_VARINT | SPROP_UNSIGNED ) ),
-END_SEND_TABLE()
-
-BEGIN_DATADESC( CPlayerResource )
-
- // DEFINE_ARRAY( m_iPing, FIELD_INTEGER, MAX_PLAYERS+1 ),
- // DEFINE_ARRAY( m_iPacketloss, FIELD_INTEGER, MAX_PLAYERS+1 ),
- // DEFINE_ARRAY( m_iScore, FIELD_INTEGER, MAX_PLAYERS+1 ),
- // DEFINE_ARRAY( m_iDeaths, FIELD_INTEGER, MAX_PLAYERS+1 ),
- // DEFINE_ARRAY( m_bConnected, FIELD_INTEGER, MAX_PLAYERS+1 ),
- // DEFINE_FIELD( m_flNextPingUpdate, FIELD_FLOAT ),
- // DEFINE_ARRAY( m_iTeam, FIELD_INTEGER, MAX_PLAYERS+1 ),
- // DEFINE_ARRAY( m_bAlive, FIELD_INTEGER, MAX_PLAYERS+1 ),
- // DEFINE_ARRAY( m_iHealth, FIELD_INTEGER, MAX_PLAYERS+1 ),
- // DEFINE_FIELD( m_nUpdateCounter, FIELD_INTEGER ),
-
- // Function Pointers
- DEFINE_FUNCTION( ResourceThink ),
-
-END_DATADESC()
-
-LINK_ENTITY_TO_CLASS( player_manager, CPlayerResource );
-
-CPlayerResource *g_pPlayerResource;
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-void CPlayerResource::Spawn( void )
-{
- for ( int i=0; i < MAX_PLAYERS+1; i++ )
- {
- m_iPing.Set( i, 0 );
- m_iScore.Set( i, 0 );
- m_iDeaths.Set( i, 0 );
- m_bConnected.Set( i, 0 );
- m_iTeam.Set( i, 0 );
- m_bAlive.Set( i, 0 );
- }
-
- SetThink( &CPlayerResource::ResourceThink );
- SetNextThink( gpGlobals->curtime );
- m_nUpdateCounter = 0;
-}
-
-//-----------------------------------------------------------------------------
-// Purpose: The Player resource is always transmitted to clients
-//-----------------------------------------------------------------------------
-int CPlayerResource::UpdateTransmitState()
-{
- // ALWAYS transmit to all clients.
- return SetTransmitState( FL_EDICT_ALWAYS );
-}
-
-//-----------------------------------------------------------------------------
-// Purpose: Wrapper for the virtual GrabPlayerData Think function
-//-----------------------------------------------------------------------------
-void CPlayerResource::ResourceThink( void )
-{
- m_nUpdateCounter++;
-
- UpdatePlayerData();
-
- SetNextThink( gpGlobals->curtime + 0.1f );
-}
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-void CPlayerResource::UpdatePlayerData( void )
-{
- for ( int i = 1; i <= gpGlobals->maxClients; i++ )
- {
- CBasePlayer *pPlayer = (CBasePlayer*)UTIL_PlayerByIndex( i );
-
- if ( pPlayer && pPlayer->IsConnected() )
- {
- m_iScore.Set( i, pPlayer->FragCount() );
- m_iDeaths.Set( i, pPlayer->DeathCount() );
- m_bConnected.Set( i, 1 );
- m_iTeam.Set( i, pPlayer->GetTeamNumber() );
- m_bAlive.Set( i, pPlayer->IsAlive()?1:0 );
- m_iHealth.Set(i, MAX( 0, pPlayer->GetHealth() ) );
-
- // Don't update ping / packetloss everytime
-
- if ( !(m_nUpdateCounter%20) )
- {
- // update ping all 20 think ticks = (20*0.1=2seconds)
- int ping, packetloss;
- UTIL_GetPlayerConnectionInfo( i, ping, packetloss );
-
- // calc avg for scoreboard so it's not so jittery
- ping = 0.8f * m_iPing.Get(i) + 0.2f * ping;
-
-
- m_iPing.Set( i, ping );
- // m_iPacketloss.Set( i, packetloss );
- }
- }
- else
- {
- m_bConnected.Set( i, 0 );
- }
- }
-}
+//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: Entity that propagates general data needed by clients for every player. +// +// $NoKeywords: $ +//=============================================================================// +#include "cbase.h" +#include "player.h" +#include "player_resource.h" +#include <coordsize.h> + +// memdbgon must be the last include file in a .cpp file!!! +#include "tier0/memdbgon.h" + +// Datatable +IMPLEMENT_SERVERCLASS_ST_NOBASE(CPlayerResource, DT_PlayerResource) +// SendPropArray( SendPropString( SENDINFO(m_szName[0]) ), SENDARRAYINFO(m_szName) ), + SendPropArray3( SENDINFO_ARRAY3(m_iPing), SendPropInt( SENDINFO_ARRAY(m_iPing), 10, SPROP_UNSIGNED ) ), +// SendPropArray( SendPropInt( SENDINFO_ARRAY(m_iPacketloss), 7, SPROP_UNSIGNED ), m_iPacketloss ), + SendPropArray3( SENDINFO_ARRAY3(m_iScore), SendPropInt( SENDINFO_ARRAY(m_iScore), 12 ) ), + SendPropArray3( SENDINFO_ARRAY3(m_iDeaths), SendPropInt( SENDINFO_ARRAY(m_iDeaths), 12 ) ), + SendPropArray3( SENDINFO_ARRAY3(m_bConnected), SendPropInt( SENDINFO_ARRAY(m_bConnected), 1, SPROP_UNSIGNED ) ), + SendPropArray3( SENDINFO_ARRAY3(m_iTeam), SendPropInt( SENDINFO_ARRAY(m_iTeam), 4 ) ), + SendPropArray3( SENDINFO_ARRAY3(m_bAlive), SendPropInt( SENDINFO_ARRAY(m_bAlive), 1, SPROP_UNSIGNED ) ), + SendPropArray3( SENDINFO_ARRAY3(m_iHealth), SendPropInt( SENDINFO_ARRAY(m_iHealth), -1, SPROP_VARINT | SPROP_UNSIGNED ) ), +END_SEND_TABLE() + +BEGIN_DATADESC( CPlayerResource ) + + // DEFINE_ARRAY( m_iPing, FIELD_INTEGER, MAX_PLAYERS+1 ), + // DEFINE_ARRAY( m_iPacketloss, FIELD_INTEGER, MAX_PLAYERS+1 ), + // DEFINE_ARRAY( m_iScore, FIELD_INTEGER, MAX_PLAYERS+1 ), + // DEFINE_ARRAY( m_iDeaths, FIELD_INTEGER, MAX_PLAYERS+1 ), + // DEFINE_ARRAY( m_bConnected, FIELD_INTEGER, MAX_PLAYERS+1 ), + // DEFINE_FIELD( m_flNextPingUpdate, FIELD_FLOAT ), + // DEFINE_ARRAY( m_iTeam, FIELD_INTEGER, MAX_PLAYERS+1 ), + // DEFINE_ARRAY( m_bAlive, FIELD_INTEGER, MAX_PLAYERS+1 ), + // DEFINE_ARRAY( m_iHealth, FIELD_INTEGER, MAX_PLAYERS+1 ), + // DEFINE_FIELD( m_nUpdateCounter, FIELD_INTEGER ), + + // Function Pointers + DEFINE_FUNCTION( ResourceThink ), + +END_DATADESC() + +LINK_ENTITY_TO_CLASS( player_manager, CPlayerResource ); + +CPlayerResource *g_pPlayerResource; + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CPlayerResource::Spawn( void ) +{ + for ( int i=0; i < MAX_PLAYERS+1; i++ ) + { + m_iPing.Set( i, 0 ); + m_iScore.Set( i, 0 ); + m_iDeaths.Set( i, 0 ); + m_bConnected.Set( i, 0 ); + m_iTeam.Set( i, 0 ); + m_bAlive.Set( i, 0 ); + } + + SetThink( &CPlayerResource::ResourceThink ); + SetNextThink( gpGlobals->curtime ); + m_nUpdateCounter = 0; +} + +//----------------------------------------------------------------------------- +// Purpose: The Player resource is always transmitted to clients +//----------------------------------------------------------------------------- +int CPlayerResource::UpdateTransmitState() +{ + // ALWAYS transmit to all clients. + return SetTransmitState( FL_EDICT_ALWAYS ); +} + +//----------------------------------------------------------------------------- +// Purpose: Wrapper for the virtual GrabPlayerData Think function +//----------------------------------------------------------------------------- +void CPlayerResource::ResourceThink( void ) +{ + m_nUpdateCounter++; + + UpdatePlayerData(); + + SetNextThink( gpGlobals->curtime + 0.1f ); +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CPlayerResource::UpdatePlayerData( void ) +{ + for ( int i = 1; i <= gpGlobals->maxClients; i++ ) + { + CBasePlayer *pPlayer = (CBasePlayer*)UTIL_PlayerByIndex( i ); + + if ( pPlayer && pPlayer->IsConnected() ) + { + m_iScore.Set( i, pPlayer->FragCount() ); + m_iDeaths.Set( i, pPlayer->DeathCount() ); + m_bConnected.Set( i, 1 ); + m_iTeam.Set( i, pPlayer->GetTeamNumber() ); + m_bAlive.Set( i, pPlayer->IsAlive()?1:0 ); + m_iHealth.Set(i, MAX( 0, pPlayer->GetHealth() ) ); + + // Don't update ping / packetloss everytime + + if ( !(m_nUpdateCounter%20) ) + { + // update ping all 20 think ticks = (20*0.1=2seconds) + int ping, packetloss; + UTIL_GetPlayerConnectionInfo( i, ping, packetloss ); + + // calc avg for scoreboard so it's not so jittery + ping = 0.8f * m_iPing.Get(i) + 0.2f * ping; + + + m_iPing.Set( i, ping ); + // m_iPacketloss.Set( i, packetloss ); + } + } + else + { + m_bConnected.Set( i, 0 ); + } + } +} |