summaryrefslogtreecommitdiff
path: root/game/server/dod/dod_player_resource.cpp
blob: bc637f80952938036efb7e8e895a24d5e6138871 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: DOD's custom CPlayerResource
//
// $NoKeywords: $
//=============================================================================//
#include "cbase.h"
#include "dod_player.h"
#include "player_resource.h"
#include "dod_player_resource.h"
#include <coordsize.h>

// Datatable
IMPLEMENT_SERVERCLASS_ST(CDODPlayerResource, DT_DODPlayerResource)
	SendPropArray3( SENDINFO_ARRAY3(m_iObjScore), SendPropInt( SENDINFO_ARRAY(m_iObjScore), 12 ) ),
	SendPropArray3( SENDINFO_ARRAY3(m_iPlayerClass), SendPropInt( SENDINFO_ARRAY(m_iPlayerClass), 4 ) ),
END_SEND_TABLE()

BEGIN_DATADESC( CDODPlayerResource )
	// DEFINE_ARRAY( m_iObjScore, FIELD_INTEGER, MAX_PLAYERS+1 ),
	// DEFINE_ARRAY( m_iPlayerClass, FIELD_INTEGER, MAX_PLAYERS+1 ),
END_DATADESC()

LINK_ENTITY_TO_CLASS( dod_player_manager, CDODPlayerResource );

CDODPlayerResource::CDODPlayerResource( void )
{
	
}

//-----------------------------------------------------------------------------
// Purpose: 
//-----------------------------------------------------------------------------
void CDODPlayerResource::UpdatePlayerData( void )
{
	int i;

	for ( i = 1; i <= gpGlobals->maxClients; i++ )
	{
		CDODPlayer *pPlayer = (CDODPlayer*)UTIL_PlayerByIndex( i );
		
		if ( pPlayer && pPlayer->IsConnected() )
		{
			m_iObjScore.Set( i, pPlayer->GetScore() );
			m_iPlayerClass.Set( i, pPlayer->m_Shared.PlayerClass() );
		}
	}

	BaseClass::UpdatePlayerData();
}

void CDODPlayerResource::Spawn( void )
{
	int i;

	for ( i=0; i < MAX_PLAYERS+1; i++ )
	{
		m_iObjScore.Set( i, 0 );
		m_iPlayerClass.Set( i, PLAYERCLASS_UNDEFINED );
	}

	BaseClass::Spawn();
}