struct SOBJECTSTATE { enum EFireControllerIndex { eFireControllerIndex_None = 0, eFireControllerIndex_First = 1, eFireControllerIndex_Second = 2, eFireControllerIndex_Third = 3, eFireControllerIndex_Fourth = 4, eFireControllerIndex_All = 17185 }; bool jump; bool aimObstructed; bool aimTargetIsValid; bool forceWeaponAlertness; EAIFireState fire; EAIFireState fireSecondary; EAIFireState fireMelee; ERequestedGrenadeType requestedGrenadeType; int weaponAccessories; int bodystate; float lean; float peekOver; Vec3 vShootTargetPos; Vec3 vAimTargetPos; Vec3 vLookTargetPos; Vec3 vLobLaunchPosition; Vec3 vLobLaunchVelocity; SFireCommandProjectileInfo projectileInfo; ELookStyle eLookStyle; bool bAllowLowerBodyToTurn; Vec3 vMoveDir; Vec3 vForcedNavigation; Vec3 vBodyTargetDir; Vec3 vDesiredBodyDirectionAtTarget; float fForcedNavigationSpeed; unsigned int movementContext; SAIPredictedCharacterStates predictedCharacterStates; Vec3 vMoveTarget; Vec3 vInflectionPoint; float fMovementUrgency; float fDesiredSpeed; float fTargetSpeed; bool allowStrafing; bool allowEntityClampingByAnimation; float fDistanceToPathEnd; Vec3 vDirOffPath; EActorTargetPhase curActorTargetPhase; Vec3 curActorTargetFinishPos; SAIActorTargetRequest actorTargetReq; bool bCloseContact; bool bReevaluate; bool bTargetEnabled; bool bTargetIsGroupTarget; bool continuousMotion; EAITargetType eTargetType; EAITargetContextType eTargetContextType; EAITargetThreat eTargetThreat; tAIObjectID eTargetID; EAITargetType ePeakTargetType; EAITargetThreat ePeakTargetThreat; tAIObjectID ePeakTargetID; EAITargetType ePreviousPeakTargetType; EAITargetThreat ePreviousPeakTargetThreat; tAIObjectID ePreviousPeakTargetID; Vec3 vTargetPos; float fDistanceFromTarget; EAITargetStuntReaction eTargetStuntReaction; int nTargetType; DynArray<AISIGNAL> vSignals; int secondaryIndex; CAIMannequinCommandList<32> mannequinRequest; SAICoverRequest coverRequest; EBodyOrientationMode bodyOrientationMode; };
IAgent.h
enum EFireControllerIndex { eFireControllerIndex_None = 0, eFireControllerIndex_First = 1, eFireControllerIndex_Second = 2, eFireControllerIndex_Third = 3, eFireControllerIndex_Fourth = 4, eFireControllerIndex_All = 17185 };
IAgent.h
Members |
Description |
eFireControllerIndex_All = 17185 |
This value right shifted (4*n) times put in & with 0xf should give you the index of the n+1 fire controller index |
SAIActorTargetRequest actorTargetReq;
bool aimObstructed;
bool aimTargetIsValid;
bool allowEntityClampingByAnimation;
bool allowStrafing;
Whether strafing is allowed or not.
bool bAllowLowerBodyToTurn;
FR: Temporary flag to avoid the body turn while doing specific operation. It should be removed when there could be a proper procedural clip in Mannequin to lock the turn, aiming, etc.
bool bCloseContact;
EBodyOrientationMode bodyOrientationMode;
int bodystate;
bool bReevaluate;
bool bTargetEnabled;
bool bTargetIsGroupTarget;
bool continuousMotion;
SAICoverRequest coverRequest;
Vec3 curActorTargetFinishPos;
Return value.
EActorTargetPhase curActorTargetPhase;
Return value.
ELookStyle eLookStyle;
tAIObjectID ePeakTargetID;
EAITargetThreat ePeakTargetThreat;
EAITargetType ePeakTargetType;
tAIObjectID ePreviousPeakTargetID;
EAITargetThreat ePreviousPeakTargetThreat;
EAITargetType ePreviousPeakTargetType;
EAITargetContextType eTargetContextType;
tAIObjectID eTargetID;
EAITargetStuntReaction eTargetStuntReaction;
EAITargetThreat eTargetThreat;
EAITargetType eTargetType;
float fDesiredSpeed;
< in m/s
float fDistanceFromTarget;
float fDistanceToPathEnd;
float fForcedNavigationSpeed;
EAIFireState fire;
EAIFireState fireMelee;
EAIFireState fireSecondary;
float fMovementUrgency;
AISPEED_ZERO, AISPEED_SLOW, AISPEED_WALK, AISPEED_RUN, AISPEED_SPRINT. This affects animation and thus speed only indirectly, due to it affecting the available max/min speeds.
bool forceWeaponAlertness;
float fTargetSpeed;
< in m/s
bool jump;
Actor's movementlookingfiring related.
float lean;
CAIMannequinCommandList<32> mannequinRequest;
unsigned int movementContext;
flags that give context to movement, which can be used by animation selection system Hint to animation system what will happen in the future. [not used in Crysis2]
int nTargetType;
float peekOver;
SAIPredictedCharacterStates predictedCharacterStates;
SFireCommandProjectileInfo projectileInfo;
ERequestedGrenadeType requestedGrenadeType;
int secondaryIndex;
Vec3 vAimTargetPos;
The requested position to aim at. This value is slightly different from the vShootTarget, and is used for visual representation to where to shoot at. Notes: can be (0,0,0) if not begin requested!
Vec3 vBodyTargetDir;
Vec3 vDesiredBodyDirectionAtTarget;
Vec3 vDirOffPath;
displacement vector between the physical position and the current path.
Vec3 vForcedNavigation;
Vec3 vInflectionPoint;
If non-zero, contains the estimated future move target once the agent reaches the current move target.
Vec3 vLobLaunchPosition;
Vec3 vLobLaunchVelocity;
Vec3 vLookTargetPos;
The requested position to look at. Notes: can be (0,0,0) if not begin requested!
Vec3 vMoveDir;
Vec3 vMoveTarget;
If non-zero, contains the absolute position the agent should (and can) move towards.
Vec3 vShootTargetPos;
The requested position to shoot at. This value must be passed directly to weapon system, the AI system has decided already if the shot should miss or hit. Notes: can be (0,0,0) if not begin requested!
DynArray<AISIGNAL> vSignals;
Vec3 vTargetPos;
int weaponAccessories;
Weapon accessories to enable.
bool operator ==(SOBJECTSTATE& other);
void ClearSignals();
void FullReset(bool clearMoveDir = false);
void Reset(bool clearMoveDir = true);
void Serialize(TSerialize ser);
SOBJECTSTATE();