//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // //=============================================================================// #include "iclientvehicle.h" #include "vehicle_viewblend_shared.h" #ifndef C_VEHICLE_CRANE_H #define C_VEHICLE_CRANE_H #pragma once //----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- class C_PropCrane : public C_BaseAnimating, public IClientVehicle { DECLARE_CLASS( C_PropCrane, C_BaseAnimating ); public: DECLARE_CLIENTCLASS(); DECLARE_DATADESC(); C_PropCrane(); void PreDataUpdate( DataUpdateType_t updateType ); void PostDataUpdate( DataUpdateType_t updateType ); bool IsMagnetOn( void ) { return m_bMagnetOn; } public: // IClientVehicle overrides. virtual void GetVehicleViewPosition( int nRole, Vector *pOrigin, QAngle *pAngles, float *pFOV =NULL ); virtual void GetVehicleFOV( float &flFOV ) { flFOV = 0.0f; } virtual void DrawHudElements(); virtual bool IsPassengerUsingStandardWeapons( int nRole = VEHICLE_ROLE_DRIVER ) { return false; } virtual void UpdateViewAngles( C_BasePlayer *pLocalPlayer, CUserCmd *pCmd ) {} virtual C_BaseCombatCharacter* GetPassenger( int nRole ); virtual int GetPassengerRole( C_BaseCombatCharacter *pPassenger ); virtual void GetVehicleClipPlanes( float &flZNear, float &flZFar ) const; virtual int GetPrimaryAmmoType() const { return -1; } virtual int GetPrimaryAmmoCount() const { return -1; } virtual int GetPrimaryAmmoClip() const { return -1; } virtual bool PrimaryAmmoUsesClips() const { return false; } virtual int GetJoystickResponseCurve() const { return 0; } public: // C_BaseEntity overrides. virtual IClientVehicle* GetClientVehicle() { return this; } virtual C_BaseEntity *GetVehicleEnt() { return this; } 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 bool IsPredicted() const { return false; } virtual void ItemPostFrame( C_BasePlayer *pPlayer ) {} virtual bool IsSelfAnimating() { return false; }; virtual void GetRenderBounds( Vector& theMins, Vector& theMaxs ); private: CHandle m_hPlayer; CHandle m_hPrevPlayer; bool m_bEnterAnimOn; bool m_bExitAnimOn; Vector m_vecEyeExitEndpoint; bool m_bMagnetOn; Vector m_vecOldShadowDir; ViewSmoothingData_t m_ViewSmoothingData; }; #endif // C_VEHICLE_CRANE_H