doom3-gpl
Doom 3 GPL source release
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
AI.h
Go to the documentation of this file.
1 /*
2 ===========================================================================
3 
4 Doom 3 GPL Source Code
5 Copyright (C) 1999-2011 id Software LLC, a ZeniMax Media company.
6 
7 This file is part of the Doom 3 GPL Source Code (?Doom 3 Source Code?).
8 
9 Doom 3 Source Code is free software: you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation, either version 3 of the License, or
12 (at your option) any later version.
13 
14 Doom 3 Source Code is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
18 
19 You should have received a copy of the GNU General Public License
20 along with Doom 3 Source Code. If not, see <http://www.gnu.org/licenses/>.
21 
22 In addition, the Doom 3 Source Code is also subject to certain additional terms. You should have received a copy of these additional terms immediately following the terms and conditions of the GNU General Public License which accompanied the Doom 3 Source Code. If not, please request a copy in writing from id Software at the address below.
23 
24 If you have questions concerning this license or the applicable additional terms, you may contact in writing id Software LLC, c/o ZeniMax Media Inc., Suite 120, Rockville, Maryland 20850 USA.
25 
26 ===========================================================================
27 */
28 
29 #ifndef __AI_H__
30 #define __AI_H__
31 
32 /*
33 ===============================================================================
34 
35  idAI
36 
37 ===============================================================================
38 */
39 
40 const float SQUARE_ROOT_OF_2 = 1.414213562f;
41 const float AI_TURN_PREDICTION = 0.2f;
42 const float AI_TURN_SCALE = 60.0f;
43 const float AI_SEEK_PREDICTION = 0.3f;
44 const float AI_FLY_DAMPENING = 0.15f;
45 const float AI_HEARING_RANGE = 2048.0f;
46 const int DEFAULT_FLY_OFFSET = 68;
47 
48 #define ATTACK_IGNORE 0
49 #define ATTACK_ON_DAMAGE 1
50 #define ATTACK_ON_ACTIVATE 2
51 #define ATTACK_ON_SIGHT 4
52 
53 // defined in script/ai_base.script. please keep them up to date.
54 typedef enum {
61 } moveType_t;
62 
63 typedef enum {
67 
68  // commands < NUM_NONMOVING_COMMANDS don't cause a change in position
70 
83 
84 typedef enum {
90 } talkState_t;
91 
92 //
93 // status results from move commands
94 // make sure to change script/doom_defs.script if you add any, or change their order
95 //
96 typedef enum {
106 } moveStatus_t;
107 
108 #define DI_NODIR -1
109 
110 // obstacle avoidance
111 typedef struct obstaclePath_s {
112  idVec3 seekPos; // seek position avoiding obstacles
113  idEntity * firstObstacle; // if != NULL the first obstacle along the path
114  idVec3 startPosOutsideObstacles; // start position outside obstacles
115  idEntity * startPosObstacle; // if != NULL the obstacle containing the start position
116  idVec3 seekPosOutsideObstacles; // seek position outside obstacles
117  idEntity * seekPosObstacle; // if != NULL the obstacle containing the seek position
119 
120 // path prediction
121 typedef enum {
125  SE_FALL = BIT(3),
127 } stopEvent_t;
128 
129 typedef struct predictedPath_s {
130  idVec3 endPos; // final position
131  idVec3 endVelocity; // velocity at end position
132  idVec3 endNormal; // normal of blocking surface
133  int endTime; // time predicted
134  int endEvent; // event that stopped the prediction
135  const idEntity * blockingEntity; // entity that blocks the movement
137 
138 //
139 // events
140 //
141 extern const idEventDef AI_BeginAttack;
142 extern const idEventDef AI_EndAttack;
143 extern const idEventDef AI_MuzzleFlash;
144 extern const idEventDef AI_CreateMissile;
145 extern const idEventDef AI_AttackMissile;
147 #ifdef _D3XP
148 extern const idEventDef AI_LaunchProjectile;
149 extern const idEventDef AI_TriggerFX;
150 extern const idEventDef AI_StartEmitter;
151 extern const idEventDef AI_StopEmitter;
152 #endif
153 extern const idEventDef AI_AttackMelee;
154 extern const idEventDef AI_DirectDamage;
155 extern const idEventDef AI_JumpFrame;
156 extern const idEventDef AI_EnableClip;
157 extern const idEventDef AI_DisableClip;
158 extern const idEventDef AI_EnableGravity;
159 extern const idEventDef AI_DisableGravity;
160 extern const idEventDef AI_TriggerParticles;
161 extern const idEventDef AI_RandomPath;
162 
163 class idPathCorner;
164 
165 typedef struct particleEmitter_s {
167  particle = NULL;
168  time = 0;
170  };
171  const idDeclParticle *particle;
172  int time;
175 
176 #ifdef _D3XP
177 typedef struct funcEmitter_s {
178  char name[64];
179  idFuncEmitter* particle;
180  jointHandle_t joint;
181 } funcEmitter_t;
182 #endif
183 
184 class idMoveState {
185 public:
186  idMoveState();
187 
188  void Save( idSaveGame *savefile ) const;
189  void Restore( idRestoreGame *savefile );
190 
195  idVec3 moveDir; // used for wandering and slide moves
197  idVec3 goalEntityOrigin; // move to entity uses this to avoid checking the floor position every frame
200  int duration;
201  float speed; // only used by flying creatures
202  float range;
203  float wanderYaw;
209  int anim;
210 };
211 
213 public:
214  idAASFindCover( const idVec3 &hideFromPos );
215  ~idAASFindCover();
216 
217  virtual bool TestArea( const idAAS *aas, int areaNum );
218 
219 private:
222 };
223 
225 public:
226  idAASFindAreaOutOfRange( const idVec3 &targetPos, float maxDist );
227 
228  virtual bool TestArea( const idAAS *aas, int areaNum );
229 
230 private:
232  float maxDistSqr;
233 };
234 
236 public:
239 
240  virtual bool TestArea( const idAAS *aas, int areaNum );
241 
242 private:
243  const idAI *self;
251 };
252 
253 class idAI : public idActor {
254 public:
256 
257  idAI();
258  ~idAI();
259 
260  void Save( idSaveGame *savefile ) const;
261  void Restore( idRestoreGame *savefile );
262 
263  void Spawn( void );
264  void HeardSound( idEntity *ent, const char *action );
265  idActor *GetEnemy( void ) const;
266  void TalkTo( idActor *actor );
267  talkState_t GetTalkState( void ) const;
268 
269  bool GetAimDir( const idVec3 &firePos, idEntity *aimAtEnt, const idEntity *ignore, idVec3 &aimDir ) const;
270 
271  void TouchedByFlashlight( idActor *flashlight_owner );
272 
273  // Outputs a list of all monsters to the console.
274  static void List_f( const idCmdArgs &args );
275 
276  // Finds a path around dynamic obstacles.
277  static bool FindPathAroundObstacles( const idPhysics *physics, const idAAS *aas, const idEntity *ignore, const idVec3 &startPos, const idVec3 &seekPos, obstaclePath_t &path );
278  // Frees any nodes used for the dynamic obstacle avoidance.
279  static void FreeObstacleAvoidanceNodes( void );
280  // Predicts movement, returns true if a stop event was triggered.
281  static bool PredictPath( const idEntity *ent, const idAAS *aas, const idVec3 &start, const idVec3 &velocity, int totalTime, int frameTime, int stopEvent, predictedPath_t &path );
282  // Return true if the trajectory of the clip model is collision free.
283  static bool TestTrajectory( const idVec3 &start, const idVec3 &end, float zVel, float gravity, float time, float max_height, const idClipModel *clip, int clipmask, const idEntity *ignore, const idEntity *targetEntity, int drawtime );
284  // Finds the best collision free trajectory for a clip model.
285  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 );
286 
287 #ifdef _D3XP
288  virtual void Gib( const idVec3 &dir, const char *damageDefName );
289 #endif
290 
291 protected:
292  // navigation
295 
298 
299  float kickForce;
304 
305  // turning
306  float ideal_yaw;
307  float current_yaw;
308  float turnRate;
309  float turnVel;
313 
314  // physics
316 
317  // flying
319  float fly_speed;
323  int fly_offset; // prefered offset from player's view
327  float fly_roll;
330  float fly_pitch;
331 
332  bool allowMove; // disables any animation movement
333  bool allowHiddenMovement; // allows character to still move around while hidden
334  bool disableGravity; // disables gravity and allows vertical movement by the animation
335  bool af_push_moveables; // allow the articulated figure to push moveable objects
336 
337  // weapon/attack vars
341  float melee_range;
342  float projectile_height_to_distance_ratio; // calculates the maximum height a projectile can be thrown
344 
353 
354  // chatter/talking
356  int chat_min;
357  int chat_max;
361 
362  // cinematics
365 
384 
385  // special fx
388 
389  bool restartParticles; // should smoke emissions restart
390  bool useBoneAxis; // use the bone vs the model axis
392 
393  renderLight_t worldMuzzleFlash; // positioned on world weapon bone
398 
399  // joint controllers
404 
405  // enemy variables
412 
413 #ifdef _D3XP
414  bool spawnClearMoveables;
415 
416  idHashTable<funcEmitter_t> funcEmitters;
417 
418  idEntityPtr<idHarvestable> harvestEnt;
419 #endif
420 
421  // script variables
441 
442  //
443  // ai/ai.cpp
444  //
445  void SetAAS( void );
446  virtual void DormantBegin( void ); // called when entity becomes dormant
447  virtual void DormantEnd( void ); // called when entity wakes from being dormant
448  void Think( void );
449  void Activate( idEntity *activator );
450  int ReactionTo( const idEntity *ent );
451  bool CheckForEnemy( void );
452  void EnemyDead( void );
453  virtual bool CanPlayChatterSounds( void ) const;
454  void SetChatSound( void );
455  void PlayChatter( void );
456  virtual void Hide( void );
457  virtual void Show( void );
458  idVec3 FirstVisiblePointOnPath( const idVec3 origin, const idVec3 &target, int travelFlags ) const;
459  void CalculateAttackOffsets( void );
460  void PlayCinematic( void );
461 
462  // movement
463  virtual void ApplyImpulse( idEntity *ent, int id, const idVec3 &point, const idVec3 &impulse );
464  void GetMoveDelta( const idMat3 &oldaxis, const idMat3 &axis, idVec3 &delta );
465  void CheckObstacleAvoidance( const idVec3 &goalPos, idVec3 &newPos );
466  void DeadMove( void );
467  void AnimMove( void );
468  void SlideMove( void );
469  void AdjustFlyingAngles( void );
470  void AddFlyBob( idVec3 &vel );
471  void AdjustFlyHeight( idVec3 &vel, const idVec3 &goalPos );
472  void FlySeekGoal( idVec3 &vel, idVec3 &goalPos );
473  void AdjustFlySpeed( idVec3 &vel );
474  void FlyTurn( void );
475  void FlyMove( void );
476  void StaticMove( void );
477 
478  // damage
479  virtual bool Pain( idEntity *inflictor, idEntity *attacker, int damage, const idVec3 &dir, int location );
480  virtual void Killed( idEntity *inflictor, idEntity *attacker, int damage, const idVec3 &dir, int location );
481 
482  // navigation
483  void KickObstacles( const idVec3 &dir, float force, idEntity *alwaysKick );
484  bool ReachedPos( const idVec3 &pos, const moveCommand_t moveCommand ) const;
485  float TravelDistance( const idVec3 &start, const idVec3 &end ) const;
486  int PointReachableAreaNum( const idVec3 &pos, const float boundsScale = 2.0f ) const;
487  bool PathToGoal( aasPath_t &path, int areaNum, const idVec3 &origin, int goalAreaNum, const idVec3 &goalOrigin ) const;
488  void DrawRoute( void ) const;
489  bool GetMovePos( idVec3 &seekPos );
490  bool MoveDone( void ) const;
491  bool EntityCanSeePos( idActor *actor, const idVec3 &actorOrigin, const idVec3 &pos );
492  void BlockedFailSafe( void );
493 
494  // movement control
495  void StopMove( moveStatus_t status );
496  bool FaceEnemy( void );
497  bool FaceEntity( idEntity *ent );
498  bool DirectMoveToPosition( const idVec3 &pos );
499  bool MoveToEnemyHeight( void );
500  bool MoveOutOfRange( idEntity *entity, float range );
501  bool MoveToAttackPosition( idEntity *ent, int attack_anim );
502  bool MoveToEnemy( void );
503  bool MoveToEntity( idEntity *ent );
504  bool MoveToPosition( const idVec3 &pos );
505  bool MoveToCover( idEntity *entity, const idVec3 &pos );
506  bool SlideToPosition( const idVec3 &pos, float time );
507  bool WanderAround( void );
508  bool StepDirection( float dir );
509  bool NewWanderDir( const idVec3 &dest );
510 
511  // effects
512  const idDeclParticle *SpawnParticlesOnJoint( particleEmitter_t &pe, const char *particleName, const char *jointName );
513  void SpawnParticles( const char *keyName );
514  bool ParticlesActive( void );
515 
516  // turning
517  bool FacingIdeal( void );
518  void Turn( void );
519  bool TurnToward( float yaw );
520  bool TurnToward( const idVec3 &pos );
521 
522  // enemy management
523  void ClearEnemy( void );
524  bool EnemyPositionValid( void ) const;
525  void SetEnemyPosition( void );
526  void UpdateEnemyPosition( void );
527  void SetEnemy( idActor *newEnemy );
528 
529  // attacks
530  void CreateProjectileClipModel( void ) const;
531  idProjectile *CreateProjectile( const idVec3 &pos, const idVec3 &dir );
532  void RemoveProjectile( void );
533  idProjectile *LaunchProjectile( const char *jointname, idEntity *target, bool clampToAttackCone );
534  virtual void DamageFeedback( idEntity *victim, idEntity *inflictor, int &damage );
535  void DirectDamage( const char *meleeDefName, idEntity *ent );
536  bool TestMelee( void ) const;
537  bool AttackMelee( const char *meleeDefName );
538  void BeginAttack( const char *name );
539  void EndAttack( void );
540  void PushWithAF( void );
541 
542  // special effects
543  void GetMuzzle( const char *jointname, idVec3 &muzzle, idMat3 &axis );
544  void InitMuzzleFlash( void );
545  void TriggerWeaponEffects( const idVec3 &muzzle );
546  void UpdateMuzzleFlash( void );
547  virtual bool UpdateAnimationControllers( void );
548  void UpdateParticles( void );
549  void TriggerParticles( const char *jointName );
550 
551 #ifdef _D3XP
552  void TriggerFX( const char* joint, const char* fx );
553  idEntity* StartEmitter( const char* name, const char* joint, const char* particle );
554  idEntity* GetEmitter( const char* name );
555  void StopEmitter( const char* name );
556 #endif
557 
558  // AI script state management
559  void LinkScriptVariables( void );
560  void UpdateAIScript( void );
561 
562  //
563  // ai/ai_events.cpp
564  //
565  void Event_Activate( idEntity *activator );
566  void Event_Touch( idEntity *other, trace_t *trace );
567  void Event_FindEnemy( int useFOV );
568  void Event_FindEnemyAI( int useFOV );
569  void Event_FindEnemyInCombatNodes( void );
571  void Event_HeardSound( int ignore_team );
572  void Event_SetEnemy( idEntity *ent );
573  void Event_ClearEnemy( void );
574  void Event_MuzzleFlash( const char *jointname );
575  void Event_CreateMissile( const char *jointname );
576  void Event_AttackMissile( const char *jointname );
577  void Event_FireMissileAtTarget( const char *jointname, const char *targetname );
578  void Event_LaunchMissile( const idVec3 &muzzle, const idAngles &ang );
579 #ifdef _D3XP
580  void Event_LaunchProjectile( const char *entityDefName );
581 #endif
582  void Event_AttackMelee( const char *meleeDefName );
583  void Event_DirectDamage( idEntity *damageTarget, const char *damageDefName );
584  void Event_RadiusDamageFromJoint( const char *jointname, const char *damageDefName );
585  void Event_BeginAttack( const char *name );
586  void Event_EndAttack( void );
587  void Event_MeleeAttackToJoint( const char *jointname, const char *meleeDefName );
588  void Event_RandomPath( void );
589  void Event_CanBecomeSolid( void );
590  void Event_BecomeSolid( void );
591  void Event_BecomeNonSolid( void );
592  void Event_BecomeRagdoll( void );
593  void Event_StopRagdoll( void );
594  void Event_SetHealth( float newHealth );
595  void Event_GetHealth( void );
596  void Event_AllowDamage( void );
597  void Event_IgnoreDamage( void );
598  void Event_GetCurrentYaw( void );
599  void Event_TurnTo( float angle );
600  void Event_TurnToPos( const idVec3 &pos );
601  void Event_TurnToEntity( idEntity *ent );
602  void Event_MoveStatus( void );
603  void Event_StopMove( void );
604  void Event_MoveToCover( void );
605  void Event_MoveToEnemy( void );
606  void Event_MoveToEnemyHeight( void );
607  void Event_MoveOutOfRange( idEntity *entity, float range );
608  void Event_MoveToAttackPosition( idEntity *entity, const char *attack_anim );
609  void Event_MoveToEntity( idEntity *ent );
610  void Event_MoveToPosition( const idVec3 &pos );
611  void Event_SlideTo( const idVec3 &pos, float time );
612  void Event_Wander( void );
613  void Event_FacingIdeal( void );
614  void Event_FaceEnemy( void );
615  void Event_FaceEntity( idEntity *ent );
616  void Event_WaitAction( const char *waitForState );
617  void Event_GetCombatNode( void );
618  void Event_EnemyInCombatCone( idEntity *ent, int use_current_enemy_location );
619  void Event_WaitMove( void );
620  void Event_GetJumpVelocity( const idVec3 &pos, float speed, float max_height );
621  void Event_EntityInAttackCone( idEntity *ent );
622  void Event_CanSeeEntity( idEntity *ent );
623  void Event_SetTalkTarget( idEntity *target );
624  void Event_GetTalkTarget( void );
625  void Event_SetTalkState( int state );
626  void Event_EnemyRange( void );
627  void Event_EnemyRange2D( void );
628  void Event_GetEnemy( void );
629  void Event_GetEnemyPos( void );
630  void Event_GetEnemyEyePos( void );
631  void Event_PredictEnemyPos( float time );
632  void Event_CanHitEnemy( void );
633  void Event_CanHitEnemyFromAnim( const char *animname );
634  void Event_CanHitEnemyFromJoint( const char *jointname );
635  void Event_EnemyPositionValid( void );
636  void Event_ChargeAttack( const char *damageDef );
637  void Event_TestChargeAttack( void );
638  void Event_TestAnimMoveTowardEnemy( const char *animname );
639  void Event_TestAnimMove( const char *animname );
640  void Event_TestMoveToPosition( const idVec3 &position );
641  void Event_TestMeleeAttack( void );
642  void Event_TestAnimAttack( const char *animname );
643  void Event_Shrivel( float shirvel_time );
644  void Event_Burn( void );
645  void Event_PreBurn( void );
646  void Event_ClearBurn( void );
647  void Event_SetSmokeVisibility( int num, int on );
648  void Event_NumSmokeEmitters( void );
649  void Event_StopThinking( void );
650  void Event_GetTurnDelta( void );
651  void Event_GetMoveType( void );
652  void Event_SetMoveType( int moveType );
653  void Event_SaveMove( void );
654  void Event_RestoreMove( void );
655  void Event_AllowMovement( float flag );
656  void Event_JumpFrame( void );
657  void Event_EnableClip( void );
658  void Event_DisableClip( void );
659  void Event_EnableGravity( void );
660  void Event_DisableGravity( void );
661  void Event_EnableAFPush( void );
662  void Event_DisableAFPush( void );
663  void Event_SetFlySpeed( float speed );
664  void Event_SetFlyOffset( int offset );
665  void Event_ClearFlyOffset( void );
666  void Event_GetClosestHiddenTarget( const char *type );
667  void Event_GetRandomTarget( const char *type );
668  void Event_TravelDistanceToPoint( const idVec3 &pos );
670  void Event_TravelDistanceBetweenPoints( const idVec3 &source, const idVec3 &dest );
672  void Event_LookAtEntity( idEntity *ent, float duration );
673  void Event_LookAtEnemy( float duration );
674  void Event_SetJointMod( int allowJointMod );
675  void Event_ThrowMoveable( void );
676  void Event_ThrowAF( void );
677  void Event_SetAngles( idAngles const &ang );
678  void Event_GetAngles( void );
679  void Event_RealKill( void );
680  void Event_Kill( void );
681  void Event_WakeOnFlashlight( int enable );
682  void Event_LocateEnemy( void );
683  void Event_KickObstacles( idEntity *kickEnt, float force );
684  void Event_GetObstacle( void );
685  void Event_PushPointIntoAAS( const idVec3 &pos );
686  void Event_GetTurnRate( void );
687  void Event_SetTurnRate( float rate );
688  void Event_AnimTurn( float angles );
689  void Event_AllowHiddenMovement( int enable );
690  void Event_TriggerParticles( const char *jointName );
691  void Event_FindActorsInBounds( const idVec3 &mins, const idVec3 &maxs );
692  void Event_CanReachPosition( const idVec3 &pos );
693  void Event_CanReachEntity( idEntity *ent );
694  void Event_CanReachEnemy( void );
696 #ifdef _D3XP
697  void Event_MoveToPositionDirect( const idVec3 &pos );
698  void Event_AvoidObstacles( int ignore);
699  void Event_TriggerFX( const char* joint, const char* fx );
700 
701  void Event_StartEmitter( const char* name, const char* joint, const char* particle );
702  void Event_GetEmitter( const char* name );
703  void Event_StopEmitter( const char* name );
704 #endif
705 };
706 
707 class idCombatNode : public idEntity {
708 public:
710 
711  idCombatNode();
712 
713  void Save( idSaveGame *savefile ) const;
714  void Restore( idRestoreGame *savefile );
715 
716  void Spawn( void );
717  bool IsDisabled( void ) const;
718  bool EntityInView( idActor *actor, const idVec3 &pos );
719  static void DrawDebugInfo( void );
720 
721 private:
722  float min_dist;
723  float max_dist;
724  float cone_dist;
725  float min_height;
726  float max_height;
730  bool disabled;
731 
732  void Event_Activate( idEntity *activator );
733  void Event_MarkUsed( void );
734 };
735 
736 #endif /* !__AI_H__ */
bool GetAimDir(const idVec3 &firePos, idEntity *aimAtEnt, const idEntity *ignore, idVec3 &aimDir) const
Definition: AI.cpp:4095
jointHandle_t
Definition: Model.h:156
idVec3 moveDir
Definition: AI.h:195
idList< idAngles > lookJointAngles
Definition: AI.h:378
float fly_bob_horz
Definition: AI.h:322
void Restore(idRestoreGame *savefile)
Definition: AI.cpp:560
const idEventDef AI_DirectDamage
idAAS * aas
Definition: AI.h:293
void ClearEnemy(void)
Definition: AI.cpp:3732
void Event_CreateMissile(const char *jointname)
Definition: AI_events.cpp:573
bool TurnToward(float yaw)
Definition: AI.cpp:2541
void Event_GetMoveType(void)
Definition: AI_events.cpp:2092
void Event_FacingIdeal(void)
Definition: AI_events.cpp:1169
void Event_StopThinking(void)
Definition: AI_events.cpp:2063
void TouchedByFlashlight(idActor *flashlight_owner)
Definition: AI.cpp:3721
void EndAttack(void)
Definition: AI.cpp:4159
virtual bool TestArea(const idAAS *aas, int areaNum)
Definition: AI.cpp:159
bool allowHiddenMovement
Definition: AI.h:333
void Event_GetClosestHiddenTarget(const char *type)
Definition: AI_events.cpp:2300
moveStatus_t
Definition: AI.h:96
idAI()
Definition: AI.cpp:284
float eyeFocusRate
Definition: AI.h:381
idVec3 targetPos
Definition: AI.h:246
const idSoundShader * chat_snd
Definition: AI.h:355
void Event_GetHealth(void)
Definition: AI_events.cpp:983
int startTime
Definition: AI.h:199
idClipModel * projectileClipModel
Definition: AI.h:346
void Event_GetCombatNode(void)
Definition: AI_events.cpp:1212
bool MoveToAttackPosition(idEntity *ent, int attack_anim)
Definition: AI.cpp:1913
void TalkTo(idActor *actor)
Definition: AI.cpp:3672
bool EntityInView(idActor *actor, const idVec3 &pos)
Definition: AI.cpp:5304
void LinkScriptVariables(void)
Definition: AI.cpp:1247
Definition: AI.h:126
const idEventDef AI_BeginAttack
virtual bool TestArea(const idAAS *aas, int areaNum)
Definition: AI.cpp:246
idAngles eyeAng
Definition: AI.h:372
void Event_SetFlySpeed(float speed)
Definition: AI_events.cpp:2270
bool MoveToEntity(idEntity *ent)
Definition: AI.cpp:1785
void CheckObstacleAvoidance(const idVec3 &goalPos, idVec3 &newPos)
Definition: AI.cpp:2618
idVec3 cone_right
Definition: AI.h:728
void Event_SlideTo(const idVec3 &pos, float time)
Definition: AI_events.cpp:1152
void Event_AllowHiddenMovement(int enable)
Definition: AI_events.cpp:2691
idVec3 targetPos
Definition: AI.h:231
idEntity * target
Definition: AI.h:244
void Event_Activate(idEntity *activator)
Definition: AI_events.cpp:324
void Event_PushPointIntoAAS(const idVec3 &pos)
Definition: AI_events.cpp:2630
idEntityPtr< idActor > talkTarget
Definition: AI.h:360
idAngles lookMin
Definition: AI.h:375
void Event_AllowDamage(void)
Definition: AI_events.cpp:992
int chat_max
Definition: AI.h:357
idEntityPtr< idEntity > focusEntity
Definition: AI.h:367
const float AI_HEARING_RANGE
Definition: AI.h:45
idVec3 endNormal
Definition: AI.h:132
idActor * GetEnemy(void) const
Definition: AI.cpp:3697
void PlayChatter(void)
Definition: AI.cpp:4770
void Restore(idRestoreGame *savefile)
Definition: AI.cpp:5192
bool disableGravity
Definition: AI.h:334
idScriptBool AI_DEAD
Definition: AI.h:426
idScriptBool AI_ENEMY_IN_FOV
Definition: AI.h:428
idVec3 lastVisibleReachableEnemyPos
Definition: AI.h:409
void Event_MoveToEntity(idEntity *ent)
Definition: AI_events.cpp:1130
bool FacingIdeal(void)
Definition: AI.cpp:2519
idScriptBool AI_HIT_ENEMY
Definition: AI.h:439
idEntity * startPosObstacle
Definition: AI.h:115
void Event_DisableAFPush(void)
Definition: AI_events.cpp:2261
idStr attack
Definition: AI.h:352
float anim_turn_angles
Definition: AI.h:312
GLint location
Definition: glext.h:3631
void SetEnemy(idActor *newEnemy)
Definition: AI.cpp:3945
float kickForce
Definition: AI.h:299
idScriptBool AI_DAMAGE
Definition: AI.h:423
void Event_TurnTo(float angle)
Definition: AI_events.cpp:1019
void Spawn(void)
Definition: AI.cpp:5209
moveStatus_t moveStatus
Definition: AI.h:193
void Save(idSaveGame *savefile) const
Definition: AI.cpp:416
int chat_time
Definition: AI.h:358
void DeadMove(void)
Definition: AI.cpp:2709
void Event_EnemyPositionValid(void)
Definition: AI_events.cpp:1756
idScriptBool AI_JUMP
Definition: AI.h:434
float max_dist
Definition: AI.h:723
const idEventDef AI_MuzzleFlash
void Event_ChargeAttack(const char *damageDef)
Definition: AI_events.cpp:1768
int lastMoveTime
Definition: AI.h:208
const idEventDef AI_DisableGravity
void CreateProjectileClipModel(void) const
Definition: AI.cpp:4082
idEntityPtr< idActor > enemy
Definition: AI.h:406
int lastHitCheckTime
Definition: AI.h:339
void Event_Wander(void)
Definition: AI_events.cpp:1160
int PVSAreas[idEntity::MAX_PVS_AREAS]
Definition: AI.h:221
void DirectDamage(const char *meleeDefName, idEntity *ent)
Definition: AI.cpp:4371
const idEventDef AI_FireMissileAtTarget
bool WanderAround(void)
Definition: AI.cpp:2091
int current_cinematic
Definition: AI.h:364
int focusAlignTime
Definition: AI.h:383
float headFocusRate
Definition: AI.h:382
const idEventDef AI_JumpFrame
void Event_ClearFlyOffset(void)
Definition: AI_events.cpp:2291
int forceAlignHeadTime
Definition: AI.h:371
int endEvent
Definition: AI.h:134
void UpdateEnemyPosition(void)
Definition: AI.cpp:3872
void Event_AttackMissile(const char *jointname)
Definition: AI_events.cpp:599
void SetEnemyPosition(void)
Definition: AI.cpp:3778
idAngles lookMax
Definition: AI.h:376
idScriptFloat AI_SPECIAL_DAMAGE
Definition: AI.h:425
float melee_range
Definition: AI.h:341
float fly_roll
Definition: AI.h:327
void Event_TestMeleeAttack(void)
Definition: AI_events.cpp:1923
void Event_KickObstacles(idEntity *kickEnt, float force)
Definition: AI_events.cpp:2597
moveCommand_t moveCommand
Definition: AI.h:192
void Event_EnableClip(void)
Definition: AI_events.cpp:2214
float anim_turn_amount
Definition: AI.h:311
void Event_TravelDistanceToPoint(const idVec3 &pos)
Definition: AI_events.cpp:2382
#define BIT(num)
Definition: Lib.h:92
void Event_RealKill(void)
Definition: AI_events.cpp:2541
Definition: Vector.h:316
idEntity * seekPosObstacle
Definition: AI.h:117
void Event_TravelDistanceToEntity(idEntity *ent)
Definition: AI_events.cpp:2394
float eyeVerticalOffset
Definition: AI.h:379
void Event_TestAnimMoveTowardEnemy(const char *animname)
Definition: AI_events.cpp:1834
void Event_LaunchMissile(const idVec3 &muzzle, const idAngles &ang)
Definition: AI_events.cpp:629
void Event_PredictEnemyPos(float time)
Definition: AI_events.cpp:1550
void Activate(idEntity *activator)
Definition: AI.cpp:3604
void Event_SetEnemy(idEntity *ent)
Definition: AI_events.cpp:536
bool SlideToPosition(const idVec3 &pos, float time)
Definition: AI.cpp:2062
float fly_pitch
Definition: AI.h:330
static void List_f(const idCmdArgs &args)
Definition: AI.cpp:1043
bool wakeOnFlashlight
Definition: AI.h:411
idVec3 projectileVelocity
Definition: AI.h:349
static bool TestTrajectory(const idVec3 &start, const idVec3 &end, float zVel, float gravity, float time, float max_height, const idClipModel *clip, int clipmask, const idEntity *ignore, const idEntity *targetEntity, int drawtime)
void Event_TestAnimMove(const char *animname)
Definition: AI_events.cpp:1874
static bool FindPathAroundObstacles(const idPhysics *physics, const idAAS *aas, const idEntity *ignore, const idVec3 &startPos, const idVec3 &seekPos, obstaclePath_t &path)
Definition: AI_pathing.cpp:925
static bool PredictPath(const idEntity *ent, const idAAS *aas, const idVec3 &start, const idVec3 &velocity, int totalTime, int frameTime, int stopEvent, predictedPath_t &path)
void Event_ThrowMoveable(void)
Definition: AI_events.cpp:2480
GLuint GLuint GLsizei GLenum type
Definition: glext.h:2845
stopEvent_t
Definition: AI.h:121
void FlySeekGoal(idVec3 &vel, idVec3 &goalPos)
Definition: AI.cpp:3073
idVec3 lastVisibleEnemyPos
Definition: AI.h:407
const idEventDef AI_EnableClip
void Event_CanReachEntity(idEntity *ent)
Definition: AI_events.cpp:2751
void Event_SetHealth(float newHealth)
Definition: AI_events.cpp:968
bool IsDisabled(void) const
Definition: AI.cpp:5241
void Event_EnableGravity(void)
Definition: AI_events.cpp:2234
float fly_speed
Definition: AI.h:319
idProjectile * CreateProjectile(const idVec3 &pos, const idVec3 &dir)
Definition: AI.cpp:4168
const idDict * projectileDef
Definition: AI.h:345
moveType_t
Definition: AI.h:54
void Event_Burn(void)
Definition: AI_events.cpp:2000
idAngles lookAng
Definition: AI.h:373
idMat3 gravityAxis
Definition: AI.h:248
idScriptBool AI_ACTIVATED
Definition: AI.h:432
void Event_SetTalkTarget(idEntity *target)
Definition: AI_events.cpp:1446
void Event_CanHitEnemyFromAnim(const char *animname)
Definition: AI_events.cpp:1616
bool PathToGoal(aasPath_t &path, int areaNum, const idVec3 &origin, int goalAreaNum, const idVec3 &goalOrigin) const
Definition: AI.cpp:1474
float current_yaw
Definition: AI.h:307
void DrawRoute(void) const
Definition: AI.cpp:1403
idAASFindAreaOutOfRange(const idVec3 &targetPos, float maxDist)
Definition: AI.cpp:180
bool MoveToPosition(const idVec3 &pos)
Definition: AI.cpp:1965
idVec3 lastReachableEnemyPos
Definition: AI.h:410
GLintptr offset
Definition: glext.h:3113
bool EntityCanSeePos(idActor *actor, const idVec3 &actorOrigin, const idVec3 &pos)
Definition: AI.cpp:2376
virtual void Hide(void)
Definition: AI.cpp:4673
virtual void DormantEnd(void)
Definition: AI.cpp:1102
GLuint GLuint num
Definition: glext.h:5390
void SetChatSound(void)
Definition: AI.cpp:4711
const idEventDef AI_DisableClip
idVec3 cone_left
Definition: AI.h:727
Definition: AI.h:122
const idDeclParticle * SpawnParticlesOnJoint(particleEmitter_t &pe, const char *particleName, const char *jointName)
Definition: AI.cpp:3361
float fly_bob_vert
Definition: AI.h:321
virtual bool UpdateAnimationControllers(void)
Definition: AI.cpp:4962
idScriptBool AI_ENEMY_VISIBLE
Definition: AI.h:427
static const int MAX_PVS_AREAS
Definition: Entity.h:109
void Event_MoveToCover(void)
Definition: AI_events.cpp:1066
bool EnemyPositionValid(void) const
Definition: AI.cpp:3751
GLsizei range
Definition: glext.h:4368
float fly_roll_max
Definition: AI.h:326
float min_dist
Definition: AI.h:722
void Event_EnemyInCombatCone(idEntity *ent, int use_current_enemy_location)
Definition: AI_events.cpp:1295
Definition: AI.h:88
void Event_ClosestReachableEnemyOfEntity(idEntity *team_mate)
Definition: AI_events.cpp:469
void Event_FindEnemy(int useFOV)
Definition: AI_events.cpp:345
void Event_GetEnemyPos(void)
Definition: AI_events.cpp:1532
CLASS_PROTOTYPE(idAI)
void UpdateParticles(void)
Definition: AI.cpp:4787
int toAreaNum
Definition: AI.h:198
bool useBoneAxis
Definition: AI.h:390
virtual void Killed(idEntity *inflictor, idEntity *attacker, int damage, const idVec3 &dir, int location)
Definition: AI.cpp:3398
void FlyTurn(void)
Definition: AI.cpp:3110
idScriptBool AI_ENEMY_REACHABLE
Definition: AI.h:435
void Event_SetFlyOffset(int offset)
Definition: AI_events.cpp:2282
void KickObstacles(const idVec3 &dir, float force, idEntity *alwaysKick)
Definition: AI.cpp:1296
idEntity * firstObstacle
Definition: AI.h:113
Definition: AI.h:125
void Event_CanBecomeSolid(void)
Definition: AI_events.cpp:854
int muzzleFlashEnd
Definition: AI.h:396
void Event_MarkUsed(void)
Definition: AI.cpp:5350
idScriptBool AI_MOVE_DONE
Definition: AI.h:430
int endTime
Definition: AI.h:133
void Event_MoveToEnemy(void)
Definition: AI_events.cpp:1080
void AddFlyBob(idVec3 &vel)
Definition: AI.cpp:3005
Definition: AAS.h:47
GLsizei GLsizei GLcharARB * source
Definition: glext.h:3633
void Event_GetEnemy(void)
Definition: AI_events.cpp:1523
void Event_EndAttack(void)
Definition: AI_events.cpp:807
idAASFindAttackPosition(const idAI *self, const idMat3 &gravityAxis, idEntity *target, const idVec3 &targetPos, const idVec3 &fireOffset)
Definition: AI.cpp:214
Definition: AI.h:87
void Event_SetMoveType(int moveType)
Definition: AI_events.cpp:2101
void Event_BecomeSolid(void)
Definition: AI_events.cpp:915
struct obstaclePath_s obstaclePath_t
pvsHandle_t targetPVS
Definition: AI.h:249
void Event_TestChargeAttack(void)
Definition: AI_events.cpp:1794
void TriggerWeaponEffects(const idVec3 &muzzle)
Definition: AI.cpp:4617
idVec3 seekPosOutsideObstacles
Definition: AI.h:116
void Event_RestoreMove(void)
Definition: AI_events.cpp:2128
void Restore(idRestoreGame *savefile)
Definition: AI.cpp:109
bool MoveToCover(idEntity *entity, const idVec3 &pos)
Definition: AI.cpp:2013
bool ReachedPos(const idVec3 &pos, const moveCommand_t moveCommand) const
Definition: AI.cpp:1418
bool StepDirection(float dir)
Definition: AI.cpp:2125
float TravelDistance(const idVec3 &start, const idVec3 &end) const
Definition: AI.cpp:1511
void Event_GetJumpVelocity(const idVec3 &pos, float speed, float max_height)
Definition: AI_events.cpp:1356
float projectile_height_to_distance_ratio
Definition: AI.h:342
bool allowJointMod
Definition: AI.h:366
void Event_IgnoreDamage(void)
Definition: AI_events.cpp:1001
void AdjustFlySpeed(idVec3 &vel)
Definition: AI.cpp:3087
int flashTime
Definition: AI.h:397
void Event_WakeOnFlashlight(int enable)
Definition: AI_events.cpp:2569
idScriptBool AI_PAIN
Definition: AI.h:424
idProjectile * LaunchProjectile(const char *jointname, idEntity *target, bool clampToAttackCone)
Definition: AI.cpp:4208
bool CheckForEnemy(void)
float min_height
Definition: AI.h:725
Definition: AI.h:85
void Event_FindActorsInBounds(const idVec3 &mins, const idVec3 &maxs)
Definition: AI_events.cpp:2709
void Event_EnemyRange(void)
Definition: AI_events.cpp:1485
idVec3 lastMoveOrigin
Definition: AI.h:207
int PointReachableAreaNum(const idVec3 &pos, const float boundsScale=2.0f) const
Definition: AI.cpp:1446
idVec3 currentFocusPos
Definition: AI.h:368
idEntityPtr< idEntity > obstacle
Definition: AI.h:206
void Event_LookAtEntity(idEntity *ent, float duration)
Definition: AI_events.cpp:2432
GLuint GLuint end
Definition: glext.h:2845
const function_t * state
Definition: Actor.h:237
bool TestMelee(void) const
Definition: AI.cpp:4413
void Event_EnemyRange2D(void)
Definition: AI_events.cpp:1504
void Event_MoveStatus(void)
Definition: AI_events.cpp:1048
const int DEFAULT_FLY_OFFSET
Definition: AI.h:46
void Event_SetTalkState(int state)
Definition: AI_events.cpp:1472
void Event_TestAnimAttack(const char *animname)
Definition: AI_events.cpp:1933
void UpdateMuzzleFlash(void)
Definition: AI.cpp:4652
Definition: Dict.h:65
void Event_TestMoveToPosition(const idVec3 &position)
Definition: AI_events.cpp:1902
#define NULL
Definition: Lib.h:88
float wanderYaw
Definition: AI.h:203
jointHandle_t flashJointWorld
Definition: AI.h:395
const float AI_TURN_SCALE
Definition: AI.h:42
void Event_BeginAttack(const char *name)
Definition: AI_events.cpp:798
void BlockedFailSafe(void)
Definition: AI.cpp:2419
void Event_LocateEnemy(void)
Definition: AI_events.cpp:2578
int ReactionTo(const idEntity *ent)
Definition: AI.cpp:3256
bool disabled
Definition: AI.h:730
~idAI()
Definition: AI.cpp:395
virtual bool TestArea(const idAAS *aas, int areaNum)
Definition: AI.cpp:190
pvsHandle_t hidePVS
Definition: AI.h:220
void Event_GetReachableEntityPosition(idEntity *ent)
Definition: AI_events.cpp:2838
idMoveState move
Definition: AI.h:296
void Event_AnimTurn(float angles)
Definition: AI_events.cpp:2668
bool GetMovePos(idVec3 &seekPos)
Definition: AI.cpp:2278
float projectileRadius
Definition: AI.h:347
float speed
Definition: AI.h:201
idScriptBool AI_DEST_UNREACHABLE
Definition: AI.h:438
void Event_WaitAction(const char *waitForState)
Definition: AI_events.cpp:1197
void Event_FaceEnemy(void)
Definition: AI_events.cpp:1179
void Event_EntityInAttackCone(idEntity *ent)
Definition: AI_events.cpp:1395
jointHandle_t joint
Definition: AI.h:173
void Event_Kill(void)
Definition: AI_events.cpp:2560
void SetAAS(void)
Definition: AI.cpp:1377
int nextWanderTime
Definition: AI.h:204
const idEventDef AI_AttackMissile
const idEntity * blockingEntity
Definition: AI.h:135
void Event_GetEnemyEyePos(void)
Definition: AI_events.cpp:1541
struct predictedPath_s predictedPath_t
const idEventDef AI_RandomPath
idVec3 seekPos
Definition: AI.h:112
void Event_SetAngles(idAngles const &ang)
Definition: AI_events.cpp:2522
float fly_pitch_max
Definition: AI.h:329
virtual void Show(void)
Definition: AI.cpp:4691
void Event_CanReachEnemy(void)
Definition: AI_events.cpp:2795
void Event_DirectDamage(idEntity *damageTarget, const char *damageDefName)
Definition: AI_events.cpp:754
const char * path
Definition: sws.c:117
void Event_DisableGravity(void)
Definition: AI_events.cpp:2243
void BeginAttack(const char *name)
Definition: AI.cpp:4149
void Event_SetJointMod(int allowJointMod)
Definition: AI_events.cpp:2471
idVec3 endVelocity
Definition: AI.h:131
idCombatNode()
Definition: AI.cpp:5158
idAngles eyeMin
Definition: AI.h:400
bool MoveOutOfRange(idEntity *entity, float range)
Definition: AI.cpp:1856
int focusTime
Definition: AI.h:369
void Event_MuzzleFlash(const char *jointname)
Definition: AI_events.cpp:560
bool FaceEntity(idEntity *ent)
Definition: AI.cpp:1630
void Event_SaveMove(void)
Definition: AI_events.cpp:2119
float fly_seek_scale
Definition: AI.h:324
CLASS_PROTOTYPE(idCombatNode)
int PVSAreas[idEntity::MAX_PVS_AREAS]
Definition: AI.h:250
const float AI_SEEK_PREDICTION
Definition: AI.h:43
int blockedMoveTime
Definition: AI.h:302
void AdjustFlyHeight(idVec3 &vel, const idVec3 &goalPos)
Definition: AI.cpp:3025
bool restartParticles
Definition: AI.h:389
bool DirectMoveToPosition(const idVec3 &pos)
Definition: AI.cpp:1656
float fly_pitch_scale
Definition: AI.h:328
float max_height
Definition: AI.h:726
void Event_HeardSound(int ignore_team)
Definition: AI_events.cpp:515
void Event_NumSmokeEmitters(void)
Definition: AI_events.cpp:2054
bool MoveToEnemy(void)
Definition: AI.cpp:1713
void CalculateAttackOffsets(void)
Definition: AI.cpp:4034
void Event_Activate(idEntity *activator)
Definition: AI.cpp:5341
void Event_Shrivel(float shirvel_time)
Definition: AI_events.cpp:1954
idScriptBool AI_OBSTACLE_IN_PATH
Definition: AI.h:437
void Event_MoveOutOfRange(idEntity *entity, float range)
Definition: AI_events.cpp:1102
void Event_MoveToEnemyHeight(void)
Definition: AI_events.cpp:1092
int blockTime
Definition: AI.h:205
void Event_MeleeAttackToJoint(const char *jointname, const char *meleeDefName)
Definition: AI_events.cpp:816
void Event_DisableClip(void)
Definition: AI_events.cpp:2224
virtual void ApplyImpulse(idEntity *ent, int id, const idVec3 &point, const idVec3 &impulse)
Definition: AI.cpp:2580
const float AI_FLY_DAMPENING
Definition: AI.h:44
void Save(idSaveGame *savefile) const
Definition: AI.cpp:82
void Event_CanHitEnemyFromJoint(const char *jointname)
Definition: AI_events.cpp:1688
void SlideMove(void)
Definition: AI.cpp:2851
idVec3 fireOffset
Definition: AI.h:247
renderLight_t worldMuzzleFlash
Definition: AI.h:393
void Event_TravelDistanceBetweenEntities(idEntity *source, idEntity *dest)
Definition: AI_events.cpp:2418
void Event_GetAngles(void)
Definition: AI_events.cpp:2532
int duration
Definition: AI.h:200
void Event_GetTalkTarget(void)
Definition: AI_events.cpp:1463
Definition: AI.h:80
void Save(idSaveGame *savefile) const
Definition: AI.cpp:5175
virtual void DamageFeedback(idEntity *victim, idEntity *inflictor, int &damage)
Definition: AI.cpp:4351
idScriptBool AI_BLOCKED
Definition: AI.h:436
void Event_TurnToPos(const idVec3 &pos)
Definition: AI_events.cpp:1028
int lastAttackTime
Definition: AI.h:340
void Event_Touch(idEntity *other, trace_t *trace)
Definition: AI_events.cpp:333
talkState_t talk_state
Definition: AI.h:359
const idEventDef AI_CreateMissile
void Event_FaceEntity(idEntity *ent)
Definition: AI_events.cpp:1188
void Event_EnableAFPush(void)
Definition: AI_events.cpp:2252
jointHandle_t orientationJoint
Definition: AI.h:403
void Event_GetTurnRate(void)
Definition: AI_events.cpp:2650
const float AI_TURN_PREDICTION
Definition: AI.h:41
void StaticMove(void)
Definition: AI.cpp:3212
idBounds excludeBounds
Definition: AI.h:245
bool NewWanderDir(const idVec3 &dest)
Definition: AI.cpp:2187
const idEventDef AI_TriggerParticles
void Event_TurnToEntity(idEntity *ent)
Definition: AI_events.cpp:1037
float eyeHorizontalOffset
Definition: AI.h:380
void GetMuzzle(const char *jointname, idVec3 &muzzle, idMat3 &axis)
Definition: AI.cpp:4597
float ideal_yaw
Definition: AI.h:306
Definition: Matrix.h:333
idVec3 FirstVisiblePointOnPath(const idVec3 origin, const idVec3 &target, int travelFlags) const
Definition: AI.cpp:3983
idAngles eyeMax
Definition: AI.h:401
particleEmitter_s()
Definition: AI.h:166
bool ParticlesActive(void)
idVec3 lastVisibleEnemyEyeOffset
Definition: AI.h:408
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)
void Event_TriggerParticles(const char *jointName)
Definition: AI_events.cpp:2700
void UpdateAIScript(void)
Definition: AI.cpp:1273
idPhysics_Monster physicsObj
Definition: AI.h:315
void Event_JumpFrame(void)
Definition: AI_events.cpp:2205
virtual bool CanPlayChatterSounds(void) const
Definition: AI.cpp:4745
const float SQUARE_ROOT_OF_2
Definition: AI.h:40
void Event_GetCurrentYaw(void)
Definition: AI_events.cpp:1010
void Event_SetTurnRate(float rate)
Definition: AI_events.cpp:2659
const idDeclParticle * particle
Definition: AI.h:170
float cone_dist
Definition: AI.h:724
void AnimMove(void)
Definition: AI.cpp:2729
tuple f
Definition: idal.py:89
void GetMoveDelta(const idMat3 &oldaxis, const idMat3 &axis, idVec3 &delta)
Definition: AI.cpp:2594
idVec3 startPosOutsideObstacles
Definition: AI.h:114
bool af_push_moveables
Definition: AI.h:335
void Event_BecomeRagdoll(void)
Definition: AI_events.cpp:944
Definition: AI.h:86
Definition: Actor.h:111
bool MoveDone(void) const
Definition: AI.cpp:2116
int fly_offset
Definition: AI.h:323
const idEventDef AI_EndAttack
~idAASFindCover()
Definition: AI.cpp:150
void Event_FindEnemyInCombatNodes(void)
Definition: AI_events.cpp:422
idPhysics * physics
Definition: Entity.h:377
static void FreeObstacleAvoidanceNodes(void)
Definition: AI_pathing.cpp:999
idVec3 projectileGravity
Definition: AI.h:350
void EnemyDead(void)
Definition: AI.cpp:3662
void Event_AttackMelee(const char *meleeDefName)
Definition: AI_events.cpp:742
idScriptBool AI_TALK
Definition: AI.h:422
const GLcharARB * name
Definition: glext.h:3629
float turnVel
Definition: AI.h:309
idVec3 goalEntityOrigin
Definition: AI.h:197
struct particleEmitter_s particleEmitter_t
void Event_RandomPath(void)
Definition: AI_events.cpp:786
void SpawnParticles(const char *keyName)
Definition: AI.cpp:3332
idScriptBool AI_ONGROUND
Definition: AI.h:431
Definition: Str.h:116
void Event_CanSeeEntity(idEntity *ent)
Definition: AI_events.cpp:1431
float anim_turn_yaw
Definition: AI.h:310
void Event_SetSmokeVisibility(int num, int on)
Definition: AI_events.cpp:2022
void Event_GetObstacle(void)
Definition: AI_events.cpp:2621
virtual bool Pain(idEntity *inflictor, idEntity *attacker, int damage, const idVec3 &dir, int location)
Definition: AI.cpp:3297
idList< jointHandle_t > lookJoints
Definition: AI.h:377
void Event_FireMissileAtTarget(const char *jointname, const char *targetname)
Definition: AI_events.cpp:611
void Event_ClearEnemy(void)
Definition: AI_events.cpp:551
void Event_ThrowAF(void)
Definition: AI_events.cpp:2501
idVec3 endPos
Definition: AI.h:130
int num_cinematics
Definition: AI.h:363
int shrivel_start
Definition: AI.h:387
const idEventDef AI_AttackMelee
bool MoveToEnemyHeight(void)
Definition: AI.cpp:1687
void PlayCinematic(void)
Definition: AI.cpp:3529
void Event_WaitMove(void)
Definition: AI_events.cpp:1343
bool ignore_obstacles
Definition: AI.h:300
jointHandle_t flyTiltJoint
Definition: AI.h:318
void InitMuzzleFlash(void)
Definition: AI.cpp:1013
void Event_StopMove(void)
Definition: AI_events.cpp:1057
void Event_PreBurn(void)
Definition: AI_events.cpp:1985
int anim
Definition: AI.h:209
idScriptBool AI_ENEMY_DEAD
Definition: AI.h:429
void Event_CanHitEnemy(void)
Definition: AI_events.cpp:1571
int worldMuzzleFlashHandle
Definition: AI.h:394
void Event_BecomeNonSolid(void)
Definition: AI_events.cpp:933
bool lastHitCheckResult
Definition: AI.h:338
idEntityPtr< idProjectile > projectile
Definition: AI.h:351
float range
Definition: AI.h:202
bool FaceEnemy(void)
Definition: AI.cpp:1602
void FlyMove(void)
Definition: AI.cpp:3129
bool AttackMelee(const char *meleeDefName)
Definition: AI.cpp:4470
idList< idVec3 > missileLaunchOffset
Definition: AI.h:343
Definition: AI.h:64
idAASFindCover(const idVec3 &hideFromPos)
Definition: AI.cpp:136
void Event_GetTurnDelta(void)
Definition: AI_events.cpp:2076
float blockedRadius
Definition: AI.h:301
void Event_LookAtEnemy(float duration)
Definition: AI_events.cpp:2452
void Event_AllowMovement(float flag)
Definition: AI_events.cpp:2196
idVec3 moveDest
Definition: AI.h:194
void StopMove(moveStatus_t status)
Definition: AI.cpp:1574
void Event_CanReachPosition(const idVec3 &pos)
Definition: AI_events.cpp:2732
void Event_GetRandomTarget(const char *type)
Definition: AI_events.cpp:2350
moveType_t moveType
Definition: AI.h:191
idScriptBool AI_PUSHED
Definition: AI.h:440
float fly_roll_scale
Definition: AI.h:325
moveCommand_t
Definition: AI.h:63
void Event_MoveToAttackPosition(idEntity *entity, const char *attack_anim)
Definition: AI_events.cpp:1112
jointHandle_t focusJoint
Definition: AI.h:402
talkState_t
Definition: AI.h:84
idList< particleEmitter_t > particles
Definition: AI.h:391
void AdjustFlyingAngles(void)
Definition: AI.cpp:2962
void Event_MoveToPosition(const idVec3 &pos)
Definition: AI_events.cpp:1142
int chat_min
Definition: AI.h:356
static void DrawDebugInfo(void)
Definition: AI.cpp:5250
float fly_bob_strength
Definition: AI.h:320
void Event_StopRagdoll(void)
Definition: AI_events.cpp:956
void Think(void)
Definition: AI.cpp:1122
talkState_t GetTalkState(void) const
Definition: AI.cpp:3706
idEntityPtr< idEntity > goalEntity
Definition: AI.h:196
idScriptBool AI_FORWARD
Definition: AI.h:433
void Spawn(void)
Definition: AI.cpp:763
int travelFlags
Definition: AI.h:294
float turnRate
Definition: AI.h:308
void Event_FindEnemyAI(int useFOV)
Definition: AI_events.cpp:378
void TriggerParticles(const char *jointName)
Definition: AI.cpp:4830
idMoveState()
Definition: AI.cpp:55
void Turn(void)
Definition: AI.cpp:2447
GLuint start
Definition: glext.h:2845
float projectileSpeed
Definition: AI.h:348
virtual void Gib(const idVec3 &dir, const char *damageDefName)
Definition: Actor.cpp:2167
Definition: AI.h:253
idVec3 offset
Definition: AI.h:729
void Event_ClearBurn(void)
Definition: AI_events.cpp:2011
void Event_TravelDistanceBetweenPoints(const idVec3 &source, const idVec3 &dest)
Definition: AI_events.cpp:2406
void HeardSound(idEntity *ent, const char *action)
int alignHeadTime
Definition: AI.h:370
idMoveState savedMove
Definition: AI.h:297
Definition: AAS.h:75
void RemoveProjectile(void)
Definition: AI.cpp:4196
const idEventDef AI_EnableGravity
void Event_RadiusDamageFromJoint(const char *jointname, const char *damageDefName)
Definition: AI_events.cpp:763
void PushWithAF(void)
Definition: AI.cpp:4549
idAngles destLookAng
Definition: AI.h:374
bool allowMove
Definition: AI.h:332
int blockedAttackTime
Definition: AI.h:303
virtual void DormantBegin(void)
Definition: AI.cpp:1079
float shrivel_rate
Definition: AI.h:386