summaryrefslogtreecommitdiff
path: root/game/shared/tf2/tf_movedata.h
blob: 75f146251c7e2f69f478b1d71c8f40adc515d6e7 (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
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: 
//
// $NoKeywords: $
//=============================================================================//

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

#include "igamemovement.h"
#include "tfclassdata_shared.h"

class CPlayerClassData;

// This class contains TF-specific prediction data. CMoveData can be casted to this class in
// CTFPlayerMove and CTFGameMovement to do TF-specific movement.
class CTFMoveData : public CMoveData
{
public:

	Vector		m_vecPosDelta;

	// Revisit this!!!
	enum { MOMENTUM_MAXSIZE = 10 };
	float		m_aMomentum[MOMENTUM_MAXSIZE];
	int			m_iMomentumHead;

	int			m_nClassID;

	inline PlayerClassCommandoData_t	&CommandoData()		{ return m_CommandoData; }
	inline PlayerClassDefenderData_t	&DefenderData()		{ return m_DefenderData; }
	inline PlayerClassEscortData_t		&EscortData()		{ return m_EscortData; }
	inline PlayerClassInfiltratorData_t	&InfiltratorData()	{ return m_InfiltratorData; }
	inline PlayerClassMedicData_t		&MedicData()		{ return m_MedicData; }
	inline PlayerClassReconData_t		&ReconData()		{ return m_ReconData; }
	inline PlayerClassSniperData_t		&SniperData()		{ return m_SniperData; }
	inline PlayerClassSupportData_t		&SupportData()		{ return m_SupportData; }
	inline PlayerClassSapperData_t		&SapperData()		{ return m_SapperData; }
	inline PlayerClassPyroData_t		&PyroData()			{ return m_PyroData; }
	inline void*						VehicleData()		{ return m_VehicleData; }
	inline int							VehicleDataMaxSize()
	{
		return VEHICLE_DATA_SIZE;
	}

private:
	enum
	{
		VEHICLE_DATA_SIZE = 256
	};

	PlayerClassCommandoData_t m_CommandoData;
	PlayerClassDefenderData_t m_DefenderData;
	PlayerClassEscortData_t m_EscortData;
	PlayerClassInfiltratorData_t m_InfiltratorData;
	PlayerClassMedicData_t m_MedicData;
	PlayerClassReconData_t m_ReconData;
	PlayerClassSniperData_t m_SniperData;
	PlayerClassSupportData_t m_SupportData;
	PlayerClassSapperData_t m_SapperData;
	PlayerClassPyroData_t m_PyroData;

	unsigned char m_VehicleData[VEHICLE_DATA_SIZE];
};


#endif // TF_MOVEDATA_H