aboutsummaryrefslogtreecommitdiff
path: root/mp/src/game/server/ai_moveshoot.h
diff options
context:
space:
mode:
authorJoe Ludwig <[email protected]>2013-06-26 15:22:04 -0700
committerJoe Ludwig <[email protected]>2013-06-26 15:22:04 -0700
commit39ed87570bdb2f86969d4be821c94b722dc71179 (patch)
treeabc53757f75f40c80278e87650ea92808274aa59 /mp/src/game/server/ai_moveshoot.h
downloadsource-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.tar.xz
source-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.zip
First version of the SOurce SDK 2013
Diffstat (limited to 'mp/src/game/server/ai_moveshoot.h')
-rw-r--r--mp/src/game/server/ai_moveshoot.h54
1 files changed, 54 insertions, 0 deletions
diff --git a/mp/src/game/server/ai_moveshoot.h b/mp/src/game/server/ai_moveshoot.h
new file mode 100644
index 00000000..3c9da731
--- /dev/null
+++ b/mp/src/game/server/ai_moveshoot.h
@@ -0,0 +1,54 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+//=============================================================================//
+
+#ifndef AI_MOVESHOOT_H
+#define AI_MOVESHOOT_H
+
+#include "ai_component.h"
+
+#if defined( _WIN32 )
+#pragma once
+#endif
+
+//-----------------------------------------------------------------------------
+// @TODO (toml 07-09-03): probably want to fold this into base NPC. evaluate when
+// head above water
+
+class CAI_MoveAndShootOverlay : public CAI_Component
+{
+ typedef CAI_Component BaseClass;
+
+public:
+ CAI_MoveAndShootOverlay();
+
+ void StartShootWhileMove( );
+ void NoShootWhileMove();
+ void RunShootWhileMove();
+ void EndShootWhileMove();
+ void SuspendMoveAndShoot( float flDuration );
+ bool IsSuspended() { return m_flSuspendUntilTime > gpGlobals->curtime; }
+
+ void SetInitialDelay( float delay );
+
+ bool IsMovingAndShooting( void ) const { return m_bMovingAndShooting; }
+
+private:
+
+ bool HasAvailableRangeAttack();
+ bool CanAimAtEnemy();
+ void UpdateMoveShootActivity( bool bMoveAimAtEnemy );
+
+ bool m_bMovingAndShooting;
+ bool m_bNoShootWhileMove;
+ float m_initialDelay;
+ float m_flSuspendUntilTime;
+
+ DECLARE_SIMPLE_DATADESC();
+};
+
+//-----------------------------------------------------------------------------
+
+#endif // AI_MOVESHOOT_H