forked from hitmen047/Source-PlusPlus
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathai_debug.h
88 lines (68 loc) · 2.63 KB
/
ai_debug.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
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