Modified source engine (2017) developed by valve and leaked in 2020. Not for commercial purporses
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
1.4 KiB

5 years ago
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================//
#ifndef AI_GOAL_POLICE_H
#define AI_GOAL_POLICE_H
#ifdef _WIN32
#pragma once
#endif
class CAI_PoliceGoal : public CBaseEntity
{
public:
DECLARE_CLASS( CAI_PoliceGoal, CBaseEntity );
CAI_PoliceGoal( void );
float GetRadius( void );
CBaseEntity *GetTarget( void );
bool ShouldKnockOutTarget( const Vector &targetPos, bool bTargetVisible ); // If the target should be knocked out
void KnockOutTarget( CBaseEntity *pTarget ); // Send an output that we've knocked out this target
bool ShouldRemainAtPost( void );
void InputEnableKnockOut( inputdata_t &data );
void InputDisableKnockOut( inputdata_t &data );
void FireWarningLevelOutput( int level );
float m_flRadius;
EHANDLE m_hTarget;
string_t m_iszTarget;
bool m_bOverrideKnockOut;
COutputEvent m_OnKnockOut;
COutputEvent m_OnFirstWarning;
COutputEvent m_OnSecondWarning;
COutputEvent m_OnLastWarning;
COutputEvent m_OnSupressingTarget;
DECLARE_DATADESC();
};
#define SF_POLICE_GOAL_KNOCKOUT_BEHIND (1<<1) // Knockout a target that's behind the plane that cuts perpendicularly through us
#define SF_POLICE_GOAL_DO_NOT_LEAVE_POST (1<<2) // Cop will not come off his policing goal, even when angered
#endif // AI_GOAL_POLICE_H