summaryrefslogtreecommitdiff
path: root/game/server/hl1/hl1_npc_barney.h
diff options
context:
space:
mode:
Diffstat (limited to 'game/server/hl1/hl1_npc_barney.h')
-rw-r--r--game/server/hl1/hl1_npc_barney.h81
1 files changed, 81 insertions, 0 deletions
diff --git a/game/server/hl1/hl1_npc_barney.h b/game/server/hl1/hl1_npc_barney.h
new file mode 100644
index 0000000..442fb02
--- /dev/null
+++ b/game/server/hl1/hl1_npc_barney.h
@@ -0,0 +1,81 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//
+//=============================================================================//
+#ifndef NPC_BARNEY_H
+#define NPC_BARNEY_H
+
+#include "hl1_npc_talker.h"
+
+//=========================================================
+//=========================================================
+class CNPC_Barney : public CHL1NPCTalker
+{
+ DECLARE_CLASS( CNPC_Barney, CHL1NPCTalker );
+public:
+
+ DECLARE_DATADESC();
+
+ virtual void ModifyOrAppendCriteria( AI_CriteriaSet& set );
+
+ void Precache( void );
+ void Spawn( void );
+ void TalkInit( void );
+
+ void StartTask( const Task_t *pTask );
+ void RunTask( const Task_t *pTask );
+
+ int GetSoundInterests ( void );
+ Class_T Classify ( void );
+ void AlertSound( void );
+ void SetYawSpeed ( void );
+
+ bool CheckRangeAttack1 ( float flDot, float flDist );
+ void BarneyFirePistol ( void );
+
+ int OnTakeDamage_Alive( const CTakeDamageInfo &inputInfo );
+ void TraceAttack( const CTakeDamageInfo &info, const Vector &vecDir, trace_t *ptr, CDmgAccumulator *pAccumulator );
+ void Event_Killed( const CTakeDamageInfo &info );
+
+ void PainSound( const CTakeDamageInfo &info );
+ void DeathSound( const CTakeDamageInfo &info );
+
+ void HandleAnimEvent( animevent_t *pEvent );
+ int TranslateSchedule( int scheduleType );
+ int SelectSchedule( void );
+
+ void DeclineFollowing( void );
+
+ bool CanBecomeRagdoll( void );
+ bool ShouldGib( const CTakeDamageInfo &info );
+
+ int RangeAttack1Conditions( float flDot, float flDist );
+
+ void SUB_StartLVFadeOut( float delay = 10.0f, bool bNotSolid = true );
+ void SUB_LVFadeOut( void );
+
+ NPC_STATE SelectIdealState ( void );
+
+ bool m_fGunDrawn;
+ float m_flPainTime;
+ float m_flCheckAttackTime;
+ bool m_fLastAttackCheck;
+
+ int m_iAmmoType;
+
+ enum
+ {
+ SCHED_BARNEY_FOLLOW = BaseClass::NEXT_SCHEDULE,
+ SCHED_BARNEY_ENEMY_DRAW,
+ SCHED_BARNEY_FACE_TARGET,
+ SCHED_BARNEY_IDLE_STAND,
+ SCHED_BARNEY_STOP_FOLLOWING,
+ };
+
+ DEFINE_CUSTOM_AI;
+};
+
+#endif //NPC_BARNEY_H \ No newline at end of file