summaryrefslogtreecommitdiff
path: root/game/shared/portal/env_portal_path_track_shared.h
blob: 440732fe73ac9602f53369ce48481669e1b2b9ae (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
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: A version of path_track which draws.
//
//=============================================================================//

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

// States for track drawing
enum
{
	PORTAL_PATH_TRACK_STATE_OFF,
	PORTAL_PATH_TRACK_STATE_INACTIVE,
	PORTAL_PATH_TRACK_STATE_ACTIVE,
	PORTAL_PATH_TRACK_STATE_COUNT
};


#ifndef CLIENT_DLL 

#include "pathtrack.h"

class CBeam;

//==============================================================
// 
//==============================================================
class CEnvPortalPathTrack : public CPathTrack
{
	DECLARE_CLASS( CEnvPortalPathTrack, CPathTrack );
	DECLARE_DATADESC();
	DECLARE_SERVERCLASS();

public:
	CEnvPortalPathTrack();
	~CEnvPortalPathTrack();
	virtual void Precache();
	void	Spawn( void );
	void	Activate( void );

	void	InitTrackFX();
	void	ShutDownTrackFX();
	void	InitEndpointFX();
	void	ShutDownEndpointFX();

	void	InputActivateTrack( inputdata_t &inputdata );
	void	InputActivateEndpoint( inputdata_t &inputdata );

	void	InputDeactivateTrack( inputdata_t &inputdata );
	void	InputDeactivateEndpoint( inputdata_t &inputdata );

	void	ActivateTrackFX ( void );		//Activate all of the track's beams (at least the ones that are flagged to display)
	void	ActivateEndpointFX ( void );	//Activate all of the endpoint's glowy bits that are flagged to display

	void	DeactivateTrackFX ( void );		//Activate all of the track's beams (at least the ones that are flagged to display)
	void	DeactivateEndpointFX ( void );	//Activate all of the endpoint's glowy bits that are flagged to display 

protected:
	CNetworkVar( bool, m_bTrackActive );
	CNetworkVar( bool, m_bEndpointActive );
//	CNetworkVar( float, m_fScaleEndpoint );				// Scale of the endpoint for this beam
//	CNetworkVar( float, m_fScaleTrack );				// Scale of the track effect
//	CNetworkVar( float, m_fFadeOutEndpoint );			// Scale of the track effect
//	CNetworkVar( float, m_fFadeInEndpoint );			// Scale of the track effect
	CNetworkVar( int, m_nState );						// particle emmision state

	COutputEvent m_OnActivatedEndpoint;

	CBeam		*m_pBeam;								// Pointer to look at a cbeam object for the track fx

};

#endif // CLIENT_DLL

#endif //ENV_PORTAL_PATH_TRACK_SHARED_H