Added prototype Response System library port from the Alien Swarm SDK

This commit is contained in:
Blixibon
2021-03-08 02:11:13 -06:00
parent 251725c987
commit d081a0cee3
61 changed files with 11056 additions and 63 deletions
+18 -1
View File
@@ -20,6 +20,10 @@
#include "ServerNetworkProperty.h"
#include "shareddefs.h"
#include "engine/ivmodelinfo.h"
#ifdef NEW_RESPONSE_SYSTEM
#include "AI_Criteria.h"
#include "AI_ResponseSystem.h"
#endif
#include "vscript/ivscript.h"
#include "vscript_server.h"
@@ -29,8 +33,10 @@ class CDmgAccumulator;
struct CSoundParameters;
#ifndef NEW_RESPONSE_SYSTEM
class AI_CriteriaSet;
class IResponseSystem;
#endif
class IEntitySaveUtils;
class CRecipientFilter;
class CStudioHdr;
@@ -39,6 +45,11 @@ class CStudioHdr;
// FIXME: Could do this in the script file by making it required and bumping up weighting there instead...
#define CONCEPT_WEIGHT 5.0f
#ifdef NEW_RESPONSE_SYSTEM
// Relax the namespace standard a bit so that less code has to be changed
#define IResponseSystem ResponseRules::IResponseSystem
#endif
typedef CHandle<CBaseEntity> EHANDLE;
#define MANUALMODE_GETSET_PROP(type, accessorName, varName) \
@@ -1001,10 +1012,10 @@ public:
const char *GetContextValue( const char *contextName ) const;
float GetContextExpireTime( const char *name );
void RemoveContext( const char *nameandvalue );
void AddContext( const char *name, const char *value, float duration = 0.0f );
#endif
void AddContext( const char *nameandvalue );
void AddContext( const char *name, const char *value, float duration = 0.0f );
protected:
CUtlVector< ResponseContext_t > m_ResponseContexts;
@@ -1294,6 +1305,12 @@ public:
#endif
virtual void ModifyOrAppendCriteria( AI_CriteriaSet& set );
#ifdef NEW_RESPONSE_SYSTEM
// this computes criteria that depend on the other criteria having been set.
// needs to be done in a second pass because we may have multiple overrids for
// a context before it all settles out.
virtual void ModifyOrAppendDerivedCriteria( AI_CriteriaSet& set ) {};
#endif
void AppendContextToCriteria( AI_CriteriaSet& set, const char *prefix = "" );
#ifdef MAPBASE
void ReAppendContextCriteria( AI_CriteriaSet& set );