diff options
Diffstat (limited to 'mp/src/game/server/episodic/vehicle_jeep_episodic.h')
| -rw-r--r-- | mp/src/game/server/episodic/vehicle_jeep_episodic.h | 300 |
1 files changed, 150 insertions, 150 deletions
diff --git a/mp/src/game/server/episodic/vehicle_jeep_episodic.h b/mp/src/game/server/episodic/vehicle_jeep_episodic.h index 03be2d24..70cb5894 100644 --- a/mp/src/game/server/episodic/vehicle_jeep_episodic.h +++ b/mp/src/game/server/episodic/vehicle_jeep_episodic.h @@ -1,150 +1,150 @@ -//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-//=============================================================================
-
-#ifndef VEHICLE_JEEP_EPISODIC_H
-#define VEHICLE_JEEP_EPISODIC_H
-#ifdef _WIN32
-#pragma once
-#endif
-
-#include "vehicle_jeep.h"
-#include "ai_basenpc.h"
-#include "hl2_vehicle_radar.h"
-
-class CParticleSystem;
-class CVehicleCargoTrigger;
-class CSprite;
-
-#define NUM_WHEEL_EFFECTS 2
-#define NUM_HAZARD_LIGHTS 4
-
-//=============================================================================
-// Episodic jeep
-
-class CPropJeepEpisodic : public CPropJeep
-{
- DECLARE_CLASS( CPropJeepEpisodic, CPropJeep );
- DECLARE_SERVERCLASS();
-
-public:
- CPropJeepEpisodic( void );
-
- virtual void Spawn( void );
- virtual void Activate( void );
- virtual void Think( void );
- virtual void UpdateOnRemove( void );
-
- virtual void NPC_FinishedEnterVehicle( CAI_BaseNPC *pPassenger, bool bCompanion );
- virtual void NPC_FinishedExitVehicle( CAI_BaseNPC *pPassenger, bool bCompanion );
-
- virtual bool NPC_CanEnterVehicle( CAI_BaseNPC *pPassenger, bool bCompanion );
- virtual bool NPC_CanExitVehicle( CAI_BaseNPC *pPassenger, bool bCompanion );
- virtual void Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value );
- virtual void Precache( void );
- virtual void EnterVehicle( CBaseCombatCharacter *pPassenger );
- virtual void ExitVehicle( int nRole );
- virtual bool AllowBlockedExit( CBaseCombatCharacter *pPassenger, int nRole );
-
- // Passengers take no damage except what we pass them
- virtual bool PassengerShouldReceiveDamage( CTakeDamageInfo &info )
- {
- if ( GetServerVehicle() && GetServerVehicle()->IsPassengerExiting() )
- return false;
-
- return ( info.GetDamageType() & DMG_VEHICLE ) != 0;
- }
-
- virtual int ObjectCaps( void ) { return (BaseClass::ObjectCaps() | FCAP_NOTIFY_ON_TRANSITION); }
-
- void SpawnRadarPanel();
- void DestroyRadarPanel();
- int NumRadarContacts() { return m_iNumRadarContacts; }
-
- void AddPropToCargoHold( CPhysicsProp *pProp );
-
- virtual CBaseEntity *OnFailedPhysGunPickup( Vector vPhysgunPos );
- virtual void DriveVehicle( float flFrameTime, CUserCmd *ucmd, int iButtonsDown, int iButtonsReleased );
- virtual int DrawDebugTextOverlays( void );
-
- DECLARE_DATADESC();
-
-protected:
- void HazardBlinkThink( void );
- void CreateHazardLights( void );
- void DestroyHazardLights( void );
-
- void UpdateCargoEntry( void );
- void ReleasePropFromCargoHold( void );
- void CreateCargoTrigger( void );
- virtual float GetUprightTime( void ) { return 1.0f; }
- virtual float GetUprightStrength( void );
- virtual bool ShouldPuntUseLaunchForces( PhysGunForce_t reason ) { return ( reason == PHYSGUN_FORCE_PUNTED ); }
- virtual void HandleWater( void );
-
- virtual AngularImpulse PhysGunLaunchAngularImpulse( void );
- virtual Vector PhysGunLaunchVelocity( const Vector &forward, float flMass );
- bool PassengerInTransition( void );
-
- void SetBusterHopperVisibility(bool visible);
-
-private:
-
- void UpdateWheelDust( void );
- void UpdateRadar( bool forceUpdate = false );
-
- void InputLockEntrance( inputdata_t &data );
- void InputUnlockEntrance( inputdata_t &data );
- void InputLockExit( inputdata_t &data );
- void InputUnlockExit( inputdata_t &data );
- void InputEnableRadar( inputdata_t &data );
- void InputDisableRadar( inputdata_t &data );
- void InputEnableRadarDetectEnemies( inputdata_t &data );
- void InputAddBusterToCargo( inputdata_t &data );
- void InputSetCargoVisibility( inputdata_t &data );
- void InputOutsideTransition( inputdata_t &data );
- void InputDisablePhysGun( inputdata_t &data );
- void InputEnablePhysGun( inputdata_t &data );
- void InputCreateLinkController( inputdata_t &data );
- void InputDestroyLinkController( inputdata_t &data );
- void CreateAvoidanceZone( void );
-
- bool m_bEntranceLocked;
- bool m_bExitLocked;
- bool m_bAddingCargo;
- bool m_bBlink;
-
- float m_flCargoStartTime; // Time when the cargo was first added to the vehicle (used for animating into hold)
- float m_flNextAvoidBroadcastTime; // Next time we'll warn entity to move out of us
-
- COutputEvent m_OnCompanionEnteredVehicle; // Passenger has completed entering the vehicle
- COutputEvent m_OnCompanionExitedVehicle; // Passenger has completed exited the vehicle
- COutputEvent m_OnHostileEnteredVehicle; // Passenger has completed entering the vehicle
- COutputEvent m_OnHostileExitedVehicle; // Passenger has completed exited the vehicle
-
- CHandle< CParticleSystem > m_hWheelDust[NUM_WHEEL_EFFECTS];
- CHandle< CParticleSystem > m_hWheelWater[NUM_WHEEL_EFFECTS];
- CHandle< CVehicleCargoTrigger > m_hCargoTrigger;
- CHandle< CPhysicsProp > m_hCargoProp;
-
- CHandle< CSprite > m_hHazardLights[NUM_HAZARD_LIGHTS];
- float m_flNextWaterSound;
-
- bool m_bRadarEnabled;
- bool m_bRadarDetectsEnemies;
- float m_flNextRadarUpdateTime;
- EHANDLE m_hRadarScreen;
-
- EHANDLE m_hLinkControllerFront;
- EHANDLE m_hLinkControllerRear;
-
- bool m_bBusterHopperVisible; // is the hopper assembly visible on the vehicle? please do not set this directly - use the accessor funct.
-
- CNetworkVar( int, m_iNumRadarContacts );
- CNetworkArray( Vector, m_vecRadarContactPos, RADAR_MAX_CONTACTS );
- CNetworkArray( int, m_iRadarContactType, RADAR_MAX_CONTACTS );
-};
-
-#endif // VEHICLE_JEEP_EPISODIC_H
+//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//============================================================================= + +#ifndef VEHICLE_JEEP_EPISODIC_H +#define VEHICLE_JEEP_EPISODIC_H +#ifdef _WIN32 +#pragma once +#endif + +#include "vehicle_jeep.h" +#include "ai_basenpc.h" +#include "hl2_vehicle_radar.h" + +class CParticleSystem; +class CVehicleCargoTrigger; +class CSprite; + +#define NUM_WHEEL_EFFECTS 2 +#define NUM_HAZARD_LIGHTS 4 + +//============================================================================= +// Episodic jeep + +class CPropJeepEpisodic : public CPropJeep +{ + DECLARE_CLASS( CPropJeepEpisodic, CPropJeep ); + DECLARE_SERVERCLASS(); + +public: + CPropJeepEpisodic( void ); + + virtual void Spawn( void ); + virtual void Activate( void ); + virtual void Think( void ); + virtual void UpdateOnRemove( void ); + + virtual void NPC_FinishedEnterVehicle( CAI_BaseNPC *pPassenger, bool bCompanion ); + virtual void NPC_FinishedExitVehicle( CAI_BaseNPC *pPassenger, bool bCompanion ); + + virtual bool NPC_CanEnterVehicle( CAI_BaseNPC *pPassenger, bool bCompanion ); + virtual bool NPC_CanExitVehicle( CAI_BaseNPC *pPassenger, bool bCompanion ); + virtual void Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value ); + virtual void Precache( void ); + virtual void EnterVehicle( CBaseCombatCharacter *pPassenger ); + virtual void ExitVehicle( int nRole ); + virtual bool AllowBlockedExit( CBaseCombatCharacter *pPassenger, int nRole ); + + // Passengers take no damage except what we pass them + virtual bool PassengerShouldReceiveDamage( CTakeDamageInfo &info ) + { + if ( GetServerVehicle() && GetServerVehicle()->IsPassengerExiting() ) + return false; + + return ( info.GetDamageType() & DMG_VEHICLE ) != 0; + } + + virtual int ObjectCaps( void ) { return (BaseClass::ObjectCaps() | FCAP_NOTIFY_ON_TRANSITION); } + + void SpawnRadarPanel(); + void DestroyRadarPanel(); + int NumRadarContacts() { return m_iNumRadarContacts; } + + void AddPropToCargoHold( CPhysicsProp *pProp ); + + virtual CBaseEntity *OnFailedPhysGunPickup( Vector vPhysgunPos ); + virtual void DriveVehicle( float flFrameTime, CUserCmd *ucmd, int iButtonsDown, int iButtonsReleased ); + virtual int DrawDebugTextOverlays( void ); + + DECLARE_DATADESC(); + +protected: + void HazardBlinkThink( void ); + void CreateHazardLights( void ); + void DestroyHazardLights( void ); + + void UpdateCargoEntry( void ); + void ReleasePropFromCargoHold( void ); + void CreateCargoTrigger( void ); + virtual float GetUprightTime( void ) { return 1.0f; } + virtual float GetUprightStrength( void ); + virtual bool ShouldPuntUseLaunchForces( PhysGunForce_t reason ) { return ( reason == PHYSGUN_FORCE_PUNTED ); } + virtual void HandleWater( void ); + + virtual AngularImpulse PhysGunLaunchAngularImpulse( void ); + virtual Vector PhysGunLaunchVelocity( const Vector &forward, float flMass ); + bool PassengerInTransition( void ); + + void SetBusterHopperVisibility(bool visible); + +private: + + void UpdateWheelDust( void ); + void UpdateRadar( bool forceUpdate = false ); + + void InputLockEntrance( inputdata_t &data ); + void InputUnlockEntrance( inputdata_t &data ); + void InputLockExit( inputdata_t &data ); + void InputUnlockExit( inputdata_t &data ); + void InputEnableRadar( inputdata_t &data ); + void InputDisableRadar( inputdata_t &data ); + void InputEnableRadarDetectEnemies( inputdata_t &data ); + void InputAddBusterToCargo( inputdata_t &data ); + void InputSetCargoVisibility( inputdata_t &data ); + void InputOutsideTransition( inputdata_t &data ); + void InputDisablePhysGun( inputdata_t &data ); + void InputEnablePhysGun( inputdata_t &data ); + void InputCreateLinkController( inputdata_t &data ); + void InputDestroyLinkController( inputdata_t &data ); + void CreateAvoidanceZone( void ); + + bool m_bEntranceLocked; + bool m_bExitLocked; + bool m_bAddingCargo; + bool m_bBlink; + + float m_flCargoStartTime; // Time when the cargo was first added to the vehicle (used for animating into hold) + float m_flNextAvoidBroadcastTime; // Next time we'll warn entity to move out of us + + COutputEvent m_OnCompanionEnteredVehicle; // Passenger has completed entering the vehicle + COutputEvent m_OnCompanionExitedVehicle; // Passenger has completed exited the vehicle + COutputEvent m_OnHostileEnteredVehicle; // Passenger has completed entering the vehicle + COutputEvent m_OnHostileExitedVehicle; // Passenger has completed exited the vehicle + + CHandle< CParticleSystem > m_hWheelDust[NUM_WHEEL_EFFECTS]; + CHandle< CParticleSystem > m_hWheelWater[NUM_WHEEL_EFFECTS]; + CHandle< CVehicleCargoTrigger > m_hCargoTrigger; + CHandle< CPhysicsProp > m_hCargoProp; + + CHandle< CSprite > m_hHazardLights[NUM_HAZARD_LIGHTS]; + float m_flNextWaterSound; + + bool m_bRadarEnabled; + bool m_bRadarDetectsEnemies; + float m_flNextRadarUpdateTime; + EHANDLE m_hRadarScreen; + + EHANDLE m_hLinkControllerFront; + EHANDLE m_hLinkControllerRear; + + bool m_bBusterHopperVisible; // is the hopper assembly visible on the vehicle? please do not set this directly - use the accessor funct. + + CNetworkVar( int, m_iNumRadarContacts ); + CNetworkArray( Vector, m_vecRadarContactPos, RADAR_MAX_CONTACTS ); + CNetworkArray( int, m_iRadarContactType, RADAR_MAX_CONTACTS ); +}; + +#endif // VEHICLE_JEEP_EPISODIC_H |