310 lines
10 KiB
C++
310 lines
10 KiB
C++
#pragma once
|
|
|
|
// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata.
|
|
// Original PDB header: w:\tech5\tungsten\game\decls\declprojectile.h
|
|
// Recovered logical types: 16
|
|
// Signatures retain Xbox 360 ABI evidence and may still require manual review.
|
|
|
|
|
|
// IDA Local Type ordinal 1043; PDB kind: enum.
|
|
enum idDeclProjectile::notHitscanInfo_t::homingInfo_t::attackStyle_t : __int32
|
|
{
|
|
CLUSTER_BOMB = 0x0,
|
|
GUIDED_RPG = 0x1,
|
|
JAVELIN = 0x2,
|
|
};
|
|
|
|
// IDA Local Type ordinal 1112; PDB kind: enum.
|
|
enum idDeclProjectile::projectileClientPredictive_t : __int32
|
|
{
|
|
PROJCLIENT_NONE = 0x0,
|
|
PROJCLIENT_GRENADE = 0x1,
|
|
PROJCLIENT_ROCKET = 0x2,
|
|
PROJCLIENT_HOMING = 0x3,
|
|
};
|
|
|
|
// IDA Local Type ordinal 2061; PDB kind: enum.
|
|
enum idDeclProjectile::aiDodgeType_t : __int32
|
|
{
|
|
AI_DODGE_TYPE_MELEE = 0x0,
|
|
AI_DODGE_TYPE_LIGHT = 0x1,
|
|
AI_DODGE_TYPE_MEDIUM = 0x2,
|
|
AI_DODGE_TYPE_HEAVY_CLOSE_RANGE = 0x3,
|
|
AI_DODGE_TYPE_HEAVY_MEDIUM_RANGE = 0x4,
|
|
AI_DODGE_TYPE_HEAVY_LONG_RANGE = 0x5,
|
|
};
|
|
|
|
// IDA Local Type ordinal 2876; PDB kind: enum.
|
|
enum idDeclProjectile::projectileSoundEvent_t : __int32
|
|
{
|
|
PROJSOUND_NONE = 0x0,
|
|
PROJSOUND_NORMAL = 0x1,
|
|
PROJSOUND_SILENCED = 0x2,
|
|
};
|
|
|
|
// IDA Local Type ordinal 13774; PDB kind: struct.
|
|
struct __declspec(align(4)) idDeclProjectileImpactEffect::projectileImpactEffect_t
|
|
{
|
|
idList<idMaterial const *,5> decalMaterial;
|
|
float decalSize;
|
|
int decalLifetime;
|
|
float decalDepth;
|
|
float decalAngle;
|
|
bool decalQuad;
|
|
const idDeclParticle *particleImpact;
|
|
const idSoundShader *sndImpact;
|
|
bool useSmokeSystem;
|
|
bool isBloody;
|
|
};
|
|
|
|
// IDA Local Type ordinal 13775; PDB kind: class.
|
|
class idDeclProjectileImpactEffect : public idDeclTypeInfo
|
|
{
|
|
public:
|
|
// Recovered virtual interface; IDA vtable ordinal 13776.
|
|
virtual ~idDeclProjectileImpactEffect();
|
|
virtual void LoadResource();
|
|
virtual bool ReloadIfStale();
|
|
virtual void WriteResourceFile();
|
|
virtual idResourceList *GetResourceList();
|
|
virtual void Print();
|
|
virtual void List();
|
|
virtual unsigned int GetDeclTimestamp();
|
|
virtual idDeclInfo *GetDeclInfo();
|
|
virtual bool RebuildTextSource();
|
|
virtual bool SetImplicitText();
|
|
virtual const char *DefaultDefinition();
|
|
virtual void LogMissingDecl();
|
|
virtual void Parse(idParser *);
|
|
virtual void FreeData();
|
|
virtual unsigned int Size();
|
|
|
|
idDeclProjectileImpactEffect::projectileImpactEffect_t debugDefaultEffect;
|
|
idDeclProjectileImpactEffect::projectileImpactEffect_t defaultEffect;
|
|
idDeclProjectileImpactEffect::projectileImpactEffect_t metalEffect;
|
|
idDeclProjectileImpactEffect::projectileImpactEffect_t metalHollow;
|
|
idDeclProjectileImpactEffect::projectileImpactEffect_t metalSheet;
|
|
idDeclProjectileImpactEffect::projectileImpactEffect_t stoneEffect;
|
|
idDeclProjectileImpactEffect::projectileImpactEffect_t fleshEffect;
|
|
idDeclProjectileImpactEffect::projectileImpactEffect_t fleshPlayerEffect;
|
|
idDeclProjectileImpactEffect::projectileImpactEffect_t woodEffect;
|
|
idDeclProjectileImpactEffect::projectileImpactEffect_t cardboardEffect;
|
|
idDeclProjectileImpactEffect::projectileImpactEffect_t liquidEffect;
|
|
idDeclProjectileImpactEffect::projectileImpactEffect_t glassEffect;
|
|
idDeclProjectileImpactEffect::projectileImpactEffect_t plasticEffect;
|
|
idDeclProjectileImpactEffect::projectileImpactEffect_t asphaltEffect;
|
|
idDeclProjectileImpactEffect::projectileImpactEffect_t dirtEffect;
|
|
idDeclProjectileImpactEffect::projectileImpactEffect_t concreteEffect;
|
|
idDeclProjectileImpactEffect::projectileImpactEffect_t foilageEffect;
|
|
idDeclProjectileImpactEffect::projectileImpactEffect_t linoleumEffect;
|
|
idDeclProjectileImpactEffect::projectileImpactEffect_t fabricEffect;
|
|
idDeclProjectileImpactEffect::projectileImpactEffect_t rubberEffect;
|
|
idDeclProjectileImpactEffect::projectileImpactEffect_t rockEffect;
|
|
idDeclProjectileImpactEffect::projectileImpactEffect_t steamPipeEffect;
|
|
idDeclProjectileImpactEffect::projectileImpactEffect_t waterPipeEffect;
|
|
idDeclProjectileImpactEffect::projectileImpactEffect_t armorEffect;
|
|
idDeclProjectileImpactEffect::projectileImpactEffect_t sludgeEffect;
|
|
idDeclProjectileImpactEffect::projectileImpactEffect_t bloodPoolEffect;
|
|
idDeclProjectileImpactEffect::projectileImpactEffect_t mutantFleshEffect;
|
|
idDeclProjectileImpactEffect::projectileImpactEffect_t thickPaddingEffect;
|
|
idDeclProjectileImpactEffect::projectileImpactEffect_t ricketyMetal;
|
|
idDeclProjectileImpactEffect::projectileImpactEffect_t ricketyWood;
|
|
idDeclProjectileImpactEffect::projectileImpactEffect_t bloodReplacementEffect;
|
|
};
|
|
|
|
// IDA Local Type ordinal 13778; PDB kind: struct.
|
|
struct __declspec(align(4)) idDeclProjectile::notHitscanInfo_t::physicsProperties_t
|
|
{
|
|
float density;
|
|
float linearFriction;
|
|
float angularFriction;
|
|
float contactFriction;
|
|
float linearFrictionWater;
|
|
float angularFrictionWater;
|
|
float bounciness;
|
|
bool noGravity;
|
|
};
|
|
|
|
// IDA Local Type ordinal 13779; PDB kind: struct.
|
|
struct idDeclProjectile::notHitscanInfo_t::explosion_t
|
|
{
|
|
int minDetonationDelay;
|
|
int maxDetonationDelay;
|
|
bool countDownOnThrow;
|
|
bool cookable;
|
|
bool inheritParentSpeed;
|
|
const idSoundShader *warningSound;
|
|
const idSoundShader *bounceSound;
|
|
float minSpeed;
|
|
float maxSpeed;
|
|
};
|
|
|
|
// IDA Local Type ordinal 13780; PDB kind: struct.
|
|
struct idDeclProjectile::notHitscanInfo_t::homingInfo_t
|
|
{
|
|
int arcMinAngle;
|
|
int arcMaxAngle;
|
|
float heightLimit;
|
|
idDeclProjectile::notHitscanInfo_t::homingInfo_t::attackStyle_t attackStyle;
|
|
};
|
|
|
|
// IDA Local Type ordinal 13781; PDB kind: struct.
|
|
struct idDeclProjectile::notHitscanInfo_t
|
|
{
|
|
bool fireFromMuzzle;
|
|
const idDeclEntityDef *entityDef;
|
|
idDeclProjectile::notHitscanInfo_t::physicsProperties_t physicsProperties;
|
|
const idSoundShader *explodeSound;
|
|
const idSoundShader *flySound;
|
|
int thrustDelay;
|
|
int thrustDelayVariance;
|
|
bool useLocking;
|
|
bool fireAtPoint;
|
|
float speed;
|
|
bool explodeOnImpact;
|
|
bool isRetrievable;
|
|
bool allowOnlyOne;
|
|
bool followDeployableRules;
|
|
bool inheritParentSpeed;
|
|
bool adjustStartForCollision;
|
|
float adjustFireAngle;
|
|
const idSoundShader *breakAwaySnd;
|
|
idDeclProjectile::notHitscanInfo_t::explosion_t grenadeInfo;
|
|
bool parabolicFlight;
|
|
float minTrajectoryTime;
|
|
float maxTrajectoryTime;
|
|
idDeclProjectile::notHitscanInfo_t::homingInfo_t homingInfo;
|
|
};
|
|
|
|
// IDA Local Type ordinal 13795; PDB kind: class.
|
|
class idDeclProjectile : public idDeclTypeInfo
|
|
{
|
|
public:
|
|
// Recovered virtual interface; IDA vtable ordinal 13801.
|
|
virtual ~idDeclProjectile();
|
|
virtual void LoadResource();
|
|
virtual bool ReloadIfStale();
|
|
virtual void WriteResourceFile();
|
|
virtual idResourceList *GetResourceList();
|
|
virtual void Print();
|
|
virtual void List();
|
|
virtual unsigned int GetDeclTimestamp();
|
|
virtual idDeclInfo *GetDeclInfo();
|
|
virtual bool RebuildTextSource();
|
|
virtual bool SetImplicitText();
|
|
virtual const char *DefaultDefinition();
|
|
virtual void LogMissingDecl();
|
|
virtual void Parse(idParser *);
|
|
virtual void FreeData();
|
|
virtual unsigned int Size();
|
|
|
|
idDeclProjectile::projectileClientPredictive_t clientType;
|
|
idStr clientModelName;
|
|
idVec3 clientMinAngularVelocity;
|
|
idVec3 clientMaxAngularVelocity;
|
|
float clientMaxSpeed;
|
|
float clientMinSpeed;
|
|
bool hitscan;
|
|
bool hitscan_till_solid;
|
|
bool hitscan_through_vehicles;
|
|
bool hitscan_through_water;
|
|
float deviation;
|
|
bool ribbonEffect;
|
|
idList<projectileEnvSound,5> envFireSounds;
|
|
idList<projectileEnvSound,5> envOnlineFireSounds;
|
|
idList<projectileEnvSound,5> envLastShotSound;
|
|
idList<projectileEnvSound,5> envOnlineLastShotSound;
|
|
const idSoundShader *fireSound;
|
|
const idSoundShader *onlineFireSound;
|
|
const idSoundShader *lastShotSound;
|
|
const idSoundShader *onlineLastShotSound;
|
|
bool skipEndSoundOnEarlyRelease;
|
|
idDeclProjectile::aiDodgeType_t aiDodgeType;
|
|
const idDeclAiEvent *aiEventDecl;
|
|
const idDeclAiEvent *playerAIEventDecl;
|
|
const idDeclAiEvent *explodeAIEventDecl;
|
|
const idDeclAiEvent *collideAIEventDecl;
|
|
const idDeclProjectileImpactEffect *impactEffectTable;
|
|
const idDeclFX *fxDecl;
|
|
const idDeclFX *fxDeclQuad;
|
|
idEntityInfluenceTrail impactInfluence;
|
|
idEntityInfluenceTrail influence;
|
|
idDeclProjectile::notHitscanInfo_t notHitscanInfo;
|
|
const idDeclDamage *damageDecl;
|
|
float damageFalloff;
|
|
const idDeclDamage *splashDamageDecl;
|
|
const idDeclDamage *electricDamageDecl;
|
|
const idDeclProjectile *delayedProjectile;
|
|
int delayedProjectileDelayMS;
|
|
int maxRange;
|
|
int minRange;
|
|
int optimalRange;
|
|
int maxOptimalRange;
|
|
int aimAssistRange;
|
|
float aimAssistZoomSnapScale;
|
|
float spread;
|
|
int spawnCount;
|
|
idDeclProjectile::tracerInfo_t tracerInfo;
|
|
idDeclProjectile::waterInteraction_t waterInteraction;
|
|
idDeclProjectile::weaponFeedBack_t weaponFeedBack;
|
|
idDeclProjectile::laserDotInfo_t laserDotInfo;
|
|
};
|
|
|
|
// IDA Local Type ordinal 13796; PDB kind: struct.
|
|
struct idDeclProjectile::tracerInfo_t
|
|
{
|
|
const idMaterial *tracerMtr;
|
|
const idMaterial *tracerMtrQuad;
|
|
int tracers;
|
|
bool doRandomTracers;
|
|
float tracerSpeed;
|
|
float tracerLength;
|
|
float tracerHeight;
|
|
idVec3 tracerZoomedOffset;
|
|
const idSoundShader *sndTracer;
|
|
};
|
|
|
|
// IDA Local Type ordinal 13797; PDB kind: struct.
|
|
struct idDeclProjectile::waterInteraction_t
|
|
{
|
|
bool allowWaterInteraction;
|
|
float waterHitMagnitude;
|
|
float waterHitRadius;
|
|
bool shouldIlluminateWater;
|
|
float waterIlluminationRadius;
|
|
int waterIlluminateTime;
|
|
};
|
|
|
|
// IDA Local Type ordinal 13798; PDB kind: struct.
|
|
struct idDeclProjectile::weaponFeedBack_t::weaponKikInfo_t
|
|
{
|
|
float kick;
|
|
float maxKick;
|
|
float recoilSpeed;
|
|
float recoverySpeed;
|
|
};
|
|
|
|
// IDA Local Type ordinal 13799; PDB kind: struct.
|
|
struct idDeclProjectile::weaponFeedBack_t
|
|
{
|
|
idDeclProjectile::weaponFeedBack_t::weaponKikInfo_t weaponKickInfo[5];
|
|
float controllerShakeHighMag;
|
|
int controllerShakeHighTime;
|
|
float controllerShakeLowMag;
|
|
int controllerShakeLowTime;
|
|
float spreadAdditionPerShot;
|
|
float spreadAdditionMax;
|
|
float spreadRecoveryDelay;
|
|
};
|
|
|
|
// IDA Local Type ordinal 13800; PDB kind: struct.
|
|
struct idDeclProjectile::laserDotInfo_t
|
|
{
|
|
const idMaterial *laserDotMtr;
|
|
float laserDotSize;
|
|
float laserDotDepth;
|
|
float laserDotMinSizeScale;
|
|
float laserDotMaxSizeScale;
|
|
float laserDotMaxDistance;
|
|
};
|