hl2_src-leak-2017/src/game/client/iclientvehicle.h

60 lines
1.6 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#ifndef ICLIENTVEHICLE_H
#define ICLIENTVEHICLE_H
#ifdef _WIN32
#pragma once
#endif
#include "IVehicle.h"
class C_BasePlayer;
class Vector;
class QAngle;
class C_BaseEntity;
//-----------------------------------------------------------------------------
// Purpose: All client vehicles must implement this interface.
//-----------------------------------------------------------------------------
abstract_class IClientVehicle : public IVehicle
{
public:
// When a player is in a vehicle, here's where the camera will be
virtual void GetVehicleFOV( float &flFOV ) = 0;
// Allows the vehicle to restrict view angles, blend, etc.
virtual void UpdateViewAngles( C_BasePlayer *pLocalPlayer, CUserCmd *pCmd ) = 0;
// Hud redraw...
virtual void DrawHudElements() = 0;
// Is this predicted?
virtual bool IsPredicted() const = 0;
// Get the entity associated with the vehicle.
virtual C_BaseEntity *GetVehicleEnt() = 0;
// Allows the vehicle to change the near clip plane
virtual void GetVehicleClipPlanes( float &flZNear, float &flZFar ) const = 0;
// Allows vehicles to choose their own curves for players using joysticks
virtual int GetJoystickResponseCurve() const = 0;
#ifdef HL2_CLIENT_DLL
// Ammo in the vehicles
virtual int GetPrimaryAmmoType() const = 0;
virtual int GetPrimaryAmmoClip() const = 0;
virtual bool PrimaryAmmoUsesClips() const = 0;
virtual int GetPrimaryAmmoCount() const = 0;
#endif
};
#endif // ICLIENTVEHICLE_H