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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================//
#ifndef C_PROP_VEHICLE_H
#define C_PROP_VEHICLE_H
#pragma once
#include "iclientvehicle.h"
#include "vehicle_viewblend_shared.h"
class C_PropVehicleDriveable : public C_BaseAnimating, public IClientVehicle
{
DECLARE_CLASS( C_PropVehicleDriveable, C_BaseAnimating );
public:
DECLARE_CLIENTCLASS();
DECLARE_INTERPOLATION();
DECLARE_DATADESC();
C_PropVehicleDriveable();
~C_PropVehicleDriveable();
// IVehicle overrides.
public:
virtual C_BaseCombatCharacter* GetPassenger( int nRole );
virtual int GetPassengerRole( C_BaseCombatCharacter *pEnt );
virtual bool IsPassengerUsingStandardWeapons( int nRole = VEHICLE_ROLE_DRIVER ) { return false; }
virtual void GetVehicleViewPosition( int nRole, Vector *pOrigin, QAngle *pAngles, float *pFOV = NULL );
virtual void SetupMove( C_BasePlayer *player, CUserCmd *ucmd, IMoveHelper *pHelper, CMoveData *move ) {}
virtual void ProcessMovement( C_BasePlayer *pPlayer, CMoveData *pMoveData ) {}
virtual void FinishMove( C_BasePlayer *player, CUserCmd *ucmd, CMoveData *move ) {}
virtual void ItemPostFrame( C_BasePlayer *pPlayer ) {}
// IClientVehicle overrides.
public:
virtual void GetVehicleFOV( float &flFOV ) { flFOV = m_flFOV; }
virtual void DrawHudElements();
virtual void UpdateViewAngles( C_BasePlayer *pLocalPlayer, CUserCmd *pCmd );
virtual void DampenEyePosition( Vector &vecVehicleEyePos, QAngle &vecVehicleEyeAngles );
virtual void GetVehicleClipPlanes( float &flZNear, float &flZFar ) const;
#ifdef HL2_CLIENT_DLL
virtual int GetPrimaryAmmoType() const { return -1; }
virtual int GetPrimaryAmmoCount() const { return -1; }
virtual int GetPrimaryAmmoClip() const { return -1; }
virtual bool PrimaryAmmoUsesClips() const { return false; }
#endif
virtual bool IsPredicted() const { return false; }
virtual int GetJoystickResponseCurve() const;
// C_BaseEntity overrides.
public:
virtual IClientVehicle* GetClientVehicle() { return this; }
virtual C_BaseEntity *GetVehicleEnt() { return this; }
virtual bool IsSelfAnimating() { return false; };
virtual void OnPreDataChanged( DataUpdateType_t updateType );
virtual void OnDataChanged( DataUpdateType_t updateType );
// Should this object cast render-to-texture shadows?
virtual ShadowType_t ShadowCastType();
// Mark the shadow as dirty while the vehicle is being driven
virtual void ClientThink( void );
// C_PropVehicleDriveable
public:
bool IsRunningEnterExitAnim( void ) { return m_bEnterAnimOn || m_bExitAnimOn; }
// NVNT added to check if the vehicle needs to aim
virtual bool HasGun(void){return m_bHasGun;}
protected:
virtual void OnEnteredVehicle( C_BaseCombatCharacter *pPassenger );
// NVNT added to notify haptics system of vehicle exit.
virtual void OnExitedVehicle( C_BaseCombatCharacter *pPassenger );
virtual void RestrictView( float *pYawBounds, float *pPitchBounds, float *pRollBounds, QAngle &vecViewAngles );
virtual void SetVehicleFOV( float flFOV ) { m_flFOV = flFOV; }
protected:
CHandle<C_BasePlayer> m_hPlayer;
int m_nSpeed;
int m_nRPM;
float m_flThrottle;
int m_nBoostTimeLeft;
int m_nHasBoost;
int m_nScannerDisabledWeapons;
int m_nScannerDisabledVehicle;
// timers/flags for flashing icons on hud
int m_iFlashTimer;
bool m_bLockedDim;
bool m_bLockedIcon;
int m_iScannerWepFlashTimer;
bool m_bScannerWepDim;
bool m_bScannerWepIcon;
int m_iScannerVehicleFlashTimer;
bool m_bScannerVehicleDim;
bool m_bScannerVehicleIcon;
float m_flSequenceChangeTime;
bool m_bEnterAnimOn;
bool m_bExitAnimOn;
float m_flFOV;
Vector m_vecGunCrosshair;
CInterpolatedVar<Vector> m_iv_vecGunCrosshair;
Vector m_vecEyeExitEndpoint;
bool m_bHasGun;
bool m_bUnableToFire;
// Used to smooth view entry
CHandle<C_BasePlayer> m_hPrevPlayer;
ViewSmoothingData_t m_ViewSmoothingData;
};
#endif // C_PROP_VEHICLE_H
|