458 lines
17 KiB
C++
458 lines
17 KiB
C++
#pragma once
|
|
|
|
// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata.
|
|
// Original PDB header: w:\tech5\tungsten\game\entities\drone.h
|
|
// Recovered logical types: 9
|
|
// Signatures retain Xbox 360 ABI evidence and may still require manual review.
|
|
|
|
|
|
// IDA Local Type ordinal 1952; PDB kind: unknown.
|
|
enum idDrone::<unnamed_tag> : __int32
|
|
{
|
|
BOTTOM_ATTACHMENT = 0x0,
|
|
TOP_ATTACHMENT = 0x1,
|
|
LEFT_ATTACHMENT = 0x2,
|
|
RIGHT_ATTACHMENT = 0x3,
|
|
NUM_ATTACHMENTS = 0x4,
|
|
};
|
|
|
|
// IDA Local Type ordinal 1953; PDB kind: enum.
|
|
enum idDrone::droneState_t : __int32
|
|
{
|
|
DS_WAITING = 0x0,
|
|
DS_SEARCHING = 0x1,
|
|
DS_MOVING = 0x2,
|
|
DS_SCANNING = 0x3,
|
|
DS_RETREATING = 0x4,
|
|
DS_HIDE = 0x5,
|
|
DS_DEATH = 0x6,
|
|
DS_SET_SPEED = 0x7,
|
|
DS_ADJUST_SPEED = 0x8,
|
|
DS_NUM_DRONE_STATES = 0x9,
|
|
};
|
|
|
|
// IDA Local Type ordinal 1954; PDB kind: enum.
|
|
enum idDrone::droneMoveState_t : __int32
|
|
{
|
|
DMS_STOPPED = 0x0,
|
|
DMS_SEARCHING = 0x1,
|
|
DMS_SLOW = 0x2,
|
|
DMS_NORMAL = 0x3,
|
|
DMS_FAST = 0x4,
|
|
DMS_NUM_DRONE_MOVE_STATES = 0x5,
|
|
};
|
|
|
|
// IDA Local Type ordinal 1955; PDB kind: enum.
|
|
enum idDrone::dronePathType_t : __int32
|
|
{
|
|
DPT_MOVE_TO = 0x0,
|
|
DPT_PATROL = 0x1,
|
|
DPT_SEARCH = 0x2,
|
|
DPT_GOAL = 0x3,
|
|
DPT_AVOID = 0x4,
|
|
DPT_NUM_DRONE_PATH_TYPES = 0x5,
|
|
};
|
|
|
|
// IDA Local Type ordinal 1956; PDB kind: enum.
|
|
enum idDrone::droneDeath_t : __int32
|
|
{
|
|
DD_EXPLOSION = 0x0,
|
|
DD_SPINNING_OUT_OF_CONTROL = 0x1,
|
|
DD_RANDOM_DRONE_DEATH = 0x2,
|
|
};
|
|
|
|
// IDA Local Type ordinal 15945; PDB kind: class.
|
|
class __declspec(align(8)) idDrone : public idAnimatedEntity
|
|
{
|
|
public:
|
|
// Recovered virtual interface; IDA vtable ordinal 15979.
|
|
virtual idTypeInfo *GetType();
|
|
virtual ~idDrone();
|
|
virtual idEventArg *CallEvent(idEventArg *result, const idEventDef *, const idEventArg *);
|
|
virtual bool RespondsTo(const idEventDef *);
|
|
virtual idEventArg *InternalCallEvent(idEventArg *result, const idEventDef *, const idEventArg *);
|
|
virtual bool InternalRespondsTo(const idEventDef *);
|
|
virtual void PostSpawn();
|
|
virtual void Remove();
|
|
virtual void DeleteSubEntities();
|
|
virtual bool Draw(idPlayer *);
|
|
virtual void JobSync();
|
|
virtual void Think();
|
|
virtual void PauseThink();
|
|
virtual bool ShouldEnterDormancy();
|
|
virtual bool ShouldLeaveDormancy();
|
|
virtual void DormantBegin();
|
|
virtual void DormantEnd(const int);
|
|
virtual idRenderModelInfo *GetRenderModelInfo();
|
|
virtual const idRenderModelInfo *GetRenderModelInfo_2();
|
|
virtual void GetScale(idVec3 *);
|
|
virtual void SetScale(const idVec3 *);
|
|
virtual void SetModelByName(const char *);
|
|
virtual void SetModel(idRenderModel *);
|
|
virtual const idMaterial *GetCustomMaterial();
|
|
virtual void SetColor(const idVec4 *);
|
|
virtual void SetColor_2(const idColor *);
|
|
virtual void SetColor_3(const idVec3 *);
|
|
virtual void SetColor_4(float, float, float);
|
|
virtual void SetColor_5(float, float, float, float);
|
|
virtual void GetColor(idVec4 *);
|
|
virtual void GetColor_2(idColor *);
|
|
virtual void GetColor_3(idVec3 *);
|
|
virtual void Hide(bool);
|
|
virtual void Hide_2();
|
|
virtual void Show();
|
|
virtual void GetModelTransform(idVec3 *, idMat3 *);
|
|
virtual void GetSoundTransform(idVec3 *, idMat3 *);
|
|
virtual void UpdateModelTransform();
|
|
virtual void UpdateFX();
|
|
virtual void ProjectOverlay(const idVec3 *, const idVec3 *, float, const char *);
|
|
virtual idPresentable *AllocPresentable(idRenderModel *);
|
|
virtual const idComponentTimeLine *GetComponentTimeLine();
|
|
virtual idComponentTimeLine *GetComponentTimeLine_2();
|
|
virtual bool UpdateAnimationControllers();
|
|
virtual void UpdateAttachments();
|
|
virtual const idAnimStack *GetAnimStack();
|
|
virtual idAnimStack *GetAnimStack_2();
|
|
virtual idIndex<short,enum invalidJointIndex_t> *GetJointIndexFromTrace(idIndex<short,enum invalidJointIndex_t> *result, trace_t);
|
|
virtual awPathResult_t ChangeAnimWebState(const char *, const char *);
|
|
virtual awPathResult_t ChangeAnimWebState_2(const char *);
|
|
virtual awPathResult_t ForceAnimWebState(const char *);
|
|
virtual awPathResult_t ChangeAnimWebStateVia(const char *, const char *, const char *, const char *);
|
|
virtual awPathResult_t ChangeAnimWebStateVia_2(const char *, const char *);
|
|
virtual idAnimWebCmdCtx *GetAnimWebCmdCtx();
|
|
virtual const idAnimWebCmdCtx *GetAnimWebCmdCtx_2();
|
|
virtual const idAnimator_AF *GetAF();
|
|
virtual idAnimator_AF *GetAF_2();
|
|
virtual void PreBind();
|
|
virtual void PostBind();
|
|
virtual void PreUnbind();
|
|
virtual void PostUnbind();
|
|
virtual const splineLocation_t *GetSplineLocation();
|
|
virtual void SetAxis(const idMat3 *);
|
|
virtual bool CanDisablePhysics(const idEntity *);
|
|
virtual collide_t Collide(const int, trace_t *, const idVec3 *);
|
|
virtual collide_t Contact(const int, contactInfo_t *);
|
|
virtual void ApplyImpulse(const int, const int, const idVec3 *, const idVec3 *);
|
|
virtual void ApplyImpulseFromEntity(const idEntity *, const int, const idVec3 *, const idVec3 *);
|
|
virtual void ApplyForce(const int, const int, const idVec3 *, const idVec3 *);
|
|
virtual bool Crush(const int);
|
|
virtual void ApplyDamage(const int, const int, const idDeclDamage *);
|
|
virtual void ActivatePhysics(const int);
|
|
virtual void DeactivatePhysics(const int);
|
|
virtual void ApplyWaterEffects(const int, const int);
|
|
virtual void ApplyWaterSplashEffects(const int, const int, surfTypes_t, idPhysicsCallbacks::splashState_t);
|
|
virtual bool TakesDamage();
|
|
virtual void DamageFeedback(idEntity *, idEntity *, const idDeclDamage *, float *);
|
|
virtual void KilledNotification(const idEntity *, const idEntity *, const idDeclDamage *, const float);
|
|
virtual float Damage(idEntity *, idEntity *, const idDeclDamage *, const float, const idVec3 *, trace_t *);
|
|
virtual bool CalcDamageImpulse(const idEntity *, const idEntity *, const idDeclDamage *, const float, const idVec3 *, const trace_t *, idVec3 *, idVec3 *);
|
|
virtual bool IsTargetLockable(const idDeclAmmo *);
|
|
virtual void AddProjectileLock();
|
|
virtual void RemoveProjectileLock();
|
|
virtual const idScriptObject *GetScriptObject();
|
|
virtual idScriptObject *GetScriptObject_2();
|
|
virtual bool ShouldConstructScriptObjectAtSpawn();
|
|
virtual idThread *GetStateThread();
|
|
virtual int AddThread(const idHandle<int,enum invalidThreadHandle_t,0>);
|
|
virtual void RemoveThread(const idHandle<int,enum invalidThreadHandle_t,0>);
|
|
virtual idHandle<int,enum invalidThreadHandle_t,0> *GetThread(idHandle<int,enum invalidThreadHandle_t,0> *result, const int);
|
|
virtual int NumThreads();
|
|
virtual int MaxThreads();
|
|
virtual void ExecuteThread(idThread *);
|
|
virtual void ResetFSMWaitThreadIfPossible(idThread *);
|
|
virtual bool HandleGuiEvent(const sysEvent_t *);
|
|
virtual void ActivateTargets(idEntity *);
|
|
virtual bool GetRcCarCanTarget();
|
|
virtual const idBaseHealth *GetHealthComponent();
|
|
virtual idBaseHealth *GetHealthComponent_2();
|
|
virtual const idSmartLootComponent *GetSmartLootComponent();
|
|
virtual idSmartLootComponent *GetSmartLootComponent_2();
|
|
virtual void Teleport(const idVec3 *, const idAngles *);
|
|
virtual bool IsPusher();
|
|
virtual const idList<idEntityPtr<idEntity>,5> *GetTriggerTouchList();
|
|
virtual idList<idEntityPtr<idEntity>,5> *GetTriggerTouchList_2();
|
|
virtual void TestFunctionality();
|
|
virtual float GetUsableDistance();
|
|
virtual float GetCrosshairIconDistance();
|
|
virtual usableState_t GetUsableState(const idEntity *, const idFocusTrace *);
|
|
virtual bool ModifyCrosshairInfo(const idEntity *, const idFocusTrace *, const usableState_t, idCrosshairInfo *);
|
|
virtual bool IsCrosshairDisabled(const idEntity *, const idFocusTrace *, const usableState_t);
|
|
virtual bool IsCrosshairSubdued(const idEntity *, const idFocusTrace *, const usableState_t);
|
|
virtual bool IsEverUsable(const idEntity *);
|
|
virtual bool IsCurrentlyUsable(const idEntity *);
|
|
virtual bool Use(idEntity *, const usableState_t);
|
|
virtual void Dropped(idEntity *, const idDeclInventory *);
|
|
virtual const idInventoryCollection *GetInventory();
|
|
virtual idInventoryCollection *GetInventory_2();
|
|
virtual void InventoryAdded(idInventoryItem *, int);
|
|
virtual void InventoryRemoved(idInventoryItem *);
|
|
virtual const idAttachmentCollection *GetAttachments();
|
|
virtual idAttachmentCollection *GetAttachments_2();
|
|
virtual void EnableAIEventResponse(const idAIEvent::aiEventClass_t);
|
|
virtual void DisableAIEventResponse(const idAIEvent::aiEventClass_t);
|
|
virtual bool CanReceiveAIEvents(const int);
|
|
virtual bool RespondsToAIEvent(const idAIEvent *);
|
|
virtual void OnAIEvent(const idAIEvent *);
|
|
virtual bool IsDead();
|
|
virtual bool IsDying();
|
|
virtual idFaction *GetFaction();
|
|
virtual const idFaction *GetFaction_2();
|
|
virtual idEntityAuditor *GetAuditor();
|
|
virtual void GetVisibilityPoint(const visPoint_t, idVec3 *);
|
|
virtual void GetAimPoint(const aimPoint_t, idVec3 *);
|
|
virtual void GetEyePos(idVec3 *);
|
|
virtual bool IsVisible();
|
|
virtual idDynamicCoverMgr *GetDynamicCoverMgr();
|
|
virtual const idDynamicCoverMgr *GetDynamicCoverMgr_2();
|
|
virtual const idAAS2 *GetAAS();
|
|
virtual void GetViewStateFOV(idVec3 *, unsigned __int8 *, unsigned __int8 *);
|
|
virtual void GetViewStateFOV_2(idVec3 *, unsigned __int8 *, unsigned __int8 *);
|
|
virtual int GetNumRepairBotTetherPoints();
|
|
virtual bool GetRepairBotTetherPoint(const int, const int, idVec3 *);
|
|
virtual idEntityInterface *CreateEntityInterface(idGame *);
|
|
virtual void ShowEditingDialog();
|
|
virtual void UpdateEditingDialog();
|
|
virtual void UpdateModifiedProperties();
|
|
virtual inputSettings_t *GetInputSettings(inputSettings_t *result, idPlayer *);
|
|
virtual bool EvaluateControls(usercmd_t *, usercmd_t *);
|
|
virtual void CheckForErrors(idList<idStr,5> *);
|
|
virtual void DebugDrawEntity(const idColor *, int);
|
|
virtual void ClientThink();
|
|
virtual void Serialize(idSerializer *);
|
|
virtual void PostSerializeRead(bool);
|
|
virtual void OnActivate(idEntity *);
|
|
virtual void OnMakeActivatable(const bool);
|
|
virtual void OnNotifyProgressionOwner();
|
|
virtual void Reset();
|
|
virtual int GetDefaultSurfaceType();
|
|
virtual idList<idIndex<short,enum invalidJointIndex_t>,5> *GetRadiusDamageJointIndices();
|
|
virtual const idList<idIndex<short,enum invalidJointIndex_t>,5> *GetRadiusDamageJointIndices_2();
|
|
virtual idMD6Node *GetMD6Tree();
|
|
virtual const idMD6Node *GetMD6Tree_2();
|
|
virtual idAnimator_AnimWeb *GetAnimatorAnimWeb();
|
|
virtual bool IsAnimating();
|
|
virtual const idDeclFX *GetFXDecl();
|
|
virtual const idDeclFacialAnimationSet *GetFacialAnimationSet();
|
|
virtual float GetHealth();
|
|
|
|
bool slowForPlayer;
|
|
idEntityPtr<idNavSplinePath> initialPath;
|
|
idEntityPtr<idSplineWaypoint> initialWaypoint;
|
|
idDrone::droneState_t initialState;
|
|
bool fleeNearEnemyFlag;
|
|
float startingHealth;
|
|
const idDeclParticle *smokeParticle[3];
|
|
const idDeclParticle *sparkParticle[2];
|
|
const idDeclParticle *sputterParticle[3];
|
|
const idDeclParticle *deathParticle[3];
|
|
const idDeclProjectileImpactEffect *declWallSpark;
|
|
const idDeclBreakable *declBreakable;
|
|
idEnum<enum idDrone::droneState_t,9> currentState;
|
|
idEnum<enum idDrone::droneState_t,9> nextState;
|
|
int changeStateTime;
|
|
idEnum<enum idDrone::droneState_t,9> lastNonScanState;
|
|
idEnum<enum idDrone::droneMoveState_t,5> moveStates[4];
|
|
float moveStateMemberships[4];
|
|
float moveStateMembershipDeltas[4];
|
|
idDrone::dronePathType_t currentPathType;
|
|
int currentPathTypeParm;
|
|
int patrolWaypointOn;
|
|
int patrolDirection;
|
|
idList<idSplineWaypoint const *,5> patrolWaypoints;
|
|
float searchDirection;
|
|
int searchNextUpdateTime;
|
|
idList<idSplineWaypoint const *,5> goals;
|
|
idList<float,5> goalSearchDirections;
|
|
idVec3 splineAheadPositions[4];
|
|
bool firstThinkFlag;
|
|
float health;
|
|
idVec3 currentPosition;
|
|
idVec3 previousOrigin;
|
|
idVec3 desiredFacing;
|
|
idVec3 currentFacing;
|
|
float allowFacingChanges;
|
|
idMat3 currentAxis;
|
|
idMat3 previousAxis;
|
|
float desiredSpeed;
|
|
float desiredSpeedMultiplier;
|
|
float overrideMaxDesiredSpeed;
|
|
int resetSpeedOverrideCounter;
|
|
float currentSpeed;
|
|
float allowSpeedChanges;
|
|
float lastFrameOverMove;
|
|
float desiredRoll;
|
|
float currentRoll;
|
|
float allowRollChanges;
|
|
float pitchToAlterSpeed;
|
|
float lookUpToGoUpAount;
|
|
float lowerNoseWhenAccelerating;
|
|
float emergencyBrakeScaler;
|
|
float obstacleAvoidanceMaxSpeed;
|
|
idVec3 goalAvoidanceOffset;
|
|
idVec3 averageAvoidanceOffset;
|
|
int numActivates;
|
|
idAttachmentCollection attachments;
|
|
idHandle<int,enum invalidAttachment_t,-1> attachmentHandles[4];
|
|
float weaponStatus[4];
|
|
float weaponArmSpeed[4];
|
|
int weaponArmTime[4];
|
|
int weaponDisarmTime[4];
|
|
idNavSplinePosition navSplinePosition;
|
|
navSplinePath_t splinePathToGoal;
|
|
idAISplinePathMgr *splinePathMgr;
|
|
float deltaToFinalGoal;
|
|
float distanceToFinalGoal;
|
|
idNavSplinePosition immediateGoalSplinePosition;
|
|
idVec3 immediateGoalPosition;
|
|
idVec3 finalGoalPosition;
|
|
float goalRightDistance;
|
|
float splineDistanceToFinalGoal;
|
|
float rightDistanceToFinalGoal;
|
|
float nearestPlayerDistance;
|
|
float outOfControl;
|
|
idVec3 additivePosition;
|
|
idVec3 additiveMomentum;
|
|
idQuat additiveFacing;
|
|
idQuat additiveAngularMomentum;
|
|
idClipQuery clipQuery;
|
|
const idDeclParticle *groundParticlesFromFan;
|
|
float secBetweenAdd;
|
|
float maxAltitude;
|
|
float particlesMultiplier;
|
|
float addedParticleMovement;
|
|
idEntityInfluenceTrail influence;
|
|
float controllerShakeHighMag;
|
|
float controllerShakeLowMag;
|
|
int nextGroundFXTime;
|
|
idClipQuery fanToGroundQuery[3];
|
|
idList<idDrone::blendedSounds_t,5> smallEngineSounds;
|
|
idList<idDrone::blendedSounds_t,5> largeEngineSounds;
|
|
idList<idDrone::blendedSounds_t,5> afterburnerSounds;
|
|
const idSoundShader *scannerSound;
|
|
const idSoundShader *stopScannerSound;
|
|
const idSoundShader *deployWeaponSound;
|
|
const idSoundShader *stowWeaponSound;
|
|
const idSoundShader *scanPlayerSound;
|
|
const idSoundShader *explosionSound;
|
|
float minPitchByClosing;
|
|
float maxPitchByClosing;
|
|
float largeEngineThrustLevel;
|
|
float smallEngineThrustLevel;
|
|
float afterburnerThrustLevel;
|
|
float engineSoundsFade;
|
|
const idDeclTrackingParms *declTrackingParms;
|
|
idFaction faction;
|
|
float visibleSightTime;
|
|
float visibleSightRadius;
|
|
float disengageEnemyDistance;
|
|
float optimalFocusEntityDistance;
|
|
float optimalFocusAICuriosity;
|
|
float optimalFocusPlayerCuriosity;
|
|
const idMaterial *focusEntityMaterial;
|
|
float focusEntityWidth;
|
|
float focusEntityLength;
|
|
idLaserBeam focusEntityEffect;
|
|
idAIWorldState worldState;
|
|
idEntityPtr<idEntity> currentEnemy;
|
|
bool isScannerOn;
|
|
idEntityPtr<idEntity> currentScanEntity;
|
|
float currentScanEntityCuriosity;
|
|
float currentScanEntityEffectOn;
|
|
idList<idEntityPtr<idEntity>,5> previousFocusEntities;
|
|
idList<int,5> previousFocusEntityTimes;
|
|
float focusEntityScanBob;
|
|
float focusEntityScanBobDelta;
|
|
idEntityPtr<idEntity> nearestForwardAi;
|
|
int nearestForwardAiTime;
|
|
const idMaterial *thrusterMaterial;
|
|
float thrusterWidth;
|
|
float thrusterLength;
|
|
idLaserBeam thrusterEffect;
|
|
float lastThrusterPower[10];
|
|
float thrusterShown[10];
|
|
fxExtraCondition_t thrusterFx[10];
|
|
bool wasAfterburnerFxStarted;
|
|
idVec3 lastMovement;
|
|
idVec3 previousNonThrustMovement;
|
|
float thrusterPerceivedFriction;
|
|
float afterburnerAmount;
|
|
int nextAfterburnerSmokeTime;
|
|
idVec3 bobGoal;
|
|
float engineSmokeAmount;
|
|
int nextEngineSmokeTime;
|
|
int nextSputterTime;
|
|
idEffectPhysicsDebrisEmitter debrisEmitter;
|
|
idList<idEntityPtr<idEntity>,5> touching;
|
|
idNavPathPosTracker *enemyTracker;
|
|
idList<idDrone::behaviorPoint_t,5> behaviorPoints;
|
|
int nextBehaviorPointToTest;
|
|
idList<idDrone::damageBehavior_t,5> damageBehaviors;
|
|
float activateCuriosityOverride;
|
|
int currentBehaviorPoint;
|
|
idVec3 ahead[4];
|
|
float aheadDistance[4];
|
|
idVec3 toAhead[4];
|
|
idVec3 aheadToAhead[4];
|
|
float dot0to1to2;
|
|
float dot1to2to3;
|
|
bool rigidPhysicsEnabled;
|
|
idPhysics_RigidBody rigidPhysics;
|
|
bool wasRemoveEventPosted;
|
|
idDrone::droneDeath_t deathVarietyDesired;
|
|
int deathDoneTime;
|
|
idEntityPtr<idEntity> deathTrigger;
|
|
float delayToHideDrone;
|
|
float minDeathThrustDuration;
|
|
float maxDeathThrustDuration;
|
|
idVec3 recentForceApplied;
|
|
idVec3 deathThrust;
|
|
__unaligned __declspec(align(1)) idLinkList<idDrone> droneNode;
|
|
};
|
|
|
|
// IDA Local Type ordinal 15949; PDB kind: struct.
|
|
struct idDrone::blendedSounds_t
|
|
{
|
|
const idSoundShader *sound;
|
|
float minSpeedPitch;
|
|
float maxSpeedPitch;
|
|
float minThrustPitch;
|
|
float maxThrustPitch;
|
|
float minThrustVolume;
|
|
float maxThrustVolume;
|
|
};
|
|
|
|
// IDA Local Type ordinal 15975; PDB kind: struct.
|
|
struct idDrone::behaviorPoint_t
|
|
{
|
|
idEntityPtr<idEntity> entityToScan;
|
|
int minTriggerCount;
|
|
int maxTriggerCount;
|
|
float distanceToScan;
|
|
float slowDistance;
|
|
float forcedCuriosity;
|
|
float scanChance;
|
|
int maxNumScans;
|
|
idEntityPtr<idEntity> startScanTrigger;
|
|
idEntityPtr<idEntity> endScanTrigger;
|
|
idDrone::droneState_t exitScanState;
|
|
idEntityPtr<idSplineWaypoint> endScanWaypoint;
|
|
float endScanDesiredSpeedMultiplier;
|
|
bool wasDroneWithinRange;
|
|
int numScansDone;
|
|
int nextScanTime;
|
|
};
|
|
|
|
// IDA Local Type ordinal 15977; PDB kind: struct.
|
|
struct __declspec(align(4)) idDrone::damageBehavior_t
|
|
{
|
|
int minTriggerCount;
|
|
int maxTriggerCount;
|
|
float healthPercent;
|
|
idEntityPtr<idEntity> trigger;
|
|
bool scanAttackerFlag;
|
|
idEntityPtr<idEntity> scanEntity;
|
|
float forcedCuriosity;
|
|
float desiredSpeedMultiplier;
|
|
bool hasBehaviorTriggered;
|
|
};
|