sqwarmed/sdk_src/game/server/swarm/iasw_vehicle.h

41 lines
1.3 KiB
C++

#ifndef _INCLUDED_ASW_VEHICLE_H
#define _INCLUDED_ASW_VEHICLE_H
#ifdef _WIN32
#pragma once
#endif
#include "asw_shareddefs.h"
#include "iasw_server_usable_entity.h"
class CASW_Marine;
class CASW_Player;
class CBasePlayer;
class CUserCmd;
class IMoveHelper;
class CMoveData;
abstract_class IASW_Vehicle : public IASW_Server_Usable_Entity
{
public:
virtual int ASWGetNumPassengers() = 0;
virtual void ASWSetDriver(CASW_Marine* pDriver) = 0;
virtual CASW_Marine* ASWGetDriver() = 0;
virtual CASW_Marine* ASWGetPassenger(int i) = 0;
virtual void ASWStartEngine() = 0;
virtual void ASWStopEngine() = 0;
virtual void SetupMove( CBasePlayer *player, CUserCmd *ucmd, IMoveHelper *pHelper, CMoveData *move ) = 0;
virtual void ProcessMovement( CBasePlayer *pPlayer, CMoveData *pMoveData ) = 0;
// IASW_Server_Usable_Entity
virtual CBaseEntity* GetEntity() = 0;
virtual void ActivateUseIcon( CASW_Marine* pMarine, int nHoldType ) = 0;
virtual bool IsUsable(CBaseEntity *pUser) = 0;
virtual bool RequirementsMet( CBaseEntity *pUser ) { return true; }
virtual void MarineStartedUsing(CASW_Marine* pMarine) = 0;
virtual void MarineStoppedUsing(CASW_Marine* pMarine) = 0;
virtual void MarineUsing(CASW_Marine* pMarine, float fDeltaTime) = 0;
virtual bool NeedsLOSCheck() { return false; }
};
#endif // _INCLUDED_ASW_VEHICLE_H