1
0
mirror of https://github.com/alliedmodders/hl2sdk.git synced 2025-01-05 17:13:36 +08:00
hl2sdk/game/client/swarm/iasw_client_vehicle.h
2010-07-22 01:46:14 -05:00

44 lines
1.6 KiB
C++

#ifndef _INCLUDED_ASW_CLIENT_VEHICLE_H
#define _INCLUDED_ASW_CLIENT_VEHICLE_H
#ifdef _WIN32
#pragma once
#endif
class C_ASW_Marine;
class C_BasePlayer;
class CUserCmd;
class IMoveHelper;
class CMoveData;
#include "iasw_client_usable_entity.h"
//-----------------------------------------------------------------------------
// Interface for asw vehicles to implement on the clientside
//-----------------------------------------------------------------------------
abstract_class IASW_Client_Vehicle : public IASW_Client_Usable_Entity
{
public:
virtual int ASWGetNumPassengers() = 0;
virtual C_ASW_Marine* ASWGetDriver() = 0;
virtual C_ASW_Marine* ASWGetPassenger(int i) = 0;
virtual int GetDriveIconTexture() = 0;
virtual int GetRideIconTexture() = 0;
virtual const char* GetDriveIconText() = 0;
virtual const char* GetRideIconText() = 0;
virtual bool ValidUseTarget() = 0;
virtual void ASWStartEngine() = 0;
virtual void ASWStopEngine() = 0;
virtual void SetupMove( C_BasePlayer *player, CUserCmd *ucmd, IMoveHelper *pHelper, CMoveData *move ) = 0;
virtual void ProcessMovement( C_BasePlayer *pPlayer, CMoveData *pMoveData ) = 0;
// IASW_Client_Usable_Entity
virtual C_BaseEntity* GetEntity() = 0;
virtual bool IsUsable(C_BaseEntity *pUser) = 0;
virtual bool GetUseAction(ASWUseAction &action, C_ASW_Marine *pUser) = 0;
virtual void CustomPaint(int ix, int iy, int alpha, vgui::Panel *pUseIcon) = 0;
virtual bool ShouldPaintBoxAround() = 0;
virtual bool NeedsLOSCheck() { return false; }
};
#endif // _INCLUDED_ASW_CLIENT_VEHICLE_H