All Doom 3 AI is now native.

This commit is contained in:
Justin Marshall
2026-05-23 14:19:48 -07:00
parent 654e209e95
commit 027067a122
132 changed files with 61205 additions and 240 deletions
+54 -1
View File
@@ -155,6 +155,7 @@ extern const idEventDef AI_TriggerParticles;
extern const idEventDef AI_RandomPath;
class idPathCorner;
class rvmAIObject;
typedef struct particleEmitter_s {
particleEmitter_s() {
@@ -199,6 +200,8 @@ public:
class idAI : public idActor {
public:
friend class rvmAIObject;
CLASS_PROTOTYPE(idAI);
idAI();
@@ -231,7 +234,7 @@ public:
// Finds the best collision free trajectory for a clip model.
static bool PredictTrajectory(const idVec3& firePos, const idVec3& target, float projectileSpeed, const idVec3& projGravity, const idClipModel* clip, int clipmask, float max_height, const idEntity* ignore, const idEntity* targetEntity, int drawtime, idVec3& aimDir);
protected:
public:
// navigation
idNAV* aas;
int travelFlags;
@@ -374,6 +377,10 @@ protected:
idScriptBool AI_HIT_ENEMY;
idScriptBool AI_PUSHED;
// native DoomScript replacement object. Created from the entityDef/spawnArg "nativeobject" key.
rvmAIObject* nativeAIObject;
idStr nativeAIObjectName;
//
// ai/ai.cpp
//
@@ -483,6 +490,12 @@ protected:
// AI script state management
void LinkScriptVariables(void);
void InitNativeAIObject(void);
void ShutdownNativeAIObject(void);
static rvmAIObject* CreateNativeAIObject(const char* nativeObjectName);
rvmAIObject* GetNativeAIObject(void) const;
const char* GetNativeAIObjectName(void) const;
void UpdateAIScript(void);
//
@@ -770,4 +783,44 @@ private:
};
#include "AI_base.h"
#include "AI_monster_base.h"
#include "AI_monster_zombie_base.h"
#include "AI_monster_zombie.h"
#include "AI_monster_zombie_bernie.h"
#include "AI_monster_zombie_morgue.h"
#include "AI_monster_zombie_sawyer.h"
#include "AI_monster_zombie_commando_tentacle.h"
#include "AI_monster_zombie_commando_cgun.h"
#include "AI_monster_zombie_security_pistol.h"
#include "AI_character.h"
#include "AI_character_prone.h"
#include "AI_follower.h"
#include "AI_character_sentry.h"
#include "AI_alphalabs2_scientist1.h"
#include "AI_monster_demon_pinky.h"
#include "AI_monster_demon_imp.h"
#include "AI_monster_demon_vulgar.h"
#include "AI_monster_demon_revenant.h"
#include "AI_monster_demon_hellknight.h"
#include "AI_monster_demon_maggot.h"
#include "AI_monster_demon_cherub.h"
#include "AI_monster_demon_trite.h"
#include "AI_monster_demon_wraith.h"
#include "AI_monster_demon_mancubus.h"
#include "AI_monster_demon_archvile.h"
#include "AI_monster_flying_cacodemon.h"
#include "AI_monster_flying_lostsoul.h"
#include "AI_monster_turret.h"
#include "AI_monster_boss_cyberdemon.h"
#include "AI_monster_boss_vagary.h"
#include "AI_monster_boss_sabaoth.h"
#include "AI_monster_boss_guardian.h"
#include "AI_monster_boss_guardian_seeker.h"
#endif /* !__AI_H__ */