summaryrefslogtreecommitdiff
path: root/game/client/tf/c_tf_objective_resource.h
blob: 9c5349707f53768dd1071b3e13725008ef8fcb35 (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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: Entity that propagates general data needed by clients for every player.
//
// $NoKeywords: $
//=============================================================================//

#ifndef C_TF_OBJECTIVE_RESOURCE_H
#define C_TF_OBJECTIVE_RESOURCE_H
#ifdef _WIN32
#pragma once
#endif

#include "tf_shareddefs.h"
#include "const.h"
#include "c_baseentity.h"
#include <igameresources.h>
#include "c_team_objectiveresource.h"

class C_TFObjectiveResource : public C_BaseTeamObjectiveResource
{
	DECLARE_CLASS( C_TFObjectiveResource, C_BaseTeamObjectiveResource );
public:
	DECLARE_CLIENTCLASS();

					C_TFObjectiveResource();
	virtual			~C_TFObjectiveResource();

	const char		*GetGameSpecificCPCappingSwipe( int index, int iCappingTeam );
	const char		*GetGameSpecificCPBarFG( int index, int iOwningTeam );
	const char		*GetGameSpecificCPBarBG( int index, int iCappingTeam );
	void			SetCappingTeam( int index, int team );
	
	int				GetMannVsMachineMaxWaveCount( void ) { return m_nMannVsMachineMaxWaveCount; }
	int				GetMannVsMachineWaveCount( void ) { return m_nMannVsMachineWaveCount; }
	int				GetMannVsMachineWaveEnemyCount( void ) { return m_nMannVsMachineWaveEnemyCount; }
	int				GetMvMInWorldMoney( void ) { return m_nMvMWorldMoney; }

	float			GetMannVsMachineNextWaveTime( void ) { return m_flMannVsMachineNextWaveTime; }
	bool			GetMannVsMachineIsBetweenWaves( void ) { return m_bMannVsMachineBetweenWaves; }

	int				GetMannVsMachineWaveClassCount( int nIndex );
	const char		*GetMannVsMachineWaveClassName( int nIndex );
	unsigned int	GetMannVsMachineWaveClassFlags( int nIndex );
	bool			GetMannVsMachineWaveClassActive( int nIndex );

	int				GetFlagCarrierUpgradeLevel( void ) { return m_nFlagCarrierUpgradeLevel; }
	float			GetBaseMvMBombUpgradeTime( void ) { return m_flMvMBaseBombUpgradeTime; }
	float			GetNextMvMBombUpgradeTime( void ) { return m_flMvMNextBombUpgradeTime; }

	int				GetMvMChallengeIndex ( void ) { return m_iChallengeIndex; }	
	char *			GetMvMPopFileName ( void ) { return m_iszMvMPopfileName; }	
	int				GetMvMEventPopfileType( void ) { return m_nMvMEventPopfileType; }

private:
	int		m_nMannVsMachineMaxWaveCount;
	int		m_nMannVsMachineWaveCount;
	int		m_nMannVsMachineWaveEnemyCount;
	
	int		m_nMvMWorldMoney;

	float	m_flMannVsMachineNextWaveTime;
	bool	m_bMannVsMachineBetweenWaves;
	
	int		m_nFlagCarrierUpgradeLevel;
	float	m_flMvMBaseBombUpgradeTime;
	float	m_flMvMNextBombUpgradeTime;
	int		m_nMvMEventPopfileType;

	int			m_nMannVsMachineWaveClassCounts[ MVM_CLASS_TYPES_PER_WAVE_MAX ];
	int			m_nMannVsMachineWaveClassCounts2[ MVM_CLASS_TYPES_PER_WAVE_MAX ];
	char		m_iszMannVsMachineWaveClassNames[ MVM_CLASS_TYPES_PER_WAVE_MAX ][ 64 ];
	char		m_iszMannVsMachineWaveClassNames2[ MVM_CLASS_TYPES_PER_WAVE_MAX ][ 64 ];
	int			m_iChallengeIndex;
	char		m_iszMvMPopfileName[ MAX_PATH ];
	unsigned int m_nMannVsMachineWaveClassFlags[ MVM_CLASS_TYPES_PER_WAVE_MAX ];
	unsigned int m_nMannVsMachineWaveClassFlags2[ MVM_CLASS_TYPES_PER_WAVE_MAX ];
	bool		m_bMannVsMachineWaveClassActive[ MVM_CLASS_TYPES_PER_WAVE_MAX ];
	bool		m_bMannVsMachineWaveClassActive2[ MVM_CLASS_TYPES_PER_WAVE_MAX ];
};

inline C_TFObjectiveResource *TFObjectiveResource()
{
	return static_cast<C_TFObjectiveResource*>(g_pObjectiveResource);
}

#endif // C_TF_OBJECTIVE_RESOURCE_H