summaryrefslogtreecommitdiff
path: root/game/server/ai_debug.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /game/server/ai_debug.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'game/server/ai_debug.h')
-rw-r--r--game/server/ai_debug.h88
1 files changed, 88 insertions, 0 deletions
diff --git a/game/server/ai_debug.h b/game/server/ai_debug.h
new file mode 100644
index 0000000..3f5c47f
--- /dev/null
+++ b/game/server/ai_debug.h
@@ -0,0 +1,88 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef AI_DEBUG_H
+#define AI_DEBUG_H
+
+#include "fmtstr.h"
+#include "ai_debug_shared.h"
+
+#if defined( _WIN32 )
+#pragma once
+#endif
+
+// This dumps a summary result on exit
+//#define PROFILE_AI 1
+
+#define AI_PROFILE_SCOPE_BEGIN( tag ) if (0) ; else { AI_PROFILE_SCOPE( tag )
+#define AI_PROFILE_SCOPE_BEGIN_( pszName ) if (0) ; else { AI_PROFILE_SCOPE_( pszName )
+#define AI_PROFILE_SCOPE_END() } do {} while (0)
+
+#if defined(VPROF_AI)
+#define VProfAI() true
+#else
+#define VProfAI() false
+#endif
+#if defined(VPROF_AI)
+#include "tier0/vprof.h"
+#define AI_PROFILE_SCOPE( tag ) VPROF( #tag )
+#define AI_PROFILE_SCOPE_( pszName ) VPROF( pszName )
+#define AI_PROFILE_MEASURE_SCOPE( tag ) VPROF( #tag )
+#elif defined(PROFILE_AI)
+#include "tier0/fasttimer.h"
+#define AI_PROFILE_SCOPE( tag ) PROFILE_SCOPE( tag )
+#define AI_PROFILE_MEASURE_SCOPE( tag ) PROFILE_SCOPE( tag )
+#else
+#define AI_PROFILE_MEASURE_SCOPE( tag ) ((void)0)
+#define AI_PROFILE_SCOPE( tag ) ((void)0)
+#endif
+
+#ifndef AI_PROFILE_SCOPE_
+#define AI_PROFILE_SCOPE_( pszName ) ((void)0)
+#endif
+
+
+enum AIMsgFlags
+{
+ AIMF_IGNORE_SELECTED = 0x01
+};
+
+void DevMsg( CAI_BaseNPC *pAI, unsigned flags, PRINTF_FORMAT_STRING const char *pszFormat, ... ) FMTFUNCTION( 3, 4 );
+void DevMsg( CAI_BaseNPC *pAI, PRINTF_FORMAT_STRING const char *pszFormat, ... ) FMTFUNCTION( 2, 3 );
+
+
+//-----------------------------------------------------------------------------
+// Purpose: Use this to perform AI tracelines that are trying to determine LOS between points.
+// LOS checks between entities should use FVisible.
+//-----------------------------------------------------------------------------
+void AI_TraceLOS( const Vector& vecAbsStart, const Vector& vecAbsEnd, CBaseEntity *pLooker, trace_t *ptr, ITraceFilter *pFilter = NULL );
+
+//-----------------------------------------------------------------------------
+
+#ifdef DEBUG
+extern bool g_fTestSteering;
+#define TestingSteering() g_fTestSteering
+#else
+#define TestingSteering() false
+#endif
+
+//-----------------------------------------------------------------------------
+
+
+#ifdef _DEBUG
+extern ConVar ai_debug_doors;
+#define AIIsDebuggingDoors( pNPC ) ( ai_debug_doors.GetBool() && pNPC->m_bSelected )
+#define AIDoorDebugMsg( pNPC, msg ) if ( !AIIsDebuggingDoors( pNPC ) ) ; else Msg( msg )
+#else
+#define AIIsDebuggingDoors( pNPC ) (false)
+#define AIDoorDebugMsg( pNPC, msg ) ((void)(0))
+#endif
+
+
+//-----------------------------------------------------------------------------
+
+#endif // AI_DEBUG_H