aboutsummaryrefslogtreecommitdiff
path: root/mp/src/game/server/ai_condition.cpp
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_condition.cpp
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_condition.cpp')
-rw-r--r--mp/src/game/server/ai_condition.cpp105
1 files changed, 105 insertions, 0 deletions
diff --git a/mp/src/game/server/ai_condition.cpp b/mp/src/game/server/ai_condition.cpp
new file mode 100644
index 00000000..9fe31092
--- /dev/null
+++ b/mp/src/game/server/ai_condition.cpp
@@ -0,0 +1,105 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+//=============================================================================//
+
+#include "cbase.h"
+#include "stringregistry.h"
+#include "ai_basenpc.h"
+#include "ai_condition.h"
+
+// memdbgon must be the last include file in a .cpp file!!!
+#include "tier0/memdbgon.h"
+
+//-----------------------------------------------------------------------------
+// Purpose: Given and condition name, return the condition ID
+//-----------------------------------------------------------------------------
+int CAI_BaseNPC::GetConditionID(const char* condName)
+{
+ return GetSchedulingSymbols()->ConditionSymbolToId(condName);
+}
+
+//-----------------------------------------------------------------------------
+// Purpose: Register the default conditions
+// Input :
+// Output :
+//-----------------------------------------------------------------------------
+
+#define ADD_CONDITION_TO_SR( _n ) idSpace.AddCondition( #_n, _n, "CAI_BaseNPC" )
+
+void CAI_BaseNPC::InitDefaultConditionSR(void)
+{
+ CAI_ClassScheduleIdSpace &idSpace = CAI_BaseNPC::AccessClassScheduleIdSpaceDirect();
+
+ ADD_CONDITION_TO_SR( COND_NONE );
+ ADD_CONDITION_TO_SR( COND_IN_PVS );
+ ADD_CONDITION_TO_SR( COND_IDLE_INTERRUPT );
+ ADD_CONDITION_TO_SR( COND_LOW_PRIMARY_AMMO );
+ ADD_CONDITION_TO_SR( COND_NO_PRIMARY_AMMO );
+ ADD_CONDITION_TO_SR( COND_NO_SECONDARY_AMMO );
+ ADD_CONDITION_TO_SR( COND_NO_WEAPON );
+ ADD_CONDITION_TO_SR( COND_SEE_HATE );
+ ADD_CONDITION_TO_SR( COND_SEE_FEAR );
+ ADD_CONDITION_TO_SR( COND_SEE_DISLIKE );
+ ADD_CONDITION_TO_SR( COND_SEE_ENEMY );
+ ADD_CONDITION_TO_SR( COND_LOST_ENEMY );
+ ADD_CONDITION_TO_SR( COND_ENEMY_WENT_NULL );
+ ADD_CONDITION_TO_SR( COND_HAVE_ENEMY_LOS );
+ ADD_CONDITION_TO_SR( COND_HAVE_TARGET_LOS );
+ ADD_CONDITION_TO_SR( COND_ENEMY_OCCLUDED );
+ ADD_CONDITION_TO_SR( COND_TARGET_OCCLUDED );
+ ADD_CONDITION_TO_SR( COND_ENEMY_TOO_FAR );
+ ADD_CONDITION_TO_SR( COND_LIGHT_DAMAGE );
+ ADD_CONDITION_TO_SR( COND_HEAVY_DAMAGE );
+ ADD_CONDITION_TO_SR( COND_PHYSICS_DAMAGE );
+ ADD_CONDITION_TO_SR( COND_REPEATED_DAMAGE );
+ ADD_CONDITION_TO_SR( COND_CAN_RANGE_ATTACK1 );
+ ADD_CONDITION_TO_SR( COND_CAN_RANGE_ATTACK2 );
+ ADD_CONDITION_TO_SR( COND_CAN_MELEE_ATTACK1 );
+ ADD_CONDITION_TO_SR( COND_CAN_MELEE_ATTACK2 );
+ ADD_CONDITION_TO_SR( COND_PROVOKED );
+ ADD_CONDITION_TO_SR( COND_NEW_ENEMY );
+ ADD_CONDITION_TO_SR( COND_ENEMY_FACING_ME );
+ ADD_CONDITION_TO_SR( COND_BEHIND_ENEMY );
+ ADD_CONDITION_TO_SR( COND_ENEMY_DEAD );
+ ADD_CONDITION_TO_SR( COND_ENEMY_UNREACHABLE );
+ ADD_CONDITION_TO_SR( COND_SEE_PLAYER );
+ ADD_CONDITION_TO_SR( COND_LOST_PLAYER );
+ ADD_CONDITION_TO_SR( COND_SEE_NEMESIS );
+ ADD_CONDITION_TO_SR( COND_TASK_FAILED );
+ ADD_CONDITION_TO_SR( COND_SCHEDULE_DONE );
+ ADD_CONDITION_TO_SR( COND_SMELL );
+ ADD_CONDITION_TO_SR( COND_TOO_CLOSE_TO_ATTACK );
+ ADD_CONDITION_TO_SR( COND_TOO_FAR_TO_ATTACK );
+ ADD_CONDITION_TO_SR( COND_NOT_FACING_ATTACK );
+ ADD_CONDITION_TO_SR( COND_WEAPON_HAS_LOS );
+ ADD_CONDITION_TO_SR( COND_WEAPON_BLOCKED_BY_FRIEND ); // Friend between gun and target
+ ADD_CONDITION_TO_SR( COND_WEAPON_PLAYER_IN_SPREAD ); // Player in shooting direction
+ ADD_CONDITION_TO_SR( COND_WEAPON_PLAYER_NEAR_TARGET ); // Player near shooting position
+ ADD_CONDITION_TO_SR( COND_WEAPON_SIGHT_OCCLUDED );
+ ADD_CONDITION_TO_SR( COND_BETTER_WEAPON_AVAILABLE );
+ ADD_CONDITION_TO_SR( COND_HEALTH_ITEM_AVAILABLE );
+ ADD_CONDITION_TO_SR( COND_FLOATING_OFF_GROUND );
+ ADD_CONDITION_TO_SR( COND_MOBBED_BY_ENEMIES );
+ ADD_CONDITION_TO_SR( COND_GIVE_WAY );
+ ADD_CONDITION_TO_SR( COND_WAY_CLEAR );
+ ADD_CONDITION_TO_SR( COND_HEAR_DANGER );
+ ADD_CONDITION_TO_SR( COND_HEAR_THUMPER );
+ ADD_CONDITION_TO_SR( COND_HEAR_COMBAT );
+ ADD_CONDITION_TO_SR( COND_HEAR_WORLD );
+ ADD_CONDITION_TO_SR( COND_HEAR_PLAYER );
+ ADD_CONDITION_TO_SR( COND_HEAR_BULLET_IMPACT );
+ ADD_CONDITION_TO_SR( COND_HEAR_BUGBAIT );
+ ADD_CONDITION_TO_SR( COND_HEAR_PHYSICS_DANGER );
+ ADD_CONDITION_TO_SR( COND_HEAR_MOVE_AWAY );
+ ADD_CONDITION_TO_SR( COND_NO_HEAR_DANGER );
+ ADD_CONDITION_TO_SR( COND_PLAYER_PUSHING );
+ ADD_CONDITION_TO_SR( COND_RECEIVED_ORDERS );
+ ADD_CONDITION_TO_SR( COND_PLAYER_ADDED_TO_SQUAD );
+ ADD_CONDITION_TO_SR( COND_PLAYER_REMOVED_FROM_SQUAD );
+ ADD_CONDITION_TO_SR( COND_NPC_FREEZE );
+ ADD_CONDITION_TO_SR( COND_NPC_UNFREEZE );
+ ADD_CONDITION_TO_SR( COND_TALKER_RESPOND_TO_QUESTION );
+ ADD_CONDITION_TO_SR( COND_NO_CUSTOM_INTERRUPTS );
+}