aboutsummaryrefslogtreecommitdiff
path: root/sp/src/game/server/ai_moveprobe.h
diff options
context:
space:
mode:
authorJørgen P. Tjernø <[email protected]>2013-12-02 19:31:46 -0800
committerJørgen P. Tjernø <[email protected]>2013-12-02 19:46:31 -0800
commitf56bb35301836e56582a575a75864392a0177875 (patch)
treede61ddd39de3e7df52759711950b4c288592f0dc /sp/src/game/server/ai_moveprobe.h
parentMark some more files as text. (diff)
downloadsource-sdk-2013-f56bb35301836e56582a575a75864392a0177875.tar.xz
source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.zip
Fix line endings. WHAMMY.
Diffstat (limited to 'sp/src/game/server/ai_moveprobe.h')
-rw-r--r--sp/src/game/server/ai_moveprobe.h322
1 files changed, 161 insertions, 161 deletions
diff --git a/sp/src/game/server/ai_moveprobe.h b/sp/src/game/server/ai_moveprobe.h
index 21533fa3..8bf1c7cb 100644
--- a/sp/src/game/server/ai_moveprobe.h
+++ b/sp/src/game/server/ai_moveprobe.h
@@ -1,161 +1,161 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-//=============================================================================//
-
-#ifndef AI_MOVEPROBE_H
-#define AI_MOVEPROBE_H
-
-#include "ai_component.h"
-#include "ai_navtype.h"
-#include "ai_movetypes.h"
-
-#if defined( _WIN32 )
-#pragma once
-#endif
-
-//-----------------------------------------------------------------------------
-// Purpose: Set of basic tools for probing box movements through space.
-// No moves actually take place
-//-----------------------------------------------------------------------------
-
-enum AI_TestGroundMoveFlags_t
-{
- AITGM_DEFAULT = 0,
- AITGM_IGNORE_FLOOR = 0x01,
- AITGM_IGNORE_INITIAL_STAND_POS = 0x02,
- AITGM_2D = 0x04,
- AITGM_DRAW_RESULTS = 0x08,
-};
-
-enum AI_MoveLimitFlags_t
-{
- AIMLF_DEFAULT = 0,
- AIMLF_2D = 0x01,
- AIMLF_DRAW_RESULTS = 0x02,
- AIMLF_IGNORE_TRANSIENTS = 0x04,
- AIMLF_QUICK_REJECT = 0x08,
-};
-
-class CAI_MoveProbe : public CAI_Component
-{
-public:
-
- CAI_MoveProbe( CAI_BaseNPC *pOuter );
- ~CAI_MoveProbe();
-
- // ----------------------------------------------------
- // Queries & probes
- // ----------------------------------------------------
- bool MoveLimit( Navigation_t navType, const Vector &vecStart, const Vector &vecEnd, unsigned int collisionMask, const CBaseEntity *pTarget, AIMoveTrace_t* pMove = NULL );
- bool MoveLimit( Navigation_t navType, const Vector &vecStart, const Vector &vecEnd, unsigned int collisionMask, const CBaseEntity *pTarget, float pctToCheckStandPositions, AIMoveTrace_t* pMove = NULL );
- bool MoveLimit( Navigation_t navType, const Vector &vecStart, const Vector &vecEnd, unsigned int collisionMask, const CBaseEntity *pTarget, float pctToCheckStandPositions, unsigned flags, AIMoveTrace_t* pMove = NULL );
-
- bool CheckStandPosition( const Vector &vecStart, unsigned int collisionMask ) const;
- bool FloorPoint( const Vector &vecStart, unsigned int collisionMask, float flStartZ, float flEndZ, Vector *pVecResult ) const;
-
- // --------------------------------
- // Tracing tools
- // --------------------------------
- void TraceLine( const Vector &vecStart, const Vector &vecEnd, unsigned int mask,
- bool bUseCollisionGroup, trace_t *pResult ) const;
-
- void TraceHull( const Vector &vecStart, const Vector &vecEnd, const Vector &hullMin,
- const Vector &hullMax, unsigned int mask,
- trace_t *ptr ) const;
-
- void TraceHull( const Vector &vecStart, const Vector &vecEnd, unsigned int mask,
- trace_t *ptr ) const;
-
- // --------------------------------
- // Checks a ground-based movement
- // --------------------------------
- bool TestGroundMove( const Vector &vecActualStart, const Vector &vecDesiredEnd,
- unsigned int collisionMask, unsigned flags, AIMoveTrace_t *pMoveTrace ) const;
-
- bool TestGroundMove( const Vector &vecActualStart, const Vector &vecDesiredEnd,
- unsigned int collisionMask, float pctToCheckStandPositions, unsigned flags, AIMoveTrace_t *pMoveTrace ) const;
-
- bool ShouldBrushBeIgnored( CBaseEntity *pEntity );
-
- void ClearBlockingEntity() { m_hLastBlockingEnt = NULL; }
- CBaseEntity * GetBlockingEntity() { return m_hLastBlockingEnt; }
-
-private:
- struct CheckStepArgs_t
- {
- Vector vecStart;
- Vector vecStepDir;
- float stepSize;
- float stepHeight;
- float stepDownMultiplier;
- float minStepLanding;
- unsigned collisionMask;
- StepGroundTest_t groundTest;
- };
-
- struct CheckStepResult_t
- {
- Vector endPoint;
- Vector hitNormal;
- bool fStartSolid;
- CBaseEntity * pBlocker;
- };
-
-
- bool CheckStep( const CheckStepArgs_t &args, CheckStepResult_t *pResult ) const;
- void SetupCheckStepTraceListData( const CheckStepArgs_t &args ) const;
- void ResetTraceListData() const { if ( m_pTraceListData ) const_cast<CAI_MoveProbe *>(this)->m_pTraceListData->Reset(); }
- bool OldCheckStandPosition( const Vector &vecStart, unsigned int collisionMask ) const;
-
- // these check connections between positions in space, regardless of routes
- void GroundMoveLimit( const Vector &vecStart, const Vector &vecEnd, unsigned int collisionMask, const CBaseEntity *pTarget, unsigned testGroundMoveFlags, float pctToCheckStandPositions, AIMoveTrace_t* pMoveTrace ) const;
- void FlyMoveLimit( const Vector &vecStart, const Vector &vecEnd, unsigned int collisionMask, const CBaseEntity *pTarget, AIMoveTrace_t* pMoveTrace) const;
- void JumpMoveLimit( const Vector &vecStart, const Vector &vecEnd, unsigned int collisionMask, const CBaseEntity *pTarget, AIMoveTrace_t* pMoveTrace) const;
- void ClimbMoveLimit( const Vector &vecStart, const Vector &vecEnd, const CBaseEntity *pTarget, AIMoveTrace_t* pMoveTrace) const;
-
- // A floorPoint that is useful only in the contect of iterative movement
- bool IterativeFloorPoint( const Vector &vecStart, unsigned int collisionMask, Vector *pVecResult ) const;
- bool IterativeFloorPoint( const Vector &vecStart, unsigned int collisionMask, float flAddedStep, Vector *pVecResult ) const;
- bool IsJumpLegal( const Vector &startPos, const Vector &apex, const Vector &endPos ) const;
-
-public:
- Vector CalcJumpLaunchVelocity(const Vector &startPos, const Vector &endPos, float gravity, float *pminHeight, float maxHorzVelocity, Vector *vecApex ) const;
-private:
-
- // Common services provided by CAI_BaseNPC, Convenience methods to simplify code
- float StepHeight() const;
- bool CanStandOn( CBaseEntity *pSurface ) const;
-
- bool m_bIgnoreTransientEntities;
-
- CTraceListData * m_pTraceListData;
-
- EHANDLE m_hLastBlockingEnt;
-
- DECLARE_SIMPLE_DATADESC();
-};
-
-// ----------------------------------------------------------------------------
-
-inline bool CAI_MoveProbe::MoveLimit( Navigation_t navType, const Vector &vecStart, const Vector &vecEnd, unsigned int collisionMask, const CBaseEntity *pTarget, float pctToCheckStandPositions, AIMoveTrace_t* pMove)
-{
- return MoveLimit( navType, vecStart, vecEnd, collisionMask, pTarget, pctToCheckStandPositions, AIMLF_DEFAULT, pMove);
-}
-
-// ------------------------------------
-
-inline bool CAI_MoveProbe::MoveLimit( Navigation_t navType, const Vector &vecStart, const Vector &vecEnd, unsigned int collisionMask, const CBaseEntity *pTarget, AIMoveTrace_t* pMove)
-{
- return MoveLimit( navType, vecStart, vecEnd, collisionMask, pTarget, 100.0f, AIMLF_DEFAULT, pMove);
-}
-
-// ------------------------------------
-
-inline bool CAI_MoveProbe::TestGroundMove( const Vector &vecActualStart, const Vector &vecDesiredEnd, unsigned int collisionMask, unsigned flags, AIMoveTrace_t *pMoveTrace ) const
-{
- return TestGroundMove( vecActualStart, vecDesiredEnd, collisionMask, 100, flags, pMoveTrace ); // floor ignore flag will override 100%
-}
-
-#endif // AI_MOVEPROBE_H
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+//=============================================================================//
+
+#ifndef AI_MOVEPROBE_H
+#define AI_MOVEPROBE_H
+
+#include "ai_component.h"
+#include "ai_navtype.h"
+#include "ai_movetypes.h"
+
+#if defined( _WIN32 )
+#pragma once
+#endif
+
+//-----------------------------------------------------------------------------
+// Purpose: Set of basic tools for probing box movements through space.
+// No moves actually take place
+//-----------------------------------------------------------------------------
+
+enum AI_TestGroundMoveFlags_t
+{
+ AITGM_DEFAULT = 0,
+ AITGM_IGNORE_FLOOR = 0x01,
+ AITGM_IGNORE_INITIAL_STAND_POS = 0x02,
+ AITGM_2D = 0x04,
+ AITGM_DRAW_RESULTS = 0x08,
+};
+
+enum AI_MoveLimitFlags_t
+{
+ AIMLF_DEFAULT = 0,
+ AIMLF_2D = 0x01,
+ AIMLF_DRAW_RESULTS = 0x02,
+ AIMLF_IGNORE_TRANSIENTS = 0x04,
+ AIMLF_QUICK_REJECT = 0x08,
+};
+
+class CAI_MoveProbe : public CAI_Component
+{
+public:
+
+ CAI_MoveProbe( CAI_BaseNPC *pOuter );
+ ~CAI_MoveProbe();
+
+ // ----------------------------------------------------
+ // Queries & probes
+ // ----------------------------------------------------
+ bool MoveLimit( Navigation_t navType, const Vector &vecStart, const Vector &vecEnd, unsigned int collisionMask, const CBaseEntity *pTarget, AIMoveTrace_t* pMove = NULL );
+ bool MoveLimit( Navigation_t navType, const Vector &vecStart, const Vector &vecEnd, unsigned int collisionMask, const CBaseEntity *pTarget, float pctToCheckStandPositions, AIMoveTrace_t* pMove = NULL );
+ bool MoveLimit( Navigation_t navType, const Vector &vecStart, const Vector &vecEnd, unsigned int collisionMask, const CBaseEntity *pTarget, float pctToCheckStandPositions, unsigned flags, AIMoveTrace_t* pMove = NULL );
+
+ bool CheckStandPosition( const Vector &vecStart, unsigned int collisionMask ) const;
+ bool FloorPoint( const Vector &vecStart, unsigned int collisionMask, float flStartZ, float flEndZ, Vector *pVecResult ) const;
+
+ // --------------------------------
+ // Tracing tools
+ // --------------------------------
+ void TraceLine( const Vector &vecStart, const Vector &vecEnd, unsigned int mask,
+ bool bUseCollisionGroup, trace_t *pResult ) const;
+
+ void TraceHull( const Vector &vecStart, const Vector &vecEnd, const Vector &hullMin,
+ const Vector &hullMax, unsigned int mask,
+ trace_t *ptr ) const;
+
+ void TraceHull( const Vector &vecStart, const Vector &vecEnd, unsigned int mask,
+ trace_t *ptr ) const;
+
+ // --------------------------------
+ // Checks a ground-based movement
+ // --------------------------------
+ bool TestGroundMove( const Vector &vecActualStart, const Vector &vecDesiredEnd,
+ unsigned int collisionMask, unsigned flags, AIMoveTrace_t *pMoveTrace ) const;
+
+ bool TestGroundMove( const Vector &vecActualStart, const Vector &vecDesiredEnd,
+ unsigned int collisionMask, float pctToCheckStandPositions, unsigned flags, AIMoveTrace_t *pMoveTrace ) const;
+
+ bool ShouldBrushBeIgnored( CBaseEntity *pEntity );
+
+ void ClearBlockingEntity() { m_hLastBlockingEnt = NULL; }
+ CBaseEntity * GetBlockingEntity() { return m_hLastBlockingEnt; }
+
+private:
+ struct CheckStepArgs_t
+ {
+ Vector vecStart;
+ Vector vecStepDir;
+ float stepSize;
+ float stepHeight;
+ float stepDownMultiplier;
+ float minStepLanding;
+ unsigned collisionMask;
+ StepGroundTest_t groundTest;
+ };
+
+ struct CheckStepResult_t
+ {
+ Vector endPoint;
+ Vector hitNormal;
+ bool fStartSolid;
+ CBaseEntity * pBlocker;
+ };
+
+
+ bool CheckStep( const CheckStepArgs_t &args, CheckStepResult_t *pResult ) const;
+ void SetupCheckStepTraceListData( const CheckStepArgs_t &args ) const;
+ void ResetTraceListData() const { if ( m_pTraceListData ) const_cast<CAI_MoveProbe *>(this)->m_pTraceListData->Reset(); }
+ bool OldCheckStandPosition( const Vector &vecStart, unsigned int collisionMask ) const;
+
+ // these check connections between positions in space, regardless of routes
+ void GroundMoveLimit( const Vector &vecStart, const Vector &vecEnd, unsigned int collisionMask, const CBaseEntity *pTarget, unsigned testGroundMoveFlags, float pctToCheckStandPositions, AIMoveTrace_t* pMoveTrace ) const;
+ void FlyMoveLimit( const Vector &vecStart, const Vector &vecEnd, unsigned int collisionMask, const CBaseEntity *pTarget, AIMoveTrace_t* pMoveTrace) const;
+ void JumpMoveLimit( const Vector &vecStart, const Vector &vecEnd, unsigned int collisionMask, const CBaseEntity *pTarget, AIMoveTrace_t* pMoveTrace) const;
+ void ClimbMoveLimit( const Vector &vecStart, const Vector &vecEnd, const CBaseEntity *pTarget, AIMoveTrace_t* pMoveTrace) const;
+
+ // A floorPoint that is useful only in the contect of iterative movement
+ bool IterativeFloorPoint( const Vector &vecStart, unsigned int collisionMask, Vector *pVecResult ) const;
+ bool IterativeFloorPoint( const Vector &vecStart, unsigned int collisionMask, float flAddedStep, Vector *pVecResult ) const;
+ bool IsJumpLegal( const Vector &startPos, const Vector &apex, const Vector &endPos ) const;
+
+public:
+ Vector CalcJumpLaunchVelocity(const Vector &startPos, const Vector &endPos, float gravity, float *pminHeight, float maxHorzVelocity, Vector *vecApex ) const;
+private:
+
+ // Common services provided by CAI_BaseNPC, Convenience methods to simplify code
+ float StepHeight() const;
+ bool CanStandOn( CBaseEntity *pSurface ) const;
+
+ bool m_bIgnoreTransientEntities;
+
+ CTraceListData * m_pTraceListData;
+
+ EHANDLE m_hLastBlockingEnt;
+
+ DECLARE_SIMPLE_DATADESC();
+};
+
+// ----------------------------------------------------------------------------
+
+inline bool CAI_MoveProbe::MoveLimit( Navigation_t navType, const Vector &vecStart, const Vector &vecEnd, unsigned int collisionMask, const CBaseEntity *pTarget, float pctToCheckStandPositions, AIMoveTrace_t* pMove)
+{
+ return MoveLimit( navType, vecStart, vecEnd, collisionMask, pTarget, pctToCheckStandPositions, AIMLF_DEFAULT, pMove);
+}
+
+// ------------------------------------
+
+inline bool CAI_MoveProbe::MoveLimit( Navigation_t navType, const Vector &vecStart, const Vector &vecEnd, unsigned int collisionMask, const CBaseEntity *pTarget, AIMoveTrace_t* pMove)
+{
+ return MoveLimit( navType, vecStart, vecEnd, collisionMask, pTarget, 100.0f, AIMLF_DEFAULT, pMove);
+}
+
+// ------------------------------------
+
+inline bool CAI_MoveProbe::TestGroundMove( const Vector &vecActualStart, const Vector &vecDesiredEnd, unsigned int collisionMask, unsigned flags, AIMoveTrace_t *pMoveTrace ) const
+{
+ return TestGroundMove( vecActualStart, vecDesiredEnd, collisionMask, 100, flags, pMoveTrace ); // floor ignore flag will override 100%
+}
+
+#endif // AI_MOVEPROBE_H