summaryrefslogtreecommitdiffstats
path: root/src/motionvehicle.h
blob: f7bbf0a9fc049e5b27327392cae314a70989e0a8 (plain)
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
// motionvehicle.h

#ifndef _MOTIONVEHICLE_H_
#define	_MOTIONVEHICLE_H_


class CInstanceManager;
class CEngine;
class CLight;
class CParticule;
class CTerrain;
class CCamera;
class CBrain;
class CPhysics;
class CObject;


class CMotionVehicle : public CMotion
{
public:
	CMotionVehicle(CInstanceManager* iMan, CObject* object);
	~CMotionVehicle();

	void		DeleteObject(BOOL bAll=FALSE);
	BOOL		Create(D3DVECTOR pos, float angle, ObjectType type, float power);
	BOOL		EventProcess(const Event &event);

	BOOL		RetTraceDown();
	void		SetTraceDown(BOOL bDown);
	int			RetTraceColor();
	void		SetTraceColor(int color);
	float		RetTraceWidth();
	void		SetTraceWidth(float width);

protected:
	void		CreatePhysics(ObjectType type);
	BOOL		EventFrame(const Event &event);
	BOOL		EventFrameFly(const Event &event);
	BOOL		EventFrameInsect(const Event &event);
	BOOL		EventFrameCanoni(const Event &event);
	void		UpdateTrackMapping(float left, float right, ObjectType type);

protected:
	float		m_wheelTurn[4];
	float		m_flyPaw[3];
	float		m_posTrackLeft;
	float		m_posTrackRight;
	int			m_partiReactor;
	float		m_armTimeAbs;
	float		m_armMember;
	float		m_canonTime;
	float		m_lastTimeCanon;
	D3DVECTOR	m_wheelLastPos;
	D3DVECTOR	m_wheelLastAngle;
	D3DVECTOR	m_posKey;
	BOOL		m_bFlyFix;
	BOOL		m_bTraceDown;
	int			m_traceColor;
	float		m_traceWidth;
};


#endif //_MOTIONVEHICLE_H_