diff options
Diffstat (limited to 'game/server/tf2/info_vehicle_bay.h')
| -rw-r--r-- | game/server/tf2/info_vehicle_bay.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/game/server/tf2/info_vehicle_bay.h b/game/server/tf2/info_vehicle_bay.h new file mode 100644 index 0000000..3692ac9 --- /dev/null +++ b/game/server/tf2/info_vehicle_bay.h @@ -0,0 +1,72 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//=============================================================================// + +#ifndef INFO_VEHICLE_BAY_H +#define INFO_VEHICLE_BAY_H +#ifdef _WIN32 +#pragma once +#endif + +#include "ihasbuildpoints.h" +#include "vguiscreen.h" + +//----------------------------------------------------------------------------- +// Purpose: Entity that provides a place to build a vehicle +//----------------------------------------------------------------------------- +class CInfoVehicleBay : public CBaseEntity, public IHasBuildPoints +{ + DECLARE_CLASS( CInfoVehicleBay, CBaseEntity ); +public: + DECLARE_DATADESC(); + + void Spawn( void ); + +// IHasBuildPoints +public: + virtual int GetNumBuildPoints( void ) const; + virtual bool CanBuildObjectOnBuildPoint( int iPoint, int iObjectType ); + virtual bool GetBuildPoint( int iPoint, Vector &vecOrigin, QAngle &vecAngles ); + virtual int GetBuildPointAttachmentIndex( int iPoint ) const; + virtual void SetObjectOnBuildPoint( int iPoint, CBaseObject *pObject ); + virtual int GetNumObjectsOnMe( void ); + virtual CBaseEntity *GetFirstObjectOnMe( void ); + virtual CBaseObject *GetObjectOfTypeOnMe( int iObjectType ); + virtual int FindObjectOnBuildPoint( CBaseObject *pObject ); + virtual void GetExitPoint( CBaseEntity *pPlayer, int iPoint, Vector *pAbsOrigin, QAngle *pAbsAngles ); + virtual void RemoveAllObjects( void ); + virtual float GetMaxSnapDistance( int iPoint ) { return 128; } + virtual bool ShouldCheckForMovement( void ) { return false; } +}; + +//----------------------------------------------------------------------------- +// Purpose: Vgui screen for vehicle buying +//----------------------------------------------------------------------------- +class CVGuiScreenVehicleBay : public CVGuiScreen +{ + DECLARE_CLASS( CVGuiScreenVehicleBay, CVGuiScreen ); +public: + DECLARE_DATADESC(); + + virtual void Activate( void ); + + void BuildVehicle( CBaseTFPlayer *pPlayer, int iObjectType ); + void FinishedBuildVehicle( CBaseObject *pObject ); + void SetBuildPoint( Vector &vecOrigin, QAngle &vecAngles ); + + void BayThink( void ); + +private: + bool m_bBayIsClear; + Vector m_vecBuildPointOrigin; + QAngle m_vecBuildPointAngles; + + // Outputs + COutputEvent m_OnStartedBuild; + COutputEvent m_OnFinishedBuild; + COutputEvent m_OnReadyToBuildAgain; +}; + +#endif // INFO_VEHICLE_BAY_H |