diff --git a/source/engine/aas2file/aas2debugareamodel.h b/source/engine/aas2file/aas2debugareamodel.h new file mode 100644 index 0000000..b04a883 --- /dev/null +++ b/source/engine/aas2file/aas2debugareamodel.h @@ -0,0 +1,24 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\aas2file\aas2debugareamodel.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 23519; PDB kind: class. +class idAAS2DebugAreaModel : public idResource +{ +public: + // Recovered virtual interface; IDA vtable ordinal 23520. + virtual ~idAAS2DebugAreaModel(); + virtual void LoadResource(); + virtual bool ReloadIfStale(); + virtual void WriteResourceFile(); + virtual idResourceList *GetResourceList(); + virtual void Print(); + virtual void List(); + + idAAS2DebugAreaModelData data; + unsigned int sourceTimestamp; +}; diff --git a/source/engine/aas2file/aas2debugareamodeldata.h b/source/engine/aas2file/aas2debugareamodeldata.h new file mode 100644 index 0000000..a116896 --- /dev/null +++ b/source/engine/aas2file/aas2debugareamodeldata.h @@ -0,0 +1,37 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\aas2file\aas2debugareamodeldata.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 23514; PDB kind: struct. +struct idAAS2DebugAreaModelData::areaTri_t +{ + int v0; + int v1; + int v2; +}; + +// IDA Local Type ordinal 23516; PDB kind: struct. +struct idAAS2DebugAreaModelData::debugAreaInfo_t +{ + idList tris; +}; + +// IDA Local Type ordinal 23518; PDB kind: class. +class idAAS2DebugAreaModelData +{ +public: + idList vertices; + idList areas; +}; + +// IDA Local Type ordinal 23883; PDB kind: class. +class idAAS2DebugAreaModelData::LoadBinary::__l2::idLocalFileBuffer +{ +public: + unsigned int dataLen; + char *data; +}; diff --git a/source/engine/aas2file/aas2debugareamodelgenerator.h b/source/engine/aas2file/aas2debugareamodelgenerator.h new file mode 100644 index 0000000..4569e66 --- /dev/null +++ b/source/engine/aas2file/aas2debugareamodelgenerator.h @@ -0,0 +1,13 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\aas2file\aas2debugareamodelgenerator.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 23855; PDB kind: class. +class idAAS2DebugAreaModelGenerator +{ +public: +}; diff --git a/source/engine/aas2file/aas2file.h b/source/engine/aas2file/aas2file.h new file mode 100644 index 0000000..31cfad9 --- /dev/null +++ b/source/engine/aas2file/aas2file.h @@ -0,0 +1,94 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\aas2file\aas2file.h +// Recovered logical types: 5 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 21931; PDB kind: struct. +struct idAAS2File::bspTree_t +{ + idVec3 floorNormal; + int headNode; + int firstArea; + int lastArea; +}; + +// IDA Local Type ordinal 22000; PDB kind: class. +class idAAS2File : public idResource +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22001. + virtual ~idAAS2File(); + virtual void LoadResource(); + virtual bool ReloadIfStale(); + virtual void WriteResourceFile(); + virtual idResourceList *GetResourceList(); + virtual void Print(); + virtual void List(); + + unsigned int crc; + unsigned int timestamp; + idList visitedAreas; + idAAS2Settings settings; + int major; + int minor; + int firstFakeVertex; + int firstFakeEdge; + int firstFakeEdgeIndex; + int firstFakeArea; + idList trees; + idList planes; + idList vertices; + idList edges; + idList edgeIndex; + idList reachabilities; + idList areas; + idList nodes; + idList portals; + idList portalIndex; + idList clusters; + idList obstaclePVS; + idList reachabilityNames; + idList animNames; + idList dependencyNames; + idList interactionEntityNames; + idList traversalEntityNames; + idList cover; + idList areaCoverIndex; + idList touchingCoverIndex; + idList chokePoints; + idList traversalPoints; + idList hintNodes; + idList areaBounds; +}; + +// IDA Local Type ordinal 22021; PDB kind: struct. +struct idAAS2File::bestReachableArea_t +{ + float bboxHeight; + float maxEdgeDist; + int areaFlags; + int excludeTravelFlags; + int pointAreaNum; + float pointAreaFloorDist; + int boundsAreaNum; + float boundsAreaFloorDist; +}; + +// IDA Local Type ordinal 22022; PDB kind: struct. +struct idAAS2File::floorEdgeSplitPoint_t +{ + idVec3 point; + float dist; + int edgeNum; +}; + +// IDA Local Type ordinal 23832; PDB kind: struct. +struct idAAS2File::GetObstaclePVSWallEdges::__l25::wallEdge_t +{ + int edgeNum; + int verts[2]; + idAAS2File::GetObstaclePVSWallEdges::__l25::wallEdge_t *next; +}; diff --git a/source/engine/aas2file/aastraversalchaindata.h b/source/engine/aas2file/aastraversalchaindata.h new file mode 100644 index 0000000..96fc1b2 --- /dev/null +++ b/source/engine/aas2file/aastraversalchaindata.h @@ -0,0 +1,69 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\aas2file\aastraversalchaindata.h +// Recovered logical types: 6 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2227; PDB kind: enum. +enum idAASTraversalChainData::localFlags_t : __int32 +{ + EVASION_ONLY = 0x1, + EMERGENCY_ONLY = 0x2, + COMBAT_ONLY = 0x4, + ENABLED = 0x8, + RUN_WHEN_DONE = 0x10, + DELTA_CORRECT = 0x20, + MAX_FLAG_BITS = 0x6, +}; + +// IDA Local Type ordinal 2933; PDB kind: enum. +enum idAASTraversalChainData::localClass_t : __int32 +{ + CLASS_A = 0x1, + CLASS_B = 0x2, + CLASS_C = 0x4, + CLASS_D = 0x8, + CLASS_E = 0x10, + MAX_CLASS_BITS = 0x5, +}; + +// IDA Local Type ordinal 14103; PDB kind: struct. +const struct aas2Traversal_t +{ + idVec3 startPoint; + idVec3 endPoint; + idQuantizedVec3 orientationFwd; + idQuantizedVec3 extrusionFwd; + idIndex animIndex; + idIndex reachabilityIndex; + idIndex dependencyIndex; + idIndex interactionEntIndex; + __int16 extrusionDistance; + __int16 startAreaNum; + __int16 endAreaNum; + idIndex traversalNameIndex; + unsigned int flags; +}; + +// IDA Local Type ordinal 20467; PDB kind: class. +class idAASTraversalChainData +{ +public: + aasType_t mAASType; + idAASTraversalChainData::localClass_t mClass; + idAASTraversalChainData::localFlags_t mFlags; + idVec3 mExtrusionEndpoint; + const idDeclAnimWeb *mAnimWeb; +}; + +// IDA Local Type ordinal 22459; PDB kind: struct. +struct idAASTraversalChainData::flagMap_t +{ + int gameFlag; + int aasFlag; +}; + +// IDA Local Type ordinal 27754; PDB kind: typedef. +typedef idIndex aasTraversalNameIndex_t; diff --git a/source/engine/cm/collisiongrid.h b/source/engine/cm/collisiongrid.h new file mode 100644 index 0000000..47d950f --- /dev/null +++ b/source/engine/cm/collisiongrid.h @@ -0,0 +1,56 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\cm\collisiongrid.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15896; PDB kind: class. +class idCollisionGridState +{ +public: + const idMaterial *material; + int numActive; + int firstActive; + idBitArray active; +}; + +// IDA Local Type ordinal 15897; PDB kind: class. +class idCollisionGrid : public idResource +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15898. + virtual ~idCollisionGrid(); + virtual void LoadResource(); + virtual bool ReloadIfStale(); + virtual void WriteResourceFile(); + virtual idResourceList *GetResourceList(); + virtual void Print(); + virtual void List(); + virtual void CreateState(idCollisionGridState *); + virtual void InactivateFill(const idVec2i *, int, idCollisionGridState *); + virtual bool IsValid(); + +}; + +// IDA Local Type ordinal 23778; PDB kind: class. +class idCollisionGridLocal : public idCollisionGrid +{ +public: + // Recovered virtual interface; IDA vtable ordinal 23779. + virtual ~idCollisionGridLocal(); + virtual void LoadResource(); + virtual bool ReloadIfStale(); + virtual void WriteResourceFile(); + virtual idResourceList *GetResourceList(); + virtual void Print(); + virtual void List(); + virtual void CreateState(idCollisionGridState *); + virtual void InactivateFill(const idVec2i *, int, idCollisionGridState *); + virtual bool IsValid(); + + idGenGridModel grid; + int binaryTimeStamp; + int sourceTimeStamp; +}; diff --git a/source/engine/cm/collisionmodel.h b/source/engine/cm/collisionmodel.h new file mode 100644 index 0000000..925a0cf --- /dev/null +++ b/source/engine/cm/collisionmodel.h @@ -0,0 +1,47 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\cm\collisionmodel.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14043; PDB kind: class. +class idCollisionModel : public idResource +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14044. + virtual ~idCollisionModel(); + virtual void LoadResource(); + virtual bool ReloadIfStale(); + virtual void WriteResourceFile(); + virtual idResourceList *GetResourceList(); + virtual void Print(); + virtual void List(); + virtual cmType_t GetModelType(); + virtual bool GetBounds(idBounds *); + virtual bool GetBox(idBox *); + virtual bool GetContents(int *); + virtual bool GetVertex(int, idVec3 *); + virtual bool GetEdge(int, idVec3 *, idVec3 *); + virtual bool GetPolygon(int, idFixedWinding *); + virtual int GetPolytope(int, idPlane *, int); + virtual int GetPolytopes(int *, int, idPlane *, int); + virtual idIndex *GetJoint(idIndex *result, int); + +}; + +// IDA Local Type ordinal 18656; PDB kind: class. +class idPositionedCollisionModel +{ +public: + idCollisionModel *model; + const idJointMat *modelJoints; + idVec3 modelOrigin; + idMat3 modelAxis; + int modelEntityNum; + int modelPhysicsId; + int modelBodyId; + int modelContentsOverride; + idCollisionQuery modelQuery; +}; diff --git a/source/engine/cm/collisionmodelbuilder.h b/source/engine/cm/collisionmodelbuilder.h new file mode 100644 index 0000000..f02e4e7 --- /dev/null +++ b/source/engine/cm/collisionmodelbuilder.h @@ -0,0 +1,43 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\cm\collisionmodelbuilder.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 23795; PDB kind: class. +class idCollisionModelBuilder::idStaticModelGeometry +{ +public: + const idStaticModel *staticModel; + const idMapModel *mapModel; + const idRenderModel *renderModel; + idList primitiveGroupNumbers; + idVec3 origin; + idMat3 axis; + idVec3 scale; + const idMaterial *overrideClipMaterial; +}; + +// IDA Local Type ordinal 23797; PDB kind: class. +class idCollisionModelBuilder +{ +public: +}; + +// IDA Local Type ordinal 23798; PDB kind: class. +class idCollisionModelBuilder::idCollisionModelGeometry +{ +public: + idCollisionModelLocal *collisionModel; + idStr modelName; + unsigned int fileTime; + bool isWorldEntity; + bool isStreamed; + bool isStreamArea; + bool allowDiscrete; + idVec3 streamVolumeOrigin; + idMat3 streamVolumeAxis; + idList models; +}; diff --git a/source/engine/cm/collisionmodelmanager.h b/source/engine/cm/collisionmodelmanager.h new file mode 100644 index 0000000..9c7c4b5 --- /dev/null +++ b/source/engine/cm/collisionmodelmanager.h @@ -0,0 +1,13 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\cm\collisionmodelmanager.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14007; PDB kind: class. +class idCollisionModelManager +{ +public: +}; diff --git a/source/engine/cm/collisionqueryjobmanager.h b/source/engine/cm/collisionqueryjobmanager.h new file mode 100644 index 0000000..c336b1c --- /dev/null +++ b/source/engine/cm/collisionqueryjobmanager.h @@ -0,0 +1,28 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\cm\collisionqueryjobmanager.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 23766; PDB kind: class. +class idCollisionQueryJobManager +{ +public: + idQueryData *queryData; + queryResults_t *dummyQueryResults; + int queryFrameNumber; + int stalledFrameNumber; + unsigned __int64 firstWaitTime; + int numJobGroups; + jobGroup_t *jobGroups; + idParallelJobList *jobList; + failedQuery_t failedQuery; + profile_t threadProfile[8]; + profile_t translationProfile; + profile_t rotationProfile; + profile_t contentsProfile; + profile_t contactsProfile; + profile_t clipProfile; +}; diff --git a/source/engine/cm/jobs/collisionmerge.h b/source/engine/cm/jobs/collisionmerge.h new file mode 100644 index 0000000..1ae3a66 --- /dev/null +++ b/source/engine/cm/jobs/collisionmerge.h @@ -0,0 +1,30 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\cm\jobs\collisionmerge.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 3237; PDB kind: enum. +enum collisionFeature_t : __int32 +{ + COLLISION_FEATURE_INVALID = 0x0, + COLLISION_FEATURE_VERTEX = 0x1, + COLLISION_FEATURE_EDGE = 0x2, + COLLISION_FEATURE_POLYGON = 0x3, + COLLISION_FEATURE_POLYTOPE = 0x4, +}; + +// IDA Local Type ordinal 23756; PDB kind: class. +class idCollisionDetectionMerge +{ +public: +}; + +// IDA Local Type ordinal 23757; PDB kind: struct. +struct idCollisionDetectionMerge::MergeContactsResults::__l2::contactGroup_t +{ + const contactInfo_t *contacts[12]; + int numContacts; +}; diff --git a/source/engine/cm/jobs/collisionquery.h b/source/engine/cm/jobs/collisionquery.h new file mode 100644 index 0000000..4ad2710 --- /dev/null +++ b/source/engine/cm/jobs/collisionquery.h @@ -0,0 +1,20 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\cm\jobs\collisionquery.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14071; PDB kind: class. +class idCollisionQuery +{ +public: + unsigned __int64 offset; +}; + +// IDA Local Type ordinal 23754; PDB kind: class. +class idCollisionQueryExecute +{ +public: +}; diff --git a/source/engine/cm/jobs/polygonmodel/polygonmodel.h b/source/engine/cm/jobs/polygonmodel/polygonmodel.h new file mode 100644 index 0000000..f13b154 --- /dev/null +++ b/source/engine/cm/jobs/polygonmodel/polygonmodel.h @@ -0,0 +1,17 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\cm\jobs\polygonmodel\polygonmodel.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 20007; PDB kind: struct. +struct cm_polygonModel_t +{ + int numModelTreeNodes; + int numSubModels; + cm_modelTreeNode_t *modelTreeNodes; + cm_subModel_t *subModels; + volatile char *subModelState; +}; diff --git a/source/engine/cm/jobs/spheremodel/spheremodel.h b/source/engine/cm/jobs/spheremodel/spheremodel.h new file mode 100644 index 0000000..2faf702 --- /dev/null +++ b/source/engine/cm/jobs/spheremodel/spheremodel.h @@ -0,0 +1,35 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\cm\jobs\spheremodel\spheremodel.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 20008; PDB kind: struct. +struct cm_sphereModel_t +{ + unsigned int totalSize; + unsigned int timeStamp; + idBounds bounds; + unsigned int contents; + unsigned __int16 numModelJoints; + unsigned __int16 numSpheres; + unsigned __int16 jointOffset; + unsigned __int16 offsetXOffset; + unsigned __int16 offsetYOffset; + unsigned __int16 offsetZOffset; + unsigned __int16 radiusOffset; + unsigned __int16 surfTypeOffset; +}; + +// IDA Local Type ordinal 20016; PDB kind: struct. +struct cm_sphereModelPtrs_t +{ + unsigned __int8 *joint; + float *offsetX; + float *offsetY; + float *offsetZ; + float *radius; + unsigned __int8 *surfType; +}; diff --git a/source/engine/compilers/aas2/bspsurface.h b/source/engine/compilers/aas2/bspsurface.h new file mode 100644 index 0000000..417705f --- /dev/null +++ b/source/engine/compilers/aas2/bspsurface.h @@ -0,0 +1,99 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\compilers\aas2\bspsurface.h +// Recovered logical types: 10 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 3262; PDB kind: unknown. +enum idBSPSurface:: : __int32 +{ + ON_EDGE_NOT = 0x0, + ON_EDGE_ON_LINE = 0x1, + ON_EDGE_ON_EDGE = 0x2, + ON_EDGE_ON_START = 0x4, + ON_EDGE_ON_END = 0x8, +}; + +// IDA Local Type ordinal 23856; PDB kind: class. +class idBSPSurfacePlane +{ +public: + long double a; + long double b; + long double c; + long double d; +}; + +// IDA Local Type ordinal 23858; PDB kind: class. +class idBSPSurfaceVert +{ +public: + idVec3 xyz; + int flags; +}; + +// IDA Local Type ordinal 23860; PDB kind: class. +class idBSPSurfaceEdge +{ +public: + int verts[2]; + int tris[2]; + int numTris; + int flags; +}; + +// IDA Local Type ordinal 23862; PDB kind: class. +class idBSPSurfaceTriInfo +{ +public: + int flags; + int planeNum; +}; + +// IDA Local Type ordinal 23865; PDB kind: class. +class __declspec(align(4)) idBSPSurface +{ +public: + idList verts; + idList indexes; + idList edges; + idList edgeIndexes; + idList vertexEdges; + idList vertexEdgeChain; + idList triangleInfo; + idList trianglePlanes; + struct idBSPSurfaceTracer *tracer; + idBounds bounds; + bool hasTriInfo; + bool boundsValid; +}; + +// IDA Local Type ordinal 23873; PDB kind: struct. +struct idBSPSurface::triangleIntersection_t +{ + idVec3 point; + float dist; +}; + +// IDA Local Type ordinal 23874; PDB kind: struct. +struct idBSPSurface::vertexRemap_t +{ + int vertexNum; + idBSPSurface::vertexRemap_t *next; +}; + +// IDA Local Type ordinal 23875; PDB kind: struct. +struct idBSPSurface::edgeRemap_t +{ + int e0; + int e1; +}; + +// IDA Local Type ordinal 23876; PDB kind: struct. +struct idBSPSurface::step_t +{ + int topEdgeNum; + int bottomEdgeNum; +}; diff --git a/source/engine/compilers/aas2/edgebsp.h b/source/engine/compilers/aas2/edgebsp.h new file mode 100644 index 0000000..49fc33d --- /dev/null +++ b/source/engine/compilers/aas2/edgebsp.h @@ -0,0 +1,110 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\compilers\aas2\edgebsp.h +// Recovered logical types: 7 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 23857; PDB kind: class. +class idEdgeBSPNode +{ +public: + idBSPSurfacePlane plane; + idEdgeBSPNode *parent; + idEdgeBSPNode *children[2]; + idBSPSurface *surface; + idBounds cullBounds; + int areaNum; + int floorColor; + idList edges; + edgeBSPNodeType_t type; + int flags; + float height; + int nodeNum; +}; + +// IDA Local Type ordinal 23869; PDB kind: class. +class idEdgeBSPEdge +{ +public: + int flags; + int verts[2]; + idEdgeBSPNode *nodes[2]; +}; + +// IDA Local Type ordinal 23871; PDB kind: class. +class idEdgeBSP +{ +public: + idBounds bounds; + idVec3 normal; + int edgeFlag; + int walkableTriangleFlag; + int ignoreTriangleFlag; + int stepSideTriangleFlag; + float minFloorThickness; + float minCornerFloorSurfaceArea; + float minHighCeiling; + idEdgeBSPNode *root; + idList nodeList; + int numThreads; + idList threadSilEdges; + idList threadSilVerts; + struct idSysWorkerThreadGroup *findSplitter; + int numSplits; + int numStitchedEdges; + int numMergedColinearEdges; + int numCollapsedFloors; + int numPairwiseMergedFloors; + int numThreeTwoMergedFloors; + int numPairwiseAfterThreeTwoMergedFloors; + int numPrunedNodes; + idVectorSet vertices; + idList vertexFlags; + idList edges; + idList firstVertexEdges; + idList firstVertexEdgeChain; + idList secondVertexEdges; + idList secondVertexEdgeChain; +}; + +// IDA Local Type ordinal 23877; PDB kind: struct. +struct idEdgeBSP::idEdgeBSPFloor +{ + int index; + float area; + float min; + float max; + bool isOutside; + bool hasHighCeiling; + idList triangles; + idList edges; + idBSPSurface *surface; +}; + +// IDA Local Type ordinal 23878; PDB kind: struct. +struct __declspec(align(4)) idEdgeBSP::idEdgeBSPFloorEdge +{ + int verts[2]; + int edgeNum; + idEdgeBSP::idEdgeBSPFloorEdge *next; + bool isVertical; +}; + +// IDA Local Type ordinal 23879; PDB kind: struct. +struct __declspec(align(4)) idEdgeBSP::idEdgeBSPFloorEdgeSequence +{ + idEdgeBSP::idEdgeBSPFloorEdge *firstEdge; + idEdgeBSP::idEdgeBSPFloorEdge *lastEdge; + int numEdges; + bool isClosed; +}; + +// IDA Local Type ordinal 23882; PDB kind: struct. +struct idEdgeBSP::idEdgeBSPFloorEdgeWindings +{ + idList sequences; + idBlockAlloc floorEdges; + idList sharedEdges; +}; diff --git a/source/engine/compilers/newmap/paralleltask.h b/source/engine/compilers/newmap/paralleltask.h new file mode 100644 index 0000000..0c84844 --- /dev/null +++ b/source/engine/compilers/newmap/paralleltask.h @@ -0,0 +1,29 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\compilers\newmap\paralleltask.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 23739; PDB kind: class. +class __declspec(align(8)) idParallelTask +{ +public: + idList printLines; + unsigned int thread; + idStr name; + parallelTaskParms_t taskParms; + __int64 startMicroseconds; + __int64 stopMicroseconds; + bool completed; + bool taskError; +}; + +// IDA Local Type ordinal 23740; PDB kind: struct. +struct parallelTaskParms_t +{ + idParallelTask *task; + unsigned int (__fastcall *function)(void *); + void *parms; +}; diff --git a/source/engine/decls/animwebs/animprops.h b/source/engine/decls/animwebs/animprops.h new file mode 100644 index 0000000..f64dec5 --- /dev/null +++ b/source/engine/decls/animwebs/animprops.h @@ -0,0 +1,21 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\animwebs\animprops.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1063; PDB kind: enum. +typedef idMD6Blend::jointMod_t:: animationPose_t; + +// IDA Local Type ordinal 15038; PDB kind: class. +class idMD6AnimProps +{ +public: + const idMD6Anim *anim; + idHandle aliasHandle; + idMD6Leaf::wrapMode_t wrap; + float rate; + unsigned int tags; +}; diff --git a/source/engine/decls/animwebs/animwebblendequation.h b/source/engine/decls/animwebs/animwebblendequation.h new file mode 100644 index 0000000..e739470 --- /dev/null +++ b/source/engine/decls/animwebs/animwebblendequation.h @@ -0,0 +1,49 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\animwebs\animwebblendequation.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2605; PDB kind: enum. +enum idAnimWebBlendEquation::result_t : __int32 +{ + PARSE_OK = 0x0, + PARSE_ERROR_UNKNOWN_TOKEN = 0x1, + PARSE_SYNTAX_ERROR = 0x2, + PARSE_MISSING_CURLY_OPEN_BRACE = 0x3, + PARSE_MISSING_CURLY_CLOSE_BRACE = 0x4, + PARSE_MISSING_COMMA = 0x5, + PARSE_UNKNOWN_SCALAR = 0x6, + PARSE_UNKNOWN_ANIMATION = 0x7, + PARSE_OUT_OF_MIXERS = 0x8, + PARSE_UNSUPPORTED_VARIABLE_REFERENCE = 0x9, + PARSE_MAX = 0xA, +}; + +// IDA Local Type ordinal 21783; PDB kind: struct. +struct idAnimWebBlendEquation::animList_t +{ + idStaticList filterList; + idStaticList animList; + idStaticList tagList; + int animPropIndex; +}; + +// IDA Local Type ordinal 21784; PDB kind: struct. +struct idAnimWebBlendEquation::existingNode_t +{ + char name[8]; + idMD6Node *node; +}; + +// IDA Local Type ordinal 21786; PDB kind: class. +class idAnimWebBlendEquation +{ +public: + int startTime; + int ticksPerSec; + idStaticList allocatedNodes; + int expressionLevel; +}; diff --git a/source/engine/decls/animwebs/animwebscalar.h b/source/engine/decls/animwebs/animwebscalar.h new file mode 100644 index 0000000..0a80776 --- /dev/null +++ b/source/engine/decls/animwebs/animwebscalar.h @@ -0,0 +1,57 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\animwebs\animwebscalar.h +// Recovered logical types: 5 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2610; PDB kind: enum. +enum idAnimWebScalarPair::fieldFlag_t : __int32 +{ + FF_NO_OVERRIDE = 0x0, + FF_COPY_PRE_BLEND = 0x1, + FF_COPY_ON_PLAY = 0x2, + FF_INDEX_MODULO = 0x4, + FF_INDEX_OFFSET = 0x8, + FF_INDEX_TAG = 0x10, +}; + +// IDA Local Type ordinal 2611; PDB kind: enum. +enum idAnimWebScalarPair::scalarType_t : __int32 +{ + FT_CUR_ALPHA = 0x0, + FT_RATE_SCALE = 0x1, + FT_ANIMATION = 0x2, + FT_PAUSE_FRAME = 0x3, + FT_COORDINATE = 0x4, +}; + +// IDA Local Type ordinal 2752; PDB kind: enum. +enum idAnimWebScalar::flags_t : __int32 +{ + AWSFLAG_INIT_TO_1 = 0x1, +}; + +// IDA Local Type ordinal 15060; PDB kind: class. +class idAnimWebScalar +{ +public: + idAtomicString name; + unsigned __int8 flags; + __int16 scalarIndex; + float *scalarPtr; +}; + +// IDA Local Type ordinal 15069; PDB kind: class. +class idAnimWebScalarPair +{ +public: + int scalarIndex; + int coordinateIndex; + idMD6Node *node; + unsigned __int8 fieldType; + unsigned __int8 fieldFlags; + unsigned __int8 data1; + unsigned __int8 data2; +}; diff --git a/source/engine/decls/animwebs/blendparms.h b/source/engine/decls/animwebs/blendparms.h new file mode 100644 index 0000000..1697d4e --- /dev/null +++ b/source/engine/decls/animwebs/blendparms.h @@ -0,0 +1,36 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\animwebs\blendparms.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1061; PDB kind: enum. +enum blendParms_t::blendFlags_t : __int32 +{ + BLENDFLAG_SOURCE_END_RELATIVE = 0x1, + BLENDFLAG_DEST_END_RELATIVE = 0x2, + BLENDFLAG_CONVERT_SOURCE_TO_RELATIVE = 0x4, + BLENDFLAG_CONVERT_DEST_TO_RELATIVE = 0x8, +}; + +// IDA Local Type ordinal 14301; PDB kind: struct. +struct __declspec(align(2)) blendParms_t::parms_t +{ + const idMD6Anim *srcAnim; + const idMD6Anim *destAnim; + __int16 sourceStartFrame; + __int16 sourceDuration; + __int16 destStartFrame; + __int16 destDuration; + char flags; + char originBlend; + char blendType; +}; + +// IDA Local Type ordinal 14302; PDB kind: class,struct. +struct blendParms_t +{ + blendParms_t::parms_t parms; +}; diff --git a/source/engine/decls/animwebs/declanimweb.h b/source/engine/decls/animwebs/declanimweb.h new file mode 100644 index 0000000..1e26183 --- /dev/null +++ b/source/engine/decls/animwebs/declanimweb.h @@ -0,0 +1,193 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\animwebs\declanimweb.h +// Recovered logical types: 18 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1341; PDB kind: enum. +enum idDeclAnimWeb::invalidNodeIndex_t : __int32 +{ + INVALID_NODE_INDEX = 0xFFFFFFFF, +}; + +// IDA Local Type ordinal 2264; PDB kind: enum. +enum idDeclAnimWeb::invalidStateIndex_t : __int32 +{ + INVALID_STATE_INDEX = 0xFFFFFFFF, +}; + +// IDA Local Type ordinal 2266; PDB kind: enum. +enum idDeclAnimWeb::invalidSubWebIndex_t : __int32 +{ + INVALID_SUBWEB_INDEX = 0xFFFFFFFF, +}; + +// IDA Local Type ordinal 2709; PDB kind: enum. +enum idDeclAnimWeb::invalidEdgeIndex_t : __int32 +{ + INVALID_EDGE_INDEX = 0xFFFFFFFF, +}; + +// IDA Local Type ordinal 2710; PDB kind: enum. +enum idDeclAnimWeb::invalidModelIndex_t : __int32 +{ + INVALID_MODEL_INDEX = 0xFFFFFFFF, +}; + +// IDA Local Type ordinal 2711; PDB kind: enum. +enum idDeclAnimWeb::invalidLayerIndex_t : __int32 +{ + INVALID_LAYER_INDEX = 0xFFFFFFFF, +}; + +// IDA Local Type ordinal 2712; PDB kind: enum. +enum idDeclAnimWeb::nodeProps_t : __int32 +{ + NP_ANIM = 0x0, + NP_WRAP = 0x1, + NP_RATE = 0x2, + NP_DELTA = 0x3, + NP_BLENDEQ = 0x4, + NP_TRANSITION = 0x5, + NP_MAX = 0x6, +}; + +// IDA Local Type ordinal 2713; PDB kind: enum. +enum idDeclAnimWeb::subWebBlend_t : __int32 +{ + SUBWEBBLEND_USE_SOURCE_NODE = 0x0, + SUBWEBBLEND_ALWAYS_BLEND_OUT_ANYWHERE = 0x1, + SUBWEBBLEND_MAX = 0x2, +}; + +// IDA Local Type ordinal 14265; PDB kind: class. +class __declspec(align(4)) idDeclAnimWebTag +{ +public: + idAtomicString name; + bool isDefault; +}; + +// IDA Local Type ordinal 14267; PDB kind: class. +class idDeclAnimWebTagGroup +{ +public: + idAtomicString name; + idList tagList; +}; + +// IDA Local Type ordinal 15035; PDB kind: class. +class idDeclAnimWeb::stateList_t +{ +public: + idIndex stateIndex[4]; + unsigned __int16 numStates; +}; + +// IDA Local Type ordinal 15048; PDB kind: class. +class __declspec(align(2)) idDeclAnimWeb::idSubWebInfo +{ +public: + idList,32> nodes; + idAtomicString name; + idColor color; + bool isHub; + bool isVisible; + bool used; +}; + +// IDA Local Type ordinal 15050; PDB kind: class. +class idDeclAnimWeb::idStateInfo +{ +public: + idAtomicString name; +}; + +// IDA Local Type ordinal 15056; PDB kind: class. +class idDeclAnimWeb::idEdgeCache +{ +public: + idIndex destNodeIndex; + unsigned __int8 weightScale; + unsigned __int8 flags; +}; + +// IDA Local Type ordinal 15058; PDB kind: class. +class idDeclAnimWeb::idNodeCache +{ +public: + unsigned __int16 numEdges; + unsigned __int8 flags; + unsigned __int8 pad2; + unsigned int edgeIndexOffset; +}; + +// IDA Local Type ordinal 15063; PDB kind: class. +class __declspec(align(4)) idDeclAnimWeb::idLayerInfo +{ +public: + idAtomicString name; + idList subWebsOnLayer; + bool isVisible; +}; + +// IDA Local Type ordinal 15065; PDB kind: class. +class idDeclAnimWeb::idSettings +{ +public: + idVec3 editPos; + int gridSize; + bool snapToGrid; + bool showGrid; + bool alwaysShowIntraSubwebLinks; + bool alwaysShowNodeProps; + bool showAbbreviatedNodeProps; + bool showIncomingLinks; + bool isComposite; + bool mergeModels; + bool nodeProps[6]; + int defaultBlendOutWindow; + int defaultBlendDuration; + idDeclAnimWeb::subWebBlend_t subWebBlend; +}; + +// IDA Local Type ordinal 15066; PDB kind: class. +class idDeclAnimWeb : public idDecl +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15067. + virtual ~idDeclAnimWeb(); + 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(); + + idList nodes; + idList subWebs; + idList states; + idList models; + idList edges; + idList edgeCache; + idList nodeCache; + idList scalars; + idList editorModels; + idList layers; + idIndex *edgeIndexCache; + unsigned int edgeIndexCacheSize; + int changeId; + bool expandSubWebLinks; + idDeclAnimWeb::idSettings settings; +}; diff --git a/source/engine/decls/animwebs/declanimwebedge.h b/source/engine/decls/animwebs/declanimwebedge.h new file mode 100644 index 0000000..01ed847 --- /dev/null +++ b/source/engine/decls/animwebs/declanimwebedge.h @@ -0,0 +1,25 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\animwebs\declanimwebedge.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2302; PDB kind: enum. +enum idDeclAnimWebEdge::edgeFlags_t : __int32 +{ + EDGEFLAG_RANDOM_WEIGHT = 0x1, +}; + +// IDA Local Type ordinal 15053; PDB kind: class. +class idDeclAnimWebEdge +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15054. + virtual ~idDeclAnimWebEdge(); + + idIndex destSubWebIndex; + __declspec(align(4)) blendParms_t blendParms; + unsigned __int16 customFlags; +}; diff --git a/source/engine/decls/animwebs/declanimwebnode.h b/source/engine/decls/animwebs/declanimwebnode.h new file mode 100644 index 0000000..97b70f9 --- /dev/null +++ b/source/engine/decls/animwebs/declanimwebnode.h @@ -0,0 +1,67 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\animwebs\declanimwebnode.h +// Recovered logical types: 5 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1347; PDB kind: enum. +enum idDeclAnimWebNode::nodeFlag_t : __int32 +{ + NODEFLAG_START_TRANSITION = 0x1, + NODEFLAG_STOP_TRANSITION = 0x2, + NODEFLAG_STEP_TRANSITION = 0x4, + NODEFLAG_TURN_TRANSITION = 0x8, + NODEFLAG_BLENDOUT = 0x10, + NODEFLAG_ADDITIVECAMERA = 0x20, + NODEFLAG_GENERIC_TRANSITION = 0x40, + NODEFLAG_HIDE = 0x80, +}; + +// IDA Local Type ordinal 1359; PDB kind: enum. +enum idDeclAnimWebNode::animDelta_t : __int32 +{ + ANIMDELTA_DEFAULT = 0x0, + ANIMDELTA_FULL = 0x1, + ANIMDELTA_FULL_NOCLIP = 0x2, + ANIMDELTA_FULL_GRAVITY = 0x3, + ANIMDELTA_TURN = 0x4, + ANIMDELTA_FULL_VELOCITY = 0x5, + ANIMDELTA_FULL_DRIVE_AI = 0x6, + ANIMDELTA_IGNORE = 0x7, + ANIMDELTA_MAX = 0x8, +}; + +// IDA Local Type ordinal 15042; PDB kind: class. +class idDeclAnimWebNode::idModelInfo +{ +public: + idIndex modelIndex; + idAtomicString blendEq; + idAtomicString blendEqFixed; + idList animProps; + idList *coordinates; + idList *tagGroups; +}; + +// IDA Local Type ordinal 15044; PDB kind: struct. +struct idDeclAnimWebNode::toolSettings_t +{ + idVec3 pos; +}; + +// IDA Local Type ordinal 15045; PDB kind: class. +class idDeclAnimWebNode +{ +public: + idIndex nodeIndex; + idIndex subWebIndex; + idDeclAnimWeb::stateList_t states; + unsigned __int8 animDelta; + unsigned __int8 flags; + unsigned __int16 customFlags; + idList,32> edges; + idList modelInfo; + idDeclAnimWebNode::toolSettings_t settings; +}; diff --git a/source/engine/decls/decl.h b/source/engine/decls/decl.h new file mode 100644 index 0000000..2b108e3 --- /dev/null +++ b/source/engine/decls/decl.h @@ -0,0 +1,39 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\decl.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13303; PDB kind: class. +class idDecl : public idResource +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13310. + virtual ~idDecl(); + 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(); + + char *textSource; + int textLength; + unsigned int md5Checksum; + bool programaticallyDefined; + idDeclSource *declSource; +}; + +// IDA Local Type ordinal 32608; PDB kind: typedef. +typedef idDeclFX *fxDecl; diff --git a/source/engine/decls/declaf.h b/source/engine/decls/declaf.h new file mode 100644 index 0000000..991bd62 --- /dev/null +++ b/source/engine/decls/declaf.h @@ -0,0 +1,105 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\declaf.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14650; PDB kind: class. +class idDeclAF : public idDecl +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14658. + virtual ~idDeclAF(); + 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(); + virtual void Finish(bool (__fastcall *const)(void *, const idJointMat *, const char *, idVec3 *, idMat3 *), const idJointMat *, void *); + + bool modified; + const idDeclMD6 *modelDef; + idAtomicString skin; + float defaultBouncyness; + float defaultLinearFriction; + float defaultAngularFriction; + float defaultContactFriction; + float defaultConstraintFriction; + idVec2 suspendVelocity; + idVec2 suspendAcceleration; + float noMoveTime; + float noMoveTranslation; + float noMoveRotation; + float minMoveTime; + float maxMoveTime; + int contents; + int clipMask; + idDeclAF::solverConstants_t solverConstants; + idDeclAF::solverConstants_t syncSolverConstants; + bool selfCollision; + idAtomicString base; + const idMaterial *clipMaterial; + idList bodies; + idList constraints; +}; + +// IDA Local Type ordinal 14651; PDB kind: struct. +struct idDeclAF::solverConstants_t +{ + float errorReduction; + float errorReductionMax; + float lcpEpsilon; + float limitErrorReduction; + float limitErrorReductionMax; + float limitLcpEpsilon; + float contactErrorReduction; + float contactErrorReductionMax; + float contactLcpEpsilon; + float universalErrorReduction; + float universalErrorReductionMax; + float universalTorsionLcpEpsilon; +}; + +// IDA Local Type ordinal 14654; PDB kind: class. +class idDeclAF_Body +{ +public: + idAtomicString name; + idAtomicString jointName; + declAFJointMod_t jointMod; + int modelType; + idAtomicString modelName; + idAFVector v1; + idAFVector v2; + int numSides; + float width; + float density; + idAFVector origin; + idAngles angles; + int contents; + int clipMask; + bool selfCollision; + bool noSyncCollide; + bool clearClipMaskInSolid; + float bouncyness; + idMat3 inertiaScale; + float linearFriction; + float angularFriction; + float contactFriction; + idAtomicString containedJoints; + idAFVector frictionDirection; + idAFVector contactMotorDirection; + idList,71> containedJointIndices; +}; diff --git a/source/engine/decls/declbreakable.h b/source/engine/decls/declbreakable.h new file mode 100644 index 0000000..8f8b796 --- /dev/null +++ b/source/engine/decls/declbreakable.h @@ -0,0 +1,41 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\declbreakable.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14552; PDB kind: class. +class idDeclBreakable : public idDecl +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14553. + virtual ~idDeclBreakable(); + 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(); + + idAtomicString modelName; + int numPieces; + idBreakableSettings settings; + idList explosions; + idList trails; + idList armoredPieces; + idList healthPieces; + idList decals; + idList pieceDecals; + idBreakableSpark sparks; +}; diff --git a/source/engine/decls/decldragjoints.h b/source/engine/decls/decldragjoints.h new file mode 100644 index 0000000..c617feb --- /dev/null +++ b/source/engine/decls/decldragjoints.h @@ -0,0 +1,35 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\decldragjoints.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16700; PDB kind: class. +class idDeclDragJoints : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16701. + virtual ~idDeclDragJoints(); + 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(); + + float ghostJointDistance; + idJointName baseJoint; + idList joints; + idList subWebs; +}; diff --git a/source/engine/decls/declelectricbolt.h b/source/engine/decls/declelectricbolt.h new file mode 100644 index 0000000..0228732 --- /dev/null +++ b/source/engine/decls/declelectricbolt.h @@ -0,0 +1,64 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\declelectricbolt.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15612; PDB kind: struct. +struct idDeclElectricBolt::branchOverride_t +{ + const idMaterial *material; + int frames; + int width; +}; + +// IDA Local Type ordinal 15613; PDB kind: class. +class idDeclElectricBolt : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15614. + virtual ~idDeclElectricBolt(); + 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(); + + const idMaterial *material; + bool applyGradient; + int revealTime; + float startWidth; + float endWidth; + float maxDeviation; + idVec4 color; + float brightness; + int subdivisions; + float branchProbability; + int maxBranchLevels; + float branchStartWidth; + float branchEndWidth; + idVec2 branchLength; + float maxBranchAngle; + int branchSubdivisions; + float maxBranchDeviation; + const idDeclTable *jitterTable; + const idDeclTable *jitterFalloffTable; + float jitterDecay; + float jitterSpeed; + idVec2 jitterLeftMag; + idVec2 jitterUpMag; + bool useBranchOverride; + idDeclElectricBolt::branchOverride_t branchOverride; +}; diff --git a/source/engine/decls/declentitydef.h b/source/engine/decls/declentitydef.h new file mode 100644 index 0000000..001a533 --- /dev/null +++ b/source/engine/decls/declentitydef.h @@ -0,0 +1,56 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\declentitydef.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13464; PDB kind: class. +class idDeclEntityDef : public idDecl +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13466. + virtual ~idDeclEntityDef(); + 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(); + virtual void SetInherit(const char *); + virtual void SetClass(const char *); + virtual const char *GetInherit(); + virtual const char *GetClass(); + virtual const char *GetEntityState(); + virtual int GetEntityStateLength(); + virtual int GetEntityStateLineNumber(); + virtual const char *GetEntityStateWithInheritance(); + virtual int GetEntityStateWithInheritanceLength(); + virtual int GetEntityStateWithInheritanceLineNumber(); + virtual void SetInheritedClass(bool); + virtual void SetEntityState(const char *, bool); + virtual void SetEntityState_2(const idTypeInfoTree *, bool, bool); + virtual const idDeclEntityDef *GetListedParent(); + virtual bool IsParent(const idDeclEntityDef *); + virtual void BuildText(const char *, const char *); + virtual void GetTextWithInheritance(idStr *, bool); + + idAtomicString inherit; + idAtomicString className; + idEntityDefEditorVars editorVars; + int stateOffset; + int stateLineNumberOffset; + bool expandInheritance; + idStr entityStateWithInheritanceText; + const idDeclEntityDef *listedParent; +}; diff --git a/source/engine/decls/declenv.h b/source/engine/decls/declenv.h new file mode 100644 index 0000000..48f061b --- /dev/null +++ b/source/engine/decls/declenv.h @@ -0,0 +1,34 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\declenv.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13521; PDB kind: class. +class idDeclEnv : public idDecl +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13522. + virtual ~idDeclEnv(); + 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(); + + idParmBlock parmBlock; + idAtomicString parentDeclName; + float blendDuration; +}; diff --git a/source/engine/decls/declflare.h b/source/engine/decls/declflare.h new file mode 100644 index 0000000..3575562 --- /dev/null +++ b/source/engine/decls/declflare.h @@ -0,0 +1,75 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\declflare.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13307; PDB kind: class. +class idDeclFile +{ +public: + bool hadRedefinition; + idAtomicString fileName; + idDeclInfo *defaultType; + unsigned int timestamp; + unsigned int checksum; + int fileSize; + int numLines; + bool everReloaded; + idDeclSource *firstDeclSourceInFile; + idList dependencies; + int dependenciesDynamicStartIndex; + idList includeFiles; +}; + +// IDA Local Type ordinal 13758; PDB kind: struct. +struct __declspec(align(4)) idDeclFlare::subFlare_t +{ + float width; + float height; + float minScaleX; + float minScaleY; + float viewScaleX; + float viewScaleY; + float coneAngle; + float maxDistScaleX; + float maxDistScaleY; + float scaleDistance; + float position; + idVec4 color; + const idMaterial *mtr; + bool reflectX; + bool reflectY; +}; + +// IDA Local Type ordinal 13760; PDB kind: class. +class idDeclFlare : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13761. + virtual ~idDeclFlare(); + 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(); + + idList subflares; + unsigned __int8 : 7; + __int8 useAltViewVecCalc : 1; + float viewAngleFade; + float invViewAngleFade; + float brightness; +}; diff --git a/source/engine/decls/declfx.h b/source/engine/decls/declfx.h new file mode 100644 index 0000000..5cf9b0b --- /dev/null +++ b/source/engine/decls/declfx.h @@ -0,0 +1,34 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\declfx.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13770; PDB kind: class. +class idDeclFX : public idDecl +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13771. + virtual ~idDeclFX(); + 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(); + + idList editEvents; + idList events; + int changeId; +}; diff --git a/source/engine/decls/declgametime.h b/source/engine/decls/declgametime.h new file mode 100644 index 0000000..3a13ddc --- /dev/null +++ b/source/engine/decls/declgametime.h @@ -0,0 +1,32 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\declgametime.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22039; PDB kind: class. +class idDeclGameTime : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22040. + virtual ~idDeclGameTime(); + 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(); + + slowmoParms_t slowmoParms; +}; diff --git a/source/engine/decls/declimpactparticle.h b/source/engine/decls/declimpactparticle.h new file mode 100644 index 0000000..412c80a --- /dev/null +++ b/source/engine/decls/declimpactparticle.h @@ -0,0 +1,57 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\declimpactparticle.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14535; PDB kind: class. +class idDeclImpactParticle : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14536. + virtual ~idDeclImpactParticle(); + 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(); + + const idDeclParticle *defaultPrt; + const idDeclParticle *metalPrt; + const idDeclParticle *stonePrt; + const idDeclParticle *fleshPrt; + const idDeclParticle *woodPrt; + const idDeclParticle *cardboardPrt; + const idDeclParticle *liquidPrt; + const idDeclParticle *glassPrt; + const idDeclParticle *plasticPrt; + const idDeclParticle *asphaltPrt; + const idDeclParticle *dirtPrt; + const idDeclParticle *concretePrt; + const idDeclParticle *foliagePrt; + const idDeclParticle *linoleumPrt; + const idDeclParticle *fabricPrt; + const idDeclParticle *rubberPrt; + const idDeclParticle *rockPrt; + const idDeclParticle *steamPipePrt; + const idDeclParticle *waterPipePrt; + const idDeclParticle *armorPrt; + const idDeclParticle *sludgePrt; + const idDeclParticle *shieldPrt; + const idDeclParticle *bloodPoolPrt; + const idDeclParticle *ashPrt; + const idDeclParticle *mutantFleshPrt; + const idDeclParticle *thickPaddingPrt; +}; diff --git a/source/engine/decls/declimpactsound.h b/source/engine/decls/declimpactsound.h new file mode 100644 index 0000000..1665ad3 --- /dev/null +++ b/source/engine/decls/declimpactsound.h @@ -0,0 +1,64 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\declimpactsound.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14321; PDB kind: class. +class idDeclImpactSound : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14322. + virtual ~idDeclImpactSound(); + 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(); + + const idSoundShader *defaultSound; + const idSoundShader *metalSound; + const idSoundShader *stoneSound; + const idSoundShader *fleshSound; + const idSoundShader *woodSound; + const idSoundShader *cardboardSound; + const idSoundShader *liquidSound; + const idSoundShader *glassSound; + const idSoundShader *plasticSound; + const idSoundShader *asphaltSound; + const idSoundShader *dirtSound; + const idSoundShader *concreteSound; + const idSoundShader *foliageSound; + const idSoundShader *linoleumSound; + const idSoundShader *fabricSound; + const idSoundShader *rubberSound; + const idSoundShader *rockSound; + const idSoundShader *steamPipeSound; + const idSoundShader *waterPipeSound; + const idSoundShader *armorSound; + const idSoundShader *sludgeSound; + const idSoundShader *impNestSound; + const idSoundShader *hollowMetalSound; + const idSoundShader *sheetMetalSound; + const idSoundShader *fleshPlayerSound; + const idSoundShader *bloodPoolSound; + const idSoundShader *ashSound; + const idSoundShader *mutantFleshSound; + const idSoundShader *thickPaddingSound; + const idSoundShader *playerAPCMetalSound; + const idSoundShader *ricketyMetalSound; + const idSoundShader *ricketyWoodSound; + int soundInterval; +}; diff --git a/source/engine/decls/decllayer.h b/source/engine/decls/decllayer.h new file mode 100644 index 0000000..6178e2c --- /dev/null +++ b/source/engine/decls/decllayer.h @@ -0,0 +1,31 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\decllayer.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14386; PDB kind: class. +class idDeclLayer : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14387. + virtual ~idDeclLayer(); + 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(); + +}; diff --git a/source/engine/decls/declmanager.h b/source/engine/decls/declmanager.h new file mode 100644 index 0000000..538b9ad --- /dev/null +++ b/source/engine/decls/declmanager.h @@ -0,0 +1,32 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\declmanager.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17601; PDB kind: class. +class idDeclManager +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17602. + virtual ~idDeclManager(); + virtual void Init(); + virtual void Shutdown(); + virtual void Reload(bool); + virtual void MarkStatic(); + virtual void FreeDynamic(); + virtual void RegisterDeclFolder(const char *, const char *, idDeclInfo *); + virtual int GetNumDeclTypes(); + virtual idDeclInfo *GetDeclType(const char *); + virtual idDeclInfo *GetDeclType_2(int); + virtual idDeclInfo *GetDeclTypeFromClassname(const char *); + virtual idDecl *CreateNewDecl(idDeclInfo *, const char *, const char *, const char *); + virtual void AddDependency(idDecl *, const char *); + virtual void AddDependency_2(idDecl *, const idDecl *); + virtual void ArgCompletion_DeclTypeName(idAutoComplete *); + virtual void ArgCompletion_DeclName(idAutoComplete *, idDeclInfo *); + virtual void PrintMultiplayerDeclOverrides(); + +}; diff --git a/source/engine/decls/declmanagerlocal.h b/source/engine/decls/declmanagerlocal.h new file mode 100644 index 0000000..1428961 --- /dev/null +++ b/source/engine/decls/declmanagerlocal.h @@ -0,0 +1,48 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\declmanagerlocal.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 23706; PDB kind: class. +class idDeclManagerLocal : public idDeclManager +{ +public: + // Recovered virtual interface; IDA vtable ordinal 23707. + virtual ~idDeclManagerLocal(); + virtual void Init(); + virtual void Shutdown(); + virtual void Reload(bool); + virtual void MarkStatic(); + virtual void FreeDynamic(); + virtual void RegisterDeclFolder(const char *, const char *, idDeclInfo *); + virtual int GetNumDeclTypes(); + virtual idDeclInfo *GetDeclType(const char *); + virtual idDeclInfo *GetDeclType_2(int); + virtual idDeclInfo *GetDeclTypeFromClassname(const char *); + virtual idDecl *CreateNewDecl(idDeclInfo *, const char *, const char *, const char *); + virtual void AddDependency(idDecl *, const char *); + virtual void AddDependency_2(idDecl *, const idDecl *); + virtual void ArgCompletion_DeclTypeName(idAutoComplete *); + virtual void ArgCompletion_DeclName(idAutoComplete *, idDeclInfo *); + virtual void PrintMultiplayerDeclOverrides(); + + idList declTypes; + idList loadedFiles; + int loadedFilesDynamicStartIndex; + idList declFileDependencies; + int dependenciesDynamicStartIndex; + int checksum; + idList multiplayerDeclOverrides; + idList registeredDeclLogTypes; +}; + +// IDA Local Type ordinal 23708; PDB kind: struct. +struct idDeclManagerLocal::Init::__l10::declFolder_t +{ + const char *folder; + const char *extension; + idDeclInfo *defaultType; +}; diff --git a/source/engine/decls/declmapinfo.h b/source/engine/decls/declmapinfo.h new file mode 100644 index 0000000..5461ee9 --- /dev/null +++ b/source/engine/decls/declmapinfo.h @@ -0,0 +1,65 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\declmapinfo.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13304; PDB kind: class. +class idDeclInfo : public idResourceList +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13309. + virtual ~idDeclInfo(); + virtual idResource *Alloc(const char *); + virtual int AllocSize(); + virtual idDecl *AllocDecl(); + + const char *name; + const char *classname; + const char *fileExtension; + idAtomicString nameExtension; + idAtomicString defaultFolder; + idDeclInfo *parent; + void (__fastcall *onReload)(const idDecl *); + idList declSources; + idHashIndex declSourceHash; + int declSourceDynamicStartIndex; +}; + +// IDA Local Type ordinal 17938; PDB kind: class. +class idDeclMapInfo::loadingVideos_t +{ +public: + idAtomicString layerMask; + idAtomicString videoFile; +}; + +// IDA Local Type ordinal 17940; PDB kind: class. +class idDeclMapInfo : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17941. + virtual ~idDeclMapInfo(); + 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(); + + idStrId prettyMapName; + int discNumber; + int dlcId; + idList loadingVideos; +}; diff --git a/source/engine/decls/declponytail.h b/source/engine/decls/declponytail.h new file mode 100644 index 0000000..54a4aeb --- /dev/null +++ b/source/engine/decls/declponytail.h @@ -0,0 +1,58 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\declponytail.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16478; PDB kind: class. +class idDeclPonytail::idPonytailJointInfo +{ +public: + idJointName jointName; + idTypesafeNumber limitAngle; + float lerpRate; + int targetSpringIndex; +}; + +// IDA Local Type ordinal 16480; PDB kind: class. +class idDeclPonytail::idPonytailSpringInfo +{ +public: + int ptJointIndex; + float mass; + float tightness; + float damping; + float maxLength; + float maxSpeed; + float gravityMag; +}; + +// IDA Local Type ordinal 16482; PDB kind: class. +class idDeclPonytail : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16483. + virtual ~idDeclPonytail(); + 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(); + + const idDeclMD6 *modelDef; + idAtomicString tagName; + idList jointInfo; + idList springInfo; +}; diff --git a/source/engine/decls/declproductionfilter.h b/source/engine/decls/declproductionfilter.h new file mode 100644 index 0000000..a4de5f2 --- /dev/null +++ b/source/engine/decls/declproductionfilter.h @@ -0,0 +1,33 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\declproductionfilter.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 21836; PDB kind: class. +class idDeclProductionFilter : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21837. + virtual ~idDeclProductionFilter(); + 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(); + + idList entityFilter; + idList entityRenderModelFilter; +}; diff --git a/source/engine/decls/declreachik.h b/source/engine/decls/declreachik.h new file mode 100644 index 0000000..7f861e5 --- /dev/null +++ b/source/engine/decls/declreachik.h @@ -0,0 +1,32 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\declreachik.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14337; PDB kind: class. +class idDeclReachIK : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14338. + virtual ~idDeclReachIK(); + 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(); + + idList armInfo; +}; diff --git a/source/engine/decls/declribbon.h b/source/engine/decls/declribbon.h new file mode 100644 index 0000000..9d2ee5c --- /dev/null +++ b/source/engine/decls/declribbon.h @@ -0,0 +1,70 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\declribbon.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13763; PDB kind: struct. +struct idDeclRibbon::helix_t +{ + float rotationScale; + float radius; + float velocity; + idVec2 distortion0; + idVec2 distortion1; +}; + +// IDA Local Type ordinal 13764; PDB kind: struct. +struct idDeclRibbon::turbulence_t +{ + float frequency; + float magnitude; + float velocity; + idVec4 magic; +}; + +// IDA Local Type ordinal 13765; PDB kind: class. +class idDeclRibbon : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13766. + virtual ~idDeclRibbon(); + 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(); + + const idMaterial *material; + int duration; + float maxLength; + float fadeInFraction; + float fadeOutFraction; + idVec3 gravity; + idVec3 velocity; + float startWidth; + float endWidth; + idVec4 color; + bool viewOriented; + bool reorientNodes; + bool textureRepeat; + bool textureRepeatStretch; + float textureTMin; + float textureTMax; + float nodeSubdivision; + float minNodeDistance; + idDeclRibbon::helix_t helix; + idDeclRibbon::turbulence_t turbulence; +}; diff --git a/source/engine/decls/declrollbones.h b/source/engine/decls/declrollbones.h new file mode 100644 index 0000000..25940b3 --- /dev/null +++ b/source/engine/decls/declrollbones.h @@ -0,0 +1,222 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\declrollbones.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16695; PDB kind: class. +class idDeclRollBones::idDeclRollBoneInstance +{ +public: + idStr rollSourceJoint; + idStr rollDestJoint; + float rollAmount; +}; + +// IDA Local Type ordinal 16697; PDB kind: class. +class idDeclRollBones : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16698. + virtual ~idDeclRollBones(); + 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(); + + idList rollBones; +}; + +// IDA Local Type ordinal 20084; PDB kind: class. +class __declspec(align(8)) idTestRollBones : public idAnimatedEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20085. + virtual idTypeInfo *GetType(); + virtual ~idTestRollBones(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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(); + + const idDeclRollBones *rollBonesDecl; + idStrAnimName nameBaseTrack; + bool useDualQuatSkinning; + idHandle baseTrackAlias; + idAnimator_Channel animatorBaseTrack; + idAnimator_RollBones animatorRollBones; +}; diff --git a/source/engine/decls/declskins.h b/source/engine/decls/declskins.h new file mode 100644 index 0000000..7e820eb --- /dev/null +++ b/source/engine/decls/declskins.h @@ -0,0 +1,32 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\declskins.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13529; PDB kind: class. +class idDeclSkins : public idDecl +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13530. + virtual ~idDeclSkins(); + 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(); + + idList skins; +}; diff --git a/source/engine/decls/declstaticimage.h b/source/engine/decls/declstaticimage.h new file mode 100644 index 0000000..aa0c869 --- /dev/null +++ b/source/engine/decls/declstaticimage.h @@ -0,0 +1,32 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\declstaticimage.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 20153; PDB kind: class. +class idDeclStaticImage : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20154. + virtual ~idDeclStaticImage(); + 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(); + + idAtomicString fileName; +}; diff --git a/source/engine/decls/decltable.h b/source/engine/decls/decltable.h new file mode 100644 index 0000000..8cc20d4 --- /dev/null +++ b/source/engine/decls/decltable.h @@ -0,0 +1,62 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\decltable.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13456; PDB kind: class. +class idDeclTable : public idDecl +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13457. + virtual ~idDeclTable(); + 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(); + + float left; + float right; + idLookupTable *table; +}; + +// IDA Local Type ordinal 13812; PDB kind: class. +class idDeclThrowable : public idDeclInventory +{ +public: + // Recovered virtual interface; IDA vtable ordinal 33916. + virtual ~idDeclThrowable(); + 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(); + + const idDeclProjectile *projectileDecl; + const idDeclProjectile *boostProjectileDecl; + float pitchOffsetForPlayer; + float animIndex; +}; diff --git a/source/engine/decls/decltypeinfo.h b/source/engine/decls/decltypeinfo.h new file mode 100644 index 0000000..e22d9ef --- /dev/null +++ b/source/engine/decls/decltypeinfo.h @@ -0,0 +1,36 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\decltypeinfo.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13311; PDB kind: class. +class __declspec(align(4)) idDeclTypeInfo : public idDecl +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13312. + virtual ~idDeclTypeInfo(); + 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(); + + idDeclTypeInfo *parent; + bool hasBeenParsedAtLeastOnce; +}; + +// IDA Local Type ordinal 28004; PDB kind: typedef. +typedef XGRAPHICS::_XLT_DECLTEX_INFO XLT_DECLTEX_INFO; diff --git a/source/engine/decls/decltypeinfograph.h b/source/engine/decls/decltypeinfograph.h new file mode 100644 index 0000000..a4e5db5 --- /dev/null +++ b/source/engine/decls/decltypeinfograph.h @@ -0,0 +1,297 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\decltypeinfograph.h +// Recovered logical types: 14 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 18745; PDB kind: class. +class idTypeInfoGraphItem +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18746. + virtual ~idTypeInfoGraphItem(); + virtual idColor *GetColor(idColor *result); + virtual void GetDisplayName(idStr *); + + idAtomicString name; + idAtomicString className; +}; + +// IDA Local Type ordinal 18747; PDB kind: class. +class idTypeInfoSubGraph : public idTypeInfoGraphItem +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18748. + virtual ~idTypeInfoSubGraph(); + virtual idColor *GetColor(idColor *result); + virtual void GetDisplayName(idStr *); + + idList subnodes; + idVec2 position; +}; + +// IDA Local Type ordinal 18755; PDB kind: class. +class idTypeInfoGraphNode : public idTypeInfoGraphItem +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18756. + virtual ~idTypeInfoGraphNode(); + virtual idColor *GetColor(idColor *result); + virtual void GetDisplayName(idStr *); + virtual void GetInfo(idStr *, bool *); + + idVec2 position; +}; + +// IDA Local Type ordinal 18761; PDB kind: class. +class idTypeInfoGraphLink : public idTypeInfoGraphItem +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18762. + virtual ~idTypeInfoGraphLink(); + virtual idColor *GetColor(idColor *result); + virtual void GetDisplayName(idStr *); + + int startNodeIndex; + int endNodeIndex; +}; + +// IDA Local Type ordinal 20163; PDB kind: class. +class idDeclTypeInfoGraph : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20175. + virtual ~idDeclTypeInfoGraph(); + 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(); + virtual idGraphItemFactory *GetMySubGraphFactory(); + virtual idGraphItemFactory *GetMyGraphNodeFactory(); + virtual idGraphItemFactory *GetMyGraphLinkFactory(); + virtual bool CanCreateSubGraphs(); + virtual bool CanCreateNodesOutsideOfSubGraphs(); + virtual bool AllowMultipleLinksBetweenNodes(); + virtual bool AllowLinkBetweenNodes(int, int); + virtual void OnDeclParsed(); + virtual void OnCreateLink(idTypeInfoGraphLink *); + virtual void OnDeleteLink(idTypeInfoGraphLink *); + virtual idColor *GetSubGraphColor(idColor *result, const idTypeInfoSubGraph *); + virtual idColor *GetNodeColor(idColor *result, const idTypeInfoGraphNode *); + virtual idColor *GetLinkColor(idColor *result, const idTypeInfoGraphLink *); + virtual void GetNodeInfo(const idTypeInfoGraphNode *, idStr *, bool *); + virtual void GetMainContextMenuItems(idList *); + virtual void GetSubGraphContextMenuItems(const idList *, struct idList *); + virtual void GetNodeContextMenuItems(const idList *, struct idList *); + virtual void GetLinkContextMenuItems(const idList *, idList *); + + idList subGraphs; + idList nodes; + idList links; +}; + +// IDA Local Type ordinal 20164; PDB kind: class. +class __declspec(align(4)) idDeclTypeInfoGraph::idContextMenuItemBase +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20165. + virtual ~idContextMenuItemBase(); + + idStr description; + bool isEnabled; + bool isChecked; +}; + +// IDA Local Type ordinal 20166; PDB kind: class. +class idDeclTypeInfoGraph::idContextMenuItemMain : public idDeclTypeInfoGraph::idContextMenuItemBase +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20167. + virtual ~idContextMenuItemMain(); + + void (__fastcall *callback)(idDeclTypeInfoGraph *); +}; + +// IDA Local Type ordinal 20172; PDB kind: class. +class idDeclTypeInfoGraph::idContextMenuItemLink : public idDeclTypeInfoGraph::idContextMenuItemBase +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20173. + virtual ~idContextMenuItemLink(); + + void (__fastcall *callback)(idDeclTypeInfoGraph *, const idList *); +}; + +// IDA Local Type ordinal 20176; PDB kind: class. +class idDeclTypeInfoGraphTest : public idDeclTypeInfoGraph +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20177. + virtual ~idDeclTypeInfoGraphTest(); + 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(); + virtual idGraphItemFactory *GetMySubGraphFactory(); + virtual idGraphItemFactory *GetMyGraphNodeFactory(); + virtual idGraphItemFactory *GetMyGraphLinkFactory(); + virtual bool CanCreateSubGraphs(); + virtual bool CanCreateNodesOutsideOfSubGraphs(); + virtual bool AllowMultipleLinksBetweenNodes(); + virtual bool AllowLinkBetweenNodes(int, int); + virtual void OnDeclParsed(); + virtual void OnCreateLink(idTypeInfoGraphLink *); + virtual void OnDeleteLink(idTypeInfoGraphLink *); + virtual idColor *GetSubGraphColor(idColor *result, const idTypeInfoSubGraph *); + virtual idColor *GetNodeColor(idColor *result, const idTypeInfoGraphNode *); + virtual idColor *GetLinkColor(idColor *result, const idTypeInfoGraphLink *); + virtual void GetNodeInfo(const idTypeInfoGraphNode *, idStr *, bool *); + virtual void GetMainContextMenuItems(idList *); + virtual void GetSubGraphContextMenuItems(const idList *, struct idList *); + virtual void GetNodeContextMenuItems(const idList *, struct idList *); + virtual void GetLinkContextMenuItems(const idList *, idList *); + virtual bool HighlightDeadEndNodes(); + virtual void SetHighlightDeadEndNodes(bool); + + bool highlightDeadEndNodes; + bool someOtherBool; + idDeclFX *fxDecl; +}; + +// IDA Local Type ordinal 20205; PDB kind: class. +class idDeclTypeInfoGraphSingleType : public idDeclTypeInfoGraph +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20206. + virtual ~idDeclTypeInfoGraphSingleType(); + 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(); + virtual idGraphItemFactory *GetMySubGraphFactory(); + virtual idGraphItemFactory *GetMyGraphNodeFactory(); + virtual idGraphItemFactory *GetMyGraphLinkFactory(); + virtual bool CanCreateSubGraphs(); + virtual bool CanCreateNodesOutsideOfSubGraphs(); + virtual bool AllowMultipleLinksBetweenNodes(); + virtual bool AllowLinkBetweenNodes(int, int); + virtual void OnDeclParsed(); + virtual void OnCreateLink(idTypeInfoGraphLink *); + virtual void OnDeleteLink(idTypeInfoGraphLink *); + virtual idColor *GetSubGraphColor(idColor *result, const idTypeInfoSubGraph *); + virtual idColor *GetNodeColor(idColor *result, const idTypeInfoGraphNode *); + virtual idColor *GetLinkColor(idColor *result, const idTypeInfoGraphLink *); + virtual void GetNodeInfo(const idTypeInfoGraphNode *, idStr *, bool *); + virtual void GetMainContextMenuItems(idList *); + virtual void GetSubGraphContextMenuItems(const idList *, struct idList *); + virtual void GetNodeContextMenuItems(const idList *, struct idList *); + virtual void GetLinkContextMenuItems(const idList *, idList *); + +}; + +// IDA Local Type ordinal 20207; PDB kind: class. +class idDeclTypeInfoGraphSingleTypeTest : public idDeclTypeInfoGraphSingleType +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20208. + virtual ~idDeclTypeInfoGraphSingleTypeTest(); + 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(); + virtual idGraphItemFactory *GetMySubGraphFactory(); + virtual idGraphItemFactory *GetMyGraphNodeFactory(); + virtual idGraphItemFactory *GetMyGraphLinkFactory(); + virtual bool CanCreateSubGraphs(); + virtual bool CanCreateNodesOutsideOfSubGraphs(); + virtual bool AllowMultipleLinksBetweenNodes(); + virtual bool AllowLinkBetweenNodes(int, int); + virtual void OnDeclParsed(); + virtual void OnCreateLink(idTypeInfoGraphLink *); + virtual void OnDeleteLink(idTypeInfoGraphLink *); + virtual idColor *GetSubGraphColor(idColor *result, const idTypeInfoSubGraph *); + virtual idColor *GetNodeColor(idColor *result, const idTypeInfoGraphNode *); + virtual idColor *GetLinkColor(idColor *result, const idTypeInfoGraphLink *); + virtual void GetNodeInfo(const idTypeInfoGraphNode *, idStr *, bool *); + virtual void GetMainContextMenuItems(idList *); + virtual void GetSubGraphContextMenuItems(const idList *, struct idList *); + virtual void GetNodeContextMenuItems(const idList *, struct idList *); + virtual void GetLinkContextMenuItems(const idList *, idList *); + +}; + +// IDA Local Type ordinal 21769; PDB kind: class. +class idDeclTypeInfoGraph::idContextMenuItemSubGraph : public idDeclTypeInfoGraph::idContextMenuItemBase +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21770. + virtual ~idContextMenuItemSubGraph(); + + void (__fastcall *callback)(idDeclTypeInfoGraph *, const idList *); +}; + +// IDA Local Type ordinal 21771; PDB kind: class. +class idDeclTypeInfoGraph::idContextMenuItemNode : public idDeclTypeInfoGraph::idContextMenuItemBase +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21772. + virtual ~idContextMenuItemNode(); + + void (__fastcall *callback)(idDeclTypeInfoGraph *, const idList *); +}; + +// IDA Local Type ordinal 21775; PDB kind: class. +class idDeclTypeInfoGraph::idSort_NodeIndex : public idSort_Quick +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21776. + virtual ~idSort_NodeIndex(); + virtual void Sort(int *, unsigned int); + +}; diff --git a/source/engine/decls/declvehicleprops.h b/source/engine/decls/declvehicleprops.h new file mode 100644 index 0000000..328a6bc --- /dev/null +++ b/source/engine/decls/declvehicleprops.h @@ -0,0 +1,110 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\declvehicleprops.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14510; PDB kind: struct. +struct idDeclVehicleProps::cameraPlacement_t +{ + float yaw; + float pitch; + float height; + float lateral; + float minRange; + float maxRange; + const idDeclTable *recovery; + const idDeclTable *rotationOffset; +}; + +// IDA Local Type ordinal 14554; PDB kind: class. +class idDeclVehicleProps : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14555. + virtual ~idDeclVehicleProps(); + 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(); + + idDeclVehicleProps::cameraPlacement_t camera; + idDeclVehicleProps::cameraPlacement_t camera2; + const idDeclTable *fpsStickYawTable; + const idDeclTable *fpsStickPitchTable; + steeringWheel_t steeringWheel; + float steerControlInfluence; + dialMeter_t tachometer; + dialMeter_t speedometer; + idVec3 cgLocation; + idVec3 maxCgLocation; + float maxSpeed; + float boostMaxSpeedScalar; + float additionalRaceSpeed; + float maxReverseSpeed; + float handBrakeForce; + float handbrakeFrictionScale; + float handbrakeMinThreshold; + float brakeForce; + const idDeclTable *motorTorque; + float frictionForce; + float pitchStabilization; + float rollStabilization; + float skidRoll; + float skidRollBoostMult; + bool hasBoost; + const idMaterial *boostBlurMaterial; + int baseBoostUpgrade; + idStr sheildModel; + float jumpImpulse; + bool hasEngineIdle; + bool removeOnExit; + idEntityInfluenceTrail influence; + bool remoteControl; + bool raceRemoteControl; + idList wheels; + idVehicleBodyDef body; + idVehicleSoundDef sounds; + idVehicleEffectsDef effects; + const idDeclBreakable *breakableDebris; +}; + +// IDA Local Type ordinal 17548; PDB kind: class. +class __declspec(align(4)) idDeclVehicleArmor : public idDeclInventory +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17549. + virtual ~idDeclVehicleArmor(); + 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(); + + float damageScale; + bool damageItemLast; + bool isSpike; +}; diff --git a/source/engine/decls/declwalkik.h b/source/engine/decls/declwalkik.h new file mode 100644 index 0000000..4085ad0 --- /dev/null +++ b/source/engine/decls/declwalkik.h @@ -0,0 +1,52 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\declwalkik.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15253; PDB kind: class. +class idDeclWalkIK : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15254. + virtual ~idDeclWalkIK(); + 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(); + + idList legJoints; + idAtomicString waistJoint; + idVec3 kneeDir; + float smoothing; + float waistSmoothing; + float stairSmoothing; + float stairWaistSmoothing; + float footSmoothing; + float footShift; + float waistShift; + float minWaistFloorDist; + float minWaistAnkleDist; + float footSize; + float footUpTrace; + float footDownTrace; + float footDownTraceDead; + float restrictToBoundsTolerance; + bool usePivot; + bool restrictToBounds; + bool dirsFromBasePose; + bool checkFeetForSolids; +}; diff --git a/source/engine/decls/voiceovers/annosofterrorcodes.h b/source/engine/decls/voiceovers/annosofterrorcodes.h new file mode 100644 index 0000000..e363e85 --- /dev/null +++ b/source/engine/decls/voiceovers/annosofterrorcodes.h @@ -0,0 +1,22 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\voiceovers\annosofterrorcodes.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1307; PDB kind: enum. +enum annosoftError_t : __int32 +{ + ANNOSOFT_ERROR_SUCCESS = 0x0, + ANNOSOFT_ERROR_CMDLINE_SYNC = 0x3E8, + ANNOSOFT_ERROR_NO_PHONEME_FILE = 0x3E9, + ANNOSOFT_ERROR_PHONEME_GEN_FAILED = 0x3EA, + ANNOSOFT_ERROR_INTERNAL = 0x1388, + ANNOSOFT_ERROR_NO_TEXT = 0x1389, + ANNOSOFT_ERROR_NO_SAMPLE_NAME = 0x138A, + ANNOSOFT_ERROR_INTERMEDIATE_PATH_FAILED = 0x138B, + ANNOSOFT_ERROR_WRITING_TEXT = 0x138C, + ANNOSOFT_ERROR_REGENED_AS_TEXTLESS = 0x138D, +}; diff --git a/source/engine/decls/voiceovers/declvisemeset.h b/source/engine/decls/voiceovers/declvisemeset.h new file mode 100644 index 0000000..aa2e9b7 --- /dev/null +++ b/source/engine/decls/voiceovers/declvisemeset.h @@ -0,0 +1,36 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\voiceovers\declvisemeset.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13924; PDB kind: class. +class idDeclVisemeSet : public idDecl +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13925. + virtual ~idDeclVisemeSet(); + 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(); + + idStr phonemeSet; + idList visemes; + idList phonemes; + int silenceViseme; + int silencePhoneme; +}; diff --git a/source/engine/decls/voiceovers/declvoiceover.h b/source/engine/decls/voiceovers/declvoiceover.h new file mode 100644 index 0000000..66d0242 --- /dev/null +++ b/source/engine/decls/voiceovers/declvoiceover.h @@ -0,0 +1,33 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\voiceovers\declvoiceover.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13928; PDB kind: class. +class idDeclVoiceOver : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13929. + virtual ~idDeclVoiceOver(); + 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(); + + char nextSampleToPlay; + idList tracks; +}; diff --git a/source/engine/decls/voiceovers/lexerutf8.h b/source/engine/decls/voiceovers/lexerutf8.h new file mode 100644 index 0000000..bfd931d --- /dev/null +++ b/source/engine/decls/voiceovers/lexerutf8.h @@ -0,0 +1,34 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\voiceovers\lexerutf8.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 3223; PDB kind: unknown. +enum idLexerUTF8::Error::__l14:: : __int32 +{ + BuffSize = 0x80, +}; + +// IDA Local Type ordinal 18073; PDB kind: class. +class __declspec(align(2)) idLexerUTF8 +{ +public: + idStr filename; + int flags; + const unsigned __int8 *buffer; + const unsigned __int8 *cur; + const unsigned __int8 *end; + const unsigned __int8 *prev; + unsigned int len; + int lastline; + int line; + const punctuation_t *punctuations; + int *punctuationtable; + int *nextpunctuation; + bool loaded; + bool hadError; + bool hadWarning; +}; diff --git a/source/engine/decls/voiceovers/voicetrack.h b/source/engine/decls/voiceovers/voicetrack.h new file mode 100644 index 0000000..a12884c --- /dev/null +++ b/source/engine/decls/voiceovers/voicetrack.h @@ -0,0 +1,117 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\voiceovers\voicetrack.h +// Recovered logical types: 8 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2628; PDB kind: enum. +enum idVoiceTrack::eventOffset_t : __int32 +{ + EVENTOFFSET_FORWARDS = 0x1, + EVENTOFFSET_BACKWARDS = 0xFFFFFFFF, +}; + +// IDA Local Type ordinal 13893; PDB kind: class. +class idVoiceTrack : public idResource +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13926. + virtual ~idVoiceTrack(); + virtual void LoadResource(); + virtual bool ReloadIfStale(); + virtual void WriteResourceFile(); + virtual idResourceList *GetResourceList(); + virtual void Print(); + virtual void List(); + + idList events; + idVoiceEventManager voiceEventManager; + idVoiceTrack::idFrameRef *frameRefs; + __int16 numFrameRefs; + idVoiceTrack::idFrameRefIndexBuffer indexBuffer; + bool rebuildFrameRefs; + char visemeOffsetState; + char offsetState; + idAtomicString textLangKey; + idStrId textId; + unsigned int textCRC; + unsigned int lipsyncTextCRC; + idAtomicString subtitleLangKey; + idStrId subtitleId; + const idSoundShader *soundShader; + unsigned int sampleTimestamp; + unsigned int sampleCRC; + idStr animName; + faceChannel_t faceChannel; + __int16 blendInMS; + __int16 blendOutMS; + unsigned int soundOffsetMS; + unsigned int visemeOffsetMS; + unsigned int animEventOffsetMS; + unsigned int moodEventOffsetMS; + unsigned int gameEventOffsetMS; + unsigned int textEventOffsetMS; + idVoiceTrack::flags_t flags; + float weightScale; + mood_t defaultMood; + const idDeclVisemeSet *declVisemeSet; + unsigned int timestamp; + idTypesafeNumber approximateDuration; +}; + +// IDA Local Type ordinal 13917; PDB kind: class. +class idVoiceTrack::idFrameRef +{ +public: + unsigned __int16 offset; + unsigned __int16 numIndices; +}; + +// IDA Local Type ordinal 13918; PDB kind: class. +class idVoiceTrack::idFrameRefIndexBuffer +{ +public: + unsigned __int16 curOffset; + unsigned __int16 size; + unsigned __int16 *indices; +}; + +// IDA Local Type ordinal 13919; PDB kind: struct. +struct idVoiceTrack::flags_t +{ + __int8 useExactDuration : 1; + __int8 useRealTime : 1; + __int8 edited : 1; + __int8 compressed : 1; + __int8 suppressBlinking : 1; + __int8 noLipSync : 1; + __int8 clearAnimAfter : 1; + __int8 cycleAnim : 1; +}; + +// IDA Local Type ordinal 20446; PDB kind: class. +class idVoiceTrack::idSubtitleText +{ +public: + idStr word; + idTypesafeNumber time; +}; + +// IDA Local Type ordinal 21828; PDB kind: struct. +struct idVoiceTrack::frameInfo_t +{ + int frame; + int loop; +}; + +// IDA Local Type ordinal 21829; PDB kind: struct. +struct idVoiceTrack::localizedVTROnDisc +{ + char name[256]; + char lang[16]; + int offset; + int size; + void *data; +}; diff --git a/source/engine/decls/voiceovers/voicetrack_events.h b/source/engine/decls/voiceovers/voicetrack_events.h new file mode 100644 index 0000000..8979615 --- /dev/null +++ b/source/engine/decls/voiceovers/voicetrack_events.h @@ -0,0 +1,28 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\decls\voiceovers\voicetrack_events.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13892; PDB kind: class. +class __declspec(align(2)) idVoiceEvent +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13894. + virtual ~idVoiceEvent(); + virtual const char *GetName(); + virtual float GetWeight(const int, const int); + virtual bool IsInstantaneous(); + virtual bool IsWithinInterval(const int, const int); + virtual void Write(const idVoiceTrack *, idFile_String *); + virtual void Parse(idVoiceTrack *, idLexer *); + virtual bool WriteBinary(idFile *); + virtual bool LoadBinary(idFile *); + virtual unsigned int Memory(); + + int startMS; + __int16 durationMS; + unsigned __int8 eventType; +}; diff --git a/source/engine/framework/common_local.h b/source/engine/framework/common_local.h new file mode 100644 index 0000000..c1828a7 --- /dev/null +++ b/source/engine/framework/common_local.h @@ -0,0 +1,300 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\framework\common_local.h +// Recovered logical types: 11 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2946; PDB kind: enum. +enum idCommonLocal::demoMode_t : __int32 +{ + DEMO_NONE = 0x0, + DEMO_RECORD = 0x1, + DEMO_RECORD_CLIENT = 0x2, + DEMO_PLAY = 0x3, + DEMO_TIMETRIAL = 0x4, +}; + +// IDA Local Type ordinal 2947; PDB kind: unknown. +enum idCommonLocal:: : __int32 +{ + SS_FS_READ = 0x0, + SS_FS_WRITE = 0x1, + SS_FS_MAX = 0x2, +}; + +// IDA Local Type ordinal 22480; PDB kind: class. +class __declspec(align(8)) idCommonLocal : public idCommon +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22499. + virtual ~idCommonLocal(); + virtual void Init(int, const char **, const char *); + virtual void Quit(int); + virtual void Shutdown(int); + virtual bool IsInitialized(); + virtual void BeginTerminationThread(); + virtual void EndTerminationThread(); + virtual void SyncAllBackgroundOperations(bool); + virtual void Frame(); + virtual void InitTool(const toolFlag_t); + virtual void UpdateTool(const toolFlag_t); + virtual void GetToolReferenceMap(const toolFlag_t, idStr *); + virtual void ActivateTool(bool); + virtual void RegisterMapChangeListener(idMapChangeListener *); + virtual void UnRegisterMapChangeListener(idMapChangeListener *); + virtual void WriteConfigToFile(const char *); + virtual void SetRefreshOnPrint(bool); + virtual void PrintWarnings(); + virtual void ClearWarnings(const char *); + virtual void UpdateConsoleDisplay(bool); + virtual void UpdateLevelLoadPacifier(float, pacifierState_t, bool, bool); + virtual int PlayLoadSound(); + virtual void SetLoadScreenInfo(const idStr *, const idStr *); + virtual idPlayerProfile *GetProfileFromMasterLocalUser(); + virtual int GetMasterLocalUserInputDevice(); + virtual int GetMasterLocalUserPlayerId(); + virtual idLocalUser *GetMasterLocalUser(); + virtual void ResetPlayerInput(int); + virtual void UpdateBotUserCmds(const int, const usercmd_t *); + virtual bool IsMainMenuActive(); + virtual bool IsGamePaused(); + virtual bool IsInGame(); + virtual snapshotState_t SnapshotState(); + virtual void PrepareSnapshot(idSnapShot *, gameReturn_t *, idSnapShot *); + virtual bool IsServer(); + virtual bool IsClient(); + virtual bool SnapshotsAreStalled(); + virtual bool IsMultiplayer(); + virtual bool IsToolActive(); + virtual bool AllowCheats(); + virtual void AddDialog(gameDialogMessages_t, dialogType_t, idSWFScriptFunction *, idSWFScriptFunction *, bool, const char *, int, bool, bool, bool); + virtual void AddDynamicDialog(gameDialogMessages_t, const idStaticList *, const idStaticList *, bool, idStrStatic<256>, bool, bool, bool); + virtual void AddDialogIntVal(const char *, int); + virtual void ClearDialogs(bool); + virtual bool HasDialogMsg(gameDialogMessages_t, bool *); + virtual void ClearDialog(gameDialogMessages_t, const char *, int); + virtual bool IsDialogActive(); + virtual bool IsDialogPausing(); + virtual int GetRecentInputDevice(); + virtual int GetFocusDeviceNum(); + virtual void SetFocusDeviceNum(int); + virtual int GetPauseMenuDeviceNum(); + virtual void SetPauseMenuDeviceNum(int); + virtual bool GetAutosaveEnabled(); + virtual void EnableAutosaves(bool); + virtual void ShowSaveIndicator(bool, bool); + virtual idGame *Game(); + virtual idRenderWorld *RW(); + virtual idSoundWorld *SW(); + virtual void ExecuteMapChange(const idGameSpawnInfo *, idFile *); + virtual void RecordPlayback(bool, const char *); + virtual recordState_t GetRecordState(); + virtual idRegression *GetRegression(); + virtual void RecordSnapshotFile(idFile *, unsigned int); + virtual void PlaySnapshotFile(idFile *, unsigned int); + virtual void QueueSnapshotMemFile(idFile_Memory *, unsigned int); + virtual void ClearQueuedSnapshotFile(); + virtual void PlayQueuedSnapshotFile(); + virtual void StopSnapshotFilePlayback(); + virtual void StopSnapshotFileRecord(); + virtual void CloseSnapshotFiles(); + virtual bool DemoPlaying(); + virtual bool DemoRecording(); + virtual bool TimeTrialPlaying(); + virtual bool TimeTrialRecording(); + virtual idFile *DetachActiveReadSnapshotFile(); + virtual idFile *DetachActiveWriteSnapshotFile(); + virtual idFile *GetActiveReadSnapshotFile(); + virtual idFile *GetActiveWriteSnapshotFile(); + virtual void NetReceiveReliable(int, idBitMsg *, int); + virtual void NetReceiveSnapshot(idSnapShot *); + virtual void NetReceiveUsercmds(idBitMsg *); + virtual int NetWriteResources(idLZWCompressor *, int, int, bool); + virtual void NetReadResources(idLZWCompressor *); + virtual int GetSnapRate(); + virtual bool IsLosingConnectionToHost(); + virtual idRenderVideoOverlay *VideoOverlay(); + virtual void PurgeOverlays(); + virtual idFile *GetLogfile(); + virtual const idGame *Game_2(); + + idCommonLocal::idLogFileWriter logFileWriter; + idCommonLocal::idWarningList warningList; + idCommonLocal::idRefreshOnPrint refreshOnPrint; + bool com_fullyInitialized; + bool inConsoleCommand; + bool insideUpdateScreen; + production_t production; + idSourceControlWrapper sourceControl; + char savegameCheckpointFolder[64]; + bool askedToLoadFromCheckpoint; + bool showedErrorLoadingGameDialog; + unsigned int savegameCheckpointPreviousDeviceId; + idGame *game; + idFile *eventFile; + recordState_t recordState; + idRegressionLocal regression; + bool readAsciiEvents; + int eventFileVersion; + idCommonLocal::demoMode_t demoMode; + idCommonLocal:: ssFileState[2]; + unsigned __int64 snapRate; + unsigned __int64 actualRate; + unsigned __int64 snapTime; + unsigned __int64 snapTimeDelta; + unsigned __int64 snapTimeWrite; + unsigned __int64 snapCurrentTime; + gameReturn_t snapCurrent; + gameReturn_t snapPrevious; + float snapCurrentResidual; + float snapTimeBuffered; + float effectiveSnapRate; + int totalBufferedTime; + int totalRecvTime; + idFile_Memory *queuedSnapshotFile; + unsigned int queuedSnapshotFileTag; + bool shutdownExecuted; + bool quitFlag; + int quitExitCode; + bool autosavesEnabled; + int recentInputDevice; + int focusDevice; + int pauseMenuDevice; + idGaugeMetric snapDeltaTime; + bool purgeOverlays; + bool preventOverlayPurge; + idTerminationThread *terminationThread; + int readSnapshotIndex; + int writeSnapshotIndex; + idArray receivedSnaps; + float optimalPCTBuffer; + float optimalTimeBuffered; + float optimalTimeBufferedWindow; + int userCmdFrame; + idDebugGraph *graph; + idDebugGraph *graphSnapRate; + idSnapShot oldss; + idList mapChangeListeners; + inputSettings_t inputSettings[4]; + idUserCmdMgr userCmdMgr; + int levelLoadInProgress; + idSWF *loadingGui; + idRenderModelGui *guiModel; + int lastPacifierSessionTime; + int lastPacifierGuiTime; + int lastPacifierTooltipTime; + bool dialogWingstickActive; + bool dialogPause; + idSWF *dialog; + idSWF *saveIndicator; + idSubtitles_VideoOverlay *videoOverlay; + idRenderModelGui *dialogGuiModel; + idRenderModelGui *saveIndicatorGuiModel; + bool dialogShowingSaveIndicatorRequested; + int dialogShowingSaveIndicatorTimeRemaining; + idStaticList messageList; + idStaticList loadScreenInfo; + int startSaveTime; + int stopSaveTime; + bool dialogInUse; +}; + +// IDA Local Type ordinal 22481; PDB kind: class. +class __declspec(align(4)) idCommonLocal::idLogFileWriter : public idPrintListener +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22482. + virtual ~idLogFileWriter(); + virtual void Print(const char *); + + idFile *logFile; + bool recursing; +}; + +// IDA Local Type ordinal 22484; PDB kind: class. +class idCommonLocal::idWarningList : public idPrintListener +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22485. + virtual ~idWarningList(); + virtual void Print(const char *); + + idList list; + idHashIndex hash; + idStrStatic<128> caption; +}; + +// IDA Local Type ordinal 22486; PDB kind: class. +class __declspec(align(4)) idCommonLocal::idRefreshOnPrint : public idPrintListener +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22487. + virtual ~idRefreshOnPrint(); + virtual void Print(const char *); + + idCommonLocal *cl; + bool set; +}; + +// IDA Local Type ordinal 22488; PDB kind: unknown. +struct idCommonLocal:: +{ + idCompressor *compressor; + idCompressor *compressor2; + idFile *file; + idSnapShot *ss; + int resources; +}; + +// IDA Local Type ordinal 23669; PDB kind: struct. +struct idCommonLocal::DrawSnapshotMetrics::__l11::local_t +{ +}; + +// IDA Local Type ordinal 23671; PDB kind: class. +class idCommonLocal::StartLevelLoad::__l19::idSWFScriptFunction_RandZeroToNMinusOneTipIndex : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 23672. + virtual ~idSWFScriptFunction_RandZeroToNMinusOneTipIndex(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idSWF *gui; +}; + +// IDA Local Type ordinal 23677; PDB kind: class. +class idCommonLocal::ShowDialog::__l19::idSWFScriptFunction_Accept : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 23678. + virtual ~idSWFScriptFunction_Accept(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + gameDialogMessages_t msg; +}; + +// IDA Local Type ordinal 23681; PDB kind: class. +class __declspec(align(4)) idCommonLocal::UploadCrashDumps::__l2::idCDWriter : public idSysThread +{ +public: + // Recovered virtual interface; IDA vtable ordinal 23682. + virtual ~idCDWriter(); + virtual int Run(); + + __int64 writeTimeUS; + __int64 writeTotal; + void *data; + __int64 size; + idFile *file; + bool result; +}; diff --git a/source/engine/framework/compilestatus.h b/source/engine/framework/compilestatus.h new file mode 100644 index 0000000..bad8858 --- /dev/null +++ b/source/engine/framework/compilestatus.h @@ -0,0 +1,59 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\framework\compilestatus.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 993; PDB kind: enum. +enum scFileStatus_t : __int32 +{ + SCF_NOTMANAGED = 0x0, + SCF_NOTIMPORTED = 0x1, + SCF_CHECKEDOUT = 0x2, + SCF_CHECKEDOUT_PLUS = 0x3, + SCF_CHECKEDOUT_BYOTHER = 0x4, + SCF_CHECKEDOUT_BYOTHER_EXCLUSIVE = 0x5, + SCF_CHECKEDIN = 0x6, +}; + +// IDA Local Type ordinal 21610; PDB kind: class. +class idCompileStatus +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21612. + virtual ~idCompileStatus(); + virtual void SetDialog(struct CDialog *); + virtual void UnsetDialog(); + virtual void Begin(const char *, bool, bool); + virtual void End(bool); + virtual void SetProgressRange(idCompileProgress *, int); + virtual void SetProgress(idCompileProgress *, int); + virtual void IncProgress(idCompileProgress *); + virtual void Indent(); + virtual void Unindent(); + virtual void Print(const char *); + virtual void Error(const char *); + virtual void Cancel(); + virtual bool IsCompiling(); + virtual bool IsCancelled(); + virtual bool IsHandled(); + virtual bool HadErrors(); + virtual void SetStatusText(const char *); + virtual void ShowRenderWindow(bool); + virtual void MakeCurrentForRender(); + virtual void AddCompileProgress(idCompileProgress *); + virtual void RemoveCompileProgress(idCompileProgress *); + virtual int GetProgressRecordCount(); + virtual void StartConsoleListen(); + virtual void EndConsoleListen(); + +}; + +// IDA Local Type ordinal 21613; PDB kind: class. +class idCompileStatusHandler +{ +public: + idCompileStatus *compileStatus; +}; diff --git a/source/engine/framework/console.h b/source/engine/framework/console.h new file mode 100644 index 0000000..b454a7c --- /dev/null +++ b/source/engine/framework/console.h @@ -0,0 +1,155 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\framework\console.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17642; PDB kind: class. +class idConsole +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17648. + virtual ~idConsole(); + virtual void Init(); + virtual void Shutdown(); + virtual void InitGuiModel(); + virtual void LoadGraphics(); + virtual bool ProcessEvent(const sysEvent_t *, bool); + virtual bool IsInitialized(); + virtual bool IsActive(); + virtual void ClearNotifyLines(); + virtual void ClearEditLine(); + virtual void Close(bool); + virtual void Print(const char *); + virtual void Dump(const char *, idStr *); + virtual void Draw(bool, bool); + virtual bool WasLastFullScreen(); + virtual idRenderModelGui *Gui(); + virtual void PrintOverlay(idOverlayHandle *, justify_t, float, float, const char *, ...); + virtual void AddTimeRange(rangeId_t, const idColor *, unsigned __int64, unsigned __int64); + virtual void SetTimeRangeLabel(rangeId_t, const char *); + virtual void AddJobListTimeRange(rangeId_t, const idColor *, const idParallelJobList *, const unsigned __int64); + virtual void BeginTimeRange(const rangeId_t, const idColor *); + virtual idColor *GetTimeRangeColor(idColor *result, const rangeId_t); + virtual idDebugGraph *CreateGraph(int); + virtual void DestroyGraph(idDebugGraph *); + virtual void AddSnapObject(const char *, int, int, float); + virtual void ClearSnapshots(); + virtual void AddSnapshots(const idSnapShot *, const idSnapShot *, int, int, int, int); + virtual void AddPresentableObject(const char *, int, bool); + virtual void ClearPresentables(); + virtual void SetBitmapConsole(unsigned __int8 *, unsigned __int8 *, int, int, int); + virtual void DrawBitmapConsole(); + virtual void MarkVBLTime(); + +}; + +// IDA Local Type ordinal 23631; PDB kind: class. +class idConsoleLocal : public idConsole, public idPrintListener +{ +public: + // Recovered virtual interface; IDA vtable ordinal 23632. + virtual ~idConsoleLocal(); + virtual void Init(); + virtual void Shutdown(); + virtual void InitGuiModel(); + virtual void LoadGraphics(); + virtual bool ProcessEvent(const sysEvent_t *, bool); + virtual bool IsInitialized(); + virtual bool IsActive(); + virtual void ClearNotifyLines(); + virtual void ClearEditLine(); + virtual void Close(bool); + virtual void Print(const char *); + virtual void Dump(const char *, idStr *); + virtual void Draw(bool, bool); + virtual bool WasLastFullScreen(); + virtual idRenderModelGui *Gui(); + virtual void PrintOverlay(idOverlayHandle *, justify_t, float, float, const char *, ...); + virtual void AddTimeRange(rangeId_t, const idColor *, unsigned __int64, unsigned __int64); + virtual void SetTimeRangeLabel(rangeId_t, const char *); + virtual void AddJobListTimeRange(rangeId_t, const idColor *, const idParallelJobList *, const unsigned __int64); + virtual void BeginTimeRange(const rangeId_t, const idColor *); + virtual idColor *GetTimeRangeColor(idColor *result, const rangeId_t); + virtual idDebugGraph *CreateGraph(int); + virtual void DestroyGraph(idDebugGraph *); + virtual void AddSnapObject(const char *, int, int, float); + virtual void ClearSnapshots(); + virtual void AddSnapshots(const idSnapShot *, const idSnapShot *, int, int, int, int); + virtual void AddPresentableObject(const char *, int, bool); + virtual void ClearPresentables(); + virtual void SetBitmapConsole(unsigned __int8 *, unsigned __int8 *, int, int, int); + virtual void DrawBitmapConsole(); + virtual void MarkVBLTime(); + + __int64 lastRangeMicroseconds[39]; + idColor lastRangeColor[39]; + int timeLogFirstFrame; + idList timeLog; + bool keyCatching; + idWarningCollector warningCollector; + idRenderModelGui *gui; + idArray text; + idArray lines; + int currentLine; + int lineOffset; + int textOffset; + int displayLine; + int nextKeyEvent; + float displayFrac; + float finalFrac; + int fracTime; + bool lastFullscreen; + bool isInitialized; + idArray times; + idEditField consoleField; + unsigned __int8 *bitmapConsoleBuffers[2]; + int bitmapConsoleBytePitch; + int bitmapConsoleWidth; + int bitmapConsoleHeight; + idList overlayText; + timeRange_t ranges[512]; + int currentRange; + idStrBuffer<48> rangeLabel[39]; + idSysMutex mutexRange; + idDebugGraph *graphFPS; + idDebugGraph *graphTotalTime; + idDebugGraph *graphRenderTime; + idDebugGraph *graphGameTime; + idDebugGraph *graphGPUTime; + idStaticList debugGraphs; + idRunningAverage avgFPS; + idRunningAverage avgTotalTime; + idRunningAverage avgRenderTime; + idRunningAverage avgGameTime; + idRunningAverage avgGPUTime; + idList showSoundDebugInfoList; + idStaticList snapObjects; + float avgBytesChanged; + int maxSnapObjectString; + int lastDrawSnapshots; + idSnapShot snapshots[2]; + int snapshotSeqs[2]; + int snapshotPeerNum; + bool snapshotsLocked; + int snapshotsMaxSize; + idStaticList presentableObjects; + int maxPresentableObjectString; + int lastDrawPresentables; + unsigned __int64 lastVblMicroseconds; + unsigned __int64 vblIntervalMicroseconds; + unsigned __int64 rangeSyncTime; +}; + +// IDA Local Type ordinal 23665; PDB kind: struct. +struct idConsoleLocal::DrawSnapshots::__l18::local_t +{ +}; + +// IDA Local Type ordinal 23666; PDB kind: class. +class idConsoleLocal::DrawComSpeeds::__l2::local_t +{ +public: +}; diff --git a/source/engine/framework/consolehistory.h b/source/engine/framework/consolehistory.h new file mode 100644 index 0000000..e3b6760 --- /dev/null +++ b/source/engine/framework/consolehistory.h @@ -0,0 +1,18 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\framework\consolehistory.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 23111; PDB kind: class. +class idConsoleHistory +{ +public: + int upPoint; + int downPoint; + int returnLine; + int numHistory; + idArray historyLines; +}; diff --git a/source/engine/framework/consolewatch.h b/source/engine/framework/consolewatch.h new file mode 100644 index 0000000..222935c --- /dev/null +++ b/source/engine/framework/consolewatch.h @@ -0,0 +1,16 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\framework\consolewatch.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 21980; PDB kind: class. +class idConsoleWatch +{ +public: + idStr _watchString; + int _drawX; + int _drawY; +}; diff --git a/source/engine/framework/debuggraph.h b/source/engine/framework/debuggraph.h new file mode 100644 index 0000000..a7a713f --- /dev/null +++ b/source/engine/framework/debuggraph.h @@ -0,0 +1,52 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\framework\debuggraph.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1355; PDB kind: enum. +enum idDebugGraph::fillMode_t : __int32 +{ + GRAPH_LINE = 0x0, + GRAPH_FILL = 0x1, + GRAPH_FILL_REVERSE = 0x2, +}; + +// IDA Local Type ordinal 2620; PDB kind: enum. +enum idDebugGraph::captionPos_t : __int32 +{ + CAP_NONE = 0x0, + CAP_LEFT = 0x1, + CAP_RIGHT = 0x2, + CAP_TOP = 0x3, + CAP_BOTTOM = 0x4, +}; + +// IDA Local Type ordinal 17644; PDB kind: struct. +struct idDebugGraph::graphPlot_t +{ + float value; + idColor color; +}; + +// IDA Local Type ordinal 17647; PDB kind: class. +class idDebugGraph +{ +public: + const idMaterial *white; + idColor bgColor; + idColor fontColor; + idDebugGraph::fillMode_t mode; + bool sideways; + float border; + idVec4 position; + bool enable; + bool clamp; + idStr caption; + idDebugGraph::captionPos_t capPos; + idList bars; + idList grid; + idList labels; +}; diff --git a/source/engine/framework/debughud.h b/source/engine/framework/debughud.h new file mode 100644 index 0000000..4f8e8b7 --- /dev/null +++ b/source/engine/framework/debughud.h @@ -0,0 +1,100 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\framework\debughud.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 3207; PDB kind: enum. +enum idDebugHUDLocal::debugTextFlags_t : __int32 +{ + DTFL_COLOR = 0x1, + DTFL_SCALE = 0x2, + DTFL_XY = 0x4, + DTFL_RIGHTALIGN = 0x8, + DTFL_PERSIST = 0x10, + DTFL_BACKGROUNDCOLOR = 0x20, +}; + +// IDA Local Type ordinal 17441; PDB kind: class. +class idDebugHUD +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17442. + virtual ~idDebugHUD(); + virtual void Render(idRenderModelGui *); + virtual void Frame(); + virtual void Clear(bool); + virtual void Printf(const char *, ...); + virtual void Printf_2(int, int, const char *, char *); + virtual void Printf_3(int, int, const char *, ...); + virtual void Printf_4(int, int, const idColor *, const idColor *, const char *, char *); + virtual void Printf_5(int, int, const idColor *, const idColor *, const char *, ...); + virtual void Printf_6(int, int, const idColor *, const char *, char *); + virtual void Printf_7(int, int, const idColor *, const char *, ...); + virtual void Printf_8(int, int, const idColor *, const float, const char *, ...); + virtual void Printf_9(int, int, const idColor *, const float, const int, const char *, char *); + virtual void Printf_10(int, int, const idColor *, const idColor *, const float, const char *, ...); + virtual void Printf_11(int, int, const idColor *, const idColor *, const float, const int, const char *, char *); + virtual void AddPersistentText(int, int, const idColor *, const float, const char *, ...); + virtual void RemovePersistentText(int, int); + virtual void SetLeftAlign(); + virtual void SetRightAlign(); + virtual void SetTextPosition(const int, const int); + virtual void SetTextScale(const float); + virtual void SetTextColor(const idColor *); + +}; + +// IDA Local Type ordinal 23611; PDB kind: struct. +struct idDebugHUDLocal::debugText_t +{ + idStr text; + int len; + int x; + int y; + idColor color; + int flags; + float scale; + idColor backgroundColor; +}; + +// IDA Local Type ordinal 23613; PDB kind: class. +class idDebugHUDLocal : public idDebugHUD +{ +public: + // Recovered virtual interface; IDA vtable ordinal 23614. + virtual ~idDebugHUDLocal(); + virtual void Render(idRenderModelGui *); + virtual void Frame(); + virtual void Clear(bool); + virtual void Printf(const char *, ...); + virtual void Printf_2(int, int, const char *, char *); + virtual void Printf_3(int, int, const char *, ...); + virtual void Printf_4(int, int, const idColor *, const idColor *, const char *, char *); + virtual void Printf_5(int, int, const idColor *, const idColor *, const char *, ...); + virtual void Printf_6(int, int, const idColor *, const char *, char *); + virtual void Printf_7(int, int, const idColor *, const char *, ...); + virtual void Printf_8(int, int, const idColor *, const float, const char *, ...); + virtual void Printf_9(int, int, const idColor *, const float, const int, const char *, char *); + virtual void Printf_10(int, int, const idColor *, const idColor *, const float, const char *, ...); + virtual void Printf_11(int, int, const idColor *, const idColor *, const float, const int, const char *, char *); + virtual void AddPersistentText(int, int, const idColor *, const float, const char *, ...); + virtual void RemovePersistentText(int, int); + virtual void SetLeftAlign(); + virtual void SetRightAlign(); + virtual void SetTextPosition(const int, const int); + virtual void SetTextScale(const float); + virtual void SetTextColor(const idColor *); + + idList debugText; + idList persistentText; + idColor curColor; + float curScale; + int curX; + int curY; + int startX; + bool alignRight; + const idMaterial *white; +}; diff --git a/source/engine/framework/debugmenu.h b/source/engine/framework/debugmenu.h new file mode 100644 index 0000000..f720d52 --- /dev/null +++ b/source/engine/framework/debugmenu.h @@ -0,0 +1,61 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\framework\debugmenu.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 21805; PDB kind: class. +class idDebugMenu +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21806. + virtual ~idDebugMenu(); + virtual bool Init(); + virtual bool IsActive(); + virtual bool HandleGuiEvent(const sysEvent_t *); + virtual idRenderModelGui *Render(); + +}; + +// IDA Local Type ordinal 23605; PDB kind: struct. +struct idDebugMenuLocal::CEntry +{ + bool valid; + int shortcut; + idStr title; + idStr description; + idStr cmd; + idStr entityValid; + idStr entityDescr; + idVec4 color; +}; + +// IDA Local Type ordinal 23607; PDB kind: class. +class idDebugMenuLocal::CGroup +{ +public: + idStr title; + idList items; +}; + +// IDA Local Type ordinal 23609; PDB kind: class. +class idDebugMenuLocal : public idDebugMenu +{ +public: + // Recovered virtual interface; IDA vtable ordinal 23610. + virtual ~idDebugMenuLocal(); + virtual bool Init(); + virtual bool IsActive(); + virtual bool HandleGuiEvent(const sysEvent_t *); + virtual idRenderModelGui *Render(); + + bool modKeyPressed; + int selectedGroup; + int selectedItem; + int startItem; + idRenderModelGui *guiModel; + const idFont *font; + idList groups; +}; diff --git a/source/engine/framework/editfield.h b/source/engine/framework/editfield.h new file mode 100644 index 0000000..d953b34 --- /dev/null +++ b/source/engine/framework/editfield.h @@ -0,0 +1,19 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\framework\editfield.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 23604; PDB kind: class. +class idEditField +{ +public: + bool overstrikeMode; + int cursor; + int scroll; + int widthInChars; + idStr buffer; + idAutoComplete autoComplete; +}; diff --git a/source/engine/framework/entityinterface.h b/source/engine/framework/entityinterface.h new file mode 100644 index 0000000..800ed1b --- /dev/null +++ b/source/engine/framework/entityinterface.h @@ -0,0 +1,96 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\framework\entityinterface.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15127; PDB kind: class. +class idEntityInterface +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15171. + virtual ~idEntityInterface(); + virtual bool IsValid(); + virtual idGame *Game(); + virtual void GetWorldOrigin(idVec3 *); + virtual void SetWorldOrigin(const idVec3 *); + virtual void TranslateWorld(const idVec3 *); + virtual void GetWorldAxis(idMat3 *); + virtual void SetWorldAxis(const idMat3 *); + virtual void UpdateVisuals(); + virtual bool GetWorldSpaceTagTransform(const char *, const char *, idVec3 *, idMat3 *); + virtual void BindToJoint(idEntity *, idIndex, const bindFlags_t); + virtual void Unbind(); + virtual idHandle *AttachRenderModel(idHandle *result, const char *, const char *, const char *); + virtual bool DetachRenderModel(const idHandle *); + virtual int GetNumAttachments(); + virtual idRenderModel *GetAttachment(const idHandle *); + virtual bool RebindAttachment(const idHandle *, const tagData_t *); + virtual void GetLocalOrigin(idVec3 *); + virtual void SetLocalOrigin(const idVec3 *); + virtual void GetLocalAxis(idMat3 *); + virtual void SetLocalAxis(const idMat3 *); + virtual void GetSpawnPosition(idVec3 *); + virtual void SetSpawnPosition(const idVec3 *); + virtual void GetSpawnOrientation(idMat3 *); + virtual void SetSpawnOrientation(const idMat3 *); + virtual void SetModel(idRenderModel *); + virtual void SetModel_2(const char *); + virtual void StopSound(); + virtual void SetColor(const idColor *); + virtual idRenderModel *GetRenderEntity(); + virtual void DeleteEntity(); + virtual void GetViewAngles(idAngles *); + virtual void SetViewAngles(const idVec3 *); + virtual void GetEyePosition(idVec3 *); + virtual idTreeAnimator *GetTreeAnimator(const int); + virtual idAnimStack *GetAnimStack(); + virtual bool PlayAnim(const idMD6Anim *, const bool); + virtual bool PlayVTR(const idDeclVoiceOver *, const int); + virtual bool StopVTR(); + virtual bool IsAnimPlaying(); + virtual void ShowUncompressed(const bool); + virtual void SetRemoveOriginTranslation(bool); + virtual void SetRemoveOriginRotation(bool); + virtual bool GetRemoveOriginTranslation(); + virtual bool GetRemoveOriginRotation(); + virtual void SetAnimTime(float); + virtual float GetAnimTime(); + virtual int GetCurrentAnimFrame(); + virtual void AddReference(); + virtual void RemoveReference(); + virtual int GetReferenceCount(); + virtual idTypeInfoObject *GetTypeInfoObject(); + virtual const idDeclEntityDef *GetEntityDef(); + virtual idEntity *GetEntity(); + virtual const char *GetEntityName(); + virtual void SetLightColor(const idColor *); + virtual void GetLightColor(idColor *); + virtual void SetLightRadius(const idVec3 *); + virtual void GetLightRadius(idVec3 *); + virtual void SetCastShadows(const bool); + virtual bool GetCastShadows(); + virtual void SetLightMaterial(const char *); + virtual void SetLightSpotlight(const bool); + virtual bool GetLightSpotlight(); + virtual void SetLightParallel(const bool); + virtual bool GetLightParallel(); + virtual void SetLightCenter(const idVec3 *); + virtual void GetLightCenter(idVec3 *); + virtual void SetLightTarget(const idVec3 *); + virtual void SetLightRight(const idVec3 *); + virtual void SetLightUp(const idVec3 *); + virtual void SetLightStart(const idVec3 *); + virtual void SetLightEnd(const idVec3 *); + virtual void SetLightClass(lightClass_t); + virtual void ReInit(); + virtual void SetPreviewTime(int); + virtual int GetPreviewTime(); + virtual void RestartPlayback(); + virtual void StopPlayback(); + virtual bool RespondsToEvent(const idEventDef *); + virtual bool OnCustomFunctionCall(); + +}; diff --git a/source/engine/framework/entityinterfaceobject.h b/source/engine/framework/entityinterfaceobject.h new file mode 100644 index 0000000..f779500 --- /dev/null +++ b/source/engine/framework/entityinterfaceobject.h @@ -0,0 +1,15 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\framework\entityinterfaceobject.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17935; PDB kind: class. +class idEntityInterfaceObject +{ +public: + idGameLock lock; + idEntityInterface *iface; +}; diff --git a/source/engine/framework/fileresource.h b/source/engine/framework/fileresource.h new file mode 100644 index 0000000..51725d1 --- /dev/null +++ b/source/engine/framework/fileresource.h @@ -0,0 +1,36 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\framework\fileresource.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 5027; PDB kind: struct. +struct _DXFILELOADRESOURCE +{ + HINSTANCE__ *hModule; + const char *lpName; + const char *lpType; +}; + +// IDA Local Type ordinal 22454; PDB kind: class. +class idFileResource : public idResource +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22455. + virtual ~idFileResource(); + virtual void LoadResource(); + virtual bool ReloadIfStale(); + virtual void WriteResourceFile(); + virtual idResourceList *GetResourceList(); + virtual void Print(); + virtual void List(); + + unsigned int timestamp; + unsigned int length; + void *data; +}; + +// IDA Local Type ordinal 29898; PDB kind: typedef. +typedef _DXFILELOADRESOURCE DXFILELOADRESOURCE; diff --git a/source/engine/framework/game.h b/source/engine/framework/game.h new file mode 100644 index 0000000..2458919 --- /dev/null +++ b/source/engine/framework/game.h @@ -0,0 +1,209 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\framework\game.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1277; PDB kind: unknown. +enum idGame:: : __int32 +{ + GAMEFLAG_MAINMENU = 0x1, + GAMEFLAG_TOOL = 0x2, + GAMEFLAG_AAS = 0x4, + GAMEFLAG_SCRIPT = 0x8, + GAMEFLAG_AIGAMESTATE = 0x10, + GAMEFLAG_PRELOAD = 0x20, + GAMEFLAG_NOENTITIES = 0x40, + GAMEFLAG_ALLLAYERS = 0x80, + GAMEFLAG_MAIN = 0x100, + GAMEFLAG_CLIENTONLY = 0x200, + GAMEFLAG_DEFAULT = 0x1C, +}; + +// IDA Local Type ordinal 15128; PDB kind: class. +class idGame +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15170. + virtual ~idGame(); + virtual int GetGameVersion(); + virtual void MinimalCleanup(); + virtual bool IsGameActive(); + virtual idRenderWorld *GetRenderWorld(); + virtual idSoundWorld *GetSoundWorld(); + virtual idSoundWorld *GetMenuSoundWorld(); + virtual const char *GetMapName(); + virtual const idGameSpawnInfo *GetGameSpawnInfo(); + virtual void LoadDevMenuDataGame(); + virtual idPlayerProfile *CreatePlayerProfile(int); + virtual void Playtest_SaveAndClear(); + virtual void Playtest_SaveNoClear(); + virtual void Playtest_CreateMeta(); + virtual void GetTransitionInformation(idList *); + virtual void RunFrame(idUserCmdMgr *, gameReturn_t *, bool); + virtual void UpdateAimAssist(const int, idAngles *); + virtual void UpdateWeaponKick(const int, idAngles *); + virtual void NetReceiveReliable(int, idBitMsg *, int); + virtual bool HandleGuiEvent(const sysEvent_t *, int); + virtual bool LoadGame(const char *); + virtual bool SaveGame(const char *, bool, bool); + virtual bool NextMap(const idCmdArgs *); + virtual bool GetGameStartInfoFromSaveLoadParms(idSaveLoadParms *, idFile **, idGameSpawnInfo *); + virtual void OnSaveCompleted(idSaveLoadParms *); + virtual void OnLoadCompleted(idSaveLoadParms *, const idStr *); + virtual void OnEnumerationCompleted(idSaveLoadParms *); + virtual void OnDeleteCompleted(idSaveLoadParms *); + virtual void LoadMostRecentGame(idSWF *); + virtual idFile_SaveGame *GetCheckpointInfoFile(); + virtual idFile_SaveGame *GetMapStartInfoFile(); + virtual void SaveCheckpointInfo(idFile *, const idGameSpawnInfo *); + virtual void LoadCheckpointInfo(idFile *, idGameSpawnInfo *); + virtual void CancelLevelTransition(); + virtual void RestartPassMainMenu(const idCmdArgs *); + virtual idGameTimeManager *GetGameTimeManager(); + virtual int GetGameHz(const gameTimeType_t); + virtual int GetGameFrame(); + virtual void SetGameMs(const int); + virtual int GetGameMs(const gameTimeType_t); + virtual int GetPreviousGameMs(const gameTimeType_t); + virtual int GetGameMsPerFrame(const gameTimeType_t); + virtual float GetGameSecPerFrame(const gameTimeType_t); + virtual float GetRealMsPerFrame(const gameTimeType_t); + virtual float GetRealSecPerFrame(const gameTimeType_t); + virtual int GetGameMsPerRealSec(); + virtual void SetServerGameTimeMs(const int); + virtual int GetServerGameTimeMs(); + virtual void SetSSTimes(int, int); + virtual int GetSSEndTime(); + virtual int GetSSStartTime(); + virtual void SetLastInputTime(int); + virtual int GetLastInputTime(); + virtual void Shell_Init(const char *); + virtual void Shell_Show(bool); + virtual void Shell_CreateMenu(bool); + virtual struct idMenuManager_Shell *Shell_GetShell(); + virtual bool Shell_IsActive(); + virtual bool Shell_HandleGuiEvent(const sysEvent_t *); + virtual idRenderModelGui *Shell_Render(); + virtual void Shell_ResetMenu(); + virtual void Shell_SyncWithSession(); + virtual bool Shell_CanSave(const bool); + virtual void Shell_ShowNewContentAvailable(); + virtual void Shell_RestartMenuMusic(); + virtual void Shell_AddSaveGameItem(const idSaveGameDetails *); + virtual void Shell_WarningShown(const bool); + virtual void Shell_RefreshMapNameForLoadScreen(); + virtual void Shell_ClearBenchmarkCheck(); + virtual void Shell_SetupMultiplayerMenu(); + virtual bool Shell_IgnoreSplitScreenEvent(const sysEvent_t *); + virtual bool GetGamePaused(); + virtual void WriteToSnapshot(idSnapShot *, const idSnapShot *); + virtual void ReadFromSnapshot(idSnapShot *, const idSnapShot *); + virtual bool ForceNonDeferred(); + virtual void SetInterpolation(const float, const int, const int, const int); + virtual const netInterpolationInfo_t *GetInterpolationInfo(); + virtual void OnCloseSnapshot(); + virtual idRenderModelGui *RenderLocalViewForPlayer(int, int, const renderView_t *, idRenderWorld *); + virtual idRenderModelGui *RenderLocalViewForGame(int, idRenderWorld *); + virtual bool IsPlayerControlInhibited(int); + virtual int GenerateInputToPlayerIndexRouting(); + virtual int GetPlayerIndexFromInputDevice(int); + virtual int GetPlayerPresentableCmds(int, usercmd_t **, const int); + virtual void GetPlayerPredictionData(int, usercmd_t **, const int, bool *); + virtual void SmoothIncomingUserCmds(usercmd_t *, usercmd_t *, const int); + virtual const idList *GetViewCallbacks(); + virtual void DrawClientGameDebugHUD(); + virtual const idTypeInfoTools *GetTypeInfoTools(); + virtual void GetEntityEditState(idEntity *, idTypeInfoFile *, bool); + virtual void SetEntityEditState(idEntity *, idTypeInfoFile *, bool); + virtual void GetLayerList(idList *); + virtual void AddNewLayer(idDecl *, const char *); + virtual idEntityInterface *AllocEntityInterface(idEntity *); + virtual void FreeEntityInterface(idEntityInterface *); + virtual void UnloadDLL(); + virtual void LoadDLL(); + virtual void GetSuperScriptObjectNames(idList *); + virtual const classMetaDataInfo_t *GetSuperScriptMetaDataForType(const char *); + virtual void GetScriptObjectNames(idList *); + virtual bool LoadScriptForMapFile(const char *); + virtual bool CompileScriptText(const char *, const char *, const bool, const bool); + virtual idStr *GetScriptCompileError(idStr *result); + virtual bool FunctionExists(const char *, const char *); + virtual bool TracePoint(trace_t *, const idVec3 *, const idVec3 *, int, const idEntity *); + virtual void GetBinaryAnimationStates(idList *, idList *); + virtual idRenderLight *GetEntityRenderLight(idEntity *); + virtual const idDeclEnv *GetEnvSettings(); + virtual bool AF_SpawnEntity(const char *); + virtual void AF_UpdateEntities(const char *); + virtual void AF_UndoChanges(); + virtual void ClearEntitySelection(); + virtual int GetSelectedEntities(idEntity **, int); + virtual void AddSelectedEntity(idEntity *); + virtual void TriggerSelected(); + virtual idEntity *CreateClass(const char *); + virtual bool CanCreateClass(const char *); + virtual void InitEntityWithDef(idEntity *, const idDeclEntityDef *, const idTypeInfoSettings *); + virtual idEntity *CreateEntityFromDef(const idDeclEntityDef *, const idTypeInfoSettings *); + virtual idEntity *SpawnEntityFromDef(const idDeclEntityDef *, int, int, int); + virtual idEntity *RespawnEntityFromDef(idEntity *, const idDeclEntityDef *); + virtual bool ActivateEntityFromEditor(idEntity *); + virtual void SpawnEntity(idEntity *, int, int, int); + virtual void DeleteEntity(idEntity *); + virtual void DeleteEntityAndSubEntities(idEntity *); + virtual idEntity *FindEntity(const char *); + virtual idEntity *GetEntity(int); + virtual const char *GetEntityName(idEntity *); + virtual void SetEntityName(idEntity *, const char *); + virtual const char *GetEntityType(idEntity *); + virtual const char *GetUniqueEntityName(const char *); + virtual idEntity *FindEntityUsingClass(idEntity *, const char *); + virtual void EntityGetOrigin(idEntity *, idVec3 *); + virtual void EntitySetOrigin(idEntity *, const idVec3 *); + virtual void EntitySetAxis(idEntity *, const idMat3 *); + virtual void EntityGetViewAngles(idEntity *, idAngles *); + virtual void EntityGetEyePosition(idEntity *, idVec3 *); + virtual void EntitySetViewPosition(idEntity *, const idVec3 *, const idAngles *); + virtual void EntityTranslate(idEntity *, const idVec3 *, bool); + virtual void EntityUpdateVisuals(idEntity *); + virtual void EntityUpdateModifiedProperties(idEntity *); + virtual bool EntityGetSoundDistances(idEntity *, float *, float *); + virtual void EntityStopSound(idEntity *); + virtual const idColor *EntityGetColor(const idColor *result, idEntity *); + virtual idSoundEmitter *EntityGetSoundEmitter(idEntity *); + virtual idRenderModel *EntityGetRenderModel(idEntity *); + virtual bool EntityIsNameUnique(const char *, const idEntity *); + virtual const idVec3 *EntityGetSpawnPosition(idEntity *); + virtual const idMat3 *EntityGetSpawnOrientation(idEntity *); + virtual idVec3 *EntityGetScale(idVec3 *result, idEntity *); + virtual void EntitySetScale(idEntity *, const idVec3 *); + virtual idStr *EntitySetScriptObject(idStr *result, idEntity *, const char *, int, bool); + virtual bool EntityIsHidden(idEntity *); + virtual const idDeclEntityDef *EntityGetEntityDef(idEntity *); + virtual void MapAddEntity(idEntity *); + virtual void MapUpdateEntity(idEntity *, bool, idList *); + virtual void MapRemoveEntity(const char *); + virtual bool MapSave(const char *, bool); + virtual bool MapSaveReference(const char *, const char *, bool); + virtual idMapEntity *MapFindEntity(const char *); + virtual idMapEntity *MapFindEntity_2(idEntity *); + virtual void MapGetEntityLayers(idList *); + virtual void MapSetEntityReferenceId(idEntity *, const char *); + virtual idMapFile *GetLevelMap(); + virtual void UpdateMapFileEntity(idMapFile *, idEntity *, bool, idList *); + virtual int SP_BuildGuardSplineList(idVec3, float, float *); + virtual void SP_GetGuardSplineEntry(int, idStr *, float *, float *); + virtual float SP_GetSplineLength(idStr); + virtual const enumTypeInfo_t *SS_FindEnumTypeInfo(const char *); + virtual int GetGameDifficulty(); + virtual void GetGameDifficultySettingsForTransition(int *, int *); + virtual void SetGameDifficultySettingsForTransition(const int, const int); + virtual void SetPlayerLoadedGameDifficulty(bool); + virtual bool GetPlayerLoadedGameDifficulty(); + virtual __int64 GetMinSaveStorageRequired(bool); + virtual void OnReloadDecls(); + virtual bool GetConsoleUsed(); + virtual void SetConsoleUsed(const bool); + +}; diff --git a/source/engine/framework/gamesystem.h b/source/engine/framework/gamesystem.h new file mode 100644 index 0000000..7f0790c --- /dev/null +++ b/source/engine/framework/gamesystem.h @@ -0,0 +1,37 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\framework\gamesystem.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 18667; PDB kind: class. +class idGameSystem +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18668. + virtual ~idGameSystem(); + virtual void Init(); + virtual void Shutdown(); + virtual bool AllocGame(idGame **, const idGameSpawnInfo *, idFile *); + virtual void FreeGame(idGame **); + virtual void MinimalGameCleanup(idGame **); + +}; + +// IDA Local Type ordinal 18679; PDB kind: class. +class idGameSystemLocal : public idGameSystem +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18680. + virtual ~idGameSystemLocal(); + virtual void Init(); + virtual void Shutdown(); + virtual bool AllocGame(idGame **, const idGameSpawnInfo *, idFile *); + virtual void FreeGame(idGame **); + virtual void MinimalGameCleanup(idGame **); + + idStaticList retainedFiles; + mgHttpServer *httpServer; +}; diff --git a/source/engine/framework/gametimemanager.h b/source/engine/framework/gametimemanager.h new file mode 100644 index 0000000..1d5b050 --- /dev/null +++ b/source/engine/framework/gametimemanager.h @@ -0,0 +1,33 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\framework\gametimemanager.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14287; PDB kind: class. +class idGameTimeManager +{ +public: + int framenum; + int hz[2]; + int ticks[2]; + float timeDelta[2]; + int time[2]; + int previousTime[2]; + float scale[2]; + idInterpolate timeScaleExtrapolation[2]; + slowmoParms_t slowmoParms; + unsigned __int8 : 7; + __int8 inSlowMotion : 1; + bool useInterpolator; + float slowmoDuration; +}; + +// IDA Local Type ordinal 14290; PDB kind: class. +class idGameTimeManagerPtr +{ +public: + idGameTimeManager *gameTimeManager; +}; diff --git a/source/engine/framework/keyinput.h b/source/engine/framework/keyinput.h new file mode 100644 index 0000000..97eb316 --- /dev/null +++ b/source/engine/framework/keyinput.h @@ -0,0 +1,183 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\framework\keyinput.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1113; PDB kind: enum. +enum keyNum_t : __int32 +{ + K_NONE = 0x0, + K_ESCAPE = 0x1, + K_1 = 0x2, + K_2 = 0x3, + K_3 = 0x4, + K_4 = 0x5, + K_5 = 0x6, + K_6 = 0x7, + K_7 = 0x8, + K_8 = 0x9, + K_9 = 0xA, + K_0 = 0xB, + K_MINUS = 0xC, + K_EQUALS = 0xD, + K_BACKSPACE = 0xE, + K_TAB = 0xF, + K_Q = 0x10, + K_W = 0x11, + K_E = 0x12, + K_R = 0x13, + K_T = 0x14, + K_Y = 0x15, + K_U = 0x16, + K_I = 0x17, + K_O = 0x18, + K_P = 0x19, + K_LBRACKET = 0x1A, + K_RBRACKET = 0x1B, + K_ENTER = 0x1C, + K_LCTRL = 0x1D, + K_A = 0x1E, + K_S = 0x1F, + K_D = 0x20, + K_F = 0x21, + K_G = 0x22, + K_H = 0x23, + K_J = 0x24, + K_K = 0x25, + K_L = 0x26, + K_SEMICOLON = 0x27, + K_APOSTROPHE = 0x28, + K_GRAVE = 0x29, + K_LSHIFT = 0x2A, + K_BACKSLASH = 0x2B, + K_Z = 0x2C, + K_X = 0x2D, + K_C = 0x2E, + K_V = 0x2F, + K_B = 0x30, + K_N = 0x31, + K_M = 0x32, + K_COMMA = 0x33, + K_PERIOD = 0x34, + K_SLASH = 0x35, + K_RSHIFT = 0x36, + K_KP_STAR = 0x37, + K_LALT = 0x38, + K_SPACE = 0x39, + K_CAPSLOCK = 0x3A, + K_F1 = 0x3B, + K_F2 = 0x3C, + K_F3 = 0x3D, + K_F4 = 0x3E, + K_F5 = 0x3F, + K_F6 = 0x40, + K_F7 = 0x41, + K_F8 = 0x42, + K_F9 = 0x43, + K_F10 = 0x44, + K_PAUSE = 0x45, + K_SCROLL = 0x46, + K_KP_7 = 0x47, + K_KP_8 = 0x48, + K_KP_9 = 0x49, + K_KP_MINUS = 0x4A, + K_KP_4 = 0x4B, + K_KP_5 = 0x4C, + K_KP_6 = 0x4D, + K_KP_PLUS = 0x4E, + K_KP_1 = 0x4F, + K_KP_2 = 0x50, + K_KP_3 = 0x51, + K_KP_0 = 0x52, + K_KP_DOT = 0x53, + K_F11 = 0x57, + K_F12 = 0x58, + K_F13 = 0x64, + K_F14 = 0x65, + K_F15 = 0x66, + K_KANA = 0x70, + K_CONVERT = 0x79, + K_NOCONVERT = 0x7B, + K_YEN = 0x7D, + K_KP_EQUALS = 0x8D, + K_CIRCUMFLEX = 0x90, + K_AT = 0x91, + K_COLON = 0x92, + K_UNDERLINE = 0x93, + K_KANJI = 0x94, + K_STOP = 0x95, + K_AX = 0x96, + K_UNLABELED = 0x97, + K_KP_ENTER = 0x9C, + K_RCTRL = 0x9D, + K_KP_COMMA = 0xB3, + K_KP_SLASH = 0xB5, + K_PRINTSCREEN = 0xB7, + K_RALT = 0xB8, + K_NUMLOCK = 0xC5, + K_HOME = 0xC7, + K_UPARROW = 0xC8, + K_PGUP = 0xC9, + K_LEFTARROW = 0xCB, + K_RIGHTARROW = 0xCD, + K_END = 0xCF, + K_DOWNARROW = 0xD0, + K_PGDN = 0xD1, + K_INS = 0xD2, + K_DEL = 0xD3, + K_LWIN = 0xDB, + K_RWIN = 0xDC, + K_APPS = 0xDD, + K_POWER = 0xDE, + K_SLEEP = 0xDF, + K_JOY1 = 0x100, + K_JOY2 = 0x101, + K_JOY3 = 0x102, + K_JOY4 = 0x103, + K_JOY5 = 0x104, + K_JOY6 = 0x105, + K_JOY7 = 0x106, + K_JOY8 = 0x107, + K_JOY9 = 0x108, + K_JOY10 = 0x109, + K_JOY11 = 0x10A, + K_JOY12 = 0x10B, + K_JOY13 = 0x10C, + K_JOY14 = 0x10D, + K_JOY15 = 0x10E, + K_JOY16 = 0x10F, + K_JOY_STICK1_UP = 0x110, + K_JOY_STICK1_DOWN = 0x111, + K_JOY_STICK1_LEFT = 0x112, + K_JOY_STICK1_RIGHT = 0x113, + K_JOY_STICK2_UP = 0x114, + K_JOY_STICK2_DOWN = 0x115, + K_JOY_STICK2_LEFT = 0x116, + K_JOY_STICK2_RIGHT = 0x117, + K_JOY_TRIGGER1 = 0x118, + K_JOY_TRIGGER2 = 0x119, + K_JOY_DPAD_UP = 0x11A, + K_JOY_DPAD_DOWN = 0x11B, + K_JOY_DPAD_LEFT = 0x11C, + K_JOY_DPAD_RIGHT = 0x11D, + K_MOUSE1 = 0x11E, + K_MOUSE2 = 0x11F, + K_MOUSE3 = 0x120, + K_MOUSE4 = 0x121, + K_MOUSE5 = 0x122, + K_MOUSE6 = 0x123, + K_MOUSE7 = 0x124, + K_MOUSE8 = 0x125, + K_MWHEELDOWN = 0x126, + K_MWHEELUP = 0x127, + K_LAST_KEY = 0x128, +}; + +// IDA Local Type ordinal 21521; PDB kind: class. +class idKeyInput +{ +public: +}; diff --git a/source/engine/framework/licensee.h b/source/engine/framework/licensee.h new file mode 100644 index 0000000..1e1dbad --- /dev/null +++ b/source/engine/framework/licensee.h @@ -0,0 +1,46 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\framework\licensee.h +// Recovered logical types: 8 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 414; PDB kind: enum. +enum _LICENSEE_TYPE : __int32 +{ + LICENSEE_TYPE_CONSOLE_ID = 0xF000, + LICENSEE_TYPE_MEDIA_FLAGS = 0xE000, + LICENSEE_TYPE_PRIVILEGES = 0xD000, + LICENSEE_TYPE_HV_FLAGS = 0xC000, + LICENSEE_TYPE_XUID = 0x9, +}; + +// IDA Local Type ordinal 3694; PDB kind: struct. +struct _LICENSEE_BITS +{ + unsigned __int64 Data : 48; + unsigned __int64 Type : 16; +}; + +// IDA Local Type ordinal 3883; PDB kind: union. +union _LICENSEE +{ + _LICENSEE_BITS Bits; + unsigned __int64 AsULONGLONG; +}; + +// IDA Local Type ordinal 26724; PDB kind: typedef. +typedef _LICENSEE_BITS LICENSEE_BITS; + +// IDA Local Type ordinal 26730; PDB kind: typedef. +typedef _LICENSEE_TYPE LICENSEE_TYPE; + +// IDA Local Type ordinal 27423; PDB kind: typedef. +typedef _LICENSEE *PLICENSEE; + +// IDA Local Type ordinal 32850; PDB kind: typedef. +typedef _LICENSEE_BITS *PLICENSEE_BITS; + +// IDA Local Type ordinal 33071; PDB kind: typedef. +typedef _LICENSEE LICENSEE; diff --git a/source/engine/framework/loadscreen.h b/source/engine/framework/loadscreen.h new file mode 100644 index 0000000..43895c1 --- /dev/null +++ b/source/engine/framework/loadscreen.h @@ -0,0 +1,45 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\framework\loadscreen.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22496; PDB kind: class. +class idLoadScreenInfo +{ +public: + idStr varName; + idStr value; +}; + +// IDA Local Type ordinal 23597; PDB kind: class. +class __declspec(align(2)) idLoadScreenThread : public idSysThread +{ +public: + // Recovered virtual interface; IDA vtable ordinal 23598. + virtual ~idLoadScreenThread(); + virtual int Run(); + + bool initialized; + volatile bool stopRunning; + volatile bool isRunning; +}; + +// IDA Local Type ordinal 23599; PDB kind: class. +class idLoadScreen +{ +public: + idLoadScreenThread *thread; + idSWF *loadingGui; + idRenderModelGui *guiModel; +}; + +// IDA Local Type ordinal 23600; PDB kind: class. +class idLoadScreenInfo2 +{ +public: + idStr varName; + idStr value; +}; diff --git a/source/engine/framework/memorymappedfile.h b/source/engine/framework/memorymappedfile.h new file mode 100644 index 0000000..d778afe --- /dev/null +++ b/source/engine/framework/memorymappedfile.h @@ -0,0 +1,41 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\framework\memorymappedfile.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 3202; PDB kind: enum. +enum idMemoryMappedFile::pageState_t : __int32 +{ + PGST_UNCOMITTED = 0x0, + PGST_READING = 0x1, + PGST_FULL = 0x2, +}; + +// IDA Local Type ordinal 20010; PDB kind: struct. +struct idMemoryMappedFile::mmPage_t +{ + void *dest; + bool completion; + idMemoryMappedFile::pageState_t state; +}; + +// IDA Local Type ordinal 20012; PDB kind: class. +class __declspec(align(8)) idMemoryMappedFile +{ +public: + idFile *file; + const __int64 alignedFileOffset; + const __int64 alignedLength; + unsigned __int8 *const virtualBase; + idTempArray pages; +}; + +// IDA Local Type ordinal 23596; PDB kind: struct. +struct idMemoryMappedFile::fileRange_t +{ + __int64 fileOffset; + __int64 length; +}; diff --git a/source/engine/framework/playerprofile.h b/source/engine/framework/playerprofile.h new file mode 100644 index 0000000..21f74ba --- /dev/null +++ b/source/engine/framework/playerprofile.h @@ -0,0 +1,43 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\framework\playerprofile.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1505; PDB kind: enum. +enum idPlayerProfile::state_t : __int32 +{ + SAVING = 0x1, + LOADING = 0x2, + SAVE_REQUESTED = 0x3, + LOAD_REQUESTED = 0x4, + ERR = 0x5, +}; + +// IDA Local Type ordinal 15132; PDB kind: class. +class idPlayerProfile +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15133. + virtual ~idPlayerProfile(); + virtual void SetDefaults(); + virtual bool Serialize(idSerializer *); + virtual bool UpdateDisplayModeFromCvars(); + virtual bool CommitDisplayChanges(); + virtual float GetMouseSensitivity(); + virtual int GetLevel(); + virtual int GetChosenEmblem(); + virtual void SetInvertLook(bool); + virtual unsigned int GetSubtitleLanguageMask(); + + __declspec(align(8)) idPlayerProfile::state_t state; + idPlayerProfile::state_t requestedState; + int deviceNum; + bool hasUser; + unsigned __int64 achievementBits; + unsigned __int64 achievementBits2; + int dlcReleaseVersion; + idStaticList stats; +}; diff --git a/source/engine/framework/playteststorage.h b/source/engine/framework/playteststorage.h new file mode 100644 index 0000000..0b72109 --- /dev/null +++ b/source/engine/framework/playteststorage.h @@ -0,0 +1,397 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\framework\playteststorage.h +// Recovered logical types: 32 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2915; PDB kind: enum. +enum idPlaytestStorage::playerBreadCrumbState_t : __int32 +{ + PLAYERBREADCRUMBSTATE_NONE = 0x0, + PLAYERBREADCRUMBSTATE_NORMAL = 0x1, + PLAYERBREADCRUMBSTATE_MISC = 0x2, + PLAYERBREADCRUMBSTATE_VEHICLE = 0x3, +}; + +// IDA Local Type ordinal 21529; PDB kind: class. +class idPlaytestStorage::playerNormalBreadCrumbInfo_t +{ +public: + idVec3 loc; + idVec3 dir; + float health; + float healthPercent; + float speed; + int mainAmmoCount; + bool combatHud; + bool isCrouching; + bool isZooming; + bool isCooking; + int count; + int timestamp; + int lastTimeStamp; +}; + +// IDA Local Type ordinal 21531; PDB kind: class. +class idPlaytestStorage::playerNormalBreadCrumbList_t +{ +public: + bool inInteraction; + idStr interactionEntity; + idStr interactionName; + idList breadCrumbs; +}; + +// IDA Local Type ordinal 21533; PDB kind: class. +class idPlaytestStorage::playerMiscControlBreadCrumbInfo_t +{ +public: + idVec3 loc; + idVec3 dir; + float speed; + int count; + int timestamp; + int lastTimeStamp; +}; + +// IDA Local Type ordinal 21535; PDB kind: class. +class idPlaytestStorage::playerMiscControlBreadCrumbList_t +{ +public: + idStr controlName; + bool isInteraction; + idList breadCrumbs; +}; + +// IDA Local Type ordinal 21537; PDB kind: class. +class __declspec(align(4)) idPlaytestStorage::playerVehicleBreadCrumbInfo_t +{ +public: + idVec3 loc; + idVec3 dir; + float health; + float healthPercent; + float speed; + float boost; + int ammo; + int count; + int timestamp; + int lastTimeStamp; + bool combatHud; +}; + +// IDA Local Type ordinal 21539; PDB kind: class. +class idPlaytestStorage::playerVehicleBreadCrumbList_t +{ +public: + idStr vehicleName; + bool isRCBomb; + idList breadCrumbs; +}; + +// IDA Local Type ordinal 21541; PDB kind: class. +class idPlaytestStorage::playerMainBreadCrumbInfo_t +{ +public: + idPlaytestStorage::playerBreadCrumbState_t state; + idList normalBreadCrumbs; + idList miscBreadCrumbs; + idList vehicleBreadCrumbs; +}; + +// IDA Local Type ordinal 21543; PDB kind: class. +class idPlaytestStorage::playerButtonInfo_t +{ +public: + int buttons; + char forwardmove; + char rightmove; + char upmove; + int timestamp; + int lastTimestamp; +}; + +// IDA Local Type ordinal 21546; PDB kind: class. +class idPlaytestStorage::itemInfo_t +{ +public: + idVec3 loc; + idStr itemName; + int count; + idStr materialName; + int timestamp; +}; + +// IDA Local Type ordinal 21549; PDB kind: class. +class idPlaytestStorage::useFocusInfo_t +{ +public: + idVec3 loc; + idVec3 dir; + idStr focusName; + int timestamp; +}; + +// IDA Local Type ordinal 21552; PDB kind: class. +class idPlaytestStorage::quickItemInfo_t +{ +public: + idVec3 loc; + idStr quickItemName; + idStr quickItemMaterial; + int timestamp; +}; + +// IDA Local Type ordinal 21555; PDB kind: class. +class idPlaytestStorage::equipItemInfo_t +{ +public: + idVec3 loc; + idStr equipedItemName; + idStr equipedItemMaterial; + int timestamp; +}; + +// IDA Local Type ordinal 21558; PDB kind: class. +class idPlaytestStorage::deathInfo_t +{ +public: + idVec3 loc; + idVec3 killerLoc; + int entityNum; + idStr entityName; + int killerEntityNum; + idStr killerName; + idStr damageName; + int timestamp; +}; + +// IDA Local Type ordinal 21561; PDB kind: class. +class idPlaytestStorage::weaponFireInfo_t +{ +public: + idStr weaponName; + idStr projectileName; + int attackerNum; + idStr attackerName; + int targetNum; + float spread; + idVec3 start; + idVec3 dir; + int timestamp; +}; + +// IDA Local Type ordinal 21564; PDB kind: class. +class idPlaytestStorage::inventoryElement_t +{ +public: + idStr itemName; + idStr materialName; + int count; +}; + +// IDA Local Type ordinal 21566; PDB kind: class. +class idPlaytestStorage::inventoryInfo_t +{ +public: + int timestamp; + idVec3 loc; + idList inventoryList; +}; + +// IDA Local Type ordinal 21569; PDB kind: class. +class idPlaytestStorage::radiusDamageInfo_t +{ +public: + idVec3 loc; + float radius; + float minDamage; + float maxDamage; + float playerDamageScale; + idStr inflictorName; + idStr attackerName; + idStr damageDefName; + int timestamp; +}; + +// IDA Local Type ordinal 21571; PDB kind: class. +class idPlaytestStorage::ai2FSMStateInfo_t +{ +public: + idStr fsmName; + idStr stateName; + idStr lastTransition; +}; + +// IDA Local Type ordinal 21573; PDB kind: class. +class idPlaytestStorage::ai2StateInfo_t +{ +public: + int timestamp; + int lastTimeStamp; + int count; + idList states; +}; + +// IDA Local Type ordinal 21575; PDB kind: class. +class __declspec(align(4)) idPlaytestStorage::ai2BreadCrumbInfo_t +{ +public: + idVec3 loc; + idVec3 dir; + float health; + float healthPercent; + float speed; + int count; + int timestamp; + int lastTimeStamp; + bool isHostile; + bool isTalking; +}; + +// IDA Local Type ordinal 21578; PDB kind: class. +class idPlaytestStorage::ai2Info_t +{ +public: + int entNum; + idStr entName; + int creationTimeStamp; + bool isDormant; + idList stateLog; + idList,5> breadCrumbs; + idList dormantTimeStamps; +}; + +// IDA Local Type ordinal 21580; PDB kind: class. +class __declspec(align(4)) idPlaytestStorage::aiVehicleBreadCrumbInfo_t +{ +public: + idVec3 loc; + idVec3 dir; + float health; + float healthPercent; + float speed; + float boost; + int ammo; + int count; + int timestamp; + int lastTimeStamp; + bool hasCar; + bool isRCBomb; +}; + +// IDA Local Type ordinal 21582; PDB kind: class. +class idPlaytestStorage::aiVehicleInfo_t +{ +public: + int entNum; + idStr entName; + int creationTimeStamp; + idList breadCrumbs; +}; + +// IDA Local Type ordinal 21584; PDB kind: class. +class idPlaytestStorage +{ +public: + idList playerBreadCrumbs; + idList,5> playerButtonInfo; + idList,5> playerItemInfo; + idList,5> playerUseFocusInfo; + idList,5> playerUseQuickItemInfo; + idList,5> playerEquipItemInfo; + idList,5> playerDeathInfo; + idList,5> playerWeaponFireInfo; + idList,5> playerInventoryInfo; + idList radiusDamageInfo; + idList otherDeathInfo; + idList otherWeaponFireInfo; + idList ai2Info; + idList aiVehicleInfo; + int numPlayers; + int version; + idStr buildVersionString; + int buildNumberMajor; + int buildNumberMinor; + idStr machineName; + idStr fileName; + idStr playMapName; + int numActiveLayers; + idList activeLayers; + int beginTime; + int lastTime; + int offsetTime; +}; + +// IDA Local Type ordinal 21639; PDB kind: class. +class idPlaytestStorage::weaponUsageReport_t +{ +public: + idStr weaponName; + int time; + float percentage; + int projectilesSpawned; +}; + +// IDA Local Type ordinal 21813; PDB kind: class. +class idPlaytestStorage::quickItemReport_t +{ +public: + idStr itemName; + int count; +}; + +// IDA Local Type ordinal 21910; PDB kind: class. +class idPlaytestStorage::killReport_t +{ +public: + idStr damageName; + int count; +}; + +// IDA Local Type ordinal 21978; PDB kind: class. +class idPlaytestMetaStorage +{ +public: + int version; + int beginTime; + int lastTime; + idStr fileName; + idStr buildVersionString; + int buildNumberMajor; + int buildNumberMinor; + idStr machineName; + idList storageList; +}; + +// IDA Local Type ordinal 22426; PDB kind: class. +class idPlaytestStorage::idSort_WeaponUsageReport : public idSort_Quick +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22427. + virtual ~idSort_WeaponUsageReport(); + virtual void Sort(idPlaytestStorage::weaponUsageReport_t *, unsigned int); + +}; + +// IDA Local Type ordinal 22428; PDB kind: class. +class idPlaytestStorage::idSort_KillReport : public idSort_Quick +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22429. + virtual ~idSort_KillReport(); + virtual void Sort(idPlaytestStorage::killReport_t *, unsigned int); + +}; + +// IDA Local Type ordinal 22430; PDB kind: class. +class idPlaytestStorage::idSort_QuickItemReport : public idSort_Quick +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22431. + virtual ~idSort_QuickItemReport(); + virtual void Sort(idPlaytestStorage::quickItemReport_t *, unsigned int); + +}; diff --git a/source/engine/framework/regression.h b/source/engine/framework/regression.h new file mode 100644 index 0000000..fbc05f6 --- /dev/null +++ b/source/engine/framework/regression.h @@ -0,0 +1,31 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\framework\regression.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17424; PDB kind: class. +class idRegression +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17434. + virtual ~idRegression(); + virtual void MakeTest(const idCmdArgs *); + virtual void MakeTestLoadGame(const idCmdArgs *); + virtual void StopTest(); + virtual void PlayTest(const char *, bool); + virtual void NextTest(); + virtual void DisplayTextScreen(const char *, int); + virtual idTestReport *GetTestReport(); + virtual void SetName(const char *); + virtual const char *GetName(); + virtual void QueueEventString(const char *); + virtual bool ProcessQueuedEvents(); + virtual void SetTestInProgress(bool); + virtual bool GetTestInProgress(); + virtual void UpdateCurrentTestFile(const char *); + virtual void SetForceIgnoreNextTestCommands(bool); + +}; diff --git a/source/engine/framework/rendermanager.h b/source/engine/framework/rendermanager.h new file mode 100644 index 0000000..8e10821 --- /dev/null +++ b/source/engine/framework/rendermanager.h @@ -0,0 +1,15 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\framework\rendermanager.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22579; PDB kind: class. +class __declspec(align(16)) idRenderManager +{ +public: + idRenderFrameInfo renderFrameInfo; + const screenViewDef_t *currentViewDef; +}; diff --git a/source/engine/framework/resource.h b/source/engine/framework/resource.h new file mode 100644 index 0000000..cbd1e6c --- /dev/null +++ b/source/engine/framework/resource.h @@ -0,0 +1,155 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\framework\resource.h +// Recovered logical types: 12 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2777; PDB kind: enum. +enum idResource::referenceType_t : __int32 +{ + REF_UNKNOWN = 0x0, + REF_FREED = 0x1, + REF_WEAK = 0x2, + REF_STRONG = 0x3, +}; + +// IDA Local Type ordinal 2778; PDB kind: enum. +enum idResource::resourceError_t : __int32 +{ + RESOURCE_ERROR_NONE = 0x0, + RESOURCE_ERROR_FILE_NOT_FOUND = 0x1, + RESOURCE_ERROR_WRONG_TYPE = 0x2, + RESOURCE_ERROR_INVALID_NAME = 0x3, + RESOURCE_ERROR_HEADER_VERSION_MISMATCH = 0x4, + RESOURCE_ERROR_RESOURCE_VERSION_MISMATCH = 0x5, + RESOURCE_ERROR_FATAL = 0x6, + RESOURCE_ERROR_TRUNCATED = 0x7, + RESOURCE_ERROR_MAX = 0x8, +}; + +// IDA Local Type ordinal 2779; PDB kind: enum. +enum idResource::resourceHeader_t::resourcePlatform_t : __int32 +{ + RESOURCEPLATFORM_WINDOWS = 0x0, + RESOURCEPLATFORM_360 = 0x1, + RESOURCEPLATFORM_PS3 = 0x2, + RESOURCEPLATFORM_MAC = 0x3, + RESOURCEPLATFORM_MAX = 0x4, +}; + +// IDA Local Type ordinal 13299; PDB kind: class. +class __declspec(align(4)) idResource +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13302. + virtual ~idResource(); + virtual void LoadResource(); + virtual bool ReloadIfStale(); + virtual void WriteResourceFile(); + virtual idResourceList *GetResourceList(); + virtual void Print(); + virtual void List(); + + int trackedMemory; + idAtomicString name; + idResource *nextOnHashChain; + idResourceList *resourceListPtr; + const char *resourceError; + int networkID; + int staleCount; + unsigned __int8 : 3; + __int8 loadDeferred : 1; + __int8 forceLoad : 1; + __int8 insideRecursiveLoad : 1; + __int8 staticResource : 1; + __int8 loadedResource : 1; +}; + +// IDA Local Type ordinal 13653; PDB kind: class. +class idCodeResource : public idBaseCodeResource +{ +public: +}; + +// IDA Local Type ordinal 17567; PDB kind: class. +class idCodeResource : public idBaseCodeResource +{ +public: +}; + +// IDA Local Type ordinal 19095; PDB kind: class. +class idAtlasResource : public idResource +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19096. + virtual ~idAtlasResource(); + virtual void LoadResource(); + virtual bool ReloadIfStale(); + virtual void WriteResourceFile(); + virtual idResourceList *GetResourceList(); + virtual void Print(); + virtual void List(); + + unsigned int binaryTimestamp; + idVec4 scaleBias; + int img_tiles_wide; + int img_tiles_high; + int img_x; + int img_y; + int img_w; + int img_h; +}; + +// IDA Local Type ordinal 21416; PDB kind: class. +class idCodeResource : public idBaseCodeResource +{ +public: +}; + +// IDA Local Type ordinal 22063; PDB kind: struct. +struct idResource::resourceHeader_t +{ + unsigned __int16 headerVersionHi; + unsigned __int16 headerVersionLo; + unsigned int resourceId; + unsigned __int16 versionHi; + unsigned __int16 versionLo; + unsigned int sourceTimestamp; + unsigned __int16 sourceFileNameLen; + unsigned __int16 uniqueIdNameLen; + unsigned __int8 platform; + unsigned __int8 pad[3]; + unsigned __int64 uniqueId; + unsigned __int64 hash; + unsigned __int64 dataOffset; + unsigned __int64 totalSize; +}; + +// IDA Local Type ordinal 22703; PDB kind: class. +class idCodeResource : public idBaseCodeResource +{ +public: +}; + +// IDA Local Type ordinal 22770; PDB kind: class. +class idCodeResource : public idBaseCodeResource +{ +public: +}; + +// IDA Local Type ordinal 23337; PDB kind: class. +class idJointResource : public idResource +{ +public: + // Recovered virtual interface; IDA vtable ordinal 23338. + virtual ~idJointResource(); + virtual void LoadResource(); + virtual bool ReloadIfStale(); + virtual void WriteResourceFile(); + virtual idResourceList *GetResourceList(); + virtual void Print(); + virtual void List(); + +}; diff --git a/source/engine/framework/resourcelist.h b/source/engine/framework/resourcelist.h new file mode 100644 index 0000000..36ab730 --- /dev/null +++ b/source/engine/framework/resourcelist.h @@ -0,0 +1,353 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\framework\resourcelist.h +// Recovered logical types: 31 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13300; PDB kind: class. +class idResourceList +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13301. + virtual ~idResourceList(); + virtual idResource *Alloc(const char *); + virtual int AllocSize(); + + const char *resourceTypeName; + idResourceList *nextResourceList; + int num; + int staticID; + idResource *hashTable[256]; +}; + +// IDA Local Type ordinal 18047; PDB kind: class. +class idTypedResourceList : public idResourceList +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18048. + virtual ~idTypedResourceList(); + virtual idResource *Alloc(const char *); + virtual int AllocSize(); + +}; + +// IDA Local Type ordinal 18119; PDB kind: class. +class idTypedResourceList : public idResourceList +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18120. + virtual ~idTypedResourceList(); + virtual idResource *Alloc(const char *); + virtual int AllocSize(); + +}; + +// IDA Local Type ordinal 18306; PDB kind: class. +class idTypedResourceList : public idResourceList +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18307. + virtual ~idTypedResourceList(); + virtual idResource *Alloc(const char *); + virtual int AllocSize(); + +}; + +// IDA Local Type ordinal 18732; PDB kind: class. +class idTypedResourceList : public idResourceList +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18733. + virtual ~idTypedResourceList(); + virtual idResource *Alloc(const char *); + virtual int AllocSize(); + +}; + +// IDA Local Type ordinal 18735; PDB kind: class. +class idTypedResourceList : public idResourceList +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18736. + virtual ~idTypedResourceList(); + virtual idResource *Alloc(const char *); + virtual int AllocSize(); + +}; + +// IDA Local Type ordinal 18739; PDB kind: class. +class idTypedResourceList : public idResourceList +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18740. + virtual ~idTypedResourceList(); + virtual idResource *Alloc(const char *); + virtual int AllocSize(); + +}; + +// IDA Local Type ordinal 19089; PDB kind: class. +class idTypedResourceList : public idResourceList +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19090. + virtual ~idTypedResourceList(); + virtual idResource *Alloc(const char *); + virtual int AllocSize(); + +}; + +// IDA Local Type ordinal 19097; PDB kind: class. +class idTypedResourceList : public idResourceList +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19098. + virtual ~idTypedResourceList(); + virtual idResource *Alloc(const char *); + virtual int AllocSize(); + +}; + +// IDA Local Type ordinal 20001; PDB kind: class. +class idTypedResourceList : public idResourceList +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20002. + virtual ~idTypedResourceList(); + virtual idResource *Alloc(const char *); + virtual int AllocSize(); + +}; + +// IDA Local Type ordinal 20076; PDB kind: class. +class idTypedResourceList : public idResourceList +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20077. + virtual ~idTypedResourceList(); + virtual idResource *Alloc(const char *); + virtual int AllocSize(); + +}; + +// IDA Local Type ordinal 21602; PDB kind: class. +class idTypedResourceList : public idResourceList +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21603. + virtual ~idTypedResourceList(); + virtual idResource *Alloc(const char *); + virtual int AllocSize(); + +}; + +// IDA Local Type ordinal 21604; PDB kind: class. +class idTypedResourceList : public idResourceList +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21605. + virtual ~idTypedResourceList(); + virtual idResource *Alloc(const char *); + virtual int AllocSize(); + +}; + +// IDA Local Type ordinal 21607; PDB kind: class. +class idTypedResourceList : public idResourceList +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21608. + virtual ~idTypedResourceList(); + virtual idResource *Alloc(const char *); + virtual int AllocSize(); + +}; + +// IDA Local Type ordinal 21627; PDB kind: class. +class idTypedResourceList : public idResourceList +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21628. + virtual ~idTypedResourceList(); + virtual idResource *Alloc(const char *); + virtual int AllocSize(); + +}; + +// IDA Local Type ordinal 21701; PDB kind: class. +class idTypedResourceList : public idResourceList +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21702. + virtual ~idTypedResourceList(); + virtual idResource *Alloc(const char *); + virtual int AllocSize(); + +}; + +// IDA Local Type ordinal 21755; PDB kind: class. +class idTypedResourceList : public idResourceList +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21756. + virtual ~idTypedResourceList(); + virtual idResource *Alloc(const char *); + virtual int AllocSize(); + +}; + +// IDA Local Type ordinal 21903; PDB kind: class. +class idTypedResourceList : public idResourceList +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21904. + virtual ~idTypedResourceList(); + virtual idResource *Alloc(const char *); + virtual int AllocSize(); + +}; + +// IDA Local Type ordinal 21984; PDB kind: class. +class idTypedResourceList : public idResourceList +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21985. + virtual ~idTypedResourceList(); + virtual idResource *Alloc(const char *); + virtual int AllocSize(); + +}; + +// IDA Local Type ordinal 22175; PDB kind: class. +class idTypedResourceList : public idResourceList +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22176. + virtual ~idTypedResourceList(); + virtual idResource *Alloc(const char *); + virtual int AllocSize(); + +}; + +// IDA Local Type ordinal 22333; PDB kind: class. +class idTypedResourceList : public idResourceList +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22334. + virtual ~idTypedResourceList(); + virtual idResource *Alloc(const char *); + virtual int AllocSize(); + +}; + +// IDA Local Type ordinal 22456; PDB kind: class. +class idTypedResourceList : public idResourceList +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22457. + virtual ~idTypedResourceList(); + virtual idResource *Alloc(const char *); + virtual int AllocSize(); + +}; + +// IDA Local Type ordinal 22869; PDB kind: class. +class idTypedResourceList : public idResourceList +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22870. + virtual ~idTypedResourceList(); + virtual idResource *Alloc(const char *); + virtual int AllocSize(); + +}; + +// IDA Local Type ordinal 22873; PDB kind: class. +class idTypedResourceList : public idResourceList +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22874. + virtual ~idTypedResourceList(); + virtual idResource *Alloc(const char *); + virtual int AllocSize(); + +}; + +// IDA Local Type ordinal 23020; PDB kind: class. +class idTypedResourceList : public idResourceList +{ +public: + // Recovered virtual interface; IDA vtable ordinal 23021. + virtual ~idTypedResourceList(); + virtual idResource *Alloc(const char *); + virtual int AllocSize(); + +}; + +// IDA Local Type ordinal 23026; PDB kind: class. +class idTypedResourceList : public idResourceList +{ +public: + // Recovered virtual interface; IDA vtable ordinal 23027. + virtual ~idTypedResourceList(); + virtual idResource *Alloc(const char *); + virtual int AllocSize(); + +}; + +// IDA Local Type ordinal 23308; PDB kind: class. +class idTypedResourceList : public idResourceList +{ +public: + // Recovered virtual interface; IDA vtable ordinal 23309. + virtual ~idTypedResourceList(); + virtual idResource *Alloc(const char *); + virtual int AllocSize(); + +}; + +// IDA Local Type ordinal 23335; PDB kind: class. +class idTypedResourceList : public idResourceList +{ +public: + // Recovered virtual interface; IDA vtable ordinal 23336. + virtual ~idTypedResourceList(); + virtual idResource *Alloc(const char *); + virtual int AllocSize(); + +}; + +// IDA Local Type ordinal 23364; PDB kind: class. +class idTypedResourceList : public idResourceList +{ +public: + // Recovered virtual interface; IDA vtable ordinal 23365. + virtual ~idTypedResourceList(); + virtual idResource *Alloc(const char *); + virtual int AllocSize(); + +}; + +// IDA Local Type ordinal 23512; PDB kind: class. +class idTypedResourceList : public idResourceList +{ +public: + // Recovered virtual interface; IDA vtable ordinal 23513. + virtual ~idTypedResourceList(); + virtual idResource *Alloc(const char *); + virtual int AllocSize(); + +}; + +// IDA Local Type ordinal 23769; PDB kind: class. +class idTypedResourceList : public idResourceList +{ +public: + // Recovered virtual interface; IDA vtable ordinal 23770. + virtual ~idTypedResourceList(); + virtual idResource *Alloc(const char *); + virtual int AllocSize(); + +}; diff --git a/source/engine/framework/resourcemanager.h b/source/engine/framework/resourcemanager.h new file mode 100644 index 0000000..330f6d6 --- /dev/null +++ b/source/engine/framework/resourcemanager.h @@ -0,0 +1,58 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\framework\resourcemanager.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 18479; PDB kind: class. +class idResourceManager +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18480. + virtual ~idResourceManager(); + virtual void Init(); + virtual void Init2(const bool); + virtual void Shutdown(); + virtual void CancelToTerminate(); + virtual void CloseOpenFileHandles(); + virtual bool ReOpenFileHandles(); + virtual void StartupComplete(); + virtual void SetFileHook(); + virtual void ReleaseFileHook(); + virtual bool AllocGameWithResourceFile(idGame **, const idGameSpawnInfo *, idFile *, const char *); + virtual idFile_Memory *LoadCacheFile(const char *); + virtual idFile_Memory *LoadPatchFile(const char *); + virtual idFile_Stat *StatCacheFile(const char *); + virtual idFile_Stat *StatPatchFile(const char *); + virtual bool GetCacheFileInfo(const char *, __int64 *, unsigned int *, unsigned int *, unsigned int *, bool); + virtual bool GetPatchFileInfo(const char *, __int64 *, unsigned int *, unsigned int *, unsigned int *, int *); + virtual idFile *GetCacheFile(); + virtual idFile *GetPatchFile(const int); + virtual idFile *GetStreamFile(); + virtual idFile *GetCachedStreamFile(); + virtual idFile *GetLocalizedStreamFile(); + virtual bool IsResourceFile(idFile *); + virtual void SetResourceFilePlatform(unsigned int); + virtual unsigned int GetBuildPlatforms(); + virtual void BeginEntity(const char *, const idList *); + virtual void EndEntity(); + virtual const idList *GetLanguages(); + virtual bool ExcludeImage(const char *); + virtual bool ExcludeFont(const char *); + virtual int GetCurrentDiscNumber(); + +}; + +// IDA Local Type ordinal 23418; PDB kind: struct. +struct jpeg_source_mgr +{ + const unsigned __int8 *next_input_byte; + unsigned int bytes_in_buffer; + void (__fastcall *init_source)(jpeg_decompress_struct *); + unsigned __int8 (__fastcall *fill_input_buffer)(jpeg_decompress_struct *); + void (__fastcall *skip_input_data)(jpeg_decompress_struct *, int); + unsigned __int8 (__fastcall *resync_to_restart)(jpeg_decompress_struct *, int); + void (__fastcall *term_source)(jpeg_decompress_struct *); +}; diff --git a/source/engine/framework/resourcemanager_local.h b/source/engine/framework/resourcemanager_local.h new file mode 100644 index 0000000..395adc3 --- /dev/null +++ b/source/engine/framework/resourcemanager_local.h @@ -0,0 +1,69 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\framework\resourcemanager_local.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 23578; PDB kind: class. +class __declspec(align(4)) idResourceManagerLocal : public idResourceManager +{ +public: + // Recovered virtual interface; IDA vtable ordinal 23579. + virtual ~idResourceManagerLocal(); + virtual void Init(); + virtual void Init2(const bool); + virtual void Shutdown(); + virtual void CancelToTerminate(); + virtual void CloseOpenFileHandles(); + virtual bool ReOpenFileHandles(); + virtual void StartupComplete(); + virtual void SetFileHook(); + virtual void ReleaseFileHook(); + virtual bool AllocGameWithResourceFile(idGame **, const idGameSpawnInfo *, idFile *, const char *); + virtual idFile_Memory *LoadCacheFile(const char *); + virtual idFile_Memory *LoadPatchFile(const char *); + virtual idFile_Stat *StatCacheFile(const char *); + virtual idFile_Stat *StatPatchFile(const char *); + virtual bool GetCacheFileInfo(const char *, __int64 *, unsigned int *, unsigned int *, unsigned int *, bool); + virtual bool GetPatchFileInfo(const char *, __int64 *, unsigned int *, unsigned int *, unsigned int *, int *); + virtual idFile *GetCacheFile(); + virtual idFile *GetPatchFile(const int); + virtual idFile *GetStreamFile(); + virtual idFile *GetCachedStreamFile(); + virtual idFile *GetLocalizedStreamFile(); + virtual bool IsResourceFile(idFile *); + virtual void SetResourceFilePlatform(unsigned int); + virtual unsigned int GetBuildPlatforms(); + virtual void BeginEntity(const char *, const idList *); + virtual void EndEntity(); + virtual const idList *GetLanguages(); + virtual bool ExcludeImage(const char *); + virtual bool ExcludeFont(const char *); + virtual int GetCurrentDiscNumber(); + + idFile *resourceFile; + idFile *streamFile; + idFile *localizedStreamFile; + idFile *cachedStreamFile; + idStaticList patchFiles; + unsigned int tableOffset; + unsigned int tableLength; + unsigned int resourceMagic; + idResourceAnnotation *currentSortedResource; + idResource *currentResource; + idList writtenResourceTable; + idList fileTable; + int fileTableResource; + idList cacheTable; + idHashIndex cacheHash; + idList patchTable; + idHashIndex patchHash; + unsigned int filePlatformBits; + unsigned int buildPlatforms; + int lastUPacifierMsec; + idList languages; + bool denyFonts; + volatile bool cancelToTerminate; +}; diff --git a/source/engine/framework/sourcecontrolwrapper.h b/source/engine/framework/sourcecontrolwrapper.h new file mode 100644 index 0000000..108347b --- /dev/null +++ b/source/engine/framework/sourcecontrolwrapper.h @@ -0,0 +1,46 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\framework\sourcecontrolwrapper.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22324; PDB kind: class. +class __declspec(align(4)) idSourceControlWrapper : public idSourceControl +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22325. + virtual ~idSourceControlWrapper(); + virtual bool Init(); + virtual void Shutdown(); + virtual void SetSilentCheckOut(bool); + virtual bool GetSilentCheckOut(); + virtual void SetSilentCheckIn(bool); + virtual bool GetSilentCheckIn(); + virtual bool IsConnected(); + virtual bool IsInitialized(); + virtual int CheckOut(const idList *); + virtual int UndoCheckOut(const idList *); + virtual int Import(const idList *, bool, bool, scFileType_t); + virtual int GetLatest(const idList *, bool); + virtual int CheckIn(const idList *, const idStr *, bool); + virtual int Delete(const idList *); + virtual int UpdateFolder(const char *); + virtual scFileStatus_t GetFileStatus(const idStr *); + virtual bool GetFileVersion(const idStr *, int *, int *); + virtual int GetNumCheckOutUsers(const idStr *); + virtual void GetCheckOutUser(const idStr *, int, char *, const int); + virtual void GetUsernameForFileVersion(const idStr *, int, idStr *); + virtual void GetCurrentWorkspace(idSourceControl::idSourceControlWorkspace *); + virtual void GetAvailableWorkspaces(struct idList *); + virtual void SetWorkspace(const char *); + virtual void SetWorkspace_2(idSourceControl::idSourceControlWorkspace *); + virtual bool IsWorkspaceValid(); + virtual idStr *GetUsername(idStr *result); + + idSourceControl *sc; + unsigned int dllHandle; + bool loadFailed; + bool autoInitAttempt; +}; diff --git a/source/engine/framework/streamfilecache.h b/source/engine/framework/streamfilecache.h new file mode 100644 index 0000000..b0900a9 --- /dev/null +++ b/source/engine/framework/streamfilecache.h @@ -0,0 +1,16 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\framework\streamfilecache.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 12275; PDB kind: class. +class __declspec(align(4)) idStreamFileCache +{ +public: + idSysMutex interfaceMutex; + idStreamControlThread *controlThread; + volatile bool cancelToTerminate; +}; diff --git a/source/engine/framework/streamfilelog.h b/source/engine/framework/streamfilelog.h new file mode 100644 index 0000000..81fdad3 --- /dev/null +++ b/source/engine/framework/streamfilelog.h @@ -0,0 +1,19 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\framework\streamfilelog.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 23532; PDB kind: class. +class idStreamFileLog +{ +public: + int numEntries; + int maxEntries; + sflEntry_t *entries; + idSysMutex mutex; + sflIO_t driveState[3]; + sflEntry_t *currentEntry[3]; +}; diff --git a/source/engine/framework/subtitles.h b/source/engine/framework/subtitles.h new file mode 100644 index 0000000..be3d40f --- /dev/null +++ b/source/engine/framework/subtitles.h @@ -0,0 +1,43 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\framework\subtitles.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1223; PDB kind: unknown. +enum idSubtitles:: : __int32 +{ + LANGUAGE_UNDEF = 0x0, + LANGUAGE_ENGLISH = 0x1, + LANGUAGE_GERMAN = 0x2, + LANGUAGE_FRENCH = 0x3, + LANGUAGE_SPANISH = 0x4, + LANGUAGE_ITALIAN = 0x5, + LANGUAGE_POLISH = 0x6, + LANGUAGE_RUSSIAN = 0x7, + LANGUAGE_JAPANESE = 0x8, + LANGUAGE_HEBREW = 0x9, + NUM_LANGUAGES = 0xA, + MASK_ALL = 0xFFFFFFFF, +}; + +// IDA Local Type ordinal 15385; PDB kind: class. +class idSubtitles::idPart +{ +public: + int flags; + int language; + float startTime; + idStr phrase; +}; + +// IDA Local Type ordinal 21811; PDB kind: class. +class idSubtitles +{ +public: +}; + +// IDA Local Type ordinal 29407; PDB kind: typedef. +typedef idList subtitleList_t; diff --git a/source/engine/framework/timemanager.h b/source/engine/framework/timemanager.h new file mode 100644 index 0000000..7bd613f --- /dev/null +++ b/source/engine/framework/timemanager.h @@ -0,0 +1,23 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\framework\timemanager.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14456; PDB kind: class. +class idJobTimerManager +{ +public: + bool active; + idList iterations; +}; + +// IDA Local Type ordinal 17372; PDB kind: class. +class idTimeManager +{ +public: + int gameHz; + idTypesafeNumber gameTimePerFrame; +}; diff --git a/source/engine/framework/usercmdgen.h b/source/engine/framework/usercmdgen.h new file mode 100644 index 0000000..9bb4ba8 --- /dev/null +++ b/source/engine/framework/usercmdgen.h @@ -0,0 +1,114 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\framework\usercmdgen.h +// Recovered logical types: 5 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14079; PDB kind: class. +class __declspec(align(4)) usercmd_t +{ +public: + int buttons; + __int16 buttons2; + char forwardmove; + char rightmove; + char upmove; + unsigned __int8 : 6; + __int8 fromBot : 1; + __int8 inhibited : 1; + __int16 angles[3]; + int clientGameFrame; + float pos[3]; + __int16 pitch; + __int16 yaw; + __int16 roll; + unsigned __int8 predictionStateBits; + int serverGameTime; + unsigned __int16 fireCount; + __int16 fireAngles[2]; + __int16 firePos[3]; + unsigned __int8 vehicleThrottle; + unsigned __int8 speed; +}; + +// IDA Local Type ordinal 15136; PDB kind: class. +class idUserCmdMgr +{ +public: + usercmd_t cmdBuffer[128][6]; + int writeFrame[6]; + int readFrame[6]; +}; + +// IDA Local Type ordinal 17669; PDB kind: class. +class idUsercmdGen +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17670. + virtual ~idUsercmdGen(); + virtual void Init(); + virtual void Shutdown(); + virtual void Clear(); + virtual void ClearAngles(); + virtual void SaveGame(idFile *); + virtual bool LoadGame(idFile *); + virtual cmdGenButton_t BindStringUsercmdAction(const char *); + virtual usercmd_t *GetUsercmd(usercmd_t *result, int, const inputSettings_t *, bool, int); + virtual void GetRecordedUserCmd(int, usercmd_t *); + virtual bool RecordPlay(int, bool, const char *); + virtual bool GetUseAimAssist(); + +}; + +// IDA Local Type ordinal 23528; PDB kind: struct. +struct idUsercmdGenLocal::usercmdDevice_t +{ + int lastPollTime; + idAngles angles; + bool keyState[296]; + float joystickAxis[6]; +}; + +// IDA Local Type ordinal 23529; PDB kind: class. +class idUsercmdGenLocal : public idUsercmdGen +{ +public: + // Recovered virtual interface; IDA vtable ordinal 23530. + virtual ~idUsercmdGenLocal(); + virtual void Init(); + virtual void Shutdown(); + virtual void Clear(); + virtual void ClearAngles(); + virtual void SaveGame(idFile *); + virtual bool LoadGame(idFile *); + virtual cmdGenButton_t BindStringUsercmdAction(const char *); + virtual usercmd_t *GetUsercmd(usercmd_t *result, int, const inputSettings_t *, bool, int); + virtual void GetRecordedUserCmd(int, usercmd_t *); + virtual bool RecordPlay(int, bool, const char *); + virtual bool GetUseAimAssist(); + + int pollTime; + idUsercmdGenLocal::usercmdDevice_t devices[4]; + bool buttonState[59]; + int lastCommandTime; + bool initialized; + int currentDeviceNum; + idUsercmdGenLocal::usercmdDevice_t *currentDevice; + inputSettings_t currentSettings; + usercmd_t cmd; + float mouseDx; + float mouseDy; + int lastInputFrame; + idFile *cmdFiles[6]; + bool recording[6]; + int loopPlayCmds[6]; + bool aimAssist; + bool joystickSnapDisabled; + float lastUsedLookValue[4]; + float lastUsedLookValuePitch[4]; + bool allowButtonInputDuringPlay; + const idDeclTable *sensitivityJoy1; + const idDeclTable *sensitivityJoy2; +}; diff --git a/source/engine/gamelib/aas2/aas2.h b/source/engine/gamelib/aas2/aas2.h new file mode 100644 index 0000000..f259f40 --- /dev/null +++ b/source/engine/gamelib/aas2/aas2.h @@ -0,0 +1,99 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\aas2\aas2.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14078; PDB kind: class. +class idAAS2 +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14113. + virtual ~idAAS2(); + virtual bool IsDefault(); + virtual bool Init(const char *, unsigned int); + virtual void Stats(); + virtual void Test(const idVec3 *, const idVec3 *, const idMat3 *, int, int, int, int, const int, idClip *, usercmd_t *, idAngles *); + virtual const idAAS2Settings *GetSettings(); + virtual idBounds *DefaultSearchBounds(idBounds *result); + virtual int PointAreaNum(idIndex, const idVec3 *); + virtual int PointReachableAreaNum(idIndex, const idVec3 *, const idBounds *, const int, const int); + virtual int BoundsReachableAreaNum(idIndex, const idBounds *, const int, const int); + virtual int BoundsReachableAreaNum_2(idIndex, const idVec3 *, const idBounds *, const int, const int); + virtual bool NearestPointReachable(idIndex, const idVec3 *, const int, const idVec3 *, const idBounds *, const int, idAAS2NearestReachable *); + virtual void PushPointIntoAreaNum(int, idVec3 *); + virtual idVec3 *AreaCenter(idVec3 *result, int); + virtual bool Trace(idIndex, aas2Trace_t *, const idVec3 *, const idVec3 *); + virtual bool TraceHeight(idIndex, aas2TraceHeight_t *, const idVec3 *, const idVec3 *); + virtual bool TraceFloor(aas2TraceFloor_t *, const idVec3 *, int, const idVec3 *, int, bool, bool, bool); + virtual void GetEdgeVertexNumbers(int, int *); + virtual void GetEdge(int, idVec3 *, idVec3 *); + virtual int GetEdgeFlags(int); + virtual int GetAreaFlags(int); + virtual bool ChangeAreaTravelFlags(const idBounds *, const int, int, bool); + virtual bool ChangeReachabilityTravelFlags(const char *, int, bool); + virtual bool ChangeReachabilityTravelFlags_2(idIndex, int, bool); + virtual int TravelTimeToGoalArea(int, const idVec3 *, int, const idVec3 *, int, const idAAS2TravelSpeeds *); + virtual bool RouteToGoalArea(int, const idVec3 *, int, const idVec3 *, int, int *, idIndex *); + virtual bool FindNearestGoal(idAAS2Goal *, int, const idVec3 *, int, idAAS2Callback *); + virtual bool WalkPathToGoal(idAAS2Path *, int, const idVec3 *, int, const idVec3 *, const int, const int); + virtual bool ExtendHopPathToGoal(idAAS2Path *, int, const idVec3 *, int, const idVec3 *, int, int, const idAAS2HopPathParms *); + virtual void ShowWalkPath(const int, const idVec3 *, const int, const idVec3 *, const int, const int, const int, const int, const int); + virtual void ShowHopPath(int, const idVec3 *, int, const idVec3 *, int, int, const idAAS2HopPathParms *); + virtual void DrawEdge(const int, const bool, const bool, const bool); + virtual void DrawReachability(const idIndex, const aas2Reachability_t *, const char *); + virtual void DrawArea(const int, const bool, const bool, const bool, const bool, const bool, const bool); + virtual float GetGroundSpeedMultiplier(); + virtual bool GetOptimizedWalkPath(int, const idVec3 *, int, const idVec3 *, int, int, idList *); + virtual int GetNumAreas(); + virtual const idPlane *GetPlane(const int); + virtual const aas2Area_t *GetArea(const int); + virtual const aas2Reachability_t *GetReachability(const idIndex); + virtual bool GetPath(const idVec3 *, const idVec3 *, const int, const int, const int, idAAS2PathPoint *, const int, int *); + virtual void ClipGridToAreas(const idVec3 *, int, int, int, int, unsigned __int8 *); + virtual int GetInvalidTravelFlags(); + virtual int GetTraversalsForReachability(const idIndex, idList *); + virtual int GetTraversalsForInteractableEntity(const idIndex, idList *); + virtual int FindBestTraversalForReachability(const idIndex, const idVec3 *, const idVec3 *, idVec3 *, idVec3 *, idIndex *, const int, bool); + virtual const aas2Traversal_t *GetTraversal(const int); + virtual bool GetAASAnim(const idIndex, const aas2AnimName_t **); + virtual idIndex *GetAASAnimIndexByName(idIndex *result, const char *); + virtual bool GetAASDependency(const idIndex, const aas2DependencyName_t **); + virtual idIndex *GetAASDependencyIndexByName(idIndex *result, const char *); + virtual bool GetAASInteractionEntity(const idIndex, const aas2InteractionEntityName_t **); + virtual idIndex *GetAASInteractionEntityIndexByName(idIndex *result, const char *); + virtual bool GetAASTraversalNameIndex(const idIndex, const aas2TraversalEntityName_t **); + virtual idIndex *GetAASTraversalNameIndexByName(idIndex *result, const char *); + virtual int GetAASTraversalIndexByNameIndex(const idIndex); + virtual bool SetTraversalFlag(int, int); + virtual bool ClearTraversalFlag(int, int); + virtual const unsigned __int8 *GetObstaclePVS(int); + virtual int GetObstaclePVSWallEdges(int, int, int *, int); + virtual int GetObstaclePVSClipModels(int, idClipModel **, int); + virtual void GetObstaclePVSObstacles(const int, const int, obstacleVertex_t *, int *, obstacleEdge_t *, int *, idClipModel **, int *, obstacleRoute_t *); + virtual void FreeClipLinks(); + virtual idAASClipLink *LinkClipModel(idClipModel *); + virtual idAASClipLink *UnLinkClipModel(idAASClipLink *); + virtual int GetNumCoverPoints(); + virtual const aas2Cover_t *GetCoverPoint(const int); + virtual int GetNumAreaCoverPoints(const int); + virtual int GetAreaCoverPoints(const int, int *, const int, int *); + virtual int FindCoverPoints(const int, const idVec3 *, const float, const int, const int, const int, int *, const int, int *); + virtual int GetNumChokePoints(); + virtual const aas2ChokePoint_t *GetChokePoint(const int); + virtual int GetNumHintNodes(); + virtual const aas2HintNode_t *GetHintNode(const int); + virtual bool GetAreaCells(const int, const int, int *, int *); + virtual bool WorldPosToCellPos(const int, const int, const idVec3 *, int *, int *); + virtual bool CellPosToWorldPos(const int, const int, const int, const int, idVec3 *, const bool); + virtual void DrawCoverPoint(const aas2Cover_t *, const int); + virtual int GetNumTrees(); + virtual idIndex *GetTree(idIndex *result, int); + virtual idIndex *GetTreeForFloorNormal(idIndex *result, const idVec3 *); + virtual const idVec3 *GetFloorNormalForArea(int); + virtual const idVec3 *GetFloorNormalForTree(idIndex); + virtual int GetNumAreasInTree(idIndex); + +}; diff --git a/source/engine/gamelib/aas2/aas2_local.h b/source/engine/gamelib/aas2/aas2_local.h new file mode 100644 index 0000000..f829f73 --- /dev/null +++ b/source/engine/gamelib/aas2/aas2_local.h @@ -0,0 +1,137 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\aas2\aas2_local.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 3176; PDB kind: unknown. +enum idAAS2Local::NearestPointReachable::__l2:: : __int32 +{ + MaxAreas = 0x20, +}; + +// IDA Local Type ordinal 14089; PDB kind: struct. +struct idAAS2Goal +{ + int areaNum; + idVec3 origin; +}; + +// IDA Local Type ordinal 23504; PDB kind: class. +class idAAS2Local : public idAAS2 +{ +public: + // Recovered virtual interface; IDA vtable ordinal 23510. + virtual ~idAAS2Local(); + virtual bool IsDefault(); + virtual bool Init(const char *, unsigned int); + virtual void Stats(); + virtual void Test(const idVec3 *, const idVec3 *, const idMat3 *, int, int, int, int, const int, idClip *, usercmd_t *, idAngles *); + virtual const idAAS2Settings *GetSettings(); + virtual idBounds *DefaultSearchBounds(idBounds *result); + virtual int PointAreaNum(idIndex, const idVec3 *); + virtual int PointReachableAreaNum(idIndex, const idVec3 *, const idBounds *, const int, const int); + virtual int BoundsReachableAreaNum(idIndex, const idBounds *, const int, const int); + virtual int BoundsReachableAreaNum_2(idIndex, const idVec3 *, const idBounds *, const int, const int); + virtual bool NearestPointReachable(idIndex, const idVec3 *, const int, const idVec3 *, const idBounds *, const int, idAAS2NearestReachable *); + virtual void PushPointIntoAreaNum(int, idVec3 *); + virtual idVec3 *AreaCenter(idVec3 *result, int); + virtual bool Trace(idIndex, aas2Trace_t *, const idVec3 *, const idVec3 *); + virtual bool TraceHeight(idIndex, aas2TraceHeight_t *, const idVec3 *, const idVec3 *); + virtual bool TraceFloor(aas2TraceFloor_t *, const idVec3 *, int, const idVec3 *, int, bool, bool, bool); + virtual void GetEdgeVertexNumbers(int, int *); + virtual void GetEdge(int, idVec3 *, idVec3 *); + virtual int GetEdgeFlags(int); + virtual int GetAreaFlags(int); + virtual bool ChangeAreaTravelFlags(const idBounds *, const int, int, bool); + virtual bool ChangeReachabilityTravelFlags(const char *, int, bool); + virtual bool ChangeReachabilityTravelFlags_2(idIndex, int, bool); + virtual int TravelTimeToGoalArea(int, const idVec3 *, int, const idVec3 *, int, const idAAS2TravelSpeeds *); + virtual bool RouteToGoalArea(int, const idVec3 *, int, const idVec3 *, int, int *, idIndex *); + virtual bool FindNearestGoal(idAAS2Goal *, int, const idVec3 *, int, idAAS2Callback *); + virtual bool WalkPathToGoal(idAAS2Path *, int, const idVec3 *, int, const idVec3 *, const int, const int); + virtual bool ExtendHopPathToGoal(idAAS2Path *, int, const idVec3 *, int, const idVec3 *, int, int, const idAAS2HopPathParms *); + virtual void ShowWalkPath(const int, const idVec3 *, const int, const idVec3 *, const int, const int, const int, const int, const int); + virtual void ShowHopPath(int, const idVec3 *, int, const idVec3 *, int, int, const idAAS2HopPathParms *); + virtual void DrawEdge(const int, const bool, const bool, const bool); + virtual void DrawReachability(const idIndex, const aas2Reachability_t *, const char *); + virtual void DrawArea(const int, const bool, const bool, const bool, const bool, const bool, const bool); + virtual float GetGroundSpeedMultiplier(); + virtual bool GetOptimizedWalkPath(int, const idVec3 *, int, const idVec3 *, int, int, idList *); + virtual int GetNumAreas(); + virtual const idPlane *GetPlane(const int); + virtual const aas2Area_t *GetArea(const int); + virtual const aas2Reachability_t *GetReachability(const idIndex); + virtual bool GetPath(const idVec3 *, const idVec3 *, const int, const int, const int, idAAS2PathPoint *, const int, int *); + virtual void ClipGridToAreas(const idVec3 *, int, int, int, int, unsigned __int8 *); + virtual int GetInvalidTravelFlags(); + virtual int GetTraversalsForReachability(const idIndex, idList *); + virtual int GetTraversalsForInteractableEntity(const idIndex, idList *); + virtual int FindBestTraversalForReachability(const idIndex, const idVec3 *, const idVec3 *, idVec3 *, idVec3 *, idIndex *, const int, bool); + virtual const aas2Traversal_t *GetTraversal(const int); + virtual bool GetAASAnim(const idIndex, const aas2AnimName_t **); + virtual idIndex *GetAASAnimIndexByName(idIndex *result, const char *); + virtual bool GetAASDependency(const idIndex, const aas2DependencyName_t **); + virtual idIndex *GetAASDependencyIndexByName(idIndex *result, const char *); + virtual bool GetAASInteractionEntity(const idIndex, const aas2InteractionEntityName_t **); + virtual idIndex *GetAASInteractionEntityIndexByName(idIndex *result, const char *); + virtual bool GetAASTraversalNameIndex(const idIndex, const aas2TraversalEntityName_t **); + virtual idIndex *GetAASTraversalNameIndexByName(idIndex *result, const char *); + virtual int GetAASTraversalIndexByNameIndex(const idIndex); + virtual bool SetTraversalFlag(int, int); + virtual bool ClearTraversalFlag(int, int); + virtual const unsigned __int8 *GetObstaclePVS(int); + virtual int GetObstaclePVSWallEdges(int, int, int *, int); + virtual int GetObstaclePVSClipModels(int, idClipModel **, int); + virtual void GetObstaclePVSObstacles(const int, const int, obstacleVertex_t *, int *, obstacleEdge_t *, int *, idClipModel **, int *, obstacleRoute_t *); + virtual void FreeClipLinks(); + virtual idAASClipLink *LinkClipModel(idClipModel *); + virtual idAASClipLink *UnLinkClipModel(idAASClipLink *); + virtual int GetNumCoverPoints(); + virtual const aas2Cover_t *GetCoverPoint(const int); + virtual int GetNumAreaCoverPoints(const int); + virtual int GetAreaCoverPoints(const int, int *, const int, int *); + virtual int FindCoverPoints(const int, const idVec3 *, const float, const int, const int, const int, int *, const int, int *); + virtual int GetNumChokePoints(); + virtual const aas2ChokePoint_t *GetChokePoint(const int); + virtual int GetNumHintNodes(); + virtual const aas2HintNode_t *GetHintNode(const int); + virtual bool GetAreaCells(const int, const int, int *, int *); + virtual bool WorldPosToCellPos(const int, const int, const idVec3 *, int *, int *); + virtual bool CellPosToWorldPos(const int, const int, const int, const int, idVec3 *, const bool); + virtual void DrawCoverPoint(const aas2Cover_t *, const int); + virtual int GetNumTrees(); + virtual idIndex *GetTree(idIndex *result, int); + virtual idIndex *GetTreeForFloorNormal(idIndex *result, const idVec3 *); + virtual const idVec3 *GetFloorNormalForArea(int); + virtual const idVec3 *GetFloorNormalForTree(idIndex); + virtual int GetNumAreasInTree(idIndex); + virtual void Shutdown(); + virtual void ShowOptimizedWalkPath(int, const idVec3 *, int, const idVec3 *, int, int); + + idAAS2File *file; + idStr name; + bool defaulted; + idAASRoutingCache ***areaCacheIndex; + int areaCacheIndexSize; + idAASRoutingCache **portalCacheIndex; + int portalCacheIndexSize; + idRoutingUpdate *areaUpdate; + idRoutingUpdate *portalUpdate; + unsigned __int16 *goalAreaTravelTimes; + unsigned __int16 *areaTravelTimes; + int numAreaTravelTimes; + idAASRoutingCache *cacheListStart; + idAASRoutingCache *cacheListEnd; + int totalCacheMemory; + float groundSpeedMultiplier; + float waterSpeedMultiplier; + int numObstaclePVSBytes; + unsigned __int8 *obstaclePVS; + int obstaclePVSAreaNum; + idAASClipLink **areaClipModels; + idBlockAlloc clipModelLinkAllocator; + idObstacleAvoidance obstacleAvoidance; +}; diff --git a/source/engine/gamelib/aas2/aas2callback_avoidlocation.h b/source/engine/gamelib/aas2/aas2callback_avoidlocation.h new file mode 100644 index 0000000..c4d15de --- /dev/null +++ b/source/engine/gamelib/aas2/aas2callback_avoidlocation.h @@ -0,0 +1,23 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\aas2\aas2callback_avoidlocation.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 23522; PDB kind: class. +class idAAS2Callback_AvoidLocation : public idAAS2Callback +{ +public: + // Recovered virtual interface; IDA vtable ordinal 23523. + virtual ~idAAS2Callback_AvoidLocation(); + virtual bool PathValid(const idAAS2 *, const idVec3 *, const idVec3 *); + virtual int AdditionalTravelTimeForPath(const idAAS2 *, const idVec3 *, const idVec3 *); + virtual bool AreaIsGoal(const idAAS2 *, int, const idVec3 *); + + idVec3 avoidLocation; + float avoidDist; + const idAAS2Obstacle *obstacles; + int numObstacles; +}; diff --git a/source/engine/gamelib/aas2/aas2callback_findareaoutofrange.h b/source/engine/gamelib/aas2/aas2callback_findareaoutofrange.h new file mode 100644 index 0000000..f77164e --- /dev/null +++ b/source/engine/gamelib/aas2/aas2callback_findareaoutofrange.h @@ -0,0 +1,22 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\aas2\aas2callback_findareaoutofrange.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 23526; PDB kind: class. +class idAAS2Callback_FindAreaOutOfRange : public idAAS2Callback_AvoidLocation +{ +public: + // Recovered virtual interface; IDA vtable ordinal 23527. + virtual ~idAAS2Callback_FindAreaOutOfRange(); + virtual bool PathValid(const idAAS2 *, const idVec3 *, const idVec3 *); + virtual int AdditionalTravelTimeForPath(const idAAS2 *, const idVec3 *, const idVec3 *); + virtual bool AreaIsGoal(const idAAS2 *, int, const idVec3 *); + + idClip *clip; + idVec3 targetPos; + float maxDistSqr; +}; diff --git a/source/engine/gamelib/aas2/aas2callback_findflaggedarea.h b/source/engine/gamelib/aas2/aas2callback_findflaggedarea.h new file mode 100644 index 0000000..37ec05f --- /dev/null +++ b/source/engine/gamelib/aas2/aas2callback_findflaggedarea.h @@ -0,0 +1,21 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\aas2\aas2callback_findflaggedarea.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 23524; PDB kind: class. +class idAAS2Callback_FindFlaggedArea : public idAAS2Callback_AvoidLocation +{ +public: + // Recovered virtual interface; IDA vtable ordinal 23525. + virtual ~idAAS2Callback_FindFlaggedArea(); + virtual bool PathValid(const idAAS2 *, const idVec3 *, const idVec3 *); + virtual int AdditionalTravelTimeForPath(const idAAS2 *, const idVec3 *, const idVec3 *); + virtual bool AreaIsGoal(const idAAS2 *, int, const idVec3 *); + + int areaFlag; + int test; +}; diff --git a/source/engine/gamelib/aas2/deferredviscache.h b/source/engine/gamelib/aas2/deferredviscache.h new file mode 100644 index 0000000..4b05a09 --- /dev/null +++ b/source/engine/gamelib/aas2/deferredviscache.h @@ -0,0 +1,39 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\aas2\deferredviscache.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17280; PDB kind: class. +class __declspec(align(4)) idDeferredVisCache +{ +public: + idList hashTable; + idList clipQueries; + int curClipQueryIdx; + deferredVisList_t leastRecentlyUsedList; + deferredVisList_t priorityList; + idClip *clip; + idDeferredVisQuery *queryList; + idDeferredVisQuery *queryPool; + int expiredIndex; + int numFrames; + int numCreatedThisFrame; + int numBumped; + int numQueriesIssued; + int totalQueriesIssued; + int numPurged; + int numExpired; + int numCacheHits; + int totalCacheHits; + int maxCreatedInAFrame; + int recentNumFrames; + int recentTotalCacheHits; + int recentTotalQueriesIssued; + float recentCacheHitRatio; + float recentAvgHitRatio; + bool initialized; + bool alreadyWarned; +}; diff --git a/source/engine/gamelib/aas2/obstacleavoidance.h b/source/engine/gamelib/aas2/obstacleavoidance.h new file mode 100644 index 0000000..79b781c --- /dev/null +++ b/source/engine/gamelib/aas2/obstacleavoidance.h @@ -0,0 +1,41 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\aas2\obstacleavoidance.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1705; PDB kind: enum. +enum vaiObstacleAvoidance_t : __int32 +{ + OAT_INIT = 0xFFFFFFFF, + OAT_GENERAL = 0x0, + OAT_NONE = 0x1, +}; + +// IDA Local Type ordinal 2170; PDB kind: enum. +enum obstacleAvoidanceFlags_t : __int32 +{ + OAFLAG_ASSUME_VALID_AAS_PATH = 0x1, + OAFLAG_MOVE_AROUND_SEEK_POS_OBSTACLES = 0x2, + OAFLAG_CIRCLE_CORNERS = 0x4, + OAFLAG_UPDATE_RADAR = 0x8, + OAFLAG_REPLACE_EXISTING_QUERY = 0x10, + OAFLAG_SHOW_PATH_TREE = 0x20, + OAFLAG_DEBUG = 0x40, + OAFLAG_DEBUG_BREAK = 0x80, + OAFLAG_USE_LINE_INTERSECTION_EPSILON = 0x100, + OAFLAG_SINGLE_PUSH = 0x200, + OAFLAG_IGNORE_AIS = 0x400, +}; + +// IDA Local Type ordinal 14971; PDB kind: class. +class idObstacleAvoidance +{ +public: + idObstacleBuffers *buffers; + idVec3 lastDir; + idVec4 lastCorner; + int lastUpdateTime; +}; diff --git a/source/engine/gamelib/aas2/obstacleavoidancecore.h b/source/engine/gamelib/aas2/obstacleavoidancecore.h new file mode 100644 index 0000000..1df19c7 --- /dev/null +++ b/source/engine/gamelib/aas2/obstacleavoidancecore.h @@ -0,0 +1,98 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\aas2\obstacleavoidancecore.h +// Recovered logical types: 6 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2805; PDB kind: enum. +enum idObstacleAvoidanceCore::avoidColor_t : __int32 +{ + COLOR_INVALID = 0x0, + COLOR_WHITE = 0x1, + COLOR_GRAY = 0x2, + COLOR_RED = 0x3, + COLOR_BLUE = 0x4, + COLOR_GREEN = 0x5, + COLOR_YELLOW = 0x6, + COLOR_ORANGE = 0x7, + COLOR_PURPLE = 0x8, + COLOR_CYAN = 0x9, + COLOR_MAGENTA = 0xA, +}; + +// IDA Local Type ordinal 22035; PDB kind: struct. +struct idObstacleAvoidanceCore::pathNode_t +{ + int dir; + idVec2 pos; + idVec2 delta; + float targetDistSqr; + int obstacle; + int edgeNum; + int numNodes; + idObstacleAvoidanceCore::pathNode_t *parent; + idObstacleAvoidanceCore::pathNode_t *children[2]; + idQueueNode queueNode; +}; + +// IDA Local Type ordinal 22437; PDB kind: struct. +struct idObstacleAvoidanceCore::bspNode_t +{ + int axis; + float dist; + __int16 children[2]; + __int16 indexOffset; + __int16 numIndices; +}; + +// IDA Local Type ordinal 22438; PDB kind: struct. +struct idObstacleAvoidanceCore::expandedObstacle_t +{ + idVec2 bounds[2]; + idVec2 *winding; + int numPoints; + int id; + bool soft; + unsigned __int8 pad[3]; +}; + +// IDA Local Type ordinal 22439; PDB kind: class. +class idObstacleAvoidanceCore +{ +public: + idObstacleAvoidanceCore::bspNode_t *bspNodes; + int numBspNodes; + __int16 *obstacleIndices; + idObstacleAvoidanceCore::expandedObstacle_t *expandedObstacles; + int maxExpandedObstacles; + int numExpandedObstacles; + idVec2 *windingPoints; + int maxWindingPoints; + int numWindingPoints; + unsigned __int8 *tempMemory; + int tempMemorySize; + unsigned __int8 *tempMemoryStart; + unsigned __int8 *tempMemoryEnd; + idObstacleAvoidanceCore::pathNode_t *pathNodes; + int maxPathNodes; + int numPathNodes; + avoidDebugLine_t *debugLines; + int maxDebugLines; + int numDebugLines; + avoidDebugText_t *debugText; + int maxDebugText; + int numDebugText; + bool inputTransformValid; + idMat3x4 inputTransform; + int flags; +}; + +// IDA Local Type ordinal 23501; PDB kind: struct. +struct idObstacleAvoidanceCore::SetupExpandedObstacles::__l87::terminator_t +{ + float distSqr; + __int16 lastEdgeIndex; + __int16 firstEdgeIndex; +}; diff --git a/source/engine/gamelib/aas2/obstacleavoidancemanagerlocal.h b/source/engine/gamelib/aas2/obstacleavoidancemanagerlocal.h new file mode 100644 index 0000000..2cbc61d --- /dev/null +++ b/source/engine/gamelib/aas2/obstacleavoidancemanagerlocal.h @@ -0,0 +1,26 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\aas2\obstacleavoidancemanagerlocal.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 23498; PDB kind: class. +class idObstacleAvoidanceManagerLocal : public idObstacleAvoidanceManager +{ +public: + // Recovered virtual interface; IDA vtable ordinal 23499. + virtual ~idObstacleAvoidanceManagerLocal(); + virtual void Init(idParallelJobList *); + virtual void Shutdown(); + virtual void AllocObstacleBuffers(idObstacleAvoidance *); + virtual void FreeObstacleBuffers(idObstacleAvoidance *); + virtual void FrameFreeObstacleBuffers(); + virtual idParallelJobList *GetJobList(); + + idParallelJobList *jobList; + idList usedBuffers; + idList freeBuffers; + idList toBeFreedBuffers; +}; diff --git a/source/engine/gamelib/animstack/animator_af.h b/source/engine/gamelib/animstack/animator_af.h new file mode 100644 index 0000000..cd5577b --- /dev/null +++ b/source/engine/gamelib/animstack/animator_af.h @@ -0,0 +1,144 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\animstack\animator_af.h +// Recovered logical types: 8 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2022; PDB kind: enum. +enum idAnimator_AF::testSolidResult_t : __int32 +{ + TESTSOLID_NOT_IN_SOLID = 0x0, + TESTSOLID_IN_SOLID_NOCLIP = 0x1, + TESTSOLID_IN_SOLID = 0x2, + TESTSOLID_MAX = 0x3, +}; + +// IDA Local Type ordinal 2608; PDB kind: enum. +enum idAnimator_AF::idBindConstraint::bindConstraint_t : __int32 +{ + Fixed = 0x0, + BallAndSocket = 0x1, + Universal = 0x2, +}; + +// IDA Local Type ordinal 14649; PDB kind: class. +class __declspec(align(8)) idAnimator_AF : public idAnimator_Base +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14668. + virtual ~idAnimator_AF(); + virtual idAnimator_Base::priority_t GetStackPriority(); + virtual serializeType_t GetSerializeType(); + virtual void SerializeSnapshot(idSerializer *); + virtual void PreBlendSnapshot(idAnimStack *, int, const int, float); + virtual void PreSerializeInit(idAnimStack *, idClip *, idGameTimeManager *); + virtual bool InternalInit(const idAnimatorParms_Base *); + virtual bool InternalPostInit(const idAnimatorParms_Base *); + virtual void InternalShutdown(idAnimStack *); + virtual void InternalPreBlendTree(const idAnimStack *, const int, const int); + virtual void InternalPostBlendTree(const idAnimStack *, const int); + virtual void InternalStart(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalEnd(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalBlend(const idAnimStack *, const int, const float, const idTypesafeNumber); + virtual bool InternalIsContributing(); + virtual const idMD6Branch *InternalGetMergeBranch(); + virtual idMD6Branch *InternalGetMergeBranch_2(); + virtual void InternalPause(const idAnimStack *, const idTypesafeNumber); + virtual void InternalUnpause(const idAnimStack *, const idTypesafeNumber); + virtual const idMD6Branch *InternalGetEndBranch(); + virtual idMD6Branch *InternalGetEndBranch_2(); + virtual void ApplyWaterSplashEffects(const int, const int, surfTypes_t, idPhysicsCallbacks::splashState_t); + + const idDeclAF *articulatedFigure; + const idDeclImpactSound *sndBounceTable; + const idDeclImpactParticle *prtBounceTable; + idList bindConstraints; + bool canDeattachBones; + idStr afName; + idClip *clip; + idTreeAnimator *treeAnimator; + const idMD6Anim *modifiedAnim; + idVec3 baseOrigin; + idMat3 baseAxis; + idList jointMods; + idList jointBody; + idVec3 lastRenderModelOrigin; + idMat3 lastRenderModelAxis; + idVec3 gravityBeforeSync; + int poseTime; + int restStartTime; + bool modifiesOrigin; + bool isLoaded; + bool isRunningPhysics; + bool isActive; + bool isClientAuthoritativeActive; + bool isSyncing; + bool hasBindConstraints; + bool walkIKDisabled; + idList syncConstraints; + idPhysics_AF physicsObj; + idPhysicsCallbacks *physicsCallbacks; + idMD6LeafPause AFLeaf; + idMD6Branch *mergeBranch; + idSoundEmitter *soundEmitter; + soundChannel_t bounceChannel; + int nextSoundTime; + idImpactManager *impactMgr; + bool oldIsActive; + idAnimatedEntityPhysicsCallbacksFake *fakeCB; + const idDeclAF *storedDeclAF; + int lastTime; + int initCount; + int lastImpulseTime; + idAnimator_AF::afImpulse_t serializeImpulseBuffer[8]; + int numSerializedImpulses; + bool inheritAnimationVelocity; + bool inheritOverrideVelocity; + idVec3 overrideVelocity; +}; + +// IDA Local Type ordinal 14659; PDB kind: class. +class __declspec(align(4)) idAnimator_AF::idBindConstraint +{ +public: + idAnimator_AF::idBindConstraint::bindConstraint_t type; + idStr name; + idStr bodyName; + idStr jointName; + bool shouldClamp; +}; + +// IDA Local Type ordinal 14661; PDB kind: class. +class idAnimator_AF::idAFJointMod +{ +public: + int bodyId; + idVec3 jointBodyOrigin; + idMat3 jointBodyAxis; + idIndex jointIndex; + AFJointModType_t jointMod; +}; + +// IDA Local Type ordinal 14663; PDB kind: class. +class idAnimator_AF::idSyncConstraint +{ +public: + idHandle jointHandle; + idAFConstraint *constraint; +}; + +// IDA Local Type ordinal 14667; PDB kind: struct. +struct idAnimator_AF::afImpulse_t +{ + int physId; + int bodyId; + idVec3 point; + idVec3 impulse; +}; + +// IDA Local Type ordinal 23496; PDB kind: struct. +struct idAnimator_AF::InitAF::__l39::local_t +{ +}; diff --git a/source/engine/gamelib/animstack/animator_animweb.h b/source/engine/gamelib/animstack/animator_animweb.h new file mode 100644 index 0000000..7732f0e --- /dev/null +++ b/source/engine/gamelib/animstack/animator_animweb.h @@ -0,0 +1,142 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\animstack\animator_animweb.h +// Recovered logical types: 6 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2404; PDB kind: enum. +enum idAnimator_AnimWeb::animWebError_t : __int32 +{ + ANIMWEB_ERROR_NONE = 0x0, + ANIMWEB_ERROR_NOPATH = 0x1, +}; + +// IDA Local Type ordinal 15030; PDB kind: class. +class __declspec(align(2)) idAnimator_AnimWeb : public idAnimator_Base +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15095. + virtual ~idAnimator_AnimWeb(); + virtual idAnimator_Base::priority_t GetStackPriority(); + virtual serializeType_t GetSerializeType(); + virtual void SerializeSnapshot(idSerializer *); + virtual void PreBlendSnapshot(idAnimStack *, int, const int, float); + virtual void PreSerializeInit(idAnimStack *, idClip *, idGameTimeManager *); + virtual bool InternalInit(const idAnimatorParms_Base *); + virtual bool InternalPostInit(const idAnimatorParms_Base *); + virtual void InternalShutdown(idAnimStack *); + virtual void InternalPreBlendTree(const idAnimStack *, const int, const int); + virtual void InternalPostBlendTree(const idAnimStack *, const int); + virtual void InternalStart(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalEnd(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalBlend(const idAnimStack *, const int, const float, const idTypesafeNumber); + virtual bool InternalIsContributing(); + virtual const idMD6Branch *InternalGetMergeBranch(); + virtual idMD6Branch *InternalGetMergeBranch_2(); + virtual void InternalPause(const idAnimStack *, const idTypesafeNumber); + virtual void InternalUnpause(const idAnimStack *, const idTypesafeNumber); + virtual const idMD6Branch *InternalGetEndBranch(); + virtual idMD6Branch *InternalGetEndBranch_2(); + virtual const idHandle *GetHandle(); + virtual void InternalInitWeb(); + virtual void InternalUpdate(const int); + virtual idDeclAnimWebNode::animDelta_t InternalGetCurrentAnimDeltaMode(); + virtual void InternalSetAnimDelta(const idIndex, const idDeclAnimWebNode *); + virtual int InternalGetEdgeCost(const idIndex, const idIndex); + virtual void InternalStartPath(); + virtual void InternalUpdateScalars(const int); + virtual void InternalStartBlend(const idDeclAnimWebNode *, const idDeclAnimWebNode *, const int); + virtual void InternalFinishBlend(const idDeclAnimWebNode *, const idDeclAnimWebNode *, const int); + virtual awCheckPathResult_t CheckNextNode(const idDeclAnimWebNode *, const idDeclAnimWebNode *); + virtual bool InternalShouldStartNextNode(const idIndex, const idIndex, const int, const int, const blendParms_t *, idIndex, const bool, animWebEvent_t *); + virtual void InternalTriggerEvent(const idDeclAnimWebNode *, const animWebEvent_t, const idHandle *, const int, const int); + virtual void InternalTriggerBlendEvent(int, idIndex, idIndex, idIndex, const int); + virtual bool InternalRemapNames(idStr *, idStr *); + virtual void InternalUpdateBlendEvents(const idAnimStack *, const int, const int); + + const idDeclAnimWeb *decl; + idMD6Allocator *md6Allocator; + idList,5> initialActiveSubWebs; + idList modelAnimStates; + idIndex curNodeIndex; + idIndex prevNodeIndex; + idIndex destSubWebIndex; + idDeclAnimWeb::stateList_t destStateIndices; + idIndex viaSubWebIndex; + idDeclAnimWeb::stateList_t viaStateIndices; + idIndex otherSubWebIndex; + idIndex curEdgeNodeIndex; + __int16 curEdgeIndex; + idStaticList,32> const *,16> pathableSubWebNodeLists; + __int16 pathIndex; + idAnimWebRoute curPath; + interruptPath_t interruptPath; + interruptBlend_t interruptBlend; + int nodeStartTime; + int prevNodeStartTime; + int nodeStartFrame; + idList scalars; + idScalarMemBlock scalarMem; + int firstRandomScalarIndex; + int blendEventMask; + int declChangeId; + idAtomicString curNodeStateName; + idAtomicString curNodeSubWebName; + idAtomicString destNodeStateName; + idAtomicString destNodeSubWebName; + idHandle handle; + idAnimWebEventHandler_Zion eventHandler; + bool clearEventsOnStateChanges; + unsigned __int8 skipFlags; + unsigned __int8 requiredFlags; + idAnimator_AnimWeb::forcedEdge_t forcedEdge; + float randomBlendVals[8]; + idMD6Branch *mergeBranch; + idAnimator_ChannelWeight channelWeightAnimator; + idList modelDecls; + idAnimator_AnimWeb::animWebError_t error; + bool debug; + bool forceAnimDeltaModeOnBlendStart; + bool skipForcedEdgeAutoPath; +}; + +// IDA Local Type ordinal 15075; PDB kind: class. +class __declspec(align(4)) idAnimator_AnimWeb::idModelAnimState +{ +public: + idMD6Node *tree; + idMD6Branch *branches[2]; + idStaticList blendTreeCache; + idIndex recentNodes[3]; + __int16 recentNodeStart; + bool blending; +}; + +// IDA Local Type ordinal 15087; PDB kind: struct. +struct idAnimator_AnimWeb::forcedEdge_t +{ + idIndex destNodeIndex; + idIndex destSubWebIndex; + blendParms_t blendParms; +}; + +// IDA Local Type ordinal 18100; PDB kind: class. +class idAnimatorParms_AnimWeb : public idAnimatorParms_Base +{ +public: + const idDeclAnimWeb *webDecl; + idStr initialStateName; + idStr initialSubWebName; + int curTime; + idList activeLayers; +}; + +// IDA Local Type ordinal 21365; PDB kind: struct. +struct idAnimator_AnimWeb::animInfo_t +{ + int curFrame; + int numFrames; + int frameRate; +}; diff --git a/source/engine/gamelib/animstack/animator_animwebhands.h b/source/engine/gamelib/animstack/animator_animwebhands.h new file mode 100644 index 0000000..1b7dd64 --- /dev/null +++ b/source/engine/gamelib/animstack/animator_animwebhands.h @@ -0,0 +1,62 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\animstack\animator_animwebhands.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15366; PDB kind: class. +class idAnimator_AnimWebHands : public idAnimator_AnimWeb +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15367. + virtual ~idAnimator_AnimWebHands(); + virtual idAnimator_Base::priority_t GetStackPriority(); + virtual serializeType_t GetSerializeType(); + virtual void SerializeSnapshot(idSerializer *); + virtual void PreBlendSnapshot(idAnimStack *, int, const int, float); + virtual void PreSerializeInit(idAnimStack *, idClip *, idGameTimeManager *); + virtual bool InternalInit(const idAnimatorParms_Base *); + virtual bool InternalPostInit(const idAnimatorParms_Base *); + virtual void InternalShutdown(idAnimStack *); + virtual void InternalPreBlendTree(const idAnimStack *, const int, const int); + virtual void InternalPostBlendTree(const idAnimStack *, const int); + virtual void InternalStart(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalEnd(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalBlend(const idAnimStack *, const int, const float, const idTypesafeNumber); + virtual bool InternalIsContributing(); + virtual const idMD6Branch *InternalGetMergeBranch(); + virtual idMD6Branch *InternalGetMergeBranch_2(); + virtual void InternalPause(const idAnimStack *, const idTypesafeNumber); + virtual void InternalUnpause(const idAnimStack *, const idTypesafeNumber); + virtual const idMD6Branch *InternalGetEndBranch(); + virtual idMD6Branch *InternalGetEndBranch_2(); + virtual const idHandle *GetHandle(); + virtual void InternalInitWeb(); + virtual void InternalUpdate(const int); + virtual idDeclAnimWebNode::animDelta_t InternalGetCurrentAnimDeltaMode(); + virtual void InternalSetAnimDelta(const idIndex, const idDeclAnimWebNode *); + virtual int InternalGetEdgeCost(const idIndex, const idIndex); + virtual void InternalStartPath(); + virtual void InternalUpdateScalars(const int); + virtual void InternalStartBlend(const idDeclAnimWebNode *, const idDeclAnimWebNode *, const int); + virtual void InternalFinishBlend(const idDeclAnimWebNode *, const idDeclAnimWebNode *, const int); + virtual awCheckPathResult_t CheckNextNode(const idDeclAnimWebNode *, const idDeclAnimWebNode *); + virtual bool InternalShouldStartNextNode(const idIndex, const idIndex, const int, const int, const blendParms_t *, idIndex, const bool, animWebEvent_t *); + virtual void InternalTriggerEvent(const idDeclAnimWebNode *, const animWebEvent_t, const idHandle *, const int, const int); + virtual void InternalTriggerBlendEvent(int, idIndex, idIndex, idIndex, const int); + virtual bool InternalRemapNames(idStr *, idStr *); + virtual void InternalUpdateBlendEvents(const idAnimStack *, const int, const int); + + float punchSelector; + float throwSelector; + float idleSelector; + float meleeReturnSelector; + float zoomSelector; + float weaponCondition; + float variationIndex; + float previousVariationIndex; + float weaponAnimVarIndex; + float attackVariation; +}; diff --git a/source/engine/gamelib/animstack/animator_base.h b/source/engine/gamelib/animstack/animator_base.h new file mode 100644 index 0000000..7f1cd65 --- /dev/null +++ b/source/engine/gamelib/animstack/animator_base.h @@ -0,0 +1,72 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\animstack\animator_base.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1357; PDB kind: enum. +enum idAnimator_Base::priority_t : __int32 +{ + PRIORITY_WEB = 0x0, + PRIORITY_AFTER_WEB = 0x1, + PRIORITY_IK = 0x63, + PRIORITY_AF = 0x64, +}; + +// IDA Local Type ordinal 14224; PDB kind: class. +class __declspec(align(4)) idAnimator_Base +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14289. + virtual ~idAnimator_Base(); + virtual idAnimator_Base::priority_t GetStackPriority(); + virtual serializeType_t GetSerializeType(); + virtual void SerializeSnapshot(idSerializer *); + virtual void PreBlendSnapshot(idAnimStack *, int, const int, float); + virtual void PreSerializeInit(idAnimStack *, idClip *, idGameTimeManager *); + virtual bool InternalInit(const idAnimatorParms_Base *); + virtual bool InternalPostInit(const idAnimatorParms_Base *); + virtual void InternalShutdown(idAnimStack *); + virtual void InternalPreBlendTree(const idAnimStack *, const int, const int); + virtual void InternalPostBlendTree(const idAnimStack *, const int); + virtual void InternalStart(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalEnd(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalBlend(const idAnimStack *, const int, const float, const idTypesafeNumber); + virtual bool InternalIsContributing(); + virtual const idMD6Branch *InternalGetMergeBranch(); + virtual idMD6Branch *InternalGetMergeBranch_2(); + virtual void InternalPause(const idAnimStack *, const idTypesafeNumber); + virtual void InternalUnpause(const idAnimStack *, const idTypesafeNumber); + virtual const idMD6Branch *InternalGetEndBranch(); + virtual idMD6Branch *InternalGetEndBranch_2(); + + idGameTimeManagerPtr gametimeManager; + md6WeightGroup_t weightGroup; + md6WeightGroup_t filterGroup; + idAnimator_Base::serializeProps_t serializeProps; + bool initialized; +}; + +// IDA Local Type ordinal 14288; PDB kind: class. +class idAnimatorParms_Base +{ +public: + idAnimStack *animStack; + idStr name; + idMD6Blend::blendOp_t blendOp; + idMD6Blend::originBlend_t originBlend; + md6WeightGroup_t weightGroup; + md6WeightGroup_t filterGroup; + float alpha; +}; + +// IDA Local Type ordinal 14291; PDB kind: struct. +struct __declspec(align(4)) idAnimator_Base::serializeProps_t +{ + idMD6Branch *serializedTrees[2]; + idAnimStack *animStack; + idClip *clip; + bool createdThroughSerialization; +}; diff --git a/source/engine/gamelib/animstack/animator_blendeq.h b/source/engine/gamelib/animstack/animator_blendeq.h new file mode 100644 index 0000000..f77a3a4 --- /dev/null +++ b/source/engine/gamelib/animstack/animator_blendeq.h @@ -0,0 +1,62 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\animstack\animator_blendeq.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19144; PDB kind: class. +class idAnimator_BlendEq::idNamedAnim +{ +public: + const idMD6Anim *anim; + unsigned __int8 wrapMode; + unsigned __int8 weightGroup; + float rate; +}; + +// IDA Local Type ordinal 19146; PDB kind: class. +class idAnimator_BlendEq : public idAnimator_Base +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19147. + virtual ~idAnimator_BlendEq(); + virtual idAnimator_Base::priority_t GetStackPriority(); + virtual serializeType_t GetSerializeType(); + virtual void SerializeSnapshot(idSerializer *); + virtual void PreBlendSnapshot(idAnimStack *, int, const int, float); + virtual void PreSerializeInit(idAnimStack *, idClip *, idGameTimeManager *); + virtual bool InternalInit(const idAnimatorParms_Base *); + virtual bool InternalPostInit(const idAnimatorParms_Base *); + virtual void InternalShutdown(idAnimStack *); + virtual void InternalPreBlendTree(const idAnimStack *, const int, const int); + virtual void InternalPostBlendTree(const idAnimStack *, const int); + virtual void InternalStart(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalEnd(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalBlend(const idAnimStack *, const int, const float, const idTypesafeNumber); + virtual bool InternalIsContributing(); + virtual const idMD6Branch *InternalGetMergeBranch(); + virtual idMD6Branch *InternalGetMergeBranch_2(); + virtual void InternalPause(const idAnimStack *, const idTypesafeNumber); + virtual void InternalUnpause(const idAnimStack *, const idTypesafeNumber); + virtual const idMD6Branch *InternalGetEndBranch(); + virtual idMD6Branch *InternalGetEndBranch_2(); + + idStr blendEq; + idMD6Branch *mergeBranch; + idList scalars; + idList scalarPairs; + idScalarMemBlock *scalarMem; + idList namedAnims; +}; + +// IDA Local Type ordinal 19152; PDB kind: class. +class idAnimatorParms_BlendEq : public idAnimatorParms_Base +{ +public: + idStr blendEq; + idList scalars; + idScalarMemBlock *scalarMem; + idList anims; +}; diff --git a/source/engine/gamelib/animstack/animator_channel.h b/source/engine/gamelib/animstack/animator_channel.h new file mode 100644 index 0000000..d806e80 --- /dev/null +++ b/source/engine/gamelib/animstack/animator_channel.h @@ -0,0 +1,48 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\animstack\animator_channel.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14292; PDB kind: class. +class __declspec(align(2)) idAnimator_Channel : public idAnimator_Base +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14293. + virtual ~idAnimator_Channel(); + virtual idAnimator_Base::priority_t GetStackPriority(); + virtual serializeType_t GetSerializeType(); + virtual void SerializeSnapshot(idSerializer *); + virtual void PreBlendSnapshot(idAnimStack *, int, const int, float); + virtual void PreSerializeInit(idAnimStack *, idClip *, idGameTimeManager *); + virtual bool InternalInit(const idAnimatorParms_Base *); + virtual bool InternalPostInit(const idAnimatorParms_Base *); + virtual void InternalShutdown(idAnimStack *); + virtual void InternalPreBlendTree(const idAnimStack *, const int, const int); + virtual void InternalPostBlendTree(const idAnimStack *, const int); + virtual void InternalStart(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalEnd(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalBlend(const idAnimStack *, const int, const float, const idTypesafeNumber); + virtual bool InternalIsContributing(); + virtual const idMD6Branch *InternalGetMergeBranch(); + virtual idMD6Branch *InternalGetMergeBranch_2(); + virtual void InternalPause(const idAnimStack *, const idTypesafeNumber); + virtual void InternalUnpause(const idAnimStack *, const idTypesafeNumber); + virtual const idMD6Branch *InternalGetEndBranch(); + virtual idMD6Branch *InternalGetEndBranch_2(); + + idMD6LeafPlay *leaves[3]; + idMD6Branch *branches[2]; + idMD6Branch *mergeBranch; + idMD6LeafPlay *freeLeaves[3]; + idMD6Branch *freeBranches[2]; + idRandom random; + __int16 numFreeLeaves; + __int16 numFreeBranches; + __int16 blendOutDurationMS; + unsigned __int8 : 6; + __int8 omitFreeLeafWarning : 1; + __int8 forceFree : 1; +}; diff --git a/source/engine/gamelib/animstack/animator_channelweight.h b/source/engine/gamelib/animstack/animator_channelweight.h new file mode 100644 index 0000000..9b8a23a --- /dev/null +++ b/source/engine/gamelib/animstack/animator_channelweight.h @@ -0,0 +1,59 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\animstack\animator_channelweight.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15089; PDB kind: class. +class idAnimator_ChannelWeight::baseAnimation_t +{ +public: + const idMD6Anim *animation; + idMD6LeafPause *leaf; +}; + +// IDA Local Type ordinal 15090; PDB kind: class. +class idAnimator_ChannelWeight::leafAnimation_t : public idAnimator_ChannelWeight::baseAnimation_t +{ +public: + idMD6Branch *branch; +}; + +// IDA Local Type ordinal 15092; PDB kind: class. +class idAnimator_ChannelWeight : public idAnimator_Base +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15093. + virtual ~idAnimator_ChannelWeight(); + virtual idAnimator_Base::priority_t GetStackPriority(); + virtual serializeType_t GetSerializeType(); + virtual void SerializeSnapshot(idSerializer *); + virtual void PreBlendSnapshot(idAnimStack *, int, const int, float); + virtual void PreSerializeInit(idAnimStack *, idClip *, idGameTimeManager *); + virtual bool InternalInit(const idAnimatorParms_Base *); + virtual bool InternalPostInit(const idAnimatorParms_Base *); + virtual void InternalShutdown(idAnimStack *); + virtual void InternalPreBlendTree(const idAnimStack *, const int, const int); + virtual void InternalPostBlendTree(const idAnimStack *, const int); + virtual void InternalStart(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalEnd(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalBlend(const idAnimStack *, const int, const float, const idTypesafeNumber); + virtual bool InternalIsContributing(); + virtual const idMD6Branch *InternalGetMergeBranch(); + virtual idMD6Branch *InternalGetMergeBranch_2(); + virtual void InternalPause(const idAnimStack *, const idTypesafeNumber); + virtual void InternalUnpause(const idAnimStack *, const idTypesafeNumber); + virtual const idMD6Branch *InternalGetEndBranch(); + virtual idMD6Branch *InternalGetEndBranch_2(); + + idList userChannelToLeafMap; + idList leaves; + idAnimator_ChannelWeight::baseAnimation_t baseAnimation; + idMD6Branch *mergeBranch; + const idMD6LeafPlay *controlAnimation; + md6WeightGroup_t filterGroup; + int entityNumber; + void *lockOwner; +}; diff --git a/source/engine/gamelib/animstack/animator_client.h b/source/engine/gamelib/animstack/animator_client.h new file mode 100644 index 0000000..d6d4808 --- /dev/null +++ b/source/engine/gamelib/animstack/animator_client.h @@ -0,0 +1,36 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\animstack\animator_client.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22074; PDB kind: class. +class idAnimator_Client : public idAnimator_Base +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22075. + virtual ~idAnimator_Client(); + virtual idAnimator_Base::priority_t GetStackPriority(); + virtual serializeType_t GetSerializeType(); + virtual void SerializeSnapshot(idSerializer *); + virtual void PreBlendSnapshot(idAnimStack *, int, const int, float); + virtual void PreSerializeInit(idAnimStack *, idClip *, idGameTimeManager *); + virtual bool InternalInit(const idAnimatorParms_Base *); + virtual bool InternalPostInit(const idAnimatorParms_Base *); + virtual void InternalShutdown(idAnimStack *); + virtual void InternalPreBlendTree(const idAnimStack *, const int, const int); + virtual void InternalPostBlendTree(const idAnimStack *, const int); + virtual void InternalStart(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalEnd(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalBlend(const idAnimStack *, const int, const float, const idTypesafeNumber); + virtual bool InternalIsContributing(); + virtual const idMD6Branch *InternalGetMergeBranch(); + virtual idMD6Branch *InternalGetMergeBranch_2(); + virtual void InternalPause(const idAnimStack *, const idTypesafeNumber); + virtual void InternalUnpause(const idAnimStack *, const idTypesafeNumber); + virtual const idMD6Branch *InternalGetEndBranch(); + virtual idMD6Branch *InternalGetEndBranch_2(); + +}; diff --git a/source/engine/gamelib/animstack/animator_dragjoints.h b/source/engine/gamelib/animstack/animator_dragjoints.h new file mode 100644 index 0000000..c80fd45 --- /dev/null +++ b/source/engine/gamelib/animstack/animator_dragjoints.h @@ -0,0 +1,64 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\animstack\animator_dragjoints.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17138; PDB kind: class. +class idAnimator_DragJoints : public idAnimator_Base +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17141. + virtual ~idAnimator_DragJoints(); + virtual idAnimator_Base::priority_t GetStackPriority(); + virtual serializeType_t GetSerializeType(); + virtual void SerializeSnapshot(idSerializer *); + virtual void PreBlendSnapshot(idAnimStack *, int, const int, float); + virtual void PreSerializeInit(idAnimStack *, idClip *, idGameTimeManager *); + virtual bool InternalInit(const idAnimatorParms_Base *); + virtual bool InternalPostInit(const idAnimatorParms_Base *); + virtual void InternalShutdown(idAnimStack *); + virtual void InternalPreBlendTree(const idAnimStack *, const int, const int); + virtual void InternalPostBlendTree(const idAnimStack *, const int); + virtual void InternalStart(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalEnd(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalBlend(const idAnimStack *, const int, const float, const idTypesafeNumber); + virtual bool InternalIsContributing(); + virtual const idMD6Branch *InternalGetMergeBranch(); + virtual idMD6Branch *InternalGetMergeBranch_2(); + virtual void InternalPause(const idAnimStack *, const idTypesafeNumber); + virtual void InternalUnpause(const idAnimStack *, const idTypesafeNumber); + virtual const idMD6Branch *InternalGetEndBranch(); + virtual idMD6Branch *InternalGetEndBranch_2(); + virtual void PreBlendSnapshot_2(idAnimStack *, int, float); + + bool enabled; + int blendFrame; + int numBlendFrames; + idAnimator_AnimWeb *animweb; + idList,5> subwebs; + idIndex baseJoint; + idList joints; + idTreeAnimator *animator; + idMD6LeafPause animLeaf; + idMD6Branch *mergeBranch; +}; + +// IDA Local Type ordinal 17139; PDB kind: class. +class idAnimator_DragJoints::idJoint +{ +public: + idIndex index; + idVec3 position; + float length; + idMat3 originalRotation; +}; + +// IDA Local Type ordinal 21513; PDB kind: class. +class idAnimatorParms_DragJoints : public idAnimatorParms_Base +{ +public: + const idDeclDragJoints *declDragJoints; +}; diff --git a/source/engine/gamelib/animstack/animator_endadditivechannels.h b/source/engine/gamelib/animstack/animator_endadditivechannels.h new file mode 100644 index 0000000..c4ea0ac --- /dev/null +++ b/source/engine/gamelib/animstack/animator_endadditivechannels.h @@ -0,0 +1,54 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\animstack\animator_endadditivechannels.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14643; PDB kind: class. +class idAnimator_EndAdditiveChannels : public idAnimator_Base +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14644. + virtual ~idAnimator_EndAdditiveChannels(); + virtual idAnimator_Base::priority_t GetStackPriority(); + virtual serializeType_t GetSerializeType(); + virtual void SerializeSnapshot(idSerializer *); + virtual void PreBlendSnapshot(idAnimStack *, int, const int, float); + virtual void PreSerializeInit(idAnimStack *, idClip *, idGameTimeManager *); + virtual bool InternalInit(const idAnimatorParms_Base *); + virtual bool InternalPostInit(const idAnimatorParms_Base *); + virtual void InternalShutdown(idAnimStack *); + virtual void InternalPreBlendTree(const idAnimStack *, const int, const int); + virtual void InternalPostBlendTree(const idAnimStack *, const int); + virtual void InternalStart(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalEnd(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalBlend(const idAnimStack *, const int, const float, const idTypesafeNumber); + virtual bool InternalIsContributing(); + virtual const idMD6Branch *InternalGetMergeBranch(); + virtual idMD6Branch *InternalGetMergeBranch_2(); + virtual void InternalPause(const idAnimStack *, const idTypesafeNumber); + virtual void InternalUnpause(const idAnimStack *, const idTypesafeNumber); + virtual const idMD6Branch *InternalGetEndBranch(); + virtual idMD6Branch *InternalGetEndBranch_2(); + + idList leaves; + idList branches; + idList aliasWeights; + idMD6Branch mergeBranch; + idList,5> animAlias; + int numAddedChannels; + int numCurrentChannels; + idMD6Leaf::wrapMode_t wrapMode; + float currentExternalAlpha; + float targetExternalAlpha; + float externalAlphaRate; +}; + +// IDA Local Type ordinal 18909; PDB kind: class. +class idAnimatorParms_EndAdditiveChannels : public idAnimatorParms_Base +{ +public: + int maxChannels; +}; diff --git a/source/engine/gamelib/animstack/animator_facetracks.h b/source/engine/gamelib/animstack/animator_facetracks.h new file mode 100644 index 0000000..6bf1ab7 --- /dev/null +++ b/source/engine/gamelib/animstack/animator_facetracks.h @@ -0,0 +1,43 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\animstack\animator_facetracks.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17136; PDB kind: class. +class idAnimator_FaceTracks : public idAnimator_Base +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17137. + virtual ~idAnimator_FaceTracks(); + virtual idAnimator_Base::priority_t GetStackPriority(); + virtual serializeType_t GetSerializeType(); + virtual void SerializeSnapshot(idSerializer *); + virtual void PreBlendSnapshot(idAnimStack *, int, const int, float); + virtual void PreSerializeInit(idAnimStack *, idClip *, idGameTimeManager *); + virtual bool InternalInit(const idAnimatorParms_Base *); + virtual bool InternalPostInit(const idAnimatorParms_Base *); + virtual void InternalShutdown(idAnimStack *); + virtual void InternalPreBlendTree(const idAnimStack *, const int, const int); + virtual void InternalPostBlendTree(const idAnimStack *, const int); + virtual void InternalStart(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalEnd(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalBlend(const idAnimStack *, const int, const float, const idTypesafeNumber); + virtual bool InternalIsContributing(); + virtual const idMD6Branch *InternalGetMergeBranch(); + virtual idMD6Branch *InternalGetMergeBranch_2(); + virtual void InternalPause(const idAnimStack *, const idTypesafeNumber); + virtual void InternalUnpause(const idAnimStack *, const idTypesafeNumber); + virtual const idMD6Branch *InternalGetEndBranch(); + virtual idMD6Branch *InternalGetEndBranch_2(); + + idList leaves; + idList branches; + idList leafAnimModsTime; + idMD6Branch mergeBranch; + idMD6Branch *endBranch; + idHandle faceSetupAnimAlias; + int animModsTime; +}; diff --git a/source/engine/gamelib/animstack/animator_ik.h b/source/engine/gamelib/animstack/animator_ik.h new file mode 100644 index 0000000..dac37cc --- /dev/null +++ b/source/engine/gamelib/animstack/animator_ik.h @@ -0,0 +1,169 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\animstack\animator_ik.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15249; PDB kind: class. +class idAnimator_IK : public idAnimator_Base +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15250. + virtual ~idAnimator_IK(); + virtual idAnimator_Base::priority_t GetStackPriority(); + virtual serializeType_t GetSerializeType(); + virtual void SerializeSnapshot(idSerializer *); + virtual void PreBlendSnapshot(idAnimStack *, int, const int, float); + virtual void PreSerializeInit(idAnimStack *, idClip *, idGameTimeManager *); + virtual bool InternalInit(const idAnimatorParms_Base *); + virtual bool InternalPostInit(const idAnimatorParms_Base *); + virtual void InternalShutdown(idAnimStack *); + virtual void InternalPreBlendTree(const idAnimStack *, const int, const int); + virtual void InternalPostBlendTree(const idAnimStack *, const int); + virtual void InternalStart(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalEnd(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalBlend(const idAnimStack *, const int, const float, const idTypesafeNumber); + virtual bool InternalIsContributing(); + virtual const idMD6Branch *InternalGetMergeBranch(); + virtual idMD6Branch *InternalGetMergeBranch_2(); + virtual void InternalPause(const idAnimStack *, const idTypesafeNumber); + virtual void InternalUnpause(const idAnimStack *, const idTypesafeNumber); + virtual const idMD6Branch *InternalGetEndBranch(); + virtual idMD6Branch *InternalGetEndBranch_2(); + virtual void Evaluate(); + + bool enabled; + bool ikInitialized; + bool ik_activate; + int entityNum; + idTreeAnimator *animator; + idClip *clip; +}; + +// IDA Local Type ordinal 15255; PDB kind: class. +class __declspec(align(8)) idAnimator_WalkIK : public idAnimator_IK +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15256. + virtual ~idAnimator_WalkIK(); + virtual idAnimator_Base::priority_t GetStackPriority(); + virtual serializeType_t GetSerializeType(); + virtual void SerializeSnapshot(idSerializer *); + virtual void PreBlendSnapshot(idAnimStack *, int, const int, float); + virtual void PreSerializeInit(idAnimStack *, idClip *, idGameTimeManager *); + virtual bool InternalInit(const idAnimatorParms_Base *); + virtual bool InternalPostInit(const idAnimatorParms_Base *); + virtual void InternalShutdown(idAnimStack *); + virtual void InternalPreBlendTree(const idAnimStack *, const int, const int); + virtual void InternalPostBlendTree(const idAnimStack *, const int); + virtual void InternalStart(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalEnd(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalBlend(const idAnimStack *, const int, const float, const idTypesafeNumber); + virtual bool InternalIsContributing(); + virtual const idMD6Branch *InternalGetMergeBranch(); + virtual idMD6Branch *InternalGetMergeBranch_2(); + virtual void InternalPause(const idAnimStack *, const idTypesafeNumber); + virtual void InternalUnpause(const idAnimStack *, const idTypesafeNumber); + virtual const idMD6Branch *InternalGetEndBranch(); + virtual idMD6Branch *InternalGetEndBranch_2(); + virtual void Evaluate(); + + const idDeclWalkIK *decl; + idClipModel *clipModel; + int clipMask; + idVec3 upNormal; + idClipModel *footModel; + bool createdClipModel; + int numLegs; + int enabledLegs; + idIndex footJoints[8]; + idIndex ankleJoints[8]; + idIndex kneeJoints[8]; + idIndex hipJoints[8]; + idIndex dirJoints[8]; + idIndex waistJointHandle; + idVec3 hipForward[8]; + idVec3 kneeForward[8]; + float upperLegLength[8]; + float lowerLegLength[8]; + idMat3 upperLegToHipJoint[8]; + idMat3 lowerLegToKneeJoint[8]; + idMat3 kneeJointTransform[8]; + int pivotFoot; + float pivotYaw; + idVec3 pivotPos; + bool onGround; + bool onStairs; + bool isDead; + bool oldHeightsValid; + float oldWaistHeight; + float oldAnkleHeights[8]; + int oldGroundPhysicsId; + idVec3 oldGroundPhysicsOrigin; + int surfaceTypes[8]; + idClipQuery modelQuery; + idClipQuery waistQuery; + idClipQuery legQueries[8]; + idClipQuery footQueries[8]; + idVec3 lastModelSpaceFootOrigin[8]; + float groundTraceDist; + float internalRadiusXY; + idMD6LeafPause animLeaf; + idMD6Branch *mergeBranch; +}; + +// IDA Local Type ordinal 18903; PDB kind: struct. +struct __declspec(align(2)) idAnimator_ReachIK::targetTransform_t +{ + idVec3 origin; + idMat3 axis; + tagData_t selfTag; + bool validOrigin; + bool validAxis; + bool validTag; +}; + +// IDA Local Type ordinal 18904; PDB kind: class. +class idAnimator_ReachIK : public idAnimator_IK +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18905. + virtual ~idAnimator_ReachIK(); + virtual idAnimator_Base::priority_t GetStackPriority(); + virtual serializeType_t GetSerializeType(); + virtual void SerializeSnapshot(idSerializer *); + virtual void PreBlendSnapshot(idAnimStack *, int, const int, float); + virtual void PreSerializeInit(idAnimStack *, idClip *, idGameTimeManager *); + virtual bool InternalInit(const idAnimatorParms_Base *); + virtual bool InternalPostInit(const idAnimatorParms_Base *); + virtual void InternalShutdown(idAnimStack *); + virtual void InternalPreBlendTree(const idAnimStack *, const int, const int); + virtual void InternalPostBlendTree(const idAnimStack *, const int); + virtual void InternalStart(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalEnd(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalBlend(const idAnimStack *, const int, const float, const idTypesafeNumber); + virtual bool InternalIsContributing(); + virtual const idMD6Branch *InternalGetMergeBranch(); + virtual idMD6Branch *InternalGetMergeBranch_2(); + virtual void InternalPause(const idAnimStack *, const idTypesafeNumber); + virtual void InternalUnpause(const idAnimStack *, const idTypesafeNumber); + virtual const idMD6Branch *InternalGetEndBranch(); + virtual idMD6Branch *InternalGetEndBranch_2(); + virtual void Evaluate(); + + const idDeclReachIK *decl; + int numArms; + int enabledArms; + idIndex handJoints[2]; + idIndex elbowJoints[2]; + idIndex shoulderJoints[2]; + idAnimator_ReachIK::targetTransform_t targetTransforms[2]; + idVec3 shoulderForward[2]; + idVec3 elbowForward[2]; + float upperArmLength[2]; + float lowerArmLength[2]; + idMat3 upperArmToShoulderJoint[2]; + idMat3 lowerArmToElbowJoint[2]; +}; diff --git a/source/engine/gamelib/animstack/animator_jointmod.h b/source/engine/gamelib/animstack/animator_jointmod.h new file mode 100644 index 0000000..2b049a5 --- /dev/null +++ b/source/engine/gamelib/animstack/animator_jointmod.h @@ -0,0 +1,49 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\animstack\animator_jointmod.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15447; PDB kind: class. +class idAnimator_JointMod : public idAnimator_Base +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15448. + virtual ~idAnimator_JointMod(); + virtual idAnimator_Base::priority_t GetStackPriority(); + virtual serializeType_t GetSerializeType(); + virtual void SerializeSnapshot(idSerializer *); + virtual void PreBlendSnapshot(idAnimStack *, int, const int, float); + virtual void PreSerializeInit(idAnimStack *, idClip *, idGameTimeManager *); + virtual bool InternalInit(const idAnimatorParms_Base *); + virtual bool InternalPostInit(const idAnimatorParms_Base *); + virtual void InternalShutdown(idAnimStack *); + virtual void InternalPreBlendTree(const idAnimStack *, const int, const int); + virtual void InternalPostBlendTree(const idAnimStack *, const int); + virtual void InternalStart(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalEnd(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalBlend(const idAnimStack *, const int, const float, const idTypesafeNumber); + virtual bool InternalIsContributing(); + virtual const idMD6Branch *InternalGetMergeBranch(); + virtual idMD6Branch *InternalGetMergeBranch_2(); + virtual void InternalPause(const idAnimStack *, const idTypesafeNumber); + virtual void InternalUnpause(const idAnimStack *, const idTypesafeNumber); + virtual const idMD6Branch *InternalGetEndBranch(); + virtual idMD6Branch *InternalGetEndBranch_2(); + + bool enabled; + idList,5> jointIndex; + idList jointValue; + idTreeAnimator *treeAnimator; + animationPose_t poseToModify; +}; + +// IDA Local Type ordinal 18840; PDB kind: class. +class idAnimatorParms_JointMod : public idAnimatorParms_Base +{ +public: + idTreeAnimator *treeAnimator; + animationPose_t poseToModify; +}; diff --git a/source/engine/gamelib/animstack/animator_pain.h b/source/engine/gamelib/animstack/animator_pain.h new file mode 100644 index 0000000..92aff1b --- /dev/null +++ b/source/engine/gamelib/animstack/animator_pain.h @@ -0,0 +1,36 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\animstack\animator_pain.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15477; PDB kind: class. +class idAnimator_Pain : public idAnimator_Channel +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15478. + virtual ~idAnimator_Pain(); + virtual idAnimator_Base::priority_t GetStackPriority(); + virtual serializeType_t GetSerializeType(); + virtual void SerializeSnapshot(idSerializer *); + virtual void PreBlendSnapshot(idAnimStack *, int, const int, float); + virtual void PreSerializeInit(idAnimStack *, idClip *, idGameTimeManager *); + virtual bool InternalInit(const idAnimatorParms_Base *); + virtual bool InternalPostInit(const idAnimatorParms_Base *); + virtual void InternalShutdown(idAnimStack *); + virtual void InternalPreBlendTree(const idAnimStack *, const int, const int); + virtual void InternalPostBlendTree(const idAnimStack *, const int); + virtual void InternalStart(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalEnd(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalBlend(const idAnimStack *, const int, const float, const idTypesafeNumber); + virtual bool InternalIsContributing(); + virtual const idMD6Branch *InternalGetMergeBranch(); + virtual idMD6Branch *InternalGetMergeBranch_2(); + virtual void InternalPause(const idAnimStack *, const idTypesafeNumber); + virtual void InternalUnpause(const idAnimStack *, const idTypesafeNumber); + virtual const idMD6Branch *InternalGetEndBranch(); + virtual idMD6Branch *InternalGetEndBranch_2(); + +}; diff --git a/source/engine/gamelib/animstack/animator_paused.h b/source/engine/gamelib/animstack/animator_paused.h new file mode 100644 index 0000000..13c0757 --- /dev/null +++ b/source/engine/gamelib/animstack/animator_paused.h @@ -0,0 +1,48 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\animstack\animator_paused.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 18898; PDB kind: class. +class idAnimator_Paused : public idAnimator_Base +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18899. + virtual ~idAnimator_Paused(); + virtual idAnimator_Base::priority_t GetStackPriority(); + virtual serializeType_t GetSerializeType(); + virtual void SerializeSnapshot(idSerializer *); + virtual void PreBlendSnapshot(idAnimStack *, int, const int, float); + virtual void PreSerializeInit(idAnimStack *, idClip *, idGameTimeManager *); + virtual bool InternalInit(const idAnimatorParms_Base *); + virtual bool InternalPostInit(const idAnimatorParms_Base *); + virtual void InternalShutdown(idAnimStack *); + virtual void InternalPreBlendTree(const idAnimStack *, const int, const int); + virtual void InternalPostBlendTree(const idAnimStack *, const int); + virtual void InternalStart(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalEnd(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalBlend(const idAnimStack *, const int, const float, const idTypesafeNumber); + virtual bool InternalIsContributing(); + virtual const idMD6Branch *InternalGetMergeBranch(); + virtual idMD6Branch *InternalGetMergeBranch_2(); + virtual void InternalPause(const idAnimStack *, const idTypesafeNumber); + virtual void InternalUnpause(const idAnimStack *, const idTypesafeNumber); + virtual const idMD6Branch *InternalGetEndBranch(); + virtual idMD6Branch *InternalGetEndBranch_2(); + + idMD6LeafPause *leaf; + idMD6Branch *mergeBranch; + const idMD6Anim *anim; +}; + +// IDA Local Type ordinal 18908; PDB kind: class. +class idAnimatorParms_Pause : public idAnimatorParms_Base +{ +public: + const idMD6Anim *anim; + float startFrame; + float normalizedStartFrame; +}; diff --git a/source/engine/gamelib/animstack/animator_ponytail.h b/source/engine/gamelib/animstack/animator_ponytail.h new file mode 100644 index 0000000..3ce5300 --- /dev/null +++ b/source/engine/gamelib/animstack/animator_ponytail.h @@ -0,0 +1,54 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\animstack\animator_ponytail.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16487; PDB kind: class. +class __declspec(align(4)) idAnimator_Ponytail : public idAnimator_Base +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16488. + virtual ~idAnimator_Ponytail(); + virtual idAnimator_Base::priority_t GetStackPriority(); + virtual serializeType_t GetSerializeType(); + virtual void SerializeSnapshot(idSerializer *); + virtual void PreBlendSnapshot(idAnimStack *, int, const int, float); + virtual void PreSerializeInit(idAnimStack *, idClip *, idGameTimeManager *); + virtual bool InternalInit(const idAnimatorParms_Base *); + virtual bool InternalPostInit(const idAnimatorParms_Base *); + virtual void InternalShutdown(idAnimStack *); + virtual void InternalPreBlendTree(const idAnimStack *, const int, const int); + virtual void InternalPostBlendTree(const idAnimStack *, const int); + virtual void InternalStart(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalEnd(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalBlend(const idAnimStack *, const int, const float, const idTypesafeNumber); + virtual bool InternalIsContributing(); + virtual const idMD6Branch *InternalGetMergeBranch(); + virtual idMD6Branch *InternalGetMergeBranch_2(); + virtual void InternalPause(const idAnimStack *, const idTypesafeNumber); + virtual void InternalUnpause(const idAnimStack *, const idTypesafeNumber); + virtual const idMD6Branch *InternalGetEndBranch(); + virtual idMD6Branch *InternalGetEndBranch_2(); + + const idDeclPonytail *declPonytail; + idTreeAnimator *parentAnimator; + idList,30> joints; + idMD6Branch *mergeBranch; + idMD6LeafPause *pauseLeaf; + idMD6LeafPlay *playLeaf; + idMD6Branch *lerpBranch; + idList segments; + idSpring ptEndSpring; + bool isInitialized; +}; + +// IDA Local Type ordinal 20441; PDB kind: class. +class idAnimatorParms_Ponytail : public idAnimatorParms_Base +{ +public: + const idDeclPonytail *declPonytail; + idTreeAnimator *parentAnimator; +}; diff --git a/source/engine/gamelib/animstack/animator_proxy.h b/source/engine/gamelib/animstack/animator_proxy.h new file mode 100644 index 0000000..ff88ae2 --- /dev/null +++ b/source/engine/gamelib/animstack/animator_proxy.h @@ -0,0 +1,37 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\animstack\animator_proxy.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15219; PDB kind: class. +class idAnimator_Proxy : public idAnimator_Base +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15220. + virtual ~idAnimator_Proxy(); + virtual idAnimator_Base::priority_t GetStackPriority(); + virtual serializeType_t GetSerializeType(); + virtual void SerializeSnapshot(idSerializer *); + virtual void PreBlendSnapshot(idAnimStack *, int, const int, float); + virtual void PreSerializeInit(idAnimStack *, idClip *, idGameTimeManager *); + virtual bool InternalInit(const idAnimatorParms_Base *); + virtual bool InternalPostInit(const idAnimatorParms_Base *); + virtual void InternalShutdown(idAnimStack *); + virtual void InternalPreBlendTree(const idAnimStack *, const int, const int); + virtual void InternalPostBlendTree(const idAnimStack *, const int); + virtual void InternalStart(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalEnd(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalBlend(const idAnimStack *, const int, const float, const idTypesafeNumber); + virtual bool InternalIsContributing(); + virtual const idMD6Branch *InternalGetMergeBranch(); + virtual idMD6Branch *InternalGetMergeBranch_2(); + virtual void InternalPause(const idAnimStack *, const idTypesafeNumber); + virtual void InternalUnpause(const idAnimStack *, const idTypesafeNumber); + virtual const idMD6Branch *InternalGetEndBranch(); + virtual idMD6Branch *InternalGetEndBranch_2(); + + idMD6Branch *mergeBranch; +}; diff --git a/source/engine/gamelib/animstack/animator_rollbones.h b/source/engine/gamelib/animstack/animator_rollbones.h new file mode 100644 index 0000000..7be9503 --- /dev/null +++ b/source/engine/gamelib/animstack/animator_rollbones.h @@ -0,0 +1,59 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\animstack\animator_rollbones.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17131; PDB kind: class. +class idAnimator_RollBones : public idAnimator_Base +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17134. + virtual ~idAnimator_RollBones(); + virtual idAnimator_Base::priority_t GetStackPriority(); + virtual serializeType_t GetSerializeType(); + virtual void SerializeSnapshot(idSerializer *); + virtual void PreBlendSnapshot(idAnimStack *, int, const int, float); + virtual void PreSerializeInit(idAnimStack *, idClip *, idGameTimeManager *); + virtual bool InternalInit(const idAnimatorParms_Base *); + virtual bool InternalPostInit(const idAnimatorParms_Base *); + virtual void InternalShutdown(idAnimStack *); + virtual void InternalPreBlendTree(const idAnimStack *, const int, const int); + virtual void InternalPostBlendTree(const idAnimStack *, const int); + virtual void InternalStart(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalEnd(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalBlend(const idAnimStack *, const int, const float, const idTypesafeNumber); + virtual bool InternalIsContributing(); + virtual const idMD6Branch *InternalGetMergeBranch(); + virtual idMD6Branch *InternalGetMergeBranch_2(); + virtual void InternalPause(const idAnimStack *, const idTypesafeNumber); + virtual void InternalUnpause(const idAnimStack *, const idTypesafeNumber); + virtual const idMD6Branch *InternalGetEndBranch(); + virtual idMD6Branch *InternalGetEndBranch_2(); + virtual void PreBlendSnapshot_2(idAnimStack *, int, float); + + bool enabled; + idTreeAnimator *animator; + idMD6LeafPause animLeaf; + idMD6Branch *mergeBranch; + idList rollBones; +}; + +// IDA Local Type ordinal 17132; PDB kind: class. +class idAnimator_RollBones::idRollInstance +{ +public: + idVec3 rollAxis; + float rollAmount; + idIndex rollSourceJoint; + idIndex rollDestJoint; +}; + +// IDA Local Type ordinal 20088; PDB kind: class. +class idAnimatorParms_RollBones : public idAnimatorParms_Base +{ +public: + const idDeclRollBones *declRollBones; +}; diff --git a/source/engine/gamelib/animstack/animator_synced.h b/source/engine/gamelib/animstack/animator_synced.h new file mode 100644 index 0000000..3f6dcc5 --- /dev/null +++ b/source/engine/gamelib/animstack/animator_synced.h @@ -0,0 +1,45 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\animstack\animator_synced.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14299; PDB kind: class. +class idAnimator_Synced : public idAnimator_Base +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14300. + virtual ~idAnimator_Synced(); + virtual idAnimator_Base::priority_t GetStackPriority(); + virtual serializeType_t GetSerializeType(); + virtual void SerializeSnapshot(idSerializer *); + virtual void PreBlendSnapshot(idAnimStack *, int, const int, float); + virtual void PreSerializeInit(idAnimStack *, idClip *, idGameTimeManager *); + virtual bool InternalInit(const idAnimatorParms_Base *); + virtual bool InternalPostInit(const idAnimatorParms_Base *); + virtual void InternalShutdown(idAnimStack *); + virtual void InternalPreBlendTree(const idAnimStack *, const int, const int); + virtual void InternalPostBlendTree(const idAnimStack *, const int); + virtual void InternalStart(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalEnd(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalBlend(const idAnimStack *, const int, const float, const idTypesafeNumber); + virtual bool InternalIsContributing(); + virtual const idMD6Branch *InternalGetMergeBranch(); + virtual idMD6Branch *InternalGetMergeBranch_2(); + virtual void InternalPause(const idAnimStack *, const idTypesafeNumber); + virtual void InternalUnpause(const idAnimStack *, const idTypesafeNumber); + virtual const idMD6Branch *InternalGetEndBranch(); + virtual idMD6Branch *InternalGetEndBranch_2(); + + idMD6LeafPlay *leaves[8]; + idMD6Branch *branches[7]; + idMD6Branch *mergeBranch; + idStaticList anims; + idStaticList,8> aliasHandles; + idStaticList aliasWeights; + idStaticList alphaValues; + idMD6Leaf::wrapMode_t wrapMode; + float rateScale; +}; diff --git a/source/engine/gamelib/animstack/animator_torsotracker.h b/source/engine/gamelib/animstack/animator_torsotracker.h new file mode 100644 index 0000000..2905a77 --- /dev/null +++ b/source/engine/gamelib/animstack/animator_torsotracker.h @@ -0,0 +1,46 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\animstack\animator_torsotracker.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 18900; PDB kind: class. +class __declspec(align(2)) idAnimator_TorsoTracker : public idAnimator_TrackerBase +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18901. + virtual ~idAnimator_TorsoTracker(); + virtual idAnimator_Base::priority_t GetStackPriority(); + virtual serializeType_t GetSerializeType(); + virtual void SerializeSnapshot(idSerializer *); + virtual void PreBlendSnapshot(idAnimStack *, int, const int, float); + virtual void PreSerializeInit(idAnimStack *, idClip *, idGameTimeManager *); + virtual bool InternalInit(const idAnimatorParms_Base *); + virtual bool InternalPostInit(const idAnimatorParms_Base *); + virtual void InternalShutdown(idAnimStack *); + virtual void InternalPreBlendTree(const idAnimStack *, const int, const int); + virtual void InternalPostBlendTree(const idAnimStack *, const int); + virtual void InternalStart(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalEnd(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalBlend(const idAnimStack *, const int, const float, const idTypesafeNumber); + virtual bool InternalIsContributing(); + virtual const idMD6Branch *InternalGetMergeBranch(); + virtual idMD6Branch *InternalGetMergeBranch_2(); + virtual void InternalPause(const idAnimStack *, const idTypesafeNumber); + virtual void InternalUnpause(const idAnimStack *, const idTypesafeNumber); + virtual const idMD6Branch *InternalGetEndBranch(); + virtual idMD6Branch *InternalGetEndBranch_2(); + virtual void SetReferenceJointOverride(const idIndex); + virtual const idIndex *GetReferenceJointOverride(const idIndex *result); + virtual void GetModelSpaceFrameOfReferenceForChild(const idTreeAnimator *, idVec3 *, idMat3 *); + virtual void GetWorldSpaceFrameOfReferenceForChild(const idTreeAnimator *, idVec3 *, idMat3 *); + virtual void GetWorldSpaceFrameOfReference(const idAnimator_TrackerBase *, const idTreeAnimator *, idVec3 *, idMat3 *); + virtual void GetModelSpaceFrameOfReference(const idAnimator_TrackerBase *, const idTreeAnimator *, idVec3 *, idMat3 *); + virtual void InternalUpdate(const idAnimator_TrackerBase *); + virtual void GetUnconstrainedAngleDeltas(const idAnimator_TrackerBase *, idTreeAnimator *, idAngles *, idAngles *, idVec3 *); + + idIndex referenceJointOverrideIdx; + bool useOriginXYForWorldSpace; +}; diff --git a/source/engine/gamelib/animstack/animator_trackerbase.h b/source/engine/gamelib/animstack/animator_trackerbase.h new file mode 100644 index 0000000..abf9777 --- /dev/null +++ b/source/engine/gamelib/animstack/animator_trackerbase.h @@ -0,0 +1,74 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\animstack\animator_trackerbase.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16727; PDB kind: class. +class __declspec(align(4)) idAnimator_TrackerBase : public idAnimator_Base +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16728. + virtual ~idAnimator_TrackerBase(); + virtual idAnimator_Base::priority_t GetStackPriority(); + virtual serializeType_t GetSerializeType(); + virtual void SerializeSnapshot(idSerializer *); + virtual void PreBlendSnapshot(idAnimStack *, int, const int, float); + virtual void PreSerializeInit(idAnimStack *, idClip *, idGameTimeManager *); + virtual bool InternalInit(const idAnimatorParms_Base *); + virtual bool InternalPostInit(const idAnimatorParms_Base *); + virtual void InternalShutdown(idAnimStack *); + virtual void InternalPreBlendTree(const idAnimStack *, const int, const int); + virtual void InternalPostBlendTree(const idAnimStack *, const int); + virtual void InternalStart(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalEnd(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalBlend(const idAnimStack *, const int, const float, const idTypesafeNumber); + virtual bool InternalIsContributing(); + virtual const idMD6Branch *InternalGetMergeBranch(); + virtual idMD6Branch *InternalGetMergeBranch_2(); + virtual void InternalPause(const idAnimStack *, const idTypesafeNumber); + virtual void InternalUnpause(const idAnimStack *, const idTypesafeNumber); + virtual const idMD6Branch *InternalGetEndBranch(); + virtual idMD6Branch *InternalGetEndBranch_2(); + virtual void SetReferenceJointOverride(const idIndex); + virtual const idIndex *GetReferenceJointOverride(const idIndex *result); + virtual void GetModelSpaceFrameOfReferenceForChild(const idTreeAnimator *, idVec3 *, idMat3 *); + virtual void GetWorldSpaceFrameOfReferenceForChild(const idTreeAnimator *, idVec3 *, idMat3 *); + virtual void GetWorldSpaceFrameOfReference(const idAnimator_TrackerBase *, const idTreeAnimator *, idVec3 *, idMat3 *); + virtual void GetModelSpaceFrameOfReference(const idAnimator_TrackerBase *, const idTreeAnimator *, idVec3 *, idMat3 *); + virtual void InternalUpdate(const idAnimator_TrackerBase *); + virtual void GetUnconstrainedAngleDeltas(const idAnimator_TrackerBase *, idTreeAnimator *, idAngles *, idAngles *, idVec3 *); + + const idAnimator_TrackerBase *parentTracker; + idVec3 focusPoint; + idVec3 focusPoints[2]; + idTypesafeNumber yawRight; + idTypesafeNumber yawLeft; + idTypesafeNumber pitchUp; + idTypesafeNumber pitchDown; + int trackGroupIndex; + idMD6Branch *mergeBranch; + idMD6LeafPause *leaf; + idVec3 msDirToFocus; + idVec3 wsFocusJointPos; + idVec3 msReferenceJointPos; + idAngles idealOffsetAngles; + idAngles curOffsetAngles; + idAngles lastAngles; + unsigned __int8 : 2; + __int8 lockTracking : 1; + __int8 clientSnapFocusPoint : 1; + __int8 projectReferenceOrientation : 1; + __int8 enableConstraints : 1; + __int8 pitchClamped : 1; + __int8 yawClamped : 1; +}; + +// IDA Local Type ordinal 18907; PDB kind: class. +class __declspec(align(4)) idAnimatorParms_TrackerBase : public idAnimatorParms_Base +{ +public: + bool projectReferenceOrientation; +}; diff --git a/source/engine/gamelib/animstack/animator_turret.h b/source/engine/gamelib/animstack/animator_turret.h new file mode 100644 index 0000000..f5eca89 --- /dev/null +++ b/source/engine/gamelib/animstack/animator_turret.h @@ -0,0 +1,59 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\animstack\animator_turret.h +// Recovered logical types: 5 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17129; PDB kind: class. +class __declspec(align(4)) idAnimator_TurretNxN<3> : public idAnimator_Synced +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17130. + virtual ~idAnimator_TurretNxN(); + virtual idAnimator_Base::priority_t GetStackPriority(); + virtual serializeType_t GetSerializeType(); + virtual void SerializeSnapshot(idSerializer *); + virtual void PreBlendSnapshot(idAnimStack *, int, const int, float); + virtual void PreSerializeInit(idAnimStack *, idClip *, idGameTimeManager *); + virtual bool InternalInit(const idAnimatorParms_Base *); + virtual bool InternalPostInit(const idAnimatorParms_Base *); + virtual void InternalShutdown(idAnimStack *); + virtual void InternalPreBlendTree(const idAnimStack *, const int, const int); + virtual void InternalPostBlendTree(const idAnimStack *, const int); + virtual void InternalStart(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalEnd(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalBlend(const idAnimStack *, const int, const float, const idTypesafeNumber); + virtual bool InternalIsContributing(); + virtual const idMD6Branch *InternalGetMergeBranch(); + virtual idMD6Branch *InternalGetMergeBranch_2(); + virtual void InternalPause(const idAnimStack *, const idTypesafeNumber); + virtual void InternalUnpause(const idAnimStack *, const idTypesafeNumber); + virtual const idMD6Branch *InternalGetEndBranch(); + virtual idMD6Branch *InternalGetEndBranch_2(); + + int lastBlendTriangle; + idHandle vertexAliasHandles[9]; +}; + +// IDA Local Type ordinal 20101; PDB kind: struct. +struct idAnimator_TurretNxN<3>::triangle_t +{ + unsigned __int8 vertex1; + unsigned __int8 vertex2; + unsigned __int8 vertex3; +}; + +// IDA Local Type ordinal 20102; PDB kind: struct. +struct idAnimator_TurretNxN<3>::blendgrid_t +{ + idVec3 vertexLocations[9]; + idAnimator_TurretNxN<3>::triangle_t blendTriangles[8]; +}; + +// IDA Local Type ordinal 29856; PDB kind: typedef. +typedef idAnimator_TurretNxN<3> idAnimator_Turret; + +// IDA Local Type ordinal 32078; PDB kind: typedef. +typedef idAnimator_TurretNxN<3> idAnimator_Turret3x3; diff --git a/source/engine/gamelib/animstack/animator_vehiclecar.h b/source/engine/gamelib/animstack/animator_vehiclecar.h new file mode 100644 index 0000000..6577048 --- /dev/null +++ b/source/engine/gamelib/animstack/animator_vehiclecar.h @@ -0,0 +1,59 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\animstack\animator_vehiclecar.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14564; PDB kind: class. +class __declspec(align(4)) idAnimator_VehicleCar : public idAnimator_Base +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14565. + virtual ~idAnimator_VehicleCar(); + virtual idAnimator_Base::priority_t GetStackPriority(); + virtual serializeType_t GetSerializeType(); + virtual void SerializeSnapshot(idSerializer *); + virtual void PreBlendSnapshot(idAnimStack *, int, const int, float); + virtual void PreSerializeInit(idAnimStack *, idClip *, idGameTimeManager *); + virtual bool InternalInit(const idAnimatorParms_Base *); + virtual bool InternalPostInit(const idAnimatorParms_Base *); + virtual void InternalShutdown(idAnimStack *); + virtual void InternalPreBlendTree(const idAnimStack *, const int, const int); + virtual void InternalPostBlendTree(const idAnimStack *, const int); + virtual void InternalStart(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalEnd(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalBlend(const idAnimStack *, const int, const float, const idTypesafeNumber); + virtual bool InternalIsContributing(); + virtual const idMD6Branch *InternalGetMergeBranch(); + virtual idMD6Branch *InternalGetMergeBranch_2(); + virtual void InternalPause(const idAnimStack *, const idTypesafeNumber); + virtual void InternalUnpause(const idAnimStack *, const idTypesafeNumber); + virtual const idMD6Branch *InternalGetEndBranch(); + virtual idMD6Branch *InternalGetEndBranch_2(); + + idTreeAnimator *animator; + const idDeclVehicleProps *vehicleProps; + idList animWheels; + idClip *clip; + int entityNum; + idRenderModel *renderModel; + idList dialMeters; + int speedometer; + int tachometer; + int clipMask; + bool accelerating; + bool handBraking; + bool isReversing; + bool playerOccupant; + bool rotateSteeringWheel; + idIndex steeringWheelJoint; + idVec3 steeringWheelAxis; + idQuat steeringWheelJointQuat; + float steerAngle; + float lastSteerAngle; + float newSteerAngle; + bool updateWheelAngle; + bool isOnElevator; +}; diff --git a/source/engine/gamelib/animstack/animrecorder.h b/source/engine/gamelib/animstack/animrecorder.h new file mode 100644 index 0000000..e6bbd4d --- /dev/null +++ b/source/engine/gamelib/animstack/animrecorder.h @@ -0,0 +1,72 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\animstack\animrecorder.h +// Recovered logical types: 6 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1934; PDB kind: enum. +enum idAnimRecorder::blockType_t : __int32 +{ + RECORD_HEADER_BLOCK = 0x0, + ANIM_STACK_BLOCK = 0x1, + INVALID_BLOCK = 0x2, +}; + +// IDA Local Type ordinal 1935; PDB kind: enum. +enum idAnimRecorder::recordingFileMode_t : __int32 +{ + RECORDING_FILE_CLOSED = 0x0, + RECORDING_FILE_READ = 0x1, + RECORDING_FILE_WRITE = 0x2, +}; + +// IDA Local Type ordinal 17490; PDB kind: class. +class __declspec(align(4)) idAnimRecorder +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17491. + virtual void Serialize(int *, idGameTimeManager *, const bool); + virtual void Stop(); + virtual void ReadFrames(int); + virtual ~idAnimRecorder(); + virtual void WriteHeaderBlock(); + virtual bool ReadHeaderBlock(); + + idArray buffer; + idList,5> networkIDDict; + int cachedGameTime; + int cachedMessageSize; + int dataStart; + idCompressor *compressor; + idFile *file; + idSerializer *activeSerializer; + idAnimStack *activeAnimStack; + idAnimRecorder::recordingFileMode_t recordingFileMode; + bool isPaused; +}; + +// IDA Local Type ordinal 17493; PDB kind: struct. +struct idAnimRecorder::NameStruct_t +{ + const char *typeName; + const char *objectName; +}; + +// IDA Local Type ordinal 21939; PDB kind: class. +class idAnimRecorder::idSearch_NetworkIDNamePair : public idSearch_Binary,idAnimRecorder::idSearch_NetworkIDNamePair> +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21940. + virtual ~idSearch_NetworkIDNamePair(); + virtual int Search(const idPair *, unsigned int, const idPair *); + virtual int Search_FirstGreater(const idPair *, const int, const idPair *); + virtual int Search_FirstGreaterEqual(const idPair *, const int, const idPair *); + virtual int Search_LastLess(const idPair *, const int, const idPair *); + virtual int Search_LastLessEqual(const idPair *, const int, const idPair *); + +}; + +// IDA Local Type ordinal 31409; PDB kind: typedef. +typedef idAnimRecorder *(__fastcall *idAnimRecorderAlloc_t)(); diff --git a/source/engine/gamelib/animstack/animstack.h b/source/engine/gamelib/animstack/animstack.h new file mode 100644 index 0000000..51e190b --- /dev/null +++ b/source/engine/gamelib/animstack/animstack.h @@ -0,0 +1,61 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\animstack\animstack.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2188; PDB kind: enum. +enum idAnimStack::animatorFlag_t : __int32 +{ + ANIMATORFLAG_INITIALIZED = 0x1, + ANIMATORFLAG_ENABLED = 0x2, + ANIMATORFLAG_CONTRIBUTED_LAST_SERIALIZE = 0x4, + ANIMATORFLAG_SERIALIZE = 0x8, + ANIMATORFLAG_CLIENT_AUTHORITATIVE_ENABLED = 0x10, + ANIMATORFLAG_CLIENT_AUTHORITATIVE_CONTRIBUTED = 0x20, +}; + +// IDA Local Type ordinal 14225; PDB kind: class. +class idAnimStack +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14226. + virtual ~idAnimStack(); + + idTreeAnimator *treeAnimator; + idMD6BlockAlloc md6Allocator; + idList blendStack; + idList flags; + idMD6Node *tree; + idTypesafeNumber pauseTime; + bool skipSerialization; + unsigned __int8 typesMemory[9]; + unsigned __int8 branchMemory[96]; + unsigned __int8 leafMemory[153]; + bool serializedNewTree; + int prevSerializedTime; + int curSerializedTime; + bool createdFromSnapshot; + bool blendedFromSnapshot; + bool disableSerialization; + idStaticList usedSnapshotNodes; + idStaticList rememberedNodes; +}; + +// IDA Local Type ordinal 21760; PDB kind: struct. +struct idAnimStack::syncNode_t +{ + idMD6LeafPlay *node; + float alpha; +}; + +// IDA Local Type ordinal 22168; PDB kind: struct. +struct idAnimStack::syncGroup_t +{ + idStaticList nodes; + float fraction; + float syncRate; + int groupNumber; +}; diff --git a/source/engine/gamelib/animstack/animweb/animwebblendtree.h b/source/engine/gamelib/animstack/animweb/animwebblendtree.h new file mode 100644 index 0000000..b253d34 --- /dev/null +++ b/source/engine/gamelib/animstack/animweb/animwebblendtree.h @@ -0,0 +1,19 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\animstack\animweb\animwebblendtree.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15072; PDB kind: class. +class idAnimWebBlendTree +{ +public: + idMD6Node *tree; + idIndex nodeIndex; + __int16 modelIndex; + idAnimator_AnimWeb *web; + idList scalarPairs; + idList leaves; +}; diff --git a/source/engine/gamelib/animstack/animweb/animwebeventhandler.h b/source/engine/gamelib/animstack/animweb/animwebeventhandler.h new file mode 100644 index 0000000..917e628 --- /dev/null +++ b/source/engine/gamelib/animstack/animweb/animwebeventhandler.h @@ -0,0 +1,71 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\animstack\animweb\animwebeventhandler.h +// Recovered logical types: 5 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1362; PDB kind: enum. +enum animWebEvent_t : __int32 +{ + ANIMWEB_EVENT_NONE = 0xFFFFFFFF, + ANIMWEB_EVENT_START_BLEND_IN = 0x0, + ANIMWEB_EVENT_START_BLEND_OUT = 0x1, + ANIMWEB_EVENT_END_BLEND_IN = 0x2, + ANIMWEB_EVENT_END_BLEND_OUT = 0x3, + ANIMWEB_EVENT_DEST_START_BLEND_IN = 0x4, + ANIMWEB_EVENT_DEST_END_BLEND_IN = 0x5, + ANIMWEB_EVENT_DEST_CLAMPED = 0x6, + ANIMWEB_EVENT_BLEND_NEXT_FRAME = 0x7, + ANIMWEB_EVENT_CLAMP_NEXT_FRAME = 0x8, + ANIMWEB_EVENT_MAX = 0x9, +}; + +// IDA Local Type ordinal 1694; PDB kind: enum. +enum idAnimWebEvent::priority_t : __int32 +{ + PRIORITY_LOW = 0x0, + PRIORITY_MISC = 0x0, + PRIORITY_DEATH = 0x1, + PRIORITY_MAX = 0x2, +}; + +// IDA Local Type ordinal 15082; PDB kind: class. +class idAnimWebEventHandler +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15083. + virtual void ClearEvent(const animWebEvent_t); + virtual void ClearEvents(); + virtual void SetEvent(const idAnimator_AnimWeb *, const idIndex, const idIndex, const animWebEvent_t, const int, const idAnimWebEvent::priority_t); + virtual void TriggerEventType(idAnimator_AnimWeb *, const idDeclAnimWebNode *, const animWebEvent_t, const int); + virtual bool IsEventPending(const animWebEvent_t); + virtual bool IsAnyEventPending(); + +}; + +// IDA Local Type ordinal 15084; PDB kind: class. +class idAnimWebEvent +{ +public: + idIndex swi; + idIndex si; + int eventNum; + idAnimWebEvent::priority_t priority; +}; + +// IDA Local Type ordinal 15086; PDB kind: class. +class idAnimWebEventHandler_Zion : public idAnimWebEventHandler +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15085. + virtual void ClearEvent(const animWebEvent_t); + virtual void ClearEvents(); + virtual void SetEvent(const idAnimator_AnimWeb *, const idIndex, const idIndex, const animWebEvent_t, const int, const idAnimWebEvent::priority_t); + virtual void TriggerEventType(idAnimator_AnimWeb *, const idDeclAnimWebNode *, const animWebEvent_t, const int); + virtual bool IsEventPending(const animWebEvent_t); + virtual bool IsAnyEventPending(); + + idAnimWebEvent events[9]; +}; diff --git a/source/engine/gamelib/animstack/animweb/animwebpath.h b/source/engine/gamelib/animstack/animweb/animwebpath.h new file mode 100644 index 0000000..fa47147 --- /dev/null +++ b/source/engine/gamelib/animstack/animweb/animwebpath.h @@ -0,0 +1,13 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\animstack\animweb\animwebpath.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16590; PDB kind: class. +class idAnimWebPath : public idStr +{ +public: +}; diff --git a/source/engine/gamelib/animstack/animweb/dijkstra.h b/source/engine/gamelib/animstack/animweb/dijkstra.h new file mode 100644 index 0000000..1165d6b --- /dev/null +++ b/source/engine/gamelib/animstack/animweb/dijkstra.h @@ -0,0 +1,14 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\animstack\animweb\dijkstra.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 23485; PDB kind: class. +class idDijkstra,idDeclAnimWeb::idEdgeCache,idAnimWebRoute> +{ +public: + int lastStartNode; +}; diff --git a/source/engine/gamelib/animstack/coneconstraint.h b/source/engine/gamelib/animstack/coneconstraint.h new file mode 100644 index 0000000..28874de --- /dev/null +++ b/source/engine/gamelib/animstack/coneconstraint.h @@ -0,0 +1,207 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\animstack\coneconstraint.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16484; PDB kind: class. +class idConeConstraint_Quat +{ +public: + idQuat current; + idQuat center; + float limitAngleDot; + float halfLimitAngleCosine; + float halfLimitAngleSine; +}; + +// IDA Local Type ordinal 19154; PDB kind: class. +class idConeConstraint_Vec3 +{ +public: + idVec3 current; + idVec3 center; + float limitAngleDot; + float halfLimitAngleCosine; + float halfLimitAngleSine; +}; + +// IDA Local Type ordinal 19160; PDB kind: class. +class idTest_ConeConstraint : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19161. + virtual idTypeInfo *GetType(); + virtual ~idTest_ConeConstraint(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + int numSegments; + idSegment **segments; +}; + +// IDA Local Type ordinal 21649; PDB kind: class. +class idConeConstraint_Mat3 +{ +public: + idMat3 current; + idMat3 center; + float limitAngleDot; + float halfLimitAngleCosine; + float halfLimitAngleSine; +}; diff --git a/source/engine/gamelib/class.h b/source/engine/gamelib/class.h new file mode 100644 index 0000000..97e6a8e --- /dev/null +++ b/source/engine/gamelib/class.h @@ -0,0 +1,46 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\class.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 9440; PDB kind: unknown. +struct SUB_CLASS:: +{ + unsigned __int32 SUB_CLASS_INF : 8; +}; + +// IDA Local Type ordinal 9441; PDB kind: union. +union SUB_CLASS +{ + SUB_CLASS:: bitfields; + SUB_CLASS:: bits; + unsigned int u32All; + int i32All; + float f32All; +}; + +// IDA Local Type ordinal 12079; PDB kind: struct. +struct XUIClass +{ + unsigned int cbSize; + const wchar_t *szClassName; + const wchar_t *szBaseClassName; + const wchar_t *szClassDetails; + XUIObjectMethods Methods; + const XUIElementPropDef *pPropDefs; + unsigned int dwPropDefCount; + int bExtensionClass; +}; + +// IDA Local Type ordinal 13472; PDB kind: class. +class idClass +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13475. + virtual idTypeInfo *GetType(); + virtual ~idClass(); + +}; diff --git a/source/engine/gamelib/effectphysics/effectphysicsboxfountain.h b/source/engine/gamelib/effectphysics/effectphysicsboxfountain.h new file mode 100644 index 0000000..bbd1241 --- /dev/null +++ b/source/engine/gamelib/effectphysics/effectphysicsboxfountain.h @@ -0,0 +1,23 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\effectphysics\effectphysicsboxfountain.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16038; PDB kind: class. +class __declspec(align(8)) idEffectPhysicsBoxFountain +{ +public: + idEffectPhysicsBroadPhase broadPhase; + idEffectPhysicsProperties properties; + idList rigidBodies; + idRenderModelManyBoxes *manyBoxes; + int lastFireTime; + int currentFireRigidBody; + idVec3 startOrigin; + idVec3 spawnOrigin; + idSPObject spawnObject; + idRandom random; +}; diff --git a/source/engine/gamelib/effectphysics/effectphysicsbreakable.h b/source/engine/gamelib/effectphysics/effectphysicsbreakable.h new file mode 100644 index 0000000..607b383 --- /dev/null +++ b/source/engine/gamelib/effectphysics/effectphysicsbreakable.h @@ -0,0 +1,93 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\effectphysics\effectphysicsbreakable.h +// Recovered logical types: 7 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15408; PDB kind: class. +class __declspec(align(2)) idEffectPhysicsBreakable::idExplosion +{ +public: + idBreakableExplosion decl; + int startTime; + int fxIndex; + idVec3 worldPosition; + bool effectsEnabled; + bool forceApplied; + bool localSpace; +}; + +// IDA Local Type ordinal 15412; PDB kind: class. +class idEffectPhysicsBreakable::idTrail +{ +public: + idBreakableTrail decl; + idList pieceStartTime; + idList pieceLastParticleDropPos; +}; + +// IDA Local Type ordinal 15415; PDB kind: class. +class idEffectPhysicsBreakable::idBreakableParticle +{ +public: + const idDeclParticle *particle; + idVec3 pos; + int startTime; +}; + +// IDA Local Type ordinal 15417; PDB kind: class. +class idEffectPhysicsBreakable::idDecalFX +{ +public: + idBreakableDecal decl; + idList pieceStartTime; + idList lastCollisionPos; + idList lastCollisionNormal; + idList pieceLastDecalDropPos; +}; + +// IDA Local Type ordinal 15419; PDB kind: class. +class idEffectPhysicsBreakable::idSpark +{ +public: + const idMaterial *material; + float velocityScale; + float size; +}; + +// IDA Local Type ordinal 15421; PDB kind: struct. +struct idEffectPhysicsBreakable::breakablePieceSound_t +{ + idSoundWorld *soundWorld; + idSoundEmitter *emitter; + soundChannel_t channel; + const idDeclImpactSound *impactTable; + int nextSoundTime; + float minBounceVelSqr; +}; + +// IDA Local Type ordinal 15422; PDB kind: class. +class idEffectPhysicsBreakable +{ +public: + idList properties; + idList rigidBodies; + idList collisions; + idCollisionModel *basePiece; + idList explosions; + idList explosionFX; + idList trails; + idList damage; + idList particles; + idList decals; + idList sparks; + idList pieceActivationTimes; + idEffectPhysicsBroadPhase broadPhase; + idRandom random; + idGameLibEffects *gameLibEffects; + idRenderModelDiscreteAnimation *model; + const idDeclBreakable *decl; + idEffectPhysicsBreakable::breakablePieceSound_t soundInfo; +}; diff --git a/source/engine/gamelib/effectphysics/effectphysicsbroadphase.h b/source/engine/gamelib/effectphysics/effectphysicsbroadphase.h new file mode 100644 index 0000000..a7b5402 --- /dev/null +++ b/source/engine/gamelib/effectphysics/effectphysicsbroadphase.h @@ -0,0 +1,25 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\effectphysics\effectphysicsbroadphase.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14572; PDB kind: class. +class idEffectPhysicsBroadPhase::idSPMarker +{ +public: + __int16 value; + unsigned __int16 data; +}; + +// IDA Local Type ordinal 14574; PDB kind: class. +class idEffectPhysicsBroadPhase +{ +public: + idClip *clip; + idTraceModelCache *traceModelCache; + idList objects; + idList markers[3]; +}; diff --git a/source/engine/gamelib/effectphysics/effectphysicscuttable.h b/source/engine/gamelib/effectphysics/effectphysicscuttable.h new file mode 100644 index 0000000..ad75a11 --- /dev/null +++ b/source/engine/gamelib/effectphysics/effectphysicscuttable.h @@ -0,0 +1,54 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\effectphysics\effectphysicscuttable.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2911; PDB kind: unknown. +enum idEffectPhysicsCuttable:: : __int32 +{ + MAX_PIECES = 0x8, + MAX_BUFFERS = 0xA, +}; + +// IDA Local Type ordinal 17356; PDB kind: struct. +struct idEffectPhysicsCuttable::model_t +{ + int index; + int timeStamp; +}; + +// IDA Local Type ordinal 17363; PDB kind: struct. +struct idEffectPhysicsCuttable::piece_t +{ + idEffectPhysicsProperties *properties; + idEffectPhysicsRigidBody *rigidBody; + const idDeclImpactSound *soundTable; + idEffectPhysicsCollision collision; + idMat3 orientation; + idVec3 position; + int timeStamp; + int firstCollisionTime; + int renderModelIndex; + int nextSoundTime; + float minBounceVelocitySqr; +}; + +// IDA Local Type ordinal 17366; PDB kind: class. +class idEffectPhysicsCuttable +{ +public: + idStaticList freeModels; + idStaticList models; + idStaticList pieces; + idEffectPhysicsBroadPhase broadPhase; + float pieceCollisionAgeDecay; + float pieceFriction; + int pieceMaxLifeTime; + int pieceLifeTime; + int pieceFadeTime; + int pieceMass; + idSoundWorld *soundWorld; +}; diff --git a/source/engine/gamelib/effectphysics/effectphysicsdebrisemitter.h b/source/engine/gamelib/effectphysics/effectphysicsdebrisemitter.h new file mode 100644 index 0000000..fc46302 --- /dev/null +++ b/source/engine/gamelib/effectphysics/effectphysicsdebrisemitter.h @@ -0,0 +1,28 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\effectphysics\effectphysicsdebrisemitter.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14594; PDB kind: struct. +struct idEffectPhysicsDebrisEmitter::emitBufferItem_t +{ + idVec3 pos; + idVec3 normal; + int count; +}; + +// IDA Local Type ordinal 14595; PDB kind: class. +class idEffectPhysicsDebrisEmitter +{ +public: + idEffectPhysicsPieceEmitter piecePhysics; + idEffectPhysicsDebrisEmitter::emitBufferItem_t emitBuffer[10]; + int emitBufferPos; + int serializeEmitCount; + bool skipFirstFrame; + bool active; + idRandom2 random; +}; diff --git a/source/engine/gamelib/effectphysics/effectphysicspieceemitter.h b/source/engine/gamelib/effectphysics/effectphysicspieceemitter.h new file mode 100644 index 0000000..f3ad1bc --- /dev/null +++ b/source/engine/gamelib/effectphysics/effectphysicspieceemitter.h @@ -0,0 +1,49 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\effectphysics\effectphysicspieceemitter.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14580; PDB kind: class. +class idEffectPhysicsPieceEmitter::idBreakablePiece +{ +public: + idEffectPhysicsRigidBody *rigidBody; + idEffectPhysicsCollision collision; + int emitTime; + int firstCollisionTime; +}; + +// IDA Local Type ordinal 14592; PDB kind: struct. +struct idEffectPhysicsPieceEmitter::pieceEmitterSound_t +{ + idSoundWorld *soundWorld; + const idDeclImpactSound *impactTable; + int nextSoundTime; + float minBounceVelSqr; +}; + +// IDA Local Type ordinal 14593; PDB kind: class. +class __declspec(align(4)) idEffectPhysicsPieceEmitter +{ +public: + idList properties; + idList pieces; + idEffectPhysicsBroadPhase broadPhase; + idRandom random; + float pieceMass; + float pieceCollisionAgeDecay; + float pieceCollisionVolumeDecay; + idRenderModelDiscreteAnimation *model; + const idDeclBreakable *decl; + idRenderModelEffects *modelEffects; + idEffectPhysicsPieceEmitter::pieceEmitterSound_t soundInfo; + int pieceLifeTime; + float pieceFriction; + int pieceIndex; + int numPiecesInUse; + bool hidden; + bool hiddenOverride; +}; diff --git a/source/engine/gamelib/effectphysics/effectphysicsproperties.h b/source/engine/gamelib/effectphysics/effectphysicsproperties.h new file mode 100644 index 0000000..7c713d8 --- /dev/null +++ b/source/engine/gamelib/effectphysics/effectphysicsproperties.h @@ -0,0 +1,34 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\effectphysics\effectphysicsproperties.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14575; PDB kind: class. +class idEffectPhysicsProperties +{ +public: + idEffectPhysicsBroadPhase *broadPhase; + int traceModelIndex; + int clipMask; + float linearFriction; + float angularFriction; + float contactFriction; + float linearFrictionWater; + float angularFrictionWater; + float bouncyness; + idVec3 gravityVector; + bool worldCollisionOnly; + bool simplePointCollision; + float crazyBounceChance; + float mass; + float inverseMass; + idVec3 centerOfMass; + idMat3 inertiaTensor; + idMat3 inverseInertiaTensor; + float stopSpeed; + float maxLinearVelocity; + float maxAngularVelocity; +}; diff --git a/source/engine/gamelib/effectphysics/effectphysicsrigidbody.h b/source/engine/gamelib/effectphysics/effectphysicsrigidbody.h new file mode 100644 index 0000000..93a4feb --- /dev/null +++ b/source/engine/gamelib/effectphysics/effectphysicsrigidbody.h @@ -0,0 +1,38 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\effectphysics\effectphysicsrigidbody.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14577; PDB kind: struct. +struct idEffectPhysicsRigidBody::effectRBState_t +{ + idVec3 position; + idMat3 orientation; + idVec3 linearMomentum; + idVec3 angularMomentum; + idVec3 externalForce; + idVec3 externalTorque; +}; + +// IDA Local Type ordinal 14578; PDB kind: class. +class __declspec(align(8)) idEffectPhysicsRigidBody +{ +public: + const idEffectPhysicsProperties *properties; + idEffectPhysicsRigidBody::effectRBState_t currentState; + idSPObject SPObject; + bool active; + bool settled; +}; + +// IDA Local Type ordinal 21719; PDB kind: struct. +struct idEffectPhysicsRigidBody::effectRBDelta_t +{ + idVec3 translation; + idRotation rotation; + idVec3 linearForce; + idVec3 angularForce; +}; diff --git a/source/engine/gamelib/effects/deferreddecalmanager.h b/source/engine/gamelib/effects/deferreddecalmanager.h new file mode 100644 index 0000000..dcb4ad6 --- /dev/null +++ b/source/engine/gamelib/effects/deferreddecalmanager.h @@ -0,0 +1,58 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\effects\deferreddecalmanager.h +// Recovered logical types: 5 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14039; PDB kind: struct. +struct deferredDecalParams_t +{ + const idMaterial *decalMat; + float depth; + idVec2 size; + float angle; + int lifetime; + int fadetime; + int fadeInEndTime; +}; + +// IDA Local Type ordinal 14040; PDB kind: class. +class idDeferredDecalQuery +{ +public: + idClipQuery theQuery; + deferredDecalParams_t decalParams; + idVec3 origin; + idVec3 normal; +}; + +// IDA Local Type ordinal 14135; PDB kind: class. +class __declspec(align(8)) idDeferredDecalManager +{ +public: + idDeferredDecalQuery lineQueries[16]; + int numLineQueries; + idClip *clip; + idRenderModelDecal *decalModel; +}; + +// IDA Local Type ordinal 15595; PDB kind: struct. +struct __declspec(align(8)) idDeferredFireManager::deferredFire_t +{ + idFireParms fireParms; + idClipQuery queryHandles[16]; + idTestFireResults fireResults; + unsigned int handle; + int numTraces; +}; + +// IDA Local Type ordinal 15596; PDB kind: class. +class idDeferredFireManager +{ +public: + idDeferredFireManager::deferredFire_t deferredFireBuffers[2][32]; + unsigned int shotCount; + unsigned int activeBuffer; +}; diff --git a/source/engine/gamelib/effects/effectsmodelmanager.h b/source/engine/gamelib/effects/effectsmodelmanager.h new file mode 100644 index 0000000..c43b9f2 --- /dev/null +++ b/source/engine/gamelib/effects/effectsmodelmanager.h @@ -0,0 +1,23 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\effects\effectsmodelmanager.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14034; PDB kind: struct. +struct idEffectsModelManager::fxPrtModel_t +{ + idRenderModelParticle *pmodel; + const idDeclParticle *pDecl; +}; + +// IDA Local Type ordinal 14037; PDB kind: class. +class idEffectsModelManager +{ +public: + idStaticList fxPrtModels; + idHashIndex activePrtModelHash; + idHashIndex inactivePrtModelHash; +}; diff --git a/source/engine/gamelib/effects/electricbolt.h b/source/engine/gamelib/effects/electricbolt.h new file mode 100644 index 0000000..545ae18 --- /dev/null +++ b/source/engine/gamelib/effects/electricbolt.h @@ -0,0 +1,197 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\effects\electricbolt.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15618; PDB kind: class. +class idElectricBolt +{ +public: + const idDeclElectricBolt *eboltDecl; + idRenderModelBeam *beamModel; + idStaticList controlNodes; + int startTime; + int diversity; +}; + +// IDA Local Type ordinal 19740; PDB kind: class. +class __declspec(align(8)) idElectricBoltEmitter : public idDynamicEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19741. + virtual idTypeInfo *GetType(); + virtual ~idElectricBoltEmitter(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + int minResetTime; + int maxResetTime; + bool startOff; + const idDeclElectricBolt *electricBoltSystem; + const idSoundShader *sndPowerDown; + const idSoundShader *sndPowerUp; + float maxConeAngle; + idVec2 length; + idEntityPtr controlPath; + bool loopControlPath; + int controlPathGrowTime; + idElectricBolt *ebolt; + idCurve_Spline *spline; + int nextResetTime; +}; diff --git a/source/engine/gamelib/effects/fxmanager.h b/source/engine/gamelib/effects/fxmanager.h new file mode 100644 index 0000000..e9bfe42 --- /dev/null +++ b/source/engine/gamelib/effects/fxmanager.h @@ -0,0 +1,66 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\effects\fxmanager.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2791; PDB kind: enum. +enum idFXManager::fxActionCallType_t : __int32 +{ + FXACTION_START = 0x0, + FXACTION_STOP = 0x1, + FXACTION_STOP_ALL = 0x2, + FXACTION_MAX = 0x3, +}; + +// IDA Local Type ordinal 14217; PDB kind: struct. +struct idFXManager::fxActionCall_t +{ + idVec3 org; + idMat3 axis; + fxCondition_t condition; + int time; + fxExtraCondition_t extraCondition; + int tagIdx; + idFXManager::fxActionCallType_t actionType; + bool immediate; + int viewCallbacksID; +}; + +// IDA Local Type ordinal 14218; PDB kind: class. +class idFXManager +{ +public: + bool initialized; + const idDeclFX *fxDecl; + idGameLibEffects *gameLibEffects; + idTreeAnimator *ta; + idRenderWorld *rw; + idVec4 systemColor; + idRandom2 random; + fxEmitterSound_t soundInfo; + idList actions; + idList actionState; + bool remote; + int allowSurfaceOnlyInViewID; + int suppressSurfaceInViewID; + int viewCallbacksID; + int declChangeId; + idMat3 externalRotation; + idVec3 externalPosition; + bool hasExternalPositionAndRotation; + idFXManager::fxActionCall_t actionBuffer[8]; + int actionBufferPos; + int serializeActionCount; +}; + +// IDA Local Type ordinal 23462; PDB kind: struct. +struct __declspec(align(4)) idFXManager::UpdateActions::__l79::viewcallbackInfo_t +{ + idVec3 viewOrg; + idMat3 viewAxis; + float distSQ; + bool inRange; +}; diff --git a/source/engine/gamelib/effects/gamelibeffects.h b/source/engine/gamelib/effects/gamelibeffects.h new file mode 100644 index 0000000..3c815a7 --- /dev/null +++ b/source/engine/gamelib/effects/gamelibeffects.h @@ -0,0 +1,24 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\effects\gamelibeffects.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14163; PDB kind: class. +class __declspec(align(4)) idGameLibEffects +{ +public: + idRenderModelEffects *effectsModel; + idRenderModelDecal *decalModel; + idRenderModelBeam *beamModel; + idEffectsModelManager effectsModelManager; + idDeferredDecalManager deferredDecalManager; + idRibbonModelManager ribbonModelManager; + idWeaponTraceManager weaponTraceManager; + idFXModelRecycler fxModelRecycler; + idImpactManager weaponImpactManager; + idImpactManager impactManager; + bool initialized; +}; diff --git a/source/engine/gamelib/effects/impactmanager.h b/source/engine/gamelib/effects/impactmanager.h new file mode 100644 index 0000000..4df3190 --- /dev/null +++ b/source/engine/gamelib/effects/impactmanager.h @@ -0,0 +1,50 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\effects\impactmanager.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14157; PDB kind: struct. +struct idImpactManager::impactState_t +{ + idRenderModelParticle *pmodel; + int startTime; + int endTime; +}; + +// IDA Local Type ordinal 14159; PDB kind: struct. +struct idImpactManager::impactBindState_t +{ + bool bindToParent; + idVec3 relOrg; + idMat3 relRot; +}; + +// IDA Local Type ordinal 14161; PDB kind: struct. +struct idImpactManager::impactBufferItem_t +{ + idVec3 pos; + idMat3 axis; + const idDeclParticle *prt; + bool bindToParent; + int playerIndex; + int serverTime; +}; + +// IDA Local Type ordinal 14162; PDB kind: class. +class idImpactManager +{ +public: + idList impacts; + idList impactBinds; + int next; + idRandom2 random; + bool initialized; + idEffectsModelManager *effectsModelManager; + idImpactManager::impactBufferItem_t impactBuffer[16]; + int impactBufferPos; + int serializeImpactCount; + int localPlayerIndex; +}; diff --git a/source/engine/gamelib/effects/lasersight.h b/source/engine/gamelib/effects/lasersight.h new file mode 100644 index 0000000..31ef23f --- /dev/null +++ b/source/engine/gamelib/effects/lasersight.h @@ -0,0 +1,36 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\effects\lasersight.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13817; PDB kind: struct. +struct laserSightInfo_t +{ + const idMaterial *laserBeamMtr; + const idMaterial *laserDotMtr; + float laserBeamHeight; + float laserDotSize; + float laserDotDepth; + float laserDotMinSizeScale; + float laserDotMaxSizeScale; + bool laserDotQuad; + float fadeIn; + float fadeOut; +}; + +// IDA Local Type ordinal 14739; PDB kind: class. +class idLaserSight +{ +public: + bool initialized; + bool hidden; + idLaserBeam laserBeam; + idLaserEndPoint laserEndPoint; + idRenderModelBeam *beamEffects; + idRenderModelDecal *decalEffects; + float fadeInDuration; + float fadeOutDuration; +}; diff --git a/source/engine/gamelib/effects/lensflaremanager.h b/source/engine/gamelib/effects/lensflaremanager.h new file mode 100644 index 0000000..6744439 --- /dev/null +++ b/source/engine/gamelib/effects/lensflaremanager.h @@ -0,0 +1,204 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\effects\lensflaremanager.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14210; PDB kind: class. +class __declspec(align(4)) idLensFlareManager +{ +public: + idRenderModelFlare *flareRenderModel; + idRenderModelFlareOcclusionQuad *flareOcclusionQuadModel; + idVec3 sunDirection; + idVec3 occlusionOffset; + bool isAutosprited; + bool isInitialized; +}; + +// IDA Local Type ordinal 19744; PDB kind: class. +class __declspec(align(8)) idLensFlare : public idDynamicEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19745. + virtual idTypeInfo *GetType(); + virtual ~idLensFlare(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + bool startOff; + bool cycleTrigger; + const idDeclFlare *declFlare; + float quadSize; + float fadeStart; + float fadeEnd; + idVec3 sunDirection; + const idSoundShader *sunGlareSnd; + const idDeclTable *sunGlareSndVolumeTbl; + const idDeclTable *sunGlareSndPitchTbl; + const idDeclEnv *sunGlareEnv; + int sunGlareEnvFadeOutTime; + float sunGlareEnvDotThreshold; + const idDeclTable *colorModulateTbl; + float modulateTimeScale; + idVec3 occlusionQuadOffset; + bool autospriteOcclusionQuad; + float maxSunGlareScale; + bool sunGlareEnvActive; + idLensFlareManager flareManager; +}; diff --git a/source/engine/gamelib/effects/ribbon.h b/source/engine/gamelib/effects/ribbon.h new file mode 100644 index 0000000..8df77cf --- /dev/null +++ b/source/engine/gamelib/effects/ribbon.h @@ -0,0 +1,38 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\effects\ribbon.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14136; PDB kind: struct. +struct idRibbon::ribbonNode_t +{ + idVec3 origin; + idVec3 origin2; + idVec3 velocity; + idVec3 orientVec; + idVec4 color; + int spawnTime; + float nodeLength; +}; + +// IDA Local Type ordinal 14137; PDB kind: class. +class __declspec(align(4)) idRibbon +{ +public: + ribbonState_t ribbonState; + idVec3 spawnOrg; + int spawnTime; + int numActiveNodes; + int currHeadIdx; + float startVariance; + int prevTime; + idVec3 prevOrigin; + idVec3 prevOrigin2; + const idDeclRibbon *ribbonDecl; + idVec4 globalColor; + idRibbon::ribbonNode_t ribbonNodes[128]; + bool explicitDefineBothEdges; +}; diff --git a/source/engine/gamelib/effects/ribbonmanager.h b/source/engine/gamelib/effects/ribbonmanager.h new file mode 100644 index 0000000..23fa2c3 --- /dev/null +++ b/source/engine/gamelib/effects/ribbonmanager.h @@ -0,0 +1,32 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\effects\ribbonmanager.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14140; PDB kind: struct. +struct idRibbonModelManager::ribbonEffects_t +{ + idStaticList ribbons; + int next; +}; + +// IDA Local Type ordinal 14143; PDB kind: class. +class idRibbonModelManager +{ +public: + idStaticList ribbonEffects; +}; + +// IDA Local Type ordinal 14211; PDB kind: class. +class __declspec(align(4)) idRibbonManager +{ +public: + idRibbon *ribbon; + const idDeclRibbon *ribbonDecl; + idRenderModelBeam *beamModel; + idRibbonModelManager *modelManager; + bool isInitialized; +}; diff --git a/source/engine/gamelib/effects/tracermanager.h b/source/engine/gamelib/effects/tracermanager.h new file mode 100644 index 0000000..5f92e73 --- /dev/null +++ b/source/engine/gamelib/effects/tracermanager.h @@ -0,0 +1,36 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\effects\tracermanager.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15276; PDB kind: struct. +struct idTracerManager::tracerBufferItem_t +{ + int startTime; + int lifeTime; + float speed; + idVec3 origin; + idVec3 dir; + float length; + float height; + const idMaterial *mat; + idVec3 maxDist; + bool ensureVisual; + float fractionInsured; + int playerIndex; +}; + +// IDA Local Type ordinal 15277; PDB kind: class. +class idTracerManager +{ +public: + idRenderModelEffects *effectsModel; + idTracerManager::tracerBufferItem_t tracerBuffer[4]; + int tracerBufferPos; + int serializeTracerCount; + bool catchingUp; + int localPlayerIndex; +}; diff --git a/source/engine/gamelib/effects/viewcallbacks.h b/source/engine/gamelib/effects/viewcallbacks.h new file mode 100644 index 0000000..8e376a2 --- /dev/null +++ b/source/engine/gamelib/effects/viewcallbacks.h @@ -0,0 +1,46 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\effects\viewcallbacks.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15149; PDB kind: class. +class idViewCallbacks +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15150. + virtual const char *GetName(); + virtual int GetViewID(); + virtual void GetPosition(idVec3 *, idMat3 *); + virtual void GetViewPosition(idVec3 *, idMat3 *); + virtual void ApplyScreenShake(const float, const idAngles *, const idVec3 *); + virtual void ApplyControllerShake(const float, const float, const float, const float); + virtual void ApplyDynEnvOverride(const idDeclEnv *, const float); + virtual void ApplyDynEnvParmOverride(const idDeclRenderParm *, const idVec4 *, const bool, const float); + virtual void ApplyRadialBlur(const idVec3 *, const float, const float, const float, const float, const float); + virtual int AddScreenParticle(idRenderModel *, const float); + virtual void RemoveScreenParticle(const int, const int); + +}; + +// IDA Local Type ordinal 15330; PDB kind: class. +class idPlayerViewCallbacks : public idViewCallbacks +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15329. + virtual const char *GetName(); + virtual int GetViewID(); + virtual void GetPosition(idVec3 *, idMat3 *); + virtual void GetViewPosition(idVec3 *, idMat3 *); + virtual void ApplyScreenShake(const float, const idAngles *, const idVec3 *); + virtual void ApplyControllerShake(const float, const float, const float, const float); + virtual void ApplyDynEnvOverride(const idDeclEnv *, const float); + virtual void ApplyDynEnvParmOverride(const idDeclRenderParm *, const idVec4 *, const bool, const float); + virtual void ApplyRadialBlur(const idVec3 *, const float, const float, const float, const float, const float); + virtual int AddScreenParticle(idRenderModel *, const float); + virtual void RemoveScreenParticle(const int, const int); + + idPresentablePlayer *self; +}; diff --git a/source/engine/gamelib/effects/weapontracemanager.h b/source/engine/gamelib/effects/weapontracemanager.h new file mode 100644 index 0000000..0aa87ff --- /dev/null +++ b/source/engine/gamelib/effects/weapontracemanager.h @@ -0,0 +1,37 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\effects\weapontracemanager.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1836; PDB kind: enum. +enum weaponTrace_t::weaponTraceType_t : __int32 +{ + WEAPON_TRACE_BULLET = 0x0, + WEAPON_TRACE_EXPLOSION = 0x1, + WEAPON_TRACE_PROJECTILE = 0x2, +}; + +// IDA Local Type ordinal 14146; PDB kind: struct. +struct weaponTrace_t +{ + idVec3 start; + idVec3 end; + idVec3 impactPoint; + idVec3 dir; + idSpawnId attacker; + idSpawnId projectile; + const idDeclDamage *damageDecl; + float radius; + weaponTrace_t::weaponTraceType_t weaponTraceType; +}; + +// IDA Local Type ordinal 14149; PDB kind: class. +class idWeaponTraceManager +{ +public: + idStaticList weaponTraces[2]; + int currentDeferred; +}; diff --git a/source/engine/gamelib/physics/afbody.h b/source/engine/gamelib/physics/afbody.h new file mode 100644 index 0000000..776ce5d --- /dev/null +++ b/source/engine/gamelib/physics/afbody.h @@ -0,0 +1,70 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\physics\afbody.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14602; PDB kind: class. +class idAFBody +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14603. + virtual ~idAFBody(); + virtual void Serialize(idSerializer *); + + __declspec(align(16)) idAtomicString name; + idClipModel *clipModel; + int clipMask; + float linearFrictionWater; + float angularFrictionWater; + float linearFriction; + float angularFriction; + float contactFriction; + float bouncyness; + idVec3 frictionDir; + idVec3 contactMotorDir; + float contactMotorVelocity; + float contactMotorForce; + float mass; + float invMass; + idVec3 centerOfMass; + idMat3 inertiaTensor; + idMat3 inverseInertiaTensor; + idAFBody *parent; + idList children; + idAFConstraint *primaryConstraint; + idList constraints; + idAFTree *tree; + idAFBody::afBodyFlags_t fl; + AFBodyPState_t current; + AFBodyPState_t saved; + idClipQuery motionQuery; + idSpatialMat inverseWorldSpatialInertia; + idSpatialMat I; + idSpatialMat invI; + idSpatialMat J; + idStaticSpatialVec s; + idStaticSpatialVec totalForce; + idStaticSpatialVec auxForce; + idStaticSpatialVec acceleration; + float *response; + int *responseIndex; + int numResponses; + int maxAuxiliaryIndex; + int maxSubTreeAuxiliaryIndex; +}; + +// IDA Local Type ordinal 14607; PDB kind: struct. +struct idAFBody::afBodyFlags_t +{ + __int8 clearClipMaskInSolid : 1; + __int8 noSyncCollide : 1; + __int8 isZero : 1; + __int8 useContactMotorDir : 1; + __int8 useFrictionDir : 1; + __int8 spatialInertiaSparse : 1; + __int8 selfCollision : 1; + __int8 clipMaskSet : 1; +}; diff --git a/source/engine/gamelib/physics/afconstraint.h b/source/engine/gamelib/physics/afconstraint.h new file mode 100644 index 0000000..30bb0db --- /dev/null +++ b/source/engine/gamelib/physics/afconstraint.h @@ -0,0 +1,321 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\physics\afconstraint.h +// Recovered logical types: 14 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2471; PDB kind: enum. +enum declAFConstraintType_t : __int32 +{ + DECLAF_CONSTRAINT_INVALID = 0x0, + DECLAF_CONSTRAINT_FIXED = 0x1, + DECLAF_CONSTRAINT_BALLANDSOCKETJOINT = 0x2, + DECLAF_CONSTRAINT_UNIVERSALJOINT = 0x3, + DECLAF_CONSTRAINT_HINGE = 0x4, + DECLAF_CONSTRAINT_SLIDER = 0x5, + DECLAF_CONSTRAINT_SPRING = 0x6, +}; + +// IDA Local Type ordinal 2940; PDB kind: enum. +enum idDeclAF_Constraint::afConstraintLimit_t : __int32 +{ + LIMIT_NONE = 0xFFFFFFFF, + LIMIT_CONE = 0x0, + LIMIT_PYRAMID = 0x1, +}; + +// IDA Local Type ordinal 14601; PDB kind: class. +class idAFConstraint +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14624. + virtual ~idAFConstraint(); + virtual void SetBody1(idAFBody *); + virtual void SetBody2(idAFBody *); + virtual void DebugDraw(); + virtual void Translate(const idVec3 *); + virtual void Rotate(const idRotation *); + virtual void GetCenter(idVec3 *); + virtual void IssueCollisionQueries(); + virtual void CancelCollisionQueries(); + virtual void Serialize(idSerializer *); + virtual void Evaluate(const idPhysics_AF *, float); + virtual void ApplyFriction(float); + + __declspec(align(16)) constraintType_t type; + idAtomicString name; + idAFBody *body1; + idAFBody *body2; + idPhysics_AF *physics; + idStaticSpatialVec lm; + idSpatialMat J1; + idSpatialMat J2; + idStaticSpatialVec c1; + idStaticSpatialVec c2; + idStaticSpatialVec lo; + idStaticSpatialVec hi; + idStaticSpatialVec e; + idAFConstraint *boxConstraint; + int boxIndex[6]; + float boxScale[6]; + idSpatialMat invI; + idSpatialMat J; + int firstIndex; + idAFConstraint::constraintFlags_s fl; +}; + +// IDA Local Type ordinal 14615; PDB kind: class. +class __declspec(align(16)) idAFConstraint_Contact : public idAFConstraint +{ +public: + // Recovered virtual interface; IDA vtable ordinal 33731. + virtual ~idAFConstraint_Contact(); + virtual void SetBody1(idAFBody *); + virtual void SetBody2(idAFBody *); + virtual void DebugDraw(); + virtual void Translate(const idVec3 *); + virtual void Rotate(const idRotation *); + virtual void GetCenter(idVec3 *); + virtual void IssueCollisionQueries(); + virtual void CancelCollisionQueries(); + virtual void Serialize(idSerializer *); + virtual void Evaluate(const idPhysics_AF *, float); + virtual void ApplyFriction(float); + + contactInfo_t contact; + float separation; + idAFConstraint_ContactFriction *fc; +}; + +// IDA Local Type ordinal 14625; PDB kind: struct. +struct idAFConstraint::constraintFlags_s +{ + unsigned __int8 : 3; + __int8 isZero : 1; + __int8 isPrimary : 1; + __int8 noCollision : 1; + __int8 frameConstraint : 1; + __int8 allowPrimary : 1; +}; + +// IDA Local Type ordinal 14656; PDB kind: class. +class __declspec(align(4)) idDeclAF_Constraint +{ +public: + idAtomicString name; + idAtomicString body1; + idAtomicString body2; + declAFConstraintType_t type; + float friction; + float stretch; + float compress; + float damping; + float restLength; + float minLength; + float maxLength; + idAFVector anchor; + idAFVector anchor2; + idAFVector shaft[2]; + idAFVector axis; + idDeclAF_Constraint::afConstraintLimit_t limit; + idAFVector limitAxis; + float limitAngles[3]; + bool syncConstraint; +}; + +// IDA Local Type ordinal 21669; PDB kind: class. +class __declspec(align(16)) idAFConstraint_ConeLimit : public idAFConstraint +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21670. + virtual ~idAFConstraint_ConeLimit(); + virtual void SetBody1(idAFBody *); + virtual void SetBody2(idAFBody *); + virtual void DebugDraw(); + virtual void Translate(const idVec3 *); + virtual void Rotate(const idRotation *); + virtual void GetCenter(idVec3 *); + virtual void IssueCollisionQueries(); + virtual void CancelCollisionQueries(); + virtual void Serialize(idSerializer *); + virtual void Evaluate(const idPhysics_AF *, float); + virtual void ApplyFriction(float); + + idVec3 coneAnchor; + idVec3 coneAxis; + idVec3 body1Axis; + float cosAngle; + float sinHalfAngle; + float cosHalfAngle; + float epsilon; +}; + +// IDA Local Type ordinal 21688; PDB kind: class. +class __declspec(align(16)) idAFConstraint_Fixed : public idAFConstraint +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21689. + virtual ~idAFConstraint_Fixed(); + virtual void SetBody1(idAFBody *); + virtual void SetBody2(idAFBody *); + virtual void DebugDraw(); + virtual void Translate(const idVec3 *); + virtual void Rotate(const idRotation *); + virtual void GetCenter(idVec3 *); + virtual void IssueCollisionQueries(); + virtual void CancelCollisionQueries(); + virtual void Serialize(idSerializer *); + virtual void Evaluate(const idPhysics_AF *, float); + virtual void ApplyFriction(float); + + idVec3 offset; + idMat3 relAxis; + bool shouldClamp; +}; + +// IDA Local Type ordinal 21764; PDB kind: class. +class idAFConstraint_Line : public idAFConstraint +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21765. + virtual ~idAFConstraint_Line(); + virtual void SetBody1(idAFBody *); + virtual void SetBody2(idAFBody *); + virtual void DebugDraw(); + virtual void Translate(const idVec3 *); + virtual void Rotate(const idRotation *); + virtual void GetCenter(idVec3 *); + virtual void IssueCollisionQueries(); + virtual void CancelCollisionQueries(); + virtual void Serialize(idSerializer *); + virtual void Evaluate(const idPhysics_AF *, float); + virtual void ApplyFriction(float); + +}; + +// IDA Local Type ordinal 21844; PDB kind: class. +class __declspec(align(4)) idAFConstraint_Weeble : public idAFConstraint +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21845. + virtual ~idAFConstraint_Weeble(); + virtual void SetBody1(idAFBody *); + virtual void SetBody2(idAFBody *); + virtual void DebugDraw(); + virtual void Translate(const idVec3 *); + virtual void Rotate(const idRotation *); + virtual void GetCenter(idVec3 *); + virtual void IssueCollisionQueries(); + virtual void CancelCollisionQueries(); + virtual void Serialize(idSerializer *); + virtual void Evaluate(const idPhysics_AF *, float); + virtual void ApplyFriction(float); + + idVec3 up; + bool enabled; +}; + +// IDA Local Type ordinal 21871; PDB kind: class. +class __declspec(align(16)) idAFConstraint_Hinge : public idAFConstraint +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21875. + virtual ~idAFConstraint_Hinge(); + virtual void SetBody1(idAFBody *); + virtual void SetBody2(idAFBody *); + virtual void DebugDraw(); + virtual void Translate(const idVec3 *); + virtual void Rotate(const idRotation *); + virtual void GetCenter(idVec3 *); + virtual void IssueCollisionQueries(); + virtual void CancelCollisionQueries(); + virtual void Serialize(idSerializer *); + virtual void Evaluate(const idPhysics_AF *, float); + virtual void ApplyFriction(float); + + idVec3 anchor1; + idVec3 anchor2; + idVec3 axis1; + idVec3 axis2; + idMat3 initialAxis; + float friction; + idAFConstraint_ConeLimit *coneLimit; + idAFConstraint_HingeSteering *steering; + idAFConstraint_HingeFriction *fc; +}; + +// IDA Local Type ordinal 21970; PDB kind: class. +class __declspec(align(16)) idAFConstraint_Plane : public idAFConstraint +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21971. + virtual ~idAFConstraint_Plane(); + virtual void SetBody1(idAFBody *); + virtual void SetBody2(idAFBody *); + virtual void DebugDraw(); + virtual void Translate(const idVec3 *); + virtual void Rotate(const idRotation *); + virtual void GetCenter(idVec3 *); + virtual void IssueCollisionQueries(); + virtual void CancelCollisionQueries(); + virtual void Serialize(idSerializer *); + virtual void Evaluate(const idPhysics_AF *, float); + virtual void ApplyFriction(float); + + idVec3 anchor1; + idVec3 anchor2; + idVec3 planeNormal; +}; + +// IDA Local Type ordinal 22048; PDB kind: class. +class idAFConstraint_Spring : public idAFConstraint +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22049. + virtual ~idAFConstraint_Spring(); + virtual void SetBody1(idAFBody *); + virtual void SetBody2(idAFBody *); + virtual void DebugDraw(); + virtual void Translate(const idVec3 *); + virtual void Rotate(const idRotation *); + virtual void GetCenter(idVec3 *); + virtual void IssueCollisionQueries(); + virtual void CancelCollisionQueries(); + virtual void Serialize(idSerializer *); + virtual void Evaluate(const idPhysics_AF *, float); + virtual void ApplyFriction(float); + + idVec3 anchor1; + idVec3 anchor2; + float kstretch; + float kcompress; + float damping; + float restLength; + float minLength; + float maxLength; +}; + +// IDA Local Type ordinal 22279; PDB kind: class. +class __declspec(align(8)) idAFConstraint_Slider : public idAFConstraint +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22280. + virtual ~idAFConstraint_Slider(); + virtual void SetBody1(idAFBody *); + virtual void SetBody2(idAFBody *); + virtual void DebugDraw(); + virtual void Translate(const idVec3 *); + virtual void Rotate(const idRotation *); + virtual void GetCenter(idVec3 *); + virtual void IssueCollisionQueries(); + virtual void CancelCollisionQueries(); + virtual void Serialize(idSerializer *); + virtual void Evaluate(const idPhysics_AF *, float); + virtual void ApplyFriction(float); + + idVec3 axis; + idVec3 offset; + idMat3 relAxis; +}; diff --git a/source/engine/gamelib/physics/aftree.h b/source/engine/gamelib/physics/aftree.h new file mode 100644 index 0000000..bcfb9c4 --- /dev/null +++ b/source/engine/gamelib/physics/aftree.h @@ -0,0 +1,17 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\physics\aftree.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14606; PDB kind: class. +class idAFTree +{ +public: + idList sortedBodies; +}; + +// IDA Local Type ordinal 33695; PDB kind: typedef. +typedef void (__fastcall *Free_t)(void *); diff --git a/source/engine/gamelib/physics/buoyancy.h b/source/engine/gamelib/physics/buoyancy.h new file mode 100644 index 0000000..7191fa5 --- /dev/null +++ b/source/engine/gamelib/physics/buoyancy.h @@ -0,0 +1,14 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\physics\buoyancy.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 18845; PDB kind: class. +class idBuoyancy +{ +public: + idStaticList buoyantClipModels; +}; diff --git a/source/engine/gamelib/physics/clip.h b/source/engine/gamelib/physics/clip.h new file mode 100644 index 0000000..72497a6 --- /dev/null +++ b/source/engine/gamelib/physics/clip.h @@ -0,0 +1,171 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\physics\clip.h +// Recovered logical types: 9 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1833; PDB kind: enum. +enum idClip::idClipCollisionQuery::type_t : __int32 +{ + QUERY_VALID = 0x0, + QUERY_CANCELED = 0x1, + QUERY_SUBMITTED_TRANSLATION = 0x2, + QUERY_SUBMITTED_ROTATION = 0x3, + QUERY_SUBMITTED_MOTION = 0x4, + QUERY_SUBMITTED_MOTION_CONTACTS = 0x5, + QUERY_SUBMITTED_STEPMOVE = 0x6, + QUERY_SUBMITTED_STEPMOVE_CONTACTS = 0x7, + QUERY_SUBMITTED_SLIDEMOVE = 0x8, + QUERY_SUBMITTED_SLIDEMOVE_CONTACTS = 0x9, + QUERY_SUBMITTED_CONTENTS = 0xA, + QUERY_SUBMITTED_CONTACTS = 0xB, + QUERY_SUBMITTED_CLIP = 0xC, +}; + +// IDA Local Type ordinal 2572; PDB kind: enum. +enum idClip::gatherType_t : __int32 +{ + GATHER_TOUCHING_BOUNDS = 0x0, + GATHER_TOUCHING_LINE = 0x1, + GATHER_TOUCHING_CLIPMODEL = 0x2, +}; + +// IDA Local Type ordinal 14068; PDB kind: class. +class idClip +{ +public: + idClipModel *world; + idClipModel *temporaryClipModel; + idClipModel *defaultClipModel; + idClipModel *playerMeleeClipModel; + idClipModel *clip8x8; + idClipModel *clip8x8x8; + idClipModel *clip16x16; + idClipModel *clip16x16x16; + idClipModel *clip24x24; + idClipModel *clip32x32; + idClipModel *clip8x16; + idClipModel *clip48x48; + idClipModel *clip96x96; + idClipModel *clip24x24x96; + idClipModel *clip32x32x96; + idClipModel *clip48x48x96; + idBlockAlloc clipLinkAllocator; + idStaticList clipSectors; + int touchCount; + idAAS2 *aases[8]; + idTraceModelCache *traceModelCache; + idTraceModelRecycler *traceModelRecycler; + idClipModel *deletedClipModels; + idList streamAreas; + idClip::idClipQueryParms *queryParms; + int numQueryParms; + idStaticList translationQueries; + idStaticList rotationQueries; + idStaticList motionQueries; + idStaticList motionContactsQueries; + idStaticList stepMoveQueries; + idStaticList stepMoveContactsQueries; + idStaticList slideMoveQueries; + idStaticList slideMoveContactsQueries; + idStaticList contentsQueries; + idStaticList contactsQueries; + idStaticList clipQueries; + idStaticList localTranslationQueries; + idStaticList localContentsQueries; + idStaticList translationTraceModelQueries; + idClip::idClipCollisionQuery collisionQueries[4096]; + unsigned __int64 collisionQueryFirstSubmittedIndex; + unsigned __int64 collisionQueryLastSubmittedIndex; + unsigned __int64 collisionQueryFirstAllocedIndex; + unsigned __int64 collisionQueryLastAllocedIndex; + unsigned __int64 collisionQueryLastResolvedIndex; + const char *gatherQueryUserNames[256]; + idClip::idClipGatherQuery gatherQueries[256]; + unsigned __int64 gatherQueryFirstSubmittedIndex; + unsigned __int64 gatherQueryLastSubmittedIndex; + unsigned __int64 gatherQueryFirstAllocedIndex; + unsigned __int64 gatherQueryLastAllocedIndex; + idClip::idGatherResult gatherResults[2048]; + unsigned __int64 gatherResultFirstSubmittedIndex; + unsigned __int64 gatherResultLastSubmittedIndex; + unsigned __int64 gatherResultFirstAllocedIndex; + unsigned __int64 gatherResultLastAllocedIndex; + idClip::idClipResidencyQuery residencyQueries[1024]; + unsigned __int64 residencyQueryFirstSubmittedIndex; + unsigned __int64 residencyQueryLastSubmittedIndex; + unsigned __int64 residencyQueryFirstAllocedIndex; + unsigned __int64 residencyQueryLastAllocedIndex; +}; + +// IDA Local Type ordinal 14128; PDB kind: class. +class idClip::idClipQueryParms +{ +public: + idVec3 start; + idVec3 end; + idVec3 origin; + idVec3 vec; + float f1; + float f2; + idMat3 startAxis; + int clipMask; + unsigned __int16 passEntityNumber; + unsigned __int16 flags; + unsigned __int8 pad[12]; + unsigned int queryIndex; + const idClipModel *clipModel; + const idTraceModel *traceModel; + const char *userName; +}; + +// IDA Local Type ordinal 14131; PDB kind: class. +class idClip::idClipCollisionQuery +{ +public: + idClip::idClipCollisionQuery::type_t type; + int parmIndex; + idClipModel *clipModel; + idCollisionQuery query; +}; + +// IDA Local Type ordinal 14132; PDB kind: class. +class idClip::idClipGatherQuery +{ +public: + idVec3 vectors[4]; + int clipMask; + __int16 passEntityNumber; + __int16 gatherType; + unsigned __int16 firstResultIndex; + unsigned __int16 numResults; + const idClipModel *clipModel; +}; + +// IDA Local Type ordinal 14133; PDB kind: class. +class idClip::idGatherResult +{ +public: + idCollisionQuery query; + int physicsId; + __int16 bodyId; + __int16 entityNumber; +}; + +// IDA Local Type ordinal 14134; PDB kind: class. +class idClip::idClipResidencyQuery +{ +public: + idBounds absBounds; + bool resident; + unsigned __int8 pad[7]; +}; + +// IDA Local Type ordinal 23461; PDB kind: struct. +struct idClip::GetClipModelsTouchingLine::__l2::stackPoints_t +{ + idVec4 start; + idVec4 end; +}; diff --git a/source/engine/gamelib/physics/clipmodel.h b/source/engine/gamelib/physics/clipmodel.h new file mode 100644 index 0000000..f009cca --- /dev/null +++ b/source/engine/gamelib/physics/clipmodel.h @@ -0,0 +1,87 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\physics\clipmodel.h +// Recovered logical types: 6 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1525; PDB kind: enum. +enum idClipModelInfo::clipModelType_t : __int32 +{ + CLIPMODEL_NONE = 0x0, + CLIPMODEL_RENDERMODEL = 0x1, + CLIPMODEL_CUSTOM = 0x2, + CLIPMODEL_BOX = 0x3, + CLIPMODEL_CYLINDER = 0x4, + CLIPMODEL_CONE = 0x5, + CLIPMODEL_BOUNDINGBOX = 0x6, +}; + +// IDA Local Type ordinal 1973; PDB kind: enum. +enum clipMode_t : __int32 +{ + CLIPMODE_INTERSECT = 0x0, + CLIPMODE_UNION = 0x1, + CLIPMODE_DIFFERENCE = 0x2, + CLIPMODE_XOR = 0x3, +}; + +// IDA Local Type ordinal 14041; PDB kind: class. +class idClipModel +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14042. + virtual ~idClipModel(); + + __declspec(align(8)) bool enabled; + bool deleted; + int entityNumber; + int ownerNumber; + int physicsId; + int bodyId; + int bodyMask; + idVec3 origin; + idMat3 axis; + idBounds bounds; + idBounds absBounds; + int contents; + idCollisionModel *collisionModel; + idList traceModels; + idTreeAnimator *animatedModel; + idClip *clip; + clipLink_t *clipLinks; + idCollisionQuery collisionQuery; + int touchCount; + idClipModel *nextDeleted; + idAASClipLink *aasLinks[8]; +}; + +// IDA Local Type ordinal 15173; PDB kind: class. +class idStrClipModel : public idAtomicString +{ +public: +}; + +// IDA Local Type ordinal 15174; PDB kind: class. +class idClipModelInfo +{ +public: + idClipModelInfo::clipModelType_t type; + idVec3 size; + idVec3 offset; + int numSides; + idStrClipModel clipModelName; + bool clipShrink; + bool allowInline; + bool softObstacle; + const idMaterial *overrideClipMaterial; +}; + +// IDA Local Type ordinal 22949; PDB kind: struct. +struct cbp_model_s +{ + int state[16]; + int count0[16]; + int count1[16]; +}; diff --git a/source/engine/gamelib/physics/physics.h b/source/engine/gamelib/physics/physics.h new file mode 100644 index 0000000..6fac99e --- /dev/null +++ b/source/engine/gamelib/physics/physics.h @@ -0,0 +1,218 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\physics\physics.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1033; PDB kind: enum. +enum physicsType_t : __int32 +{ + PHYSICS_INVALID = 0x0, + PHYSICS_STATIC = 0x1, + PHYSICS_STATICMULTI = 0x2, + PHYSICS_AI = 0x3, + PHYSICS_PLAYER = 0x4, + PHYSICS_PARAMETRIC = 0x5, + PHYSICS_RIGIDBODY = 0x6, + PHYSICS_RIGIDBODY3DOF = 0x7, + PHYSICS_AF = 0x8, + PHYSICS_ROBOT = 0x9, +}; + +// IDA Local Type ordinal 2858; PDB kind: enum. +enum idPhysics::residency_t : __int32 +{ + RESIDENCY_NOT_TESTED = 0x0, + RESIDENCY_YES = 0x1, + RESIDENCY_NO = 0x2, +}; + +// IDA Local Type ordinal 14164; PDB kind: class. +class idPhysics +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14168. + virtual ~idPhysics(); + virtual void SetClipModel(idClipModel *, float, int, bool); + virtual idClipModel *GetClipModel(int); + virtual int GetNumClipModels(); + virtual void SetMass(float, int); + virtual float GetMass(int); + virtual void SetContents(int, int); + virtual int GetContents(int); + virtual void SetClipMask(int, int); + virtual int GetClipMask(int); + virtual const idBounds *GetBounds(int); + virtual const idBounds *GetAbsBounds(int); + virtual void SetOrigin(const idVec3 *, int); + virtual void SetAxis(const idMat3 *, int); + virtual void Translate(const idVec3 *, int); + virtual void Rotate(const idRotation *, int); + virtual const idVec3 *GetOrigin(int); + virtual const idMat3 *GetAxis(int); + virtual const idVec3 *GetLocalOrigin(int); + virtual const idMat3 *GetLocalAxis(int); + virtual void SetLinearVelocity(const idVec3 *, int); + virtual void SetAngularVelocity(const idVec3 *, int); + virtual idVec3 *GetLinearVelocity(idVec3 *result, int); + virtual idVec3 *GetAngularVelocity(idVec3 *result, int); + virtual void SetGravity(const idVec3 *); + virtual const idVec3 *GetGravity(); + virtual const idVec3 *GetGravityNormal(); + virtual void SetWaterLevel(float, int); + virtual float GetWaterLevel(int); + virtual void SetWaterViscosity(float, int); + virtual float GetWaterViscosity(int); + virtual void SetWaterEntNum(int); + virtual int GetWaterEntNum(); + virtual void SetWaterSurfaceWrldHeight(float); + virtual float GetWaterSurfaceWrldHeight(); + virtual void GetImpactInfo(const int, const idVec3 *, impactInfo_t *); + virtual void ApplyImpulse(const int, const idVec3 *, const idVec3 *); + virtual void ApplyForce(const int, const idVec3 *, const idVec3 *); + virtual void Activate(); + virtual void PutToRest(); + virtual bool IsAtRest(); + virtual bool IsPushable(int); + virtual void SaveState(); + virtual void RestoreState(); + virtual bool Evaluate(int, int); + virtual void UpdateTime(int); + virtual void ClipTranslation(trace_t *, const idVec3 *, const idClipModel *); + virtual void ClipRotation(trace_t *, const idRotation *, const idClipModel *); + virtual int ClipContents(const idClipModel *, int); + virtual void DisableClip(); + virtual void EnableClip(); + virtual void UnlinkClip(); + virtual void LinkClip(); + virtual bool EvaluateContacts(); + virtual int GetNumContacts(); + virtual const contactInfo_t *GetContact(int); + virtual void ClearContacts(); + virtual void AddContactPhysics(idPhysics *); + virtual void RemoveContactPhysics(idPhysics *); + virtual int GetNumContactPhysics(); + virtual idPhysics *GetContactPhysics(int); + virtual void ActivateContactPhysics(); + virtual bool HasGroundContacts(); + virtual bool IsGroundEntity(int); + virtual bool IsGroundClipModel(int, int); + virtual void SetPushed(int); + virtual idVec3 *GetPushedLinearVelocity(idVec3 *result, const int); + virtual idVec3 *GetPushedAngularVelocity(idVec3 *result, const int); + virtual void SetMaster(bool, const idVec3 *, const idMat3 *, const bindFlags_t); + virtual void SetLocalOrigin(const idVec3 *, int); + virtual void SetLocalAxis(const idMat3 *, int); + virtual int GetBlockingEntityNum(); + virtual int GetLinearEndTime(); + virtual int GetAngularEndTime(); + virtual bool IsInNonResidentCollisionArea(bool); + + __declspec(align(8)) physicsType_t type; + int physicsId; + int entityNumber; + idPhysics *nextInHash; + idClip *clip; + idPhysicsCallbacks *callbacks; + idResidencyQuery residencyQuery; + idPhysics::residency_t collisionResidency; +}; + +// IDA Local Type ordinal 19509; PDB kind: class. +class idPhysics_Robot : public idPhysics_DynamicBase +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19510. + virtual ~idPhysics_Robot(); + virtual void SetClipModel(idClipModel *, float, int, bool); + virtual idClipModel *GetClipModel(int); + virtual int GetNumClipModels(); + virtual void SetMass(float, int); + virtual float GetMass(int); + virtual void SetContents(int, int); + virtual int GetContents(int); + virtual void SetClipMask(int, int); + virtual int GetClipMask(int); + virtual const idBounds *GetBounds(int); + virtual const idBounds *GetAbsBounds(int); + virtual void SetOrigin(const idVec3 *, int); + virtual void SetAxis(const idMat3 *, int); + virtual void Translate(const idVec3 *, int); + virtual void Rotate(const idRotation *, int); + virtual const idVec3 *GetOrigin(int); + virtual const idMat3 *GetAxis(int); + virtual const idVec3 *GetLocalOrigin(int); + virtual const idMat3 *GetLocalAxis(int); + virtual void SetLinearVelocity(const idVec3 *, int); + virtual void SetAngularVelocity(const idVec3 *, int); + virtual idVec3 *GetLinearVelocity(idVec3 *result, int); + virtual idVec3 *GetAngularVelocity(idVec3 *result, int); + virtual void SetGravity(const idVec3 *); + virtual const idVec3 *GetGravity(); + virtual const idVec3 *GetGravityNormal(); + virtual void SetWaterLevel(float, int); + virtual float GetWaterLevel(int); + virtual void SetWaterViscosity(float, int); + virtual float GetWaterViscosity(int); + virtual void SetWaterEntNum(int); + virtual int GetWaterEntNum(); + virtual void SetWaterSurfaceWrldHeight(float); + virtual float GetWaterSurfaceWrldHeight(); + virtual void GetImpactInfo(const int, const idVec3 *, impactInfo_t *); + virtual void ApplyImpulse(const int, const idVec3 *, const idVec3 *); + virtual void ApplyForce(const int, const idVec3 *, const idVec3 *); + virtual void Activate(); + virtual void PutToRest(); + virtual bool IsAtRest(); + virtual bool IsPushable(int); + virtual void SaveState(); + virtual void RestoreState(); + virtual bool Evaluate(int, int); + virtual void UpdateTime(int); + virtual void ClipTranslation(trace_t *, const idVec3 *, const idClipModel *); + virtual void ClipRotation(trace_t *, const idRotation *, const idClipModel *); + virtual int ClipContents(const idClipModel *, int); + virtual void DisableClip(); + virtual void EnableClip(); + virtual void UnlinkClip(); + virtual void LinkClip(); + virtual bool EvaluateContacts(); + virtual int GetNumContacts(); + virtual const contactInfo_t *GetContact(int); + virtual void ClearContacts(); + virtual void AddContactPhysics(idPhysics *); + virtual void RemoveContactPhysics(idPhysics *); + virtual int GetNumContactPhysics(); + virtual idPhysics *GetContactPhysics(int); + virtual void ActivateContactPhysics(); + virtual bool HasGroundContacts(); + virtual bool IsGroundEntity(int); + virtual bool IsGroundClipModel(int, int); + virtual void SetPushed(int); + virtual idVec3 *GetPushedLinearVelocity(idVec3 *result, const int); + virtual idVec3 *GetPushedAngularVelocity(idVec3 *result, const int); + virtual void SetMaster(bool, const idVec3 *, const idMat3 *, const bindFlags_t); + virtual void SetLocalOrigin(const idVec3 *, int); + virtual void SetLocalAxis(const idMat3 *, int); + virtual int GetBlockingEntityNum(); + virtual int GetLinearEndTime(); + virtual int GetAngularEndTime(); + virtual bool IsInNonResidentCollisionArea(bool); + virtual bool IsOutsideWorld(); + + idClipQuery stepMoveQuery; + idMat3 clipAxis; + idVec3 lastCollisionNormal; + idClipModel *clipModel; + robotPState_t savedState; + robotPState_t currentState; + float maxStepHeight; + float minFloorCosine; + float mass; + float invMass; + bool noImpact; + float timeStep; + int timeStepMS; +}; diff --git a/source/engine/gamelib/physics/physics_actor.h b/source/engine/gamelib/physics/physics_actor.h new file mode 100644 index 0000000..1e24aa7 --- /dev/null +++ b/source/engine/gamelib/physics/physics_actor.h @@ -0,0 +1,115 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\physics\physics_actor.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2021; PDB kind: enum. +enum idPhysics_Actor::actorClipModel_t : __int32 +{ + ACTORCLIP_DEFAULT = 0x0, + ACTORCLIP_PLAYER = 0x1, + ACTORCLIP_MAX = 0x2, +}; + +// IDA Local Type ordinal 15362; PDB kind: class. +class idPhysics_Actor : public idPhysics_DynamicBase +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15363. + virtual ~idPhysics_Actor(); + virtual void SetClipModel(idClipModel *, float, int, bool); + virtual idClipModel *GetClipModel(int); + virtual int GetNumClipModels(); + virtual void SetMass(float, int); + virtual float GetMass(int); + virtual void SetContents(int, int); + virtual int GetContents(int); + virtual void SetClipMask(int, int); + virtual int GetClipMask(int); + virtual const idBounds *GetBounds(int); + virtual const idBounds *GetAbsBounds(int); + virtual void SetOrigin(const idVec3 *, int); + virtual void SetAxis(const idMat3 *, int); + virtual void Translate(const idVec3 *, int); + virtual void Rotate(const idRotation *, int); + virtual const idVec3 *GetOrigin(int); + virtual const idMat3 *GetAxis(int); + virtual const idVec3 *GetLocalOrigin(int); + virtual const idMat3 *GetLocalAxis(int); + virtual void SetLinearVelocity(const idVec3 *, int); + virtual void SetAngularVelocity(const idVec3 *, int); + virtual idVec3 *GetLinearVelocity(idVec3 *result, int); + virtual idVec3 *GetAngularVelocity(idVec3 *result, int); + virtual void SetGravity(const idVec3 *); + virtual const idVec3 *GetGravity(); + virtual const idVec3 *GetGravityNormal(); + virtual void SetWaterLevel(float, int); + virtual float GetWaterLevel(int); + virtual void SetWaterViscosity(float, int); + virtual float GetWaterViscosity(int); + virtual void SetWaterEntNum(int); + virtual int GetWaterEntNum(); + virtual void SetWaterSurfaceWrldHeight(float); + virtual float GetWaterSurfaceWrldHeight(); + virtual void GetImpactInfo(const int, const idVec3 *, impactInfo_t *); + virtual void ApplyImpulse(const int, const idVec3 *, const idVec3 *); + virtual void ApplyForce(const int, const idVec3 *, const idVec3 *); + virtual void Activate(); + virtual void PutToRest(); + virtual bool IsAtRest(); + virtual bool IsPushable(int); + virtual void SaveState(); + virtual void RestoreState(); + virtual bool Evaluate(int, int); + virtual void UpdateTime(int); + virtual void ClipTranslation(trace_t *, const idVec3 *, const idClipModel *); + virtual void ClipRotation(trace_t *, const idRotation *, const idClipModel *); + virtual int ClipContents(const idClipModel *, int); + virtual void DisableClip(); + virtual void EnableClip(); + virtual void UnlinkClip(); + virtual void LinkClip(); + virtual bool EvaluateContacts(); + virtual int GetNumContacts(); + virtual const contactInfo_t *GetContact(int); + virtual void ClearContacts(); + virtual void AddContactPhysics(idPhysics *); + virtual void RemoveContactPhysics(idPhysics *); + virtual int GetNumContactPhysics(); + virtual idPhysics *GetContactPhysics(int); + virtual void ActivateContactPhysics(); + virtual bool HasGroundContacts(); + virtual bool IsGroundEntity(int); + virtual bool IsGroundClipModel(int, int); + virtual void SetPushed(int); + virtual idVec3 *GetPushedLinearVelocity(idVec3 *result, const int); + virtual idVec3 *GetPushedAngularVelocity(idVec3 *result, const int); + virtual void SetMaster(bool, const idVec3 *, const idMat3 *, const bindFlags_t); + virtual void SetLocalOrigin(const idVec3 *, int); + virtual void SetLocalAxis(const idMat3 *, int); + virtual int GetBlockingEntityNum(); + virtual int GetLinearEndTime(); + virtual int GetAngularEndTime(); + virtual bool IsInNonResidentCollisionArea(bool); + virtual bool IsOutsideWorld(); + virtual const idMat3 *GetGravityAxis(); + virtual void DisableClip_2(const idPhysics_Actor::actorClipModel_t); + virtual void EnableClip_2(const idPhysics_Actor::actorClipModel_t); + virtual void LinkClip_2(const idVec3 *, const idMat3 *); + + idClipModel *clipModels[2]; + int clipMasks[2]; + idMat3 clipModelAxis; + float mass; + float invMass; + bool hasMaster; + float masterYaw; + float masterDeltaYaw; + bool wasHistoryInitialized; + int lastHistorySaveTime; + idVec3 originHistory[16]; + float yawHistory[16]; +}; diff --git a/source/engine/gamelib/physics/physics_af.h b/source/engine/gamelib/physics/physics_af.h new file mode 100644 index 0000000..1c29b5b --- /dev/null +++ b/source/engine/gamelib/physics/physics_af.h @@ -0,0 +1,165 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\physics\physics_af.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14613; PDB kind: class. +class idPhysics_AF : public idPhysics_DynamicBase +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14623. + virtual ~idPhysics_AF(); + virtual void SetClipModel(idClipModel *, float, int, bool); + virtual idClipModel *GetClipModel(int); + virtual int GetNumClipModels(); + virtual void SetMass(float, int); + virtual float GetMass(int); + virtual void SetContents(int, int); + virtual int GetContents(int); + virtual void SetClipMask(int, int); + virtual int GetClipMask(int); + virtual const idBounds *GetBounds(int); + virtual const idBounds *GetAbsBounds(int); + virtual void SetOrigin(const idVec3 *, int); + virtual void SetAxis(const idMat3 *, int); + virtual void Translate(const idVec3 *, int); + virtual void Rotate(const idRotation *, int); + virtual const idVec3 *GetOrigin(int); + virtual const idMat3 *GetAxis(int); + virtual const idVec3 *GetLocalOrigin(int); + virtual const idMat3 *GetLocalAxis(int); + virtual void SetLinearVelocity(const idVec3 *, int); + virtual void SetAngularVelocity(const idVec3 *, int); + virtual idVec3 *GetLinearVelocity(idVec3 *result, int); + virtual idVec3 *GetAngularVelocity(idVec3 *result, int); + virtual void SetGravity(const idVec3 *); + virtual const idVec3 *GetGravity(); + virtual const idVec3 *GetGravityNormal(); + virtual void SetWaterLevel(float, int); + virtual float GetWaterLevel(int); + virtual void SetWaterViscosity(float, int); + virtual float GetWaterViscosity(int); + virtual void SetWaterEntNum(int); + virtual int GetWaterEntNum(); + virtual void SetWaterSurfaceWrldHeight(float); + virtual float GetWaterSurfaceWrldHeight(); + virtual void GetImpactInfo(const int, const idVec3 *, impactInfo_t *); + virtual void ApplyImpulse(const int, const idVec3 *, const idVec3 *); + virtual void ApplyForce(const int, const idVec3 *, const idVec3 *); + virtual void Activate(); + virtual void PutToRest(); + virtual bool IsAtRest(); + virtual bool IsPushable(int); + virtual void SaveState(); + virtual void RestoreState(); + virtual bool Evaluate(int, int); + virtual void UpdateTime(int); + virtual void ClipTranslation(trace_t *, const idVec3 *, const idClipModel *); + virtual void ClipRotation(trace_t *, const idRotation *, const idClipModel *); + virtual int ClipContents(const idClipModel *, int); + virtual void DisableClip(); + virtual void EnableClip(); + virtual void UnlinkClip(); + virtual void LinkClip(); + virtual bool EvaluateContacts(); + virtual int GetNumContacts(); + virtual const contactInfo_t *GetContact(int); + virtual void ClearContacts(); + virtual void AddContactPhysics(idPhysics *); + virtual void RemoveContactPhysics(idPhysics *); + virtual int GetNumContactPhysics(); + virtual idPhysics *GetContactPhysics(int); + virtual void ActivateContactPhysics(); + virtual bool HasGroundContacts(); + virtual bool IsGroundEntity(int); + virtual bool IsGroundClipModel(int, int); + virtual void SetPushed(int); + virtual idVec3 *GetPushedLinearVelocity(idVec3 *result, const int); + virtual idVec3 *GetPushedAngularVelocity(idVec3 *result, const int); + virtual void SetMaster(bool, const idVec3 *, const idMat3 *, const bindFlags_t); + virtual void SetLocalOrigin(const idVec3 *, int); + virtual void SetLocalAxis(const idMat3 *, int); + virtual int GetBlockingEntityNum(); + virtual int GetLinearEndTime(); + virtual int GetAngularEndTime(); + virtual bool IsInNonResidentCollisionArea(bool); + virtual bool IsOutsideWorld(); + virtual void Serialize(idSerializer *); + + idList trees; + idList bodies; + idList constraints; + idList primaryConstraints; + idList auxiliaryConstraints; + idList frameConstraints; + idList contactConstraints; + idList contactBodies; + idStaticList noclipBodies; + bool changedAF; + float linearFriction; + float angularFriction; + float contactFriction; + float bouncyness; + float totalMass; + idVec2 suspendVelocity; + idVec2 suspendAcceleration; + float noMoveTime; + float noMoveTranslation; + float noMoveRotation; + float minMoveTime; + float maxMoveTime; + float impulseThreshold; + float timeScale; + float timeScaleRampStart; + float timeScaleRampEnd; + float jointFrictionScale; + float jointFrictionDent; + float jointFrictionDentStart; + float jointFrictionDentEnd; + float jointFrictionDentScale; + float contactFrictionScale; + float contactFrictionDent; + float contactFrictionDentStart; + float contactFrictionDentEnd; + float contactFrictionDentScale; + idFader errorReduction; + idFader errorReductionMax; + idFader lcpEpsilon; + idFader limitErrorReduction; + idFader limitErrorReductionMax; + idFader limitLcpEpsilon; + idFader contactErrorReduction; + idFader contactErrorReductionMax; + idFader contactLcpEpsilon; + idFader universalErrorReduction; + idFader universalErrorReductionMax; + idFader universalTorsionLcpEpsilon; + int passEntityNum; + bool selfCollision; + bool comeToRest; + bool linearTime; + bool noImpact; + bool worldConstraintsLocked; + bool forcePushable; + bool addContactConstraints; + bool addGravity; + idAFBody *masterBody; + AFPState_t current; + AFPState_t saved; + float lastTimeStep; + int endTime; + float timeStep; + idVec3 lastImpulse; + idLCP *lcp; +}; + +// IDA Local Type ordinal 14619; PDB kind: struct. +struct idPhysics_AF::noclipBodyInfo_t +{ + int bodyId; + int originalClipMask; + idClipQuery query; +}; diff --git a/source/engine/gamelib/physics/physics_ai.h b/source/engine/gamelib/physics/physics_ai.h new file mode 100644 index 0000000..b579d8f --- /dev/null +++ b/source/engine/gamelib/physics/physics_ai.h @@ -0,0 +1,124 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\physics\physics_ai.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2324; PDB kind: enum. +enum idPhysics_AI::aiMovement_t : __int32 +{ + AI_MOVE_WALKING = 0x0, + AI_MOVE_FLYING = 0x1, + AI_MOVE_DROPPING = 0x2, + AI_MOVE_MAX = 0x3, +}; + +// IDA Local Type ordinal 16704; PDB kind: class. +class __declspec(align(8)) idPhysics_AI : public idPhysics_Actor +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16705. + virtual ~idPhysics_AI(); + virtual void SetClipModel(idClipModel *, float, int, bool); + virtual idClipModel *GetClipModel(int); + virtual int GetNumClipModels(); + virtual void SetMass(float, int); + virtual float GetMass(int); + virtual void SetContents(int, int); + virtual int GetContents(int); + virtual void SetClipMask(int, int); + virtual int GetClipMask(int); + virtual const idBounds *GetBounds(int); + virtual const idBounds *GetAbsBounds(int); + virtual void SetOrigin(const idVec3 *, int); + virtual void SetAxis(const idMat3 *, int); + virtual void Translate(const idVec3 *, int); + virtual void Rotate(const idRotation *, int); + virtual const idVec3 *GetOrigin(int); + virtual const idMat3 *GetAxis(int); + virtual const idVec3 *GetLocalOrigin(int); + virtual const idMat3 *GetLocalAxis(int); + virtual void SetLinearVelocity(const idVec3 *, int); + virtual void SetAngularVelocity(const idVec3 *, int); + virtual idVec3 *GetLinearVelocity(idVec3 *result, int); + virtual idVec3 *GetAngularVelocity(idVec3 *result, int); + virtual void SetGravity(const idVec3 *); + virtual const idVec3 *GetGravity(); + virtual const idVec3 *GetGravityNormal(); + virtual void SetWaterLevel(float, int); + virtual float GetWaterLevel(int); + virtual void SetWaterViscosity(float, int); + virtual float GetWaterViscosity(int); + virtual void SetWaterEntNum(int); + virtual int GetWaterEntNum(); + virtual void SetWaterSurfaceWrldHeight(float); + virtual float GetWaterSurfaceWrldHeight(); + virtual void GetImpactInfo(const int, const idVec3 *, impactInfo_t *); + virtual void ApplyImpulse(const int, const idVec3 *, const idVec3 *); + virtual void ApplyForce(const int, const idVec3 *, const idVec3 *); + virtual void Activate(); + virtual void PutToRest(); + virtual bool IsAtRest(); + virtual bool IsPushable(int); + virtual void SaveState(); + virtual void RestoreState(); + virtual bool Evaluate(int, int); + virtual void UpdateTime(int); + virtual void ClipTranslation(trace_t *, const idVec3 *, const idClipModel *); + virtual void ClipRotation(trace_t *, const idRotation *, const idClipModel *); + virtual int ClipContents(const idClipModel *, int); + virtual void DisableClip(); + virtual void EnableClip(); + virtual void UnlinkClip(); + virtual void LinkClip(); + virtual bool EvaluateContacts(); + virtual int GetNumContacts(); + virtual const contactInfo_t *GetContact(int); + virtual void ClearContacts(); + virtual void AddContactPhysics(idPhysics *); + virtual void RemoveContactPhysics(idPhysics *); + virtual int GetNumContactPhysics(); + virtual idPhysics *GetContactPhysics(int); + virtual void ActivateContactPhysics(); + virtual bool HasGroundContacts(); + virtual bool IsGroundEntity(int); + virtual bool IsGroundClipModel(int, int); + virtual void SetPushed(int); + virtual idVec3 *GetPushedLinearVelocity(idVec3 *result, const int); + virtual idVec3 *GetPushedAngularVelocity(idVec3 *result, const int); + virtual void SetMaster(bool, const idVec3 *, const idMat3 *, const bindFlags_t); + virtual void SetLocalOrigin(const idVec3 *, int); + virtual void SetLocalAxis(const idMat3 *, int); + virtual int GetBlockingEntityNum(); + virtual int GetLinearEndTime(); + virtual int GetAngularEndTime(); + virtual bool IsInNonResidentCollisionArea(bool); + virtual bool IsOutsideWorld(); + virtual const idMat3 *GetGravityAxis(); + virtual void DisableClip_2(const idPhysics_Actor::actorClipModel_t); + virtual void EnableClip_2(const idPhysics_Actor::actorClipModel_t); + virtual void LinkClip_2(const idVec3 *, const idMat3 *); + + aiPState_t current; + aiPState_t saved; + idClipQuery stepMoveQuery; + idClipQuery contactsQuery; + idVec3 lastCollisionNormal; + idVec3 lastCollisionPoint; + idVec3 stuckCollisionNormal; + idVec3 stuckCollisionPoint; + idClipModel *clipModel_standing; + idClipModel *clipModel_crouched; + float maxStepHeight; + float minFloorCosine; + float maxDropVelocity; + float heightCrouched; + idPhysics_AI::aiMovement_t movementType; + bool noImpact; + bool masterControlledVelocity; + bool swimmer; + bool crouched; + bool canSetCrouchedPhysics; +}; diff --git a/source/engine/gamelib/physics/physics_dynamicbase.h b/source/engine/gamelib/physics/physics_dynamicbase.h new file mode 100644 index 0000000..71c6b59 --- /dev/null +++ b/source/engine/gamelib/physics/physics_dynamicbase.h @@ -0,0 +1,98 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\physics\physics_dynamicbase.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14609; PDB kind: class. +class __declspec(align(8)) idPhysics_DynamicBase : public idPhysics +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14612. + virtual ~idPhysics_DynamicBase(); + virtual void SetClipModel(idClipModel *, float, int, bool); + virtual idClipModel *GetClipModel(int); + virtual int GetNumClipModels(); + virtual void SetMass(float, int); + virtual float GetMass(int); + virtual void SetContents(int, int); + virtual int GetContents(int); + virtual void SetClipMask(int, int); + virtual int GetClipMask(int); + virtual const idBounds *GetBounds(int); + virtual const idBounds *GetAbsBounds(int); + virtual void SetOrigin(const idVec3 *, int); + virtual void SetAxis(const idMat3 *, int); + virtual void Translate(const idVec3 *, int); + virtual void Rotate(const idRotation *, int); + virtual const idVec3 *GetOrigin(int); + virtual const idMat3 *GetAxis(int); + virtual const idVec3 *GetLocalOrigin(int); + virtual const idMat3 *GetLocalAxis(int); + virtual void SetLinearVelocity(const idVec3 *, int); + virtual void SetAngularVelocity(const idVec3 *, int); + virtual idVec3 *GetLinearVelocity(idVec3 *result, int); + virtual idVec3 *GetAngularVelocity(idVec3 *result, int); + virtual void SetGravity(const idVec3 *); + virtual const idVec3 *GetGravity(); + virtual const idVec3 *GetGravityNormal(); + virtual void SetWaterLevel(float, int); + virtual float GetWaterLevel(int); + virtual void SetWaterViscosity(float, int); + virtual float GetWaterViscosity(int); + virtual void SetWaterEntNum(int); + virtual int GetWaterEntNum(); + virtual void SetWaterSurfaceWrldHeight(float); + virtual float GetWaterSurfaceWrldHeight(); + virtual void GetImpactInfo(const int, const idVec3 *, impactInfo_t *); + virtual void ApplyImpulse(const int, const idVec3 *, const idVec3 *); + virtual void ApplyForce(const int, const idVec3 *, const idVec3 *); + virtual void Activate(); + virtual void PutToRest(); + virtual bool IsAtRest(); + virtual bool IsPushable(int); + virtual void SaveState(); + virtual void RestoreState(); + virtual bool Evaluate(int, int); + virtual void UpdateTime(int); + virtual void ClipTranslation(trace_t *, const idVec3 *, const idClipModel *); + virtual void ClipRotation(trace_t *, const idRotation *, const idClipModel *); + virtual int ClipContents(const idClipModel *, int); + virtual void DisableClip(); + virtual void EnableClip(); + virtual void UnlinkClip(); + virtual void LinkClip(); + virtual bool EvaluateContacts(); + virtual int GetNumContacts(); + virtual const contactInfo_t *GetContact(int); + virtual void ClearContacts(); + virtual void AddContactPhysics(idPhysics *); + virtual void RemoveContactPhysics(idPhysics *); + virtual int GetNumContactPhysics(); + virtual idPhysics *GetContactPhysics(int); + virtual void ActivateContactPhysics(); + virtual bool HasGroundContacts(); + virtual bool IsGroundEntity(int); + virtual bool IsGroundClipModel(int, int); + virtual void SetPushed(int); + virtual idVec3 *GetPushedLinearVelocity(idVec3 *result, const int); + virtual idVec3 *GetPushedAngularVelocity(idVec3 *result, const int); + virtual void SetMaster(bool, const idVec3 *, const idMat3 *, const bindFlags_t); + virtual void SetLocalOrigin(const idVec3 *, int); + virtual void SetLocalAxis(const idMat3 *, int); + virtual int GetBlockingEntityNum(); + virtual int GetLinearEndTime(); + virtual int GetAngularEndTime(); + virtual bool IsInNonResidentCollisionArea(bool); + virtual bool IsOutsideWorld(); + + int clipMask; + idVec3 gravityVector; + idVec3 gravityNormal; + idList contacts; + idList contactPhysicsIds; + float waterLevel; + float waterViscosity; +}; diff --git a/source/engine/gamelib/physics/physics_parametric.h b/source/engine/gamelib/physics/physics_parametric.h new file mode 100644 index 0000000..e4f1485 --- /dev/null +++ b/source/engine/gamelib/physics/physics_parametric.h @@ -0,0 +1,204 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\physics\physics_parametric.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15500; PDB kind: class. +class idPhysics_Parametric : public idPhysics_DynamicBase +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15501. + virtual ~idPhysics_Parametric(); + virtual void SetClipModel(idClipModel *, float, int, bool); + virtual idClipModel *GetClipModel(int); + virtual int GetNumClipModels(); + virtual void SetMass(float, int); + virtual float GetMass(int); + virtual void SetContents(int, int); + virtual int GetContents(int); + virtual void SetClipMask(int, int); + virtual int GetClipMask(int); + virtual const idBounds *GetBounds(int); + virtual const idBounds *GetAbsBounds(int); + virtual void SetOrigin(const idVec3 *, int); + virtual void SetAxis(const idMat3 *, int); + virtual void Translate(const idVec3 *, int); + virtual void Rotate(const idRotation *, int); + virtual const idVec3 *GetOrigin(int); + virtual const idMat3 *GetAxis(int); + virtual const idVec3 *GetLocalOrigin(int); + virtual const idMat3 *GetLocalAxis(int); + virtual void SetLinearVelocity(const idVec3 *, int); + virtual void SetAngularVelocity(const idVec3 *, int); + virtual idVec3 *GetLinearVelocity(idVec3 *result, int); + virtual idVec3 *GetAngularVelocity(idVec3 *result, int); + virtual void SetGravity(const idVec3 *); + virtual const idVec3 *GetGravity(); + virtual const idVec3 *GetGravityNormal(); + virtual void SetWaterLevel(float, int); + virtual float GetWaterLevel(int); + virtual void SetWaterViscosity(float, int); + virtual float GetWaterViscosity(int); + virtual void SetWaterEntNum(int); + virtual int GetWaterEntNum(); + virtual void SetWaterSurfaceWrldHeight(float); + virtual float GetWaterSurfaceWrldHeight(); + virtual void GetImpactInfo(const int, const idVec3 *, impactInfo_t *); + virtual void ApplyImpulse(const int, const idVec3 *, const idVec3 *); + virtual void ApplyForce(const int, const idVec3 *, const idVec3 *); + virtual void Activate(); + virtual void PutToRest(); + virtual bool IsAtRest(); + virtual bool IsPushable(int); + virtual void SaveState(); + virtual void RestoreState(); + virtual bool Evaluate(int, int); + virtual void UpdateTime(int); + virtual void ClipTranslation(trace_t *, const idVec3 *, const idClipModel *); + virtual void ClipRotation(trace_t *, const idRotation *, const idClipModel *); + virtual int ClipContents(const idClipModel *, int); + virtual void DisableClip(); + virtual void EnableClip(); + virtual void UnlinkClip(); + virtual void LinkClip(); + virtual bool EvaluateContacts(); + virtual int GetNumContacts(); + virtual const contactInfo_t *GetContact(int); + virtual void ClearContacts(); + virtual void AddContactPhysics(idPhysics *); + virtual void RemoveContactPhysics(idPhysics *); + virtual int GetNumContactPhysics(); + virtual idPhysics *GetContactPhysics(int); + virtual void ActivateContactPhysics(); + virtual bool HasGroundContacts(); + virtual bool IsGroundEntity(int); + virtual bool IsGroundClipModel(int, int); + virtual void SetPushed(int); + virtual idVec3 *GetPushedLinearVelocity(idVec3 *result, const int); + virtual idVec3 *GetPushedAngularVelocity(idVec3 *result, const int); + virtual void SetMaster(bool, const idVec3 *, const idMat3 *, const bindFlags_t); + virtual void SetLocalOrigin(const idVec3 *, int); + virtual void SetLocalAxis(const idMat3 *, int); + virtual int GetBlockingEntityNum(); + virtual int GetLinearEndTime(); + virtual int GetAngularEndTime(); + virtual bool IsInNonResidentCollisionArea(bool); + virtual bool IsOutsideWorld(); + + parametricPState_t current; + parametricPState_t saved; + idVec6 spatialVelocity; + int blockingPhysicsId; + idBounds absBounds; + idPush *pusher; + bool isPusher; + idClipModel *clipModel; + int pushFlags; + bool hasMaster; + bool isOrientated; + bool hasWorldOrientation; + idMat3 worldAxis; + idVec3 worldOrigin; +}; + +// IDA Local Type ordinal 19690; PDB kind: class. +class __declspec(align(4)) idPhysics_ParametricMM : public idPhysics_DynamicBase +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19694. + virtual ~idPhysics_ParametricMM(); + virtual void SetClipModel(idClipModel *, float, int, bool); + virtual idClipModel *GetClipModel(int); + virtual int GetNumClipModels(); + virtual void SetMass(float, int); + virtual float GetMass(int); + virtual void SetContents(int, int); + virtual int GetContents(int); + virtual void SetClipMask(int, int); + virtual int GetClipMask(int); + virtual const idBounds *GetBounds(int); + virtual const idBounds *GetAbsBounds(int); + virtual void SetOrigin(const idVec3 *, int); + virtual void SetAxis(const idMat3 *, int); + virtual void Translate(const idVec3 *, int); + virtual void Rotate(const idRotation *, int); + virtual const idVec3 *GetOrigin(int); + virtual const idMat3 *GetAxis(int); + virtual const idVec3 *GetLocalOrigin(int); + virtual const idMat3 *GetLocalAxis(int); + virtual void SetLinearVelocity(const idVec3 *, int); + virtual void SetAngularVelocity(const idVec3 *, int); + virtual idVec3 *GetLinearVelocity(idVec3 *result, int); + virtual idVec3 *GetAngularVelocity(idVec3 *result, int); + virtual void SetGravity(const idVec3 *); + virtual const idVec3 *GetGravity(); + virtual const idVec3 *GetGravityNormal(); + virtual void SetWaterLevel(float, int); + virtual float GetWaterLevel(int); + virtual void SetWaterViscosity(float, int); + virtual float GetWaterViscosity(int); + virtual void SetWaterEntNum(int); + virtual int GetWaterEntNum(); + virtual void SetWaterSurfaceWrldHeight(float); + virtual float GetWaterSurfaceWrldHeight(); + virtual void GetImpactInfo(const int, const idVec3 *, impactInfo_t *); + virtual void ApplyImpulse(const int, const idVec3 *, const idVec3 *); + virtual void ApplyForce(const int, const idVec3 *, const idVec3 *); + virtual void Activate(); + virtual void PutToRest(); + virtual bool IsAtRest(); + virtual bool IsPushable(int); + virtual void SaveState(); + virtual void RestoreState(); + virtual bool Evaluate(int, int); + virtual void UpdateTime(int); + virtual void ClipTranslation(trace_t *, const idVec3 *, const idClipModel *); + virtual void ClipRotation(trace_t *, const idRotation *, const idClipModel *); + virtual int ClipContents(const idClipModel *, int); + virtual void DisableClip(); + virtual void EnableClip(); + virtual void UnlinkClip(); + virtual void LinkClip(); + virtual bool EvaluateContacts(); + virtual int GetNumContacts(); + virtual const contactInfo_t *GetContact(int); + virtual void ClearContacts(); + virtual void AddContactPhysics(idPhysics *); + virtual void RemoveContactPhysics(idPhysics *); + virtual int GetNumContactPhysics(); + virtual idPhysics *GetContactPhysics(int); + virtual void ActivateContactPhysics(); + virtual bool HasGroundContacts(); + virtual bool IsGroundEntity(int); + virtual bool IsGroundClipModel(int, int); + virtual void SetPushed(int); + virtual idVec3 *GetPushedLinearVelocity(idVec3 *result, const int); + virtual idVec3 *GetPushedAngularVelocity(idVec3 *result, const int); + virtual void SetMaster(bool, const idVec3 *, const idMat3 *, const bindFlags_t); + virtual void SetLocalOrigin(const idVec3 *, int); + virtual void SetLocalAxis(const idMat3 *, int); + virtual int GetBlockingEntityNum(); + virtual int GetLinearEndTime(); + virtual int GetAngularEndTime(); + virtual bool IsInNonResidentCollisionArea(bool); + virtual bool IsOutsideWorld(); + + parametricPState_tMM current; + parametricPState_tMM saved; + int blockingPhysicsId; + idBounds absBounds; + idPush *pusher; + bool isPusher; + idClipModel *clipModel; + int pushFlags; + bool hasMaster; + bool isOrientated; + bool hasWorldOrientation; + idMat3 worldAxis; + idVec3 worldOrigin; + int collideClipMask; + bool collideCallbackEnabled; +}; diff --git a/source/engine/gamelib/physics/physics_player.h b/source/engine/gamelib/physics/physics_player.h new file mode 100644 index 0000000..a4e0859 --- /dev/null +++ b/source/engine/gamelib/physics/physics_player.h @@ -0,0 +1,175 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\physics\physics_player.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15364; PDB kind: class. +class __declspec(align(8)) idPhysics_Player : public idPhysics_Actor +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15365. + virtual ~idPhysics_Player(); + virtual void SetClipModel(idClipModel *, float, int, bool); + virtual idClipModel *GetClipModel(int); + virtual int GetNumClipModels(); + virtual void SetMass(float, int); + virtual float GetMass(int); + virtual void SetContents(int, int); + virtual int GetContents(int); + virtual void SetClipMask(int, int); + virtual int GetClipMask(int); + virtual const idBounds *GetBounds(int); + virtual const idBounds *GetAbsBounds(int); + virtual void SetOrigin(const idVec3 *, int); + virtual void SetAxis(const idMat3 *, int); + virtual void Translate(const idVec3 *, int); + virtual void Rotate(const idRotation *, int); + virtual const idVec3 *GetOrigin(int); + virtual const idMat3 *GetAxis(int); + virtual const idVec3 *GetLocalOrigin(int); + virtual const idMat3 *GetLocalAxis(int); + virtual void SetLinearVelocity(const idVec3 *, int); + virtual void SetAngularVelocity(const idVec3 *, int); + virtual idVec3 *GetLinearVelocity(idVec3 *result, int); + virtual idVec3 *GetAngularVelocity(idVec3 *result, int); + virtual void SetGravity(const idVec3 *); + virtual const idVec3 *GetGravity(); + virtual const idVec3 *GetGravityNormal(); + virtual void SetWaterLevel(float, int); + virtual float GetWaterLevel(int); + virtual void SetWaterViscosity(float, int); + virtual float GetWaterViscosity(int); + virtual void SetWaterEntNum(int); + virtual int GetWaterEntNum(); + virtual void SetWaterSurfaceWrldHeight(float); + virtual float GetWaterSurfaceWrldHeight(); + virtual void GetImpactInfo(const int, const idVec3 *, impactInfo_t *); + virtual void ApplyImpulse(const int, const idVec3 *, const idVec3 *); + virtual void ApplyForce(const int, const idVec3 *, const idVec3 *); + virtual void Activate(); + virtual void PutToRest(); + virtual bool IsAtRest(); + virtual bool IsPushable(int); + virtual void SaveState(); + virtual void RestoreState(); + virtual bool Evaluate(int, int); + virtual void UpdateTime(int); + virtual void ClipTranslation(trace_t *, const idVec3 *, const idClipModel *); + virtual void ClipRotation(trace_t *, const idRotation *, const idClipModel *); + virtual int ClipContents(const idClipModel *, int); + virtual void DisableClip(); + virtual void EnableClip(); + virtual void UnlinkClip(); + virtual void LinkClip(); + virtual bool EvaluateContacts(); + virtual int GetNumContacts(); + virtual const contactInfo_t *GetContact(int); + virtual void ClearContacts(); + virtual void AddContactPhysics(idPhysics *); + virtual void RemoveContactPhysics(idPhysics *); + virtual int GetNumContactPhysics(); + virtual idPhysics *GetContactPhysics(int); + virtual void ActivateContactPhysics(); + virtual bool HasGroundContacts(); + virtual bool IsGroundEntity(int); + virtual bool IsGroundClipModel(int, int); + virtual void SetPushed(int); + virtual idVec3 *GetPushedLinearVelocity(idVec3 *result, const int); + virtual idVec3 *GetPushedAngularVelocity(idVec3 *result, const int); + virtual void SetMaster(bool, const idVec3 *, const idMat3 *, const bindFlags_t); + virtual void SetLocalOrigin(const idVec3 *, int); + virtual void SetLocalAxis(const idMat3 *, int); + virtual int GetBlockingEntityNum(); + virtual int GetLinearEndTime(); + virtual int GetAngularEndTime(); + virtual bool IsInNonResidentCollisionArea(bool); + virtual bool IsOutsideWorld(); + virtual const idMat3 *GetGravityAxis(); + virtual void DisableClip_2(const idPhysics_Actor::actorClipModel_t); + virtual void EnableClip_2(const idPhysics_Actor::actorClipModel_t); + virtual void LinkClip_2(const idVec3 *, const idMat3 *); + virtual void RestoreStateFromState(playerPState_t *); + virtual void ClearPushedVelocity(); + virtual void Serialize(idSerializer *, playerPState_t *); + virtual void SerializeNonPredictiveState(idSerializer *); + + playerExplicitMove_t explicitMove; + playerExplicitMove_t explicitMove2; + playerPState_t current; + playerPState_t previous; + playerPState_t saved; + idClipModel *clipModel_standing; + idClipModel *clipModel_crouched; + idClipModel *clipModel_sprintSlide; + idClipModel *clipModel_dead; + const idMaterial *overrideClipMaterial; + idPush *pusher; + idClipQuery slideMoveQuery; + idClipQuery ladderQuery1; + idClipQuery ladderQuery2; + idClipQuery contentsQuery; + int lastContents; + float walkSpeed; + float crouchSpeed; + float maxStepHeight; + float maxJumpHeight; + int debugLevel; + float walkAccelerate; + float airAccelerate; + float flyAccelerate; + float waterAccelerate; + float walkFriction; + float airFriction; + float flyFriction; + float waterFriction; + float slideFriction; + usercmd_t command; + usercmd_t prevcmd; + idAngles viewAngles; + int framemsec; + float frametime; + float playerSpeed; + idVec3 viewForward; + idVec3 viewRight; + bool walking; + bool startedOnGround; + bool groundPlane; + trace_t groundTrace; + int groundSurfaceFlags; + bool inhibitSprint; + bool inhibitJump; + bool toggleCrouch; + bool ladder; + idVec3 ladderNormal; + bool canLadder; + swimdepthstate_t currentSwimDepthState; + idVec3 swimStrokeVelocity; + int swimStrokeTimeLeft; + int swimStrokeTime; + bool swimStrokeAltCurve; + bool swimStrokeIgnoreInput; + int currentWaterEnt; + float currentWaterSurfaceHeight; + float blockedAccelerationPercent; + idVec3 blockedAccelerationVec; + float modifiedMovementMaxPercent; + float modifiedMovementAngle; + idVec3 modifiedAccelerationVec; + bool canCrouchSprint; + int lastJumpChance; + idVec3 perfectOriginPosition; + int perfectOriginDuration; + int perfectOriginTime; + idVec3 externalVelocity; + bool clientOriginSet; + idVec3 nextClientOrigin; + bool forcedClientCrouchState; + bool clientPusherLocked; + float pushDeltaZ; + bool (__fastcall *ownerJumpHandler)(int, const idVec3 *, const idVec3 *, const idVec3 *, const idVec3 *, const usercmd_t *); + bool (__fastcall *ownerCrouchHandler)(int, const idVec3 *, const idVec3 *, const idVec3 *, const idVec3 *, const usercmd_t *); + bool (__fastcall *ownerCrouchJumpHandler)(int, const idVec3 *, const idVec3 *, const idVec3 *, const idVec3 *, const usercmd_t *); +}; diff --git a/source/engine/gamelib/physics/physics_rigidbody.h b/source/engine/gamelib/physics/physics_rigidbody.h new file mode 100644 index 0000000..d3e2c26 --- /dev/null +++ b/source/engine/gamelib/physics/physics_rigidbody.h @@ -0,0 +1,121 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\physics\physics_rigidbody.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15433; PDB kind: struct. +struct __declspec(align(4)) idPhysics_RigidBody::rigidBodyFlags_t +{ + int noPushMask; + unsigned __int8 : 3; + __int8 isOrientated : 1; + __int8 hasMaster : 1; + __int8 noImpact : 1; + __int8 testSolid : 1; + __int8 dropToFloor : 1; +}; + +// IDA Local Type ordinal 15435; PDB kind: class. +class __declspec(align(8)) idPhysics_RigidBody : public idPhysics_DynamicBase +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15436. + virtual ~idPhysics_RigidBody(); + virtual void SetClipModel(idClipModel *, float, int, bool); + virtual idClipModel *GetClipModel(int); + virtual int GetNumClipModels(); + virtual void SetMass(float, int); + virtual float GetMass(int); + virtual void SetContents(int, int); + virtual int GetContents(int); + virtual void SetClipMask(int, int); + virtual int GetClipMask(int); + virtual const idBounds *GetBounds(int); + virtual const idBounds *GetAbsBounds(int); + virtual void SetOrigin(const idVec3 *, int); + virtual void SetAxis(const idMat3 *, int); + virtual void Translate(const idVec3 *, int); + virtual void Rotate(const idRotation *, int); + virtual const idVec3 *GetOrigin(int); + virtual const idMat3 *GetAxis(int); + virtual const idVec3 *GetLocalOrigin(int); + virtual const idMat3 *GetLocalAxis(int); + virtual void SetLinearVelocity(const idVec3 *, int); + virtual void SetAngularVelocity(const idVec3 *, int); + virtual idVec3 *GetLinearVelocity(idVec3 *result, int); + virtual idVec3 *GetAngularVelocity(idVec3 *result, int); + virtual void SetGravity(const idVec3 *); + virtual const idVec3 *GetGravity(); + virtual const idVec3 *GetGravityNormal(); + virtual void SetWaterLevel(float, int); + virtual float GetWaterLevel(int); + virtual void SetWaterViscosity(float, int); + virtual float GetWaterViscosity(int); + virtual void SetWaterEntNum(int); + virtual int GetWaterEntNum(); + virtual void SetWaterSurfaceWrldHeight(float); + virtual float GetWaterSurfaceWrldHeight(); + virtual void GetImpactInfo(const int, const idVec3 *, impactInfo_t *); + virtual void ApplyImpulse(const int, const idVec3 *, const idVec3 *); + virtual void ApplyForce(const int, const idVec3 *, const idVec3 *); + virtual void Activate(); + virtual void PutToRest(); + virtual bool IsAtRest(); + virtual bool IsPushable(int); + virtual void SaveState(); + virtual void RestoreState(); + virtual bool Evaluate(int, int); + virtual void UpdateTime(int); + virtual void ClipTranslation(trace_t *, const idVec3 *, const idClipModel *); + virtual void ClipRotation(trace_t *, const idRotation *, const idClipModel *); + virtual int ClipContents(const idClipModel *, int); + virtual void DisableClip(); + virtual void EnableClip(); + virtual void UnlinkClip(); + virtual void LinkClip(); + virtual bool EvaluateContacts(); + virtual int GetNumContacts(); + virtual const contactInfo_t *GetContact(int); + virtual void ClearContacts(); + virtual void AddContactPhysics(idPhysics *); + virtual void RemoveContactPhysics(idPhysics *); + virtual int GetNumContactPhysics(); + virtual idPhysics *GetContactPhysics(int); + virtual void ActivateContactPhysics(); + virtual bool HasGroundContacts(); + virtual bool IsGroundEntity(int); + virtual bool IsGroundClipModel(int, int); + virtual void SetPushed(int); + virtual idVec3 *GetPushedLinearVelocity(idVec3 *result, const int); + virtual idVec3 *GetPushedAngularVelocity(idVec3 *result, const int); + virtual void SetMaster(bool, const idVec3 *, const idMat3 *, const bindFlags_t); + virtual void SetLocalOrigin(const idVec3 *, int); + virtual void SetLocalAxis(const idMat3 *, int); + virtual int GetBlockingEntityNum(); + virtual int GetLinearEndTime(); + virtual int GetAngularEndTime(); + virtual bool IsInNonResidentCollisionArea(bool); + virtual bool IsOutsideWorld(); + + idClipModel *clipModel; + float linearFriction; + float angularFriction; + float contactFriction; + float linearFrictionWater; + float angularFrictionWater; + float bouncyness; + idVec3 inertiaScale; + float mass; + float inverseMass; + idVec3 centerOfMass; + idMat3 inertiaTensor; + idMat3 inverseInertiaTensor; + idPhysics_RigidBody::rigidBodyFlags_t fl; + rigidBodyPState_t current; + rigidBodyPState_t saved; + idClipQuery motionQuery; + float lastTimeStep; +}; diff --git a/source/engine/gamelib/physics/physics_rigidbody3dof.h b/source/engine/gamelib/physics/physics_rigidbody3dof.h new file mode 100644 index 0000000..35f2130 --- /dev/null +++ b/source/engine/gamelib/physics/physics_rigidbody3dof.h @@ -0,0 +1,138 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\physics\physics_rigidbody3dof.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17461; PDB kind: struct. +struct idPhysics_RigidBody3DOF::bodyIntState_t +{ + idVec3 position; + idMat3 orientation; + idVec3 linearVelocity; + idVec3 angularVelocity; +}; + +// IDA Local Type ordinal 17462; PDB kind: struct. +struct idPhysics_RigidBody3DOF::bodyState_t +{ + int atRest; + float lastTimeStep; + idVec3 localOrigin; + idMat3 localAxis; + idVec3 linearPushVelocity; + idVec3 angularPushVelocity; + idVec3 externalForce; + idPhysics_RigidBody3DOF::bodyIntState_t i; +}; + +// IDA Local Type ordinal 17463; PDB kind: struct. +struct idPhysics_RigidBody3DOF::simpleBodyFlags_t +{ + unsigned __int8 : 3; + __int8 noImpact : 1; + __int8 isOriented : 1; + __int8 hasMaster : 1; + __int8 testSolid : 1; + __int8 dropToFloor : 1; +}; + +// IDA Local Type ordinal 17464; PDB kind: class. +class __declspec(align(8)) idPhysics_RigidBody3DOF : public idPhysics_DynamicBase +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17465. + virtual ~idPhysics_RigidBody3DOF(); + virtual void SetClipModel(idClipModel *, float, int, bool); + virtual idClipModel *GetClipModel(int); + virtual int GetNumClipModels(); + virtual void SetMass(float, int); + virtual float GetMass(int); + virtual void SetContents(int, int); + virtual int GetContents(int); + virtual void SetClipMask(int, int); + virtual int GetClipMask(int); + virtual const idBounds *GetBounds(int); + virtual const idBounds *GetAbsBounds(int); + virtual void SetOrigin(const idVec3 *, int); + virtual void SetAxis(const idMat3 *, int); + virtual void Translate(const idVec3 *, int); + virtual void Rotate(const idRotation *, int); + virtual const idVec3 *GetOrigin(int); + virtual const idMat3 *GetAxis(int); + virtual const idVec3 *GetLocalOrigin(int); + virtual const idMat3 *GetLocalAxis(int); + virtual void SetLinearVelocity(const idVec3 *, int); + virtual void SetAngularVelocity(const idVec3 *, int); + virtual idVec3 *GetLinearVelocity(idVec3 *result, int); + virtual idVec3 *GetAngularVelocity(idVec3 *result, int); + virtual void SetGravity(const idVec3 *); + virtual const idVec3 *GetGravity(); + virtual const idVec3 *GetGravityNormal(); + virtual void SetWaterLevel(float, int); + virtual float GetWaterLevel(int); + virtual void SetWaterViscosity(float, int); + virtual float GetWaterViscosity(int); + virtual void SetWaterEntNum(int); + virtual int GetWaterEntNum(); + virtual void SetWaterSurfaceWrldHeight(float); + virtual float GetWaterSurfaceWrldHeight(); + virtual void GetImpactInfo(const int, const idVec3 *, impactInfo_t *); + virtual void ApplyImpulse(const int, const idVec3 *, const idVec3 *); + virtual void ApplyForce(const int, const idVec3 *, const idVec3 *); + virtual void Activate(); + virtual void PutToRest(); + virtual bool IsAtRest(); + virtual bool IsPushable(int); + virtual void SaveState(); + virtual void RestoreState(); + virtual bool Evaluate(int, int); + virtual void UpdateTime(int); + virtual void ClipTranslation(trace_t *, const idVec3 *, const idClipModel *); + virtual void ClipRotation(trace_t *, const idRotation *, const idClipModel *); + virtual int ClipContents(const idClipModel *, int); + virtual void DisableClip(); + virtual void EnableClip(); + virtual void UnlinkClip(); + virtual void LinkClip(); + virtual bool EvaluateContacts(); + virtual int GetNumContacts(); + virtual const contactInfo_t *GetContact(int); + virtual void ClearContacts(); + virtual void AddContactPhysics(idPhysics *); + virtual void RemoveContactPhysics(idPhysics *); + virtual int GetNumContactPhysics(); + virtual idPhysics *GetContactPhysics(int); + virtual void ActivateContactPhysics(); + virtual bool HasGroundContacts(); + virtual bool IsGroundEntity(int); + virtual bool IsGroundClipModel(int, int); + virtual void SetPushed(int); + virtual idVec3 *GetPushedLinearVelocity(idVec3 *result, const int); + virtual idVec3 *GetPushedAngularVelocity(idVec3 *result, const int); + virtual void SetMaster(bool, const idVec3 *, const idMat3 *, const bindFlags_t); + virtual void SetLocalOrigin(const idVec3 *, int); + virtual void SetLocalAxis(const idMat3 *, int); + virtual int GetBlockingEntityNum(); + virtual int GetLinearEndTime(); + virtual int GetAngularEndTime(); + virtual bool IsInNonResidentCollisionArea(bool); + virtual bool IsOutsideWorld(); + + idClipModel *clipModel; + float mass; + float inverseMass; + float linearFriction; + float angularFriction; + float contactFriction; + float linearFrictionWater; + float angularFrictionWater; + float coefficientOfRestitution; + idPhysics_RigidBody3DOF::bodyState_t current; + idPhysics_RigidBody3DOF::bodyState_t saved; + idRandom random; + idClipQuery translationQuery; + idPhysics_RigidBody3DOF::simpleBodyFlags_t flags; +}; diff --git a/source/engine/gamelib/physics/physics_simple_dynamic.h b/source/engine/gamelib/physics/physics_simple_dynamic.h new file mode 100644 index 0000000..17b76a2 --- /dev/null +++ b/source/engine/gamelib/physics/physics_simple_dynamic.h @@ -0,0 +1,106 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\physics\physics_simple_dynamic.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22316; PDB kind: struct. +struct idPhysics_Simple_Dynamic::physicsSimpleDynamicData_t +{ + idVec3 origin; + idMat3 axis; + idVec3 angularVelocity; + idVec3 linearVelocity; +}; + +// IDA Local Type ordinal 22317; PDB kind: class. +class idPhysics_Simple_Dynamic : public idPhysics_DynamicBase +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22318. + virtual ~idPhysics_Simple_Dynamic(); + virtual void SetClipModel(idClipModel *, float, int, bool); + virtual idClipModel *GetClipModel(int); + virtual int GetNumClipModels(); + virtual void SetMass(float, int); + virtual float GetMass(int); + virtual void SetContents(int, int); + virtual int GetContents(int); + virtual void SetClipMask(int, int); + virtual int GetClipMask(int); + virtual const idBounds *GetBounds(int); + virtual const idBounds *GetAbsBounds(int); + virtual void SetOrigin(const idVec3 *, int); + virtual void SetAxis(const idMat3 *, int); + virtual void Translate(const idVec3 *, int); + virtual void Rotate(const idRotation *, int); + virtual const idVec3 *GetOrigin(int); + virtual const idMat3 *GetAxis(int); + virtual const idVec3 *GetLocalOrigin(int); + virtual const idMat3 *GetLocalAxis(int); + virtual void SetLinearVelocity(const idVec3 *, int); + virtual void SetAngularVelocity(const idVec3 *, int); + virtual idVec3 *GetLinearVelocity(idVec3 *result, int); + virtual idVec3 *GetAngularVelocity(idVec3 *result, int); + virtual void SetGravity(const idVec3 *); + virtual const idVec3 *GetGravity(); + virtual const idVec3 *GetGravityNormal(); + virtual void SetWaterLevel(float, int); + virtual float GetWaterLevel(int); + virtual void SetWaterViscosity(float, int); + virtual float GetWaterViscosity(int); + virtual void SetWaterEntNum(int); + virtual int GetWaterEntNum(); + virtual void SetWaterSurfaceWrldHeight(float); + virtual float GetWaterSurfaceWrldHeight(); + virtual void GetImpactInfo(const int, const idVec3 *, impactInfo_t *); + virtual void ApplyImpulse(const int, const idVec3 *, const idVec3 *); + virtual void ApplyForce(const int, const idVec3 *, const idVec3 *); + virtual void Activate(); + virtual void PutToRest(); + virtual bool IsAtRest(); + virtual bool IsPushable(int); + virtual void SaveState(); + virtual void RestoreState(); + virtual bool Evaluate(int, int); + virtual void UpdateTime(int); + virtual void ClipTranslation(trace_t *, const idVec3 *, const idClipModel *); + virtual void ClipRotation(trace_t *, const idRotation *, const idClipModel *); + virtual int ClipContents(const idClipModel *, int); + virtual void DisableClip(); + virtual void EnableClip(); + virtual void UnlinkClip(); + virtual void LinkClip(); + virtual bool EvaluateContacts(); + virtual int GetNumContacts(); + virtual const contactInfo_t *GetContact(int); + virtual void ClearContacts(); + virtual void AddContactPhysics(idPhysics *); + virtual void RemoveContactPhysics(idPhysics *); + virtual int GetNumContactPhysics(); + virtual idPhysics *GetContactPhysics(int); + virtual void ActivateContactPhysics(); + virtual bool HasGroundContacts(); + virtual bool IsGroundEntity(int); + virtual bool IsGroundClipModel(int, int); + virtual void SetPushed(int); + virtual idVec3 *GetPushedLinearVelocity(idVec3 *result, const int); + virtual idVec3 *GetPushedAngularVelocity(idVec3 *result, const int); + virtual void SetMaster(bool, const idVec3 *, const idMat3 *, const bindFlags_t); + virtual void SetLocalOrigin(const idVec3 *, int); + virtual void SetLocalAxis(const idMat3 *, int); + virtual int GetBlockingEntityNum(); + virtual int GetLinearEndTime(); + virtual int GetAngularEndTime(); + virtual bool IsInNonResidentCollisionArea(bool); + virtual bool IsOutsideWorld(); + + idPhysics_Simple_Dynamic::physicsSimpleDynamicData_t previous; + idPhysics_Simple_Dynamic::physicsSimpleDynamicData_t current; + idClipModel *clipModel; + idPush *pusher; + bool isPusher; + int pushFlags; +}; diff --git a/source/engine/gamelib/physics/physics_static.h b/source/engine/gamelib/physics/physics_static.h new file mode 100644 index 0000000..b2fcea2 --- /dev/null +++ b/source/engine/gamelib/physics/physics_static.h @@ -0,0 +1,96 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\physics\physics_static.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15178; PDB kind: class. +class idPhysics_Static : public idPhysics +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15179. + virtual ~idPhysics_Static(); + virtual void SetClipModel(idClipModel *, float, int, bool); + virtual idClipModel *GetClipModel(int); + virtual int GetNumClipModels(); + virtual void SetMass(float, int); + virtual float GetMass(int); + virtual void SetContents(int, int); + virtual int GetContents(int); + virtual void SetClipMask(int, int); + virtual int GetClipMask(int); + virtual const idBounds *GetBounds(int); + virtual const idBounds *GetAbsBounds(int); + virtual void SetOrigin(const idVec3 *, int); + virtual void SetAxis(const idMat3 *, int); + virtual void Translate(const idVec3 *, int); + virtual void Rotate(const idRotation *, int); + virtual const idVec3 *GetOrigin(int); + virtual const idMat3 *GetAxis(int); + virtual const idVec3 *GetLocalOrigin(int); + virtual const idMat3 *GetLocalAxis(int); + virtual void SetLinearVelocity(const idVec3 *, int); + virtual void SetAngularVelocity(const idVec3 *, int); + virtual idVec3 *GetLinearVelocity(idVec3 *result, int); + virtual idVec3 *GetAngularVelocity(idVec3 *result, int); + virtual void SetGravity(const idVec3 *); + virtual const idVec3 *GetGravity(); + virtual const idVec3 *GetGravityNormal(); + virtual void SetWaterLevel(float, int); + virtual float GetWaterLevel(int); + virtual void SetWaterViscosity(float, int); + virtual float GetWaterViscosity(int); + virtual void SetWaterEntNum(int); + virtual int GetWaterEntNum(); + virtual void SetWaterSurfaceWrldHeight(float); + virtual float GetWaterSurfaceWrldHeight(); + virtual void GetImpactInfo(const int, const idVec3 *, impactInfo_t *); + virtual void ApplyImpulse(const int, const idVec3 *, const idVec3 *); + virtual void ApplyForce(const int, const idVec3 *, const idVec3 *); + virtual void Activate(); + virtual void PutToRest(); + virtual bool IsAtRest(); + virtual bool IsPushable(int); + virtual void SaveState(); + virtual void RestoreState(); + virtual bool Evaluate(int, int); + virtual void UpdateTime(int); + virtual void ClipTranslation(trace_t *, const idVec3 *, const idClipModel *); + virtual void ClipRotation(trace_t *, const idRotation *, const idClipModel *); + virtual int ClipContents(const idClipModel *, int); + virtual void DisableClip(); + virtual void EnableClip(); + virtual void UnlinkClip(); + virtual void LinkClip(); + virtual bool EvaluateContacts(); + virtual int GetNumContacts(); + virtual const contactInfo_t *GetContact(int); + virtual void ClearContacts(); + virtual void AddContactPhysics(idPhysics *); + virtual void RemoveContactPhysics(idPhysics *); + virtual int GetNumContactPhysics(); + virtual idPhysics *GetContactPhysics(int); + virtual void ActivateContactPhysics(); + virtual bool HasGroundContacts(); + virtual bool IsGroundEntity(int); + virtual bool IsGroundClipModel(int, int); + virtual void SetPushed(int); + virtual idVec3 *GetPushedLinearVelocity(idVec3 *result, const int); + virtual idVec3 *GetPushedAngularVelocity(idVec3 *result, const int); + virtual void SetMaster(bool, const idVec3 *, const idMat3 *, const bindFlags_t); + virtual void SetLocalOrigin(const idVec3 *, int); + virtual void SetLocalAxis(const idMat3 *, int); + virtual int GetBlockingEntityNum(); + virtual int GetLinearEndTime(); + virtual int GetAngularEndTime(); + virtual bool IsInNonResidentCollisionArea(bool); + + idClipModel *clipModel; + idList contactPhysicsIds; + unsigned __int8 : 6; + __int8 isOrientated : 1; + __int8 hasMaster : 1; + staticPState_t current; +}; diff --git a/source/engine/gamelib/physics/physics_staticmulti.h b/source/engine/gamelib/physics/physics_staticmulti.h new file mode 100644 index 0000000..23703d4 --- /dev/null +++ b/source/engine/gamelib/physics/physics_staticmulti.h @@ -0,0 +1,97 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\physics\physics_staticmulti.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 18829; PDB kind: class. +class __declspec(align(8)) idPhysics_StaticMulti : public idPhysics +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18830. + virtual ~idPhysics_StaticMulti(); + virtual void SetClipModel(idClipModel *, float, int, bool); + virtual idClipModel *GetClipModel(int); + virtual int GetNumClipModels(); + virtual void SetMass(float, int); + virtual float GetMass(int); + virtual void SetContents(int, int); + virtual int GetContents(int); + virtual void SetClipMask(int, int); + virtual int GetClipMask(int); + virtual const idBounds *GetBounds(int); + virtual const idBounds *GetAbsBounds(int); + virtual void SetOrigin(const idVec3 *, int); + virtual void SetAxis(const idMat3 *, int); + virtual void Translate(const idVec3 *, int); + virtual void Rotate(const idRotation *, int); + virtual const idVec3 *GetOrigin(int); + virtual const idMat3 *GetAxis(int); + virtual const idVec3 *GetLocalOrigin(int); + virtual const idMat3 *GetLocalAxis(int); + virtual void SetLinearVelocity(const idVec3 *, int); + virtual void SetAngularVelocity(const idVec3 *, int); + virtual idVec3 *GetLinearVelocity(idVec3 *result, int); + virtual idVec3 *GetAngularVelocity(idVec3 *result, int); + virtual void SetGravity(const idVec3 *); + virtual const idVec3 *GetGravity(); + virtual const idVec3 *GetGravityNormal(); + virtual void SetWaterLevel(float, int); + virtual float GetWaterLevel(int); + virtual void SetWaterViscosity(float, int); + virtual float GetWaterViscosity(int); + virtual void SetWaterEntNum(int); + virtual int GetWaterEntNum(); + virtual void SetWaterSurfaceWrldHeight(float); + virtual float GetWaterSurfaceWrldHeight(); + virtual void GetImpactInfo(const int, const idVec3 *, impactInfo_t *); + virtual void ApplyImpulse(const int, const idVec3 *, const idVec3 *); + virtual void ApplyForce(const int, const idVec3 *, const idVec3 *); + virtual void Activate(); + virtual void PutToRest(); + virtual bool IsAtRest(); + virtual bool IsPushable(int); + virtual void SaveState(); + virtual void RestoreState(); + virtual bool Evaluate(int, int); + virtual void UpdateTime(int); + virtual void ClipTranslation(trace_t *, const idVec3 *, const idClipModel *); + virtual void ClipRotation(trace_t *, const idRotation *, const idClipModel *); + virtual int ClipContents(const idClipModel *, int); + virtual void DisableClip(); + virtual void EnableClip(); + virtual void UnlinkClip(); + virtual void LinkClip(); + virtual bool EvaluateContacts(); + virtual int GetNumContacts(); + virtual const contactInfo_t *GetContact(int); + virtual void ClearContacts(); + virtual void AddContactPhysics(idPhysics *); + virtual void RemoveContactPhysics(idPhysics *); + virtual int GetNumContactPhysics(); + virtual idPhysics *GetContactPhysics(int); + virtual void ActivateContactPhysics(); + virtual bool HasGroundContacts(); + virtual bool IsGroundEntity(int); + virtual bool IsGroundClipModel(int, int); + virtual void SetPushed(int); + virtual idVec3 *GetPushedLinearVelocity(idVec3 *result, const int); + virtual idVec3 *GetPushedAngularVelocity(idVec3 *result, const int); + virtual void SetMaster(bool, const idVec3 *, const idMat3 *, const bindFlags_t); + virtual void SetLocalOrigin(const idVec3 *, int); + virtual void SetLocalAxis(const idMat3 *, int); + virtual int GetBlockingEntityNum(); + virtual int GetLinearEndTime(); + virtual int GetAngularEndTime(); + virtual bool IsInNonResidentCollisionArea(bool); + + idList clipModels; + idList mass; + idBounds bounds; + idBounds absBounds; + bool hasMaster; + bool isOrientated; + idList current; +}; diff --git a/source/engine/gamelib/physics/push.h b/source/engine/gamelib/physics/push.h new file mode 100644 index 0000000..b2761ac --- /dev/null +++ b/source/engine/gamelib/physics/push.h @@ -0,0 +1,18 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\physics\push.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14173; PDB kind: class. +class idPush +{ +public: + idClip *clip; + idList pushed; +}; + +// IDA Local Type ordinal 29474; PDB kind: typedef. +typedef unsigned __int16 ush; diff --git a/source/engine/gamelib/physics/tracemodelcache.h b/source/engine/gamelib/physics/tracemodelcache.h new file mode 100644 index 0000000..93be12b --- /dev/null +++ b/source/engine/gamelib/physics/tracemodelcache.h @@ -0,0 +1,31 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\physics\tracemodelcache.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14116; PDB kind: struct. +struct idTraceModelCache::trmCache_t +{ + idTraceModel *trm; + int refCount; + float volume; + idVec3 centerOfMass; + idMat3 inertiaTensor; + const idMaterial *material; + idCollisionModel *collisionModel; + bool hasWater; + idList waterPoints; +}; + +// IDA Local Type ordinal 14121; PDB kind: class. +class idTraceModelCache +{ +public: + idStr mapName; + idBlockAlloc cacheAllocator; + idList cache; + idHashIndex hash; +}; diff --git a/source/engine/gamelib/physics/tracemodelrecycler.h b/source/engine/gamelib/physics/tracemodelrecycler.h new file mode 100644 index 0000000..1f55c42 --- /dev/null +++ b/source/engine/gamelib/physics/tracemodelrecycler.h @@ -0,0 +1,42 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\physics\tracemodelrecycler.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14127; PDB kind: class. +class idTraceModelRecycler +{ +public: + idBlockAlloc allocator; + idList allocated; + idList free[3]; +}; + +// IDA Local Type ordinal 14150; PDB kind: struct. +struct idFXModelRecycler::fxPrtModel_t +{ + idRenderModelParticle *pmodel; + const idDeclParticle *pDecl; +}; + +// IDA Local Type ordinal 14153; PDB kind: struct. +struct idFXModelRecycler::fxStaticModel_t +{ + idRenderModel *rmodel; + idAtomicString modelName; +}; + +// IDA Local Type ordinal 14156; PDB kind: class. +class idFXModelRecycler +{ +public: + idStaticList fxPrtModels; + idHashIndex activePrtModelHash; + idHashIndex inactivePrtModelHash; + idStaticList fxStaticModels; + idHashIndex activeStaticModelHash; + idHashIndex inactiveStaticModelHash; +}; diff --git a/source/engine/gamelib/pvs/pvs.h b/source/engine/gamelib/pvs/pvs.h new file mode 100644 index 0000000..1bcd516 --- /dev/null +++ b/source/engine/gamelib/pvs/pvs.h @@ -0,0 +1,40 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\pvs\pvs.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14174; PDB kind: class. +class __declspec(align(4)) idPVS +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14175. + virtual ~idPVS(); + + idPVS::header_t header; + idStr pvsName; + unsigned __int8 *dataStart; + idPlane *planes; + idVec3 *vertices; + pvsNode_t *nodes; + pvsPortal_t *portals; + pvsArea_t *areas; + int *areaOffsets; + unsigned __int8 *areaPVS; + pvsCurrent_t currentPVS[8]; + bool bare; +}; + +// IDA Local Type ordinal 14176; PDB kind: struct. +struct idPVS::header_t +{ + int magic; + int numPlanes; + int numVertices; + int numNodes; + int numPortals; + int numAreas; + int numPVSBytes; +}; diff --git a/source/engine/gamelib/timeline/timelineevents.h b/source/engine/gamelib/timeline/timelineevents.h new file mode 100644 index 0000000..7d30cae --- /dev/null +++ b/source/engine/gamelib/timeline/timelineevents.h @@ -0,0 +1,17 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\timeline\timelineevents.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 20281; PDB kind: class. +class idSort_TimeLineEvent : public idSort_Quick +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20282. + virtual ~idSort_TimeLineEvent(); + virtual void Sort(idComponentTimeLine::idTimeLineEvent *, unsigned int); + +}; diff --git a/source/engine/gamelib/timeline/timelinekeyanimdata.h b/source/engine/gamelib/timeline/timelinekeyanimdata.h new file mode 100644 index 0000000..cabd971 --- /dev/null +++ b/source/engine/gamelib/timeline/timelinekeyanimdata.h @@ -0,0 +1,17 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\gamelib\timeline\timelinekeyanimdata.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19106; PDB kind: class. +class mgTimelineKeyAnimData +{ +public: + tlKeyType_t type; + int keySize; + idList times; + idList data; +}; diff --git a/source/engine/guis/devicecontext.h b/source/engine/guis/devicecontext.h new file mode 100644 index 0000000..c6daf52 --- /dev/null +++ b/source/engine/guis/devicecontext.h @@ -0,0 +1,23 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\guis\devicecontext.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14938; PDB kind: class. +class __declspec(align(16)) idDeviceContext +{ +public: + idRenderModelGui *gui; + const idMaterial *whiteMaterial; + const idFont *activeFont; + __declspec(align(8)) idDrawVert stretchPicVerts[32]; + unsigned __int16 stretchPicIndices[90]; + idVec2 uiScale; + idVec2 uiOffset; + idMat3 axis; + idVec3 origin; + bool identityMatrix; +}; diff --git a/source/engine/guis/font.h b/source/engine/guis/font.h new file mode 100644 index 0000000..695760d --- /dev/null +++ b/source/engine/guis/font.h @@ -0,0 +1,34 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\guis\font.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 4619; PDB kind: struct. +struct HFONT__ +{ + int unused; +}; + +// IDA Local Type ordinal 14902; PDB kind: class. +class idFont : public idResource +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14905. + virtual ~idFont(); + virtual void LoadResource(); + virtual bool ReloadIfStale(); + virtual void WriteResourceFile(); + virtual idResourceList *GetResourceList(); + virtual void Print(); + virtual void List(); + + idFont *alias; + fontInfo_t *fontInfo; + unsigned int timestamp; +}; + +// IDA Local Type ordinal 28778; PDB kind: typedef. +typedef HFONT__ *HFONT; diff --git a/source/engine/guis/swf/swf.h b/source/engine/guis/swf/swf.h new file mode 100644 index 0000000..d1ac53a --- /dev/null +++ b/source/engine/guis/swf/swf.h @@ -0,0 +1,620 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\guis\swf\swf.h +// Recovered logical types: 42 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2774; PDB kind: unknown. +enum idSWF:: : __int32 +{ + FOLLOW_NONE = 0xFFFFFFFF, + FOLLOW_TOPLEFT = 0x0, + FOLLOW_TOPCENTER = 0x1, + FOLLOW_TOPRIGHT = 0x2, + FOLLOW_CENTERLEFT = 0x3, + FOLLOW_CENTERCENTER = 0x4, + FOLLOW_CENTERRIGHT = 0x5, + FOLLOW_BOTTOMLEFT = 0x6, + FOLLOW_BOTTOMCENTER = 0x7, + FOLLOW_BOTTOMRIGHT = 0x8, +}; + +// IDA Local Type ordinal 14777; PDB kind: class. +class idSWF +{ +public: + idAtomicString filename; + unsigned int timestamp; + bool isActive; + bool inhibitControl; + bool useInhibtControl; + bool pausedRender; + float frameWidth; + float frameHeight; + unsigned __int16 frameRate; + float renderBorder; + float swfScale; + int userDeviceNumber; + int lastRenderTime; + bool mouseEnabled; + bool useMouse; + idSWFScriptObject *mouseObject; + idSWFScriptObject *hoverObject; + bool blackbars; + bool crop; + bool paused; + bool hasHitObject; + bool automaticRescale; + idSWFSprite *mainsprite; + idSWFSpriteInstance *mainspriteInstance; + idSWFScriptObject *globals; + idSWFScriptObject *shortcutKeys; + idSoundEmitter *soundEmitter; + idAtomicString atlasTextureName; + const idMaterial *atlasMaterial; + idImage *atlasImage; + bool atlasPurgable; + int atlasWidth; + int atlasHeight; + idFile *atlasFile; + idBlockAlloc spriteInstanceAllocator; + idBlockAlloc textInstanceAllocator; + idList orphanedSprites; + idList orphanedTexts; + int c_TextInstanceAdoptions; + int c_TextInstanceOrphans; + int c_SpriteInstanceAdoptions; + int c_SpriteInstanceOrphans; + idSWF::idSWFScriptFunction_shortcutKeys_clear scriptFunction_shortcutKeys_clear; + idSWF::idSWFScriptFunction_deactivate scriptFunction_deactivate; + idSWF::idSWFScriptFunction_inhibitControl scriptFunction_inhibitControl; + idSWF::idSWFScriptFunction_useInhibit scriptFunction_useInhibit; + idSWF::idSWFScriptFunction_precacheSound scriptFunction_precacheSound; + idSWF::idSWFScriptFunction_playSound scriptFunction_playSound; + idSWF::idSWFScriptFunction_stopSounds scriptFunction_stopSounds; + idSWF::idSWFScriptFunction_getPlatform scriptFunction_getPlatform; + idSWF::idSWFScriptFunction_getTruePlatform scriptFunction_getTruePlatform; + idSWF::idSWFScriptFunction_getLocalString scriptFunction_getLocalString; + idSWF::idSWFScriptFunction_isMultiplayer scriptFunction_isMultiplayer; + idSWF::idSWFScriptFunction_swapPS3Buttons scriptFunction_swapPS3Buttons; + idSWF::idSWFScriptFunction_getCVarInteger scriptFunction_getCVarInteger; + idSWF::idSWFScriptFunction_setCVarInteger scriptFunction_setCVarInteger; + idSWF::idSWFScriptFunction_strReplace scriptFunction_strReplace; + idSWF::idSWFScriptFunction_isJapanese scriptFunction_isJapanese; + idSWF::idSWFScriptFunction_acos scriptFunction_acos; + idSWF::idSWFScriptFunction_cos scriptFunction_cos; + idSWF::idSWFScriptFunction_sin scriptFunction_sin; + idSWF::idSWFScriptFunction_round scriptFunction_round; + idSWF::idSWFScriptFunction_pow scriptFunction_pow; + idSWF::idSWFScriptFunction_sqrt scriptFunction_sqrt; + idSWF::idSWFScriptFunction_abs scriptFunction_abs; + idSWF::idSWFScriptFunction_rand scriptFunction_rand; + idSWF::idSWFScriptFunction_floor scriptFunction_floor; + idSWF::idSWFScriptFunction_ceil scriptFunction_ceil; + idSWF::idSWFScriptFunction_toUpper scriptFunction_toUpper; + idSWF::idSWFScriptNativeVar_platform swfScriptVar_platform; + idSWF::idSWFScriptNativeVar_blackbars swfScriptVar_blackbars; + idSWF::idSWFScriptNativeVar_crop swfScriptVar_crop; + idSWF::idSWFScriptNativeVar_automaticRescale swfScriptVar_automaticRescale; + idSWF::idSWFScriptFunction_Object scriptFunction_Object; + idList dictionary; + idList tooltipButtonImage; + idList tooltipIconList; + const idMaterial *guiSolid; + const idMaterial *guiStencilIncr; + const idMaterial *guiStencilDecr; + const idMaterial *guiCursor_arrow; + const idMaterial *guiCursor_hand; + const idMaterial *white; + idSWF::idDecompressJPEG jpeg; + idList packImages; +}; + +// IDA Local Type ordinal 14817; PDB kind: struct. +struct __declspec(align(4)) idSWF::orphanedSprite_t +{ + idSWFSpriteInstance *spriteInstance; + bool wasPlaying; +}; + +// IDA Local Type ordinal 14819; PDB kind: struct. +struct idSWF::orphanedText_t +{ + idSWFTextInstance *textInstance; +}; + +// IDA Local Type ordinal 14823; PDB kind: class. +class idSWF::idSWFScriptFunction_shortcutKeys_clear : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14824. + virtual ~idSWFScriptFunction_shortcutKeys_clear(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 14825; PDB kind: class. +class idSWF::idSWFScriptFunction_deactivate : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14826. + virtual ~idSWFScriptFunction_deactivate(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 14827; PDB kind: class. +class idSWF::idSWFScriptFunction_inhibitControl : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14828. + virtual ~idSWFScriptFunction_inhibitControl(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 14829; PDB kind: class. +class idSWF::idSWFScriptFunction_useInhibit : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14830. + virtual ~idSWFScriptFunction_useInhibit(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 14831; PDB kind: class. +class idSWF::idSWFScriptFunction_precacheSound : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14832. + virtual ~idSWFScriptFunction_precacheSound(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 14833; PDB kind: class. +class idSWF::idSWFScriptFunction_playSound : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14834. + virtual ~idSWFScriptFunction_playSound(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 14835; PDB kind: class. +class idSWF::idSWFScriptFunction_stopSounds : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14836. + virtual ~idSWFScriptFunction_stopSounds(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 14837; PDB kind: class. +class idSWF::idSWFScriptFunction_getPlatform : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14838. + virtual ~idSWFScriptFunction_getPlatform(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 14839; PDB kind: class. +class idSWF::idSWFScriptFunction_getTruePlatform : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14840. + virtual ~idSWFScriptFunction_getTruePlatform(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 14841; PDB kind: class. +class idSWF::idSWFScriptFunction_getLocalString : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14842. + virtual ~idSWFScriptFunction_getLocalString(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 14843; PDB kind: class. +class idSWF::idSWFScriptFunction_isMultiplayer : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14844. + virtual ~idSWFScriptFunction_isMultiplayer(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 14845; PDB kind: class. +class idSWF::idSWFScriptFunction_swapPS3Buttons : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14846. + virtual ~idSWFScriptFunction_swapPS3Buttons(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 14847; PDB kind: class. +class idSWF::idSWFScriptFunction_getCVarInteger : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14848. + virtual ~idSWFScriptFunction_getCVarInteger(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 14849; PDB kind: class. +class idSWF::idSWFScriptFunction_setCVarInteger : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14850. + virtual ~idSWFScriptFunction_setCVarInteger(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 14851; PDB kind: class. +class idSWF::idSWFScriptFunction_strReplace : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14852. + virtual ~idSWFScriptFunction_strReplace(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 14853; PDB kind: class. +class idSWF::idSWFScriptFunction_isJapanese : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14854. + virtual ~idSWFScriptFunction_isJapanese(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 14855; PDB kind: class. +class idSWF::idSWFScriptFunction_acos : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14856. + virtual ~idSWFScriptFunction_acos(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 14857; PDB kind: class. +class idSWF::idSWFScriptFunction_cos : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14858. + virtual ~idSWFScriptFunction_cos(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 14859; PDB kind: class. +class idSWF::idSWFScriptFunction_sin : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14860. + virtual ~idSWFScriptFunction_sin(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 14861; PDB kind: class. +class idSWF::idSWFScriptFunction_round : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14862. + virtual ~idSWFScriptFunction_round(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 14863; PDB kind: class. +class idSWF::idSWFScriptFunction_pow : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14864. + virtual ~idSWFScriptFunction_pow(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 14865; PDB kind: class. +class idSWF::idSWFScriptFunction_sqrt : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14866. + virtual ~idSWFScriptFunction_sqrt(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 14867; PDB kind: class. +class idSWF::idSWFScriptFunction_abs : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14868. + virtual ~idSWFScriptFunction_abs(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 14869; PDB kind: class. +class idSWF::idSWFScriptFunction_rand : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14870. + virtual ~idSWFScriptFunction_rand(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 14871; PDB kind: class. +class idSWF::idSWFScriptFunction_floor : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14872. + virtual ~idSWFScriptFunction_floor(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 14873; PDB kind: class. +class idSWF::idSWFScriptFunction_ceil : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14874. + virtual ~idSWFScriptFunction_ceil(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 14875; PDB kind: class. +class idSWF::idSWFScriptFunction_toUpper : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14876. + virtual ~idSWFScriptFunction_toUpper(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 14879; PDB kind: class. +class idSWF::idSWFScriptNativeVar_platform : public idSWFScriptNativeVariable_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14880. + virtual ~idSWFScriptNativeVar_platform(); + virtual bool IsReadOnly(); + virtual void Set(idSWFScriptObject *, const idSWFScriptVar *); + virtual idSWFScriptVar *Get(idSWFScriptVar *result, idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 14883; PDB kind: class. +class idSWF::idSWFScriptNativeVar_blackbars : public idSWFScriptNativeVariable_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14884. + virtual ~idSWFScriptNativeVar_blackbars(); + virtual bool IsReadOnly(); + virtual void Set(idSWFScriptObject *, const idSWFScriptVar *); + virtual idSWFScriptVar *Get(idSWFScriptVar *result, idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 14885; PDB kind: class. +class idSWF::idSWFScriptNativeVar_crop : public idSWFScriptNativeVariable_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14886. + virtual ~idSWFScriptNativeVar_crop(); + virtual bool IsReadOnly(); + virtual void Set(idSWFScriptObject *, const idSWFScriptVar *); + virtual idSWFScriptVar *Get(idSWFScriptVar *result, idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 14887; PDB kind: class. +class idSWF::idSWFScriptNativeVar_automaticRescale : public idSWFScriptNativeVariable_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14888. + virtual ~idSWFScriptNativeVar_automaticRescale(); + virtual bool IsReadOnly(); + virtual void Set(idSWFScriptObject *, const idSWFScriptVar *); + virtual idSWFScriptVar *Get(idSWFScriptVar *result, idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 14889; PDB kind: class. +class idSWF::idSWFScriptFunction_Object : public idSWFScriptFunction +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14890. + virtual ~idSWFScriptFunction_Object(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idSWFScriptObject object; +}; + +// IDA Local Type ordinal 14916; PDB kind: struct. +struct idSWF::keyButtonImages_t +{ + const char *key; + const char *xbImage; + const char *psImage; + int width; + int height; + int baseline; +}; + +// IDA Local Type ordinal 14918; PDB kind: struct. +struct idSWF::tooltipIcon_t +{ + int startIndex; + int endIndex; + const idMaterial *material; + __int16 imageWidth; + __int16 imageHeight; + int baseline; +}; + +// IDA Local Type ordinal 14920; PDB kind: class. +class idSWF::idDecompressJPEG +{ +public: + void *vinfo; +}; + +// IDA Local Type ordinal 14921; PDB kind: struct. +struct idSWF::imageToPack_t +{ + int characterID; + idVec2i trueSize; + unsigned __int8 *imageData; + idVec2i allocSize; +}; + +// IDA Local Type ordinal 22057; PDB kind: class. +class idSWF::idSortBlocks : public idSort_Quick +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22058. + virtual ~idSortBlocks(); + virtual void Sort(idSWF::imageToPack_t *, unsigned int); + +}; + +// IDA Local Type ordinal 23387; PDB kind: struct. +struct idSWF::Inflate::__l2::local_swf_alloc_t +{ +}; diff --git a/source/engine/guis/swf/swf_bitstream.h b/source/engine/guis/swf/swf_bitstream.h new file mode 100644 index 0000000..fdb0ba0 --- /dev/null +++ b/source/engine/guis/swf/swf_bitstream.h @@ -0,0 +1,64 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\guis\swf\swf_bitstream.h +// Recovered logical types: 6 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14781; PDB kind: class. +class idSWFBitStream +{ +public: + bool free; + const unsigned __int8 *startp; + const unsigned __int8 *endp; + const unsigned __int8 *readp; + unsigned __int64 currentBit; + unsigned __int64 currentByte; +}; + +// IDA Local Type ordinal 22945; PDB kind: struct. +struct rbitstream +{ + unsigned __int8 byte; + int bits_avail; + unsigned int dataSize; + const unsigned __int8 *data; + const unsigned __int8 *cur_ptr; + unsigned int read_count; + unsigned int mark_stream_position; +}; + +// IDA Local Type ordinal 22953; PDB kind: struct. +struct wbitstream +{ + unsigned __int8 byte; + int bits_ready; + unsigned int dataSize; + unsigned __int8 *data; + unsigned __int8 *cur_ptr; + unsigned int write_count; + unsigned int mark_stream_position; +}; + +// IDA Local Type ordinal 23432; PDB kind: unknown. +union idSWFBitStream::ReadMatrix::__l2:: +{ + __vector4 vec; + int i[4]; +}; + +// IDA Local Type ordinal 23433; PDB kind: unknown. +union idSWFBitStream::ReadColorXFormRGBA::__l2:: +{ + __vector4 vec; + int i[4]; +}; + +// IDA Local Type ordinal 23434; PDB kind: unknown. +union idSWFBitStream::ReadColorXFormRGBA::__l2:: +{ + __vector4 vec; + int i[4]; +}; diff --git a/source/engine/guis/swf/swf_parmlist.h b/source/engine/guis/swf/swf_parmlist.h new file mode 100644 index 0000000..a68c9b6 --- /dev/null +++ b/source/engine/guis/swf/swf_parmlist.h @@ -0,0 +1,13 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\guis\swf\swf_parmlist.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14770; PDB kind: class. +class idSWFParmList : public idStaticList +{ +public: +}; diff --git a/source/engine/guis/swf/swf_scriptfunction.h b/source/engine/guis/swf/swf_scriptfunction.h new file mode 100644 index 0000000..7b2f89a --- /dev/null +++ b/source/engine/guis/swf/swf_scriptfunction.h @@ -0,0 +1,136 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\guis\swf\swf_scriptfunction.h +// Recovered logical types: 9 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14766; PDB kind: class. +class idSWFScriptFunction +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14771. + virtual ~idSWFScriptFunction(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 14806; PDB kind: struct. +struct __declspec(align(4)) idSWFScriptFunction_Script::parmInfo_t +{ + const char *name; + unsigned __int8 reg; +}; + +// IDA Local Type ordinal 14808; PDB kind: class. +class idSWFScriptFunction_Script : public idSWFScriptFunction +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14809. + virtual ~idSWFScriptFunction_Script(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + int refCount; + unsigned __int16 flags; + const unsigned __int8 *data; + unsigned int length; + idSWFScriptObject *prototype; + idSWFSpriteInstance *defaultSprite; + idStaticList scope; + idSWFConstantPool constants; + idList registers; + idList parameters; +}; + +// IDA Local Type ordinal 14821; PDB kind: class. +class idSWFScriptFunction_Nested : public idSWFScriptFunction +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14822. + virtual ~idSWFScriptFunction_Nested(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idSWF *pThis; +}; + +// IDA Local Type ordinal 15400; PDB kind: class. +class idSWFScriptFunction_Nested : public idSWFScriptFunction +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15401. + virtual ~idSWFScriptFunction_Nested(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPresentablePlayer *pThis; +}; + +// IDA Local Type ordinal 16092; PDB kind: class. +class idSWFScriptFunction_Nested : public idSWFScriptFunction +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16093. + virtual ~idSWFScriptFunction_Nested(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idMainMenu *pThis; +}; + +// IDA Local Type ordinal 17652; PDB kind: class. +class idScriptFunction +{ +public: + idEventArg args[16]; + idEntity *owner; + const function_t *function; +}; + +// IDA Local Type ordinal 17703; PDB kind: class. +class idSWFScriptFunction_RefCounted : public idSWFScriptFunction +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17704. + virtual ~idSWFScriptFunction_RefCounted(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + int refCount; +}; + +// IDA Local Type ordinal 20327; PDB kind: class. +class idSWFScriptFunction_CancelChatting : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20328. + virtual ~idSWFScriptFunction_CancelChatting(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idSWF *gui; +}; diff --git a/source/engine/guis/swf/swf_scriptobject.h b/source/engine/guis/swf/swf_scriptobject.h new file mode 100644 index 0000000..c803d90 --- /dev/null +++ b/source/engine/guis/swf/swf_scriptobject.h @@ -0,0 +1,176 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\guis\swf\swf_scriptobject.h +// Recovered logical types: 13 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1433; PDB kind: enum. +enum idSWFScriptObject::swfObjectType_t : __int32 +{ + SWF_OBJECT_OBJECT = 0x0, + SWF_OBJECT_ARRAY = 0x1, + SWF_OBJECT_SPRITE = 0x2, + SWF_OBJECT_TEXT = 0x3, + NUM_SWF_OBJECT_TYPES = 0x4, +}; + +// IDA Local Type ordinal 2670; PDB kind: enum. +enum idSWFScriptObject::swfNamedVarFlags_t : __int32 +{ + SWF_VAR_FLAG_NONE = 0x0, + SWF_VAR_FLAG_READONLY = 0x2, + SWF_VAR_FLAG_DONTENUM = 0x4, +}; + +// IDA Local Type ordinal 13284; PDB kind: class. +class idSuperScriptObject : public idSSObject +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13286. + virtual void Init(); + virtual void Destroy(); + virtual void _OnActivate(int); + virtual void _OnTrigger(int); + virtual void _OnActivateTargets(int); + virtual void _OnActionReached(int, int, bool); + virtual void _OnGoalReach(int); + virtual void _OnGoalAssigned(int); + virtual void _OnDamage(int, float); + virtual void _OnDeath(int); + virtual void _OnLeftGoal(int); + virtual void _OnReachGoal(int); + virtual void _OnLeaveAction(int); + virtual void _OnReachAction(int); + virtual void _OnAssignedGoal(int); + virtual void _OnAnimNotify(const char *); + virtual void _OnAnimEnd(); + virtual void _OnAnimStart(); + virtual void _OnMoverNotify(const char *); + virtual void _OnTargetSpawn(int); + virtual void _OnEnter(int); + virtual void _OnExit(int); + virtual void _OnUse(int); + virtual const char *_name(); + virtual bool _isTypeOf(const char *); + virtual int _getEntity(); + virtual void _setEntity(int); + virtual void (__fastcall *_getThreadFunction(const char *))(idSSObject *, void *); + virtual bool _isNotifyFunction(const char *); + virtual void *_getDeclPtr(); + virtual ~idSuperScriptObject(); + virtual void OnActivate(ssEntity); + virtual void OnTrigger(ssEntity); + virtual void OnActivateTargets(ssEntity); + virtual void OnActionReached(ssEntity, ssEntity, bool); + virtual void OnGoalReach(ssEntity); + virtual void OnGoalAssigned(ssEntity); + virtual void OnDamage(ssEntity, float); + virtual void OnDeath(ssEntity); + virtual void OnLeftGoal(ssEntity); + virtual void OnReachGoal(ssEntity); + virtual void OnLeaveAction(ssEntity); + virtual void OnReachAction(ssEntity); + virtual void OnAssignedGoal(ssEntity); + virtual void OnAnimNotify(ssString); + virtual void OnAnimEnd(); + virtual void OnAnimStart(); + virtual void OnMoverNotify(ssString); + virtual void OnTargetSpawn(ssEntity); + virtual void OnEnter(ssEntity); + virtual void OnExit(ssEntity); + virtual void OnUse(ssEntity); + + ssEntity self; +}; + +// IDA Local Type ordinal 13488; PDB kind: class. +class idScriptObject : public idClass +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13489. + virtual idTypeInfo *GetType(); + virtual ~idScriptObject(); + + idTypeDef *type; + unsigned __int8 *data; +}; + +// IDA Local Type ordinal 13874; PDB kind: struct. +struct idSuperScriptObject::threadData1_t +{ + void (__fastcall *realFunc)(idSSObject *, ssEntity); + const ssEntity *p1; +}; + +// IDA Local Type ordinal 14000; PDB kind: struct. +struct idSuperScriptObject::threadData2_t +{ + void (__fastcall *realFunc)(idSSObject *, musicTensionStates_t, tensionTransition_t); + const musicTensionStates_t *p1; + const tensionTransition_t *p2; +}; + +// IDA Local Type ordinal 14001; PDB kind: struct. +struct idSuperScriptObject::threadData2_t +{ + void (__fastcall *realFunc)(idSSObject *, ssEntity, float); + const ssEntity *p1; + const float *p2; +}; + +// IDA Local Type ordinal 14002; PDB kind: struct. +struct idSuperScriptObject::threadData3_t +{ + void (__fastcall *realFunc)(idSSObject *, ssEntity, float, bool); + const ssEntity *p1; + const float *p2; + const bool *p3; +}; + +// IDA Local Type ordinal 14003; PDB kind: struct. +struct idSuperScriptObject::threadData2_t +{ + void (__fastcall *realFunc)(idSSObject *, ssString, int); + const ssString *p1; + const int *p2; +}; + +// IDA Local Type ordinal 14004; PDB kind: struct. +struct idSuperScriptObject::threadData2_t +{ + void (__fastcall *realFunc)(idSSObject *, ssString, float); + const ssString *p1; + const float *p2; +}; + +// IDA Local Type ordinal 14764; PDB kind: class. +class idSWFScriptObject +{ +public: + int refCount; + idList variables; + int variablesHash[16]; + idSWFScriptObject *prototype; + idSWFScriptObject::swfObjectType_t objectType; + idSWFScriptObject::swfObjectData_t data; +}; + +// IDA Local Type ordinal 14775; PDB kind: struct. +struct idSWFScriptObject::swfNamedVar_t +{ + int index; + int hashNext; + idAtomicString name; + idSWFScriptVar value; + idSWFScriptNativeVariable *native; + int flags; +}; + +// IDA Local Type ordinal 14810; PDB kind: union. +union idSWFScriptObject::swfObjectData_t +{ + idSWFSpriteInstance *sprite; + idSWFTextInstance *text; +}; diff --git a/source/engine/guis/swf/swf_scriptvar.h b/source/engine/guis/swf/swf_scriptvar.h new file mode 100644 index 0000000..78cd077 --- /dev/null +++ b/source/engine/guis/swf/swf_scriptvar.h @@ -0,0 +1,40 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\guis\swf\swf_scriptvar.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1204; PDB kind: enum. +enum idSWFScriptVar::swfScriptVarType : __int32 +{ + SWF_VAR_STRINGID = 0x0, + SWF_VAR_STRING = 0x1, + SWF_VAR_FLOAT = 0x2, + SWF_VAR_NULL = 0x3, + SWF_VAR_UNDEF = 0x4, + SWF_VAR_BOOL = 0x5, + SWF_VAR_INTEGER = 0x6, + SWF_VAR_FUNCTION = 0x7, + SWF_VAR_OBJECT = 0x8, +}; + +// IDA Local Type ordinal 14767; PDB kind: class. +class idSWFScriptVar +{ +public: + idSWFScriptVar::swfScriptVarType type; + idSWFScriptVar::swfScriptVarValue_t value; +}; + +// IDA Local Type ordinal 14772; PDB kind: union. +union idSWFScriptVar::swfScriptVarValue_t +{ + float f; + int i; + bool b; + idSWFScriptObject *object; + idSWFScriptString *string; + idSWFScriptFunction *function; +}; diff --git a/source/engine/guis/swf/swf_shapeparser.h b/source/engine/guis/swf/swf_shapeparser.h new file mode 100644 index 0000000..0aa222a --- /dev/null +++ b/source/engine/guis/swf/swf_shapeparser.h @@ -0,0 +1,68 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\guis\swf\swf_shapeparser.h +// Recovered logical types: 7 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14901; PDB kind: class. +class idSWFShape +{ +public: + swfRect_t startBounds; + swfRect_t endBounds; + idList fillDraws; + idList lineDraws; +}; + +// IDA Local Type ordinal 21586; PDB kind: struct. +struct idSWFShapeParser::swfSPEdge_t +{ + unsigned __int16 v0; + unsigned __int16 v1; + unsigned __int16 cp; +}; + +// IDA Local Type ordinal 21587; PDB kind: struct. +struct idSWFShapeParser::swfSPMorphEdge_t +{ + idSWFShapeParser::swfSPEdge_t start; + idSWFShapeParser::swfSPEdge_t end; +}; + +// IDA Local Type ordinal 21589; PDB kind: struct. +struct idSWFShapeParser::swfSPLineLoop_t +{ + bool hole; + idList vindex1; + idList vindex2; +}; + +// IDA Local Type ordinal 21591; PDB kind: struct. +struct idSWFShapeParser::swfSPDrawFill_t +{ + swfFillStyle_t style; + idList edges; + idList loops; +}; + +// IDA Local Type ordinal 21593; PDB kind: struct. +struct idSWFShapeParser::swfSPDrawLine_t +{ + swfLineStyle_t style; + idList edges; +}; + +// IDA Local Type ordinal 21595; PDB kind: class. +class idSWFShapeParser +{ +public: + bool extendedCount; + bool rgba; + bool morph; + bool lineStyle2; + idList verts; + idList fillDraws; + idList lineDraws; +}; diff --git a/source/engine/guis/swf/swf_spriteinstance.h b/source/engine/guis/swf/swf_spriteinstance.h new file mode 100644 index 0000000..85894f6 --- /dev/null +++ b/source/engine/guis/swf/swf_spriteinstance.h @@ -0,0 +1,62 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\guis\swf\swf_spriteinstance.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14786; PDB kind: class. +class idSWFSpriteInstance +{ +public: + bool isPlaying; + bool isVisible; + bool childrenRunning; + bool firstRun; + unsigned __int16 currentFrame; + unsigned __int16 frameCount; + idSWFSprite *sprite; + idSWFSpriteInstance *parent; + int depth; + int itemIndex; + const idMaterial *materialOverride; + unsigned __int16 materialWidth; + unsigned __int16 materialHeight; + float xOffset; + float yOffset; + idSWFScriptObject *scriptObject; + idList displayList; + idAtomicString name; + idList actions; + idSWFScriptFunction_Script *actionScript; + idSWFScriptVar onEnterFrame; + int followBorder; +}; + +// IDA Local Type ordinal 14799; PDB kind: struct. +struct idSWFSpriteInstance::swfAction_t +{ + const unsigned __int8 *data; + unsigned int dataLength; +}; + +// IDA Local Type ordinal 21856; PDB kind: struct. +struct __declspec(align(4)) idSWFSpriteInstance::placeObject2Data_t +{ + unsigned __int64 flags; + int depth; + int characterID; + idStr name; + swfMatrix_t matrix; + swfColorXform_t cxf; + float ratio; + unsigned __int16 clipDepth; +}; + +// IDA Local Type ordinal 21857; PDB kind: struct. +struct __declspec(align(8)) idSWFSpriteInstance::placeObject3Data_t +{ + unsigned __int64 flags; + unsigned __int16 blendMode; +}; diff --git a/source/engine/guis/swf/swf_sprites.h b/source/engine/guis/swf/swf_sprites.h new file mode 100644 index 0000000..3206257 --- /dev/null +++ b/source/engine/guis/swf/swf_sprites.h @@ -0,0 +1,34 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\guis\swf\swf_sprites.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14779; PDB kind: struct. +struct idSWFSprite::swfFrameLabel_t +{ + idAtomicString frameLabel; + unsigned int frameNum; +}; + +// IDA Local Type ordinal 14782; PDB kind: struct. +struct idSWFSprite::swfSpriteCommand_t +{ + swfTag_t tag; + idSWFBitStream stream; +}; + +// IDA Local Type ordinal 14785; PDB kind: class. +class idSWFSprite +{ +public: + idSWF *swf; + unsigned __int16 frameCount; + idList frameOffsets; + idList frameLabels; + idList commands; + idList doInitActions; + unsigned __int8 *commandBuffer; +}; diff --git a/source/engine/guis/swf/swf_textinstance.h b/source/engine/guis/swf/swf_textinstance.h new file mode 100644 index 0000000..2b5df52 --- /dev/null +++ b/source/engine/guis/swf/swf_textinstance.h @@ -0,0 +1,79 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\guis\swf\swf_textinstance.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14796; PDB kind: class. +class idSWFTextInstance +{ +public: + idSWFEditText *editText; + idSWF *swf; + idSWFSpriteInstance *parent; + int depth; + idSWFScriptObject *scriptObject; + idAtomicString name; + idStr text; + idStr randomtext; + idStr variable; + swfColorRGBA_t color; + bool visible; + bool tooltip; + int bindset; + int selectionStart; + int selectionEnd; + int scroll; + int scrollTime; + int maxscroll; + bool shiftHeld; + int lastInputTime; + bool useDropShadow; + bool useStroke; + float strokeStrength; + float strokeWeight; + int textLength; + bool lengthCalculated; + swfTextRenderMode_t renderMode; + bool generatingText; + int rndSpotsVisible; + int rndSpacesVisible; + int charMultiplier; + int textSpotsVisible; + int rndTime; + int startRndTime; + int prevReplaceIndex; + bool triggerGenerate; + int renderDelay; + bool scrollUpdate; + idStr soundClip; + bool needsSoundUpdate; + idList indexArray; + idRandom2 rnd; + bool isSubtitle; + int subLength; + int subCharDisplayTime; + int subAlign; + bool subUpdating; + int subCharStartIndex; + int subNextStartIndex; + int subCharEndIndex; + int subDisplayTime; + int subStartTime; + int subSourceID; + idStr subtitleText; + bool subNeedsSwitch; + bool subForceKillQueued; + bool subForceKill; + int subKillTimeDelay; + int subSwitchTime; + int subLastWordIndex; + int subPrevLastWordIndex; + idStr subSpeaker; + bool subWaitClear; + bool subInitialLine; + int inputTextStartChar; + idList subtitleTimingInfo; +}; diff --git a/source/engine/guis/swf/swf_types.h b/source/engine/guis/swf/swf_types.h new file mode 100644 index 0000000..712b5f7 --- /dev/null +++ b/source/engine/guis/swf/swf_types.h @@ -0,0 +1,21 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\guis\swf\swf_types.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2420; PDB kind: enum. +enum swfDictType_t : __int32 +{ + SWF_DICT_NULL = 0x0, + SWF_DICT_IMAGE = 0x1, + SWF_DICT_SHAPE = 0x2, + SWF_DICT_MORPH = 0x3, + SWF_DICT_SPRITE = 0x4, + SWF_DICT_FONT = 0x5, + SWF_DICT_TEXT = 0x6, + SWF_DICT_EDITTEXT = 0x7, + NUM_DICT_TYPES = 0x8, +}; diff --git a/source/engine/mapfile/mapfile.h b/source/engine/mapfile/mapfile.h new file mode 100644 index 0000000..cdb9d0f --- /dev/null +++ b/source/engine/mapfile/mapfile.h @@ -0,0 +1,29 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\mapfile\mapfile.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15161; PDB kind: class. +class __declspec(align(4)) idMapFile +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15162. + virtual ~idMapFile(); + + idStr name; + int version; + unsigned int fileTime; + unsigned int geometryCRC; + bool hasPrimitiveData; + idList entities; + idMapEditorStates groupStates; + idList referenceMaps; + idMapEntity *parentReference; + bool expandReferences; + idGame *game; + bool entitiesAreReference; + bool ignoreGroupInfo; +}; diff --git a/source/engine/models/cloth/clothsim.h b/source/engine/models/cloth/clothsim.h new file mode 100644 index 0000000..b07f1d1 --- /dev/null +++ b/source/engine/models/cloth/clothsim.h @@ -0,0 +1,36 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\cloth\clothsim.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15216; PDB kind: class. +class idClothSim +{ +public: + const idDeclCloth *clothDecl; + int width; + int height; + float hSpacing; + float vSpacing; + idVec3 origin; + idMat3 axis; + idVec3 windDirection; + idVec3 gravity; + int numIterations; + float timeDelta; + idClothParticle *cloth; + int numClothParticles; + int currentDeferred; + idBounds *clothBoundsFromJob; + idBounds clothBounds; + clothParms_t *clothParms; + bool isRect; + idList springs; + idList permanentCollisionSpheres; + idList temporaryCollisionSpheres[2]; + idList weaponTraces[2]; + idPlane collisionPlane[2]; +}; diff --git a/source/engine/models/cloth/declcloth.h b/source/engine/models/cloth/declcloth.h new file mode 100644 index 0000000..b855c2b --- /dev/null +++ b/source/engine/models/cloth/declcloth.h @@ -0,0 +1,77 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\cloth\declcloth.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15201; PDB kind: class. +class idDeclCloth::ropeInfo +{ +public: + idList positions; + idList inverseAxis; + idList,5> indexOfJointToAttachTo; +}; + +// IDA Local Type ordinal 15203; PDB kind: struct. +struct __declspec(align(4)) idDeclCloth::particleInfo_t +{ + idVec3 position; + idIndex jointIndex; + int forwardIndex; + int rightIndex; + bool anchored; +}; + +// IDA Local Type ordinal 15205; PDB kind: struct. +struct idDeclCloth::springInfo_t +{ + unsigned __int8 index1; + unsigned __int8 index2; +}; + +// IDA Local Type ordinal 15207; PDB kind: class. +class idDeclCloth : public idDecl +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15208. + virtual ~idDeclCloth(); + 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(); + + int width; + int height; + float vSpacing; + float hSpacing; + float gravity; + float mass; + float friction; + float collisionFriction; + float springLength; + float springFriction; + float springMaxLengthMultiplier; + clothType_t type; + clothSprings_t springType; + const idMaterial *material; + const idDeclMD6 *clothMD6; + const idDeclFX *clothDeclFX; + bool md6IsBound; + idList ropeData; + idList particleData; + idList springData; +}; diff --git a/source/engine/models/cloth/rendermodelcloth.h b/source/engine/models/cloth/rendermodelcloth.h new file mode 100644 index 0000000..8cf002b --- /dev/null +++ b/source/engine/models/cloth/rendermodelcloth.h @@ -0,0 +1,83 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\cloth\rendermodelcloth.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1881; PDB kind: enum. +enum idRenderModelCloth::idClothType_t : __int32 +{ + CLOTH_INVALID = 0x0, + CLOTH_GENERATED = 0x1, + CLOTH_FLAG_SQUARE = 0x2, + CLOTH_FLAG_TRIANGLE = 0x3, + CLOTH_TARP_SQUARE = 0x4, + CLOTH_TARP_TRIANGLE = 0x5, + MAX_CLOTH_TYPE = 0x6, +}; + +// IDA Local Type ordinal 2519; PDB kind: enum. +enum idRenderModelCloth::clothAttachInfo_t::idClothAnchorType_t : __int32 +{ + ANCHOR_INVALID = 0x0, + ANCHOR_CORNER1 = 0x1, + ANCHOR_CORNER2 = 0x2, + ANCHOR_CORNER3 = 0x3, + ANCHOR_CORNER4 = 0x4, + ANCHOR_MID1 = 0x5, + ANCHOR_MID2 = 0x6, + ANCHOR_MID3 = 0x7, + ANCHOR_MID4 = 0x8, + ANCHOR_CENTER = 0x9, + ANCHOR_DEFINED = 0xA, + MAX_ANCHOR_TYPE = 0xB, +}; + +// IDA Local Type ordinal 19771; PDB kind: struct. +struct __declspec(align(4)) idRenderModelCloth::clothAttachInfo_t +{ + idVec3 point; + idRenderModelCloth::clothAttachInfo_t::idClothAnchorType_t clothAnchorType; + int row; + int col; + bool tempAnchor; +}; + +// IDA Local Type ordinal 19773; PDB kind: class. +class __declspec(align(16)) idRenderModelCloth : public idRenderModel +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19774. + virtual void Save(idFile *); + virtual bool Load(idFile *); + virtual void SerializeSnapshot(idSerializer *, bool); + virtual const idDeclSkins *GetSkins(); + virtual idHandle *AddDecalFromPoint(idHandle *result, const decalParams_t *, const int, const idVec3 *, const idVec3 *, idIndex); + virtual bool RemoveDecal(const idHandle); + virtual void RemoveDecals(); + virtual void FreeSurfaces(); + virtual bool CommitSubclass(); + virtual bool UpdateInView(const idRenderView *, const idRenderView *, idRenderModelUpdateTools *); + virtual const idList *GetSourceSurfaces(); + virtual ~idRenderModelCloth(); + + idClothSim *clothSimulation; + idVertexBuffer vertexBuffer[3]; + idIndexBuffer indexBuffer; + idDrawVert *deferredVerts; + int numVerts; + int currentIndex; + idBounds *clothBounds; + clothParms_t *clothParms; + bool rect; + const idDeclCloth *clothSystem; + idRenderModelCloth::idClothType_t clothType; + idList attachPoints; + idList collisionSpheres; + int width; + int height; + float vSpacing; + float hSpacing; +}; diff --git a/source/engine/models/cuttable/contourinfo.h b/source/engine/models/cuttable/contourinfo.h new file mode 100644 index 0000000..2fc0618 --- /dev/null +++ b/source/engine/models/cuttable/contourinfo.h @@ -0,0 +1,24 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\cuttable\contourinfo.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15915; PDB kind: class. +class Contour +{ +public: + Contour *next; + ContourEdge_t *edges; + idBounds2D bound; + int numEdges; +}; + +// IDA Local Type ordinal 15917; PDB kind: struct. +struct ContourNode_t +{ + ContourNode_t *next; + idVec2i pos; +}; diff --git a/source/engine/models/cuttable/convexhull.h b/source/engine/models/cuttable/convexhull.h new file mode 100644 index 0000000..0fa14b9 --- /dev/null +++ b/source/engine/models/cuttable/convexhull.h @@ -0,0 +1,17 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\cuttable\convexhull.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1975; PDB kind: unknown. +typedef idRenderModelCuttableDynamic:: idConvexHull::; + +// IDA Local Type ordinal 19981; PDB kind: class. +class idConvexHull +{ +public: + idStaticList vertices; +}; diff --git a/source/engine/models/cuttable/cutterclip.h b/source/engine/models/cuttable/cutterclip.h new file mode 100644 index 0000000..8cf6cdd --- /dev/null +++ b/source/engine/models/cuttable/cutterclip.h @@ -0,0 +1,227 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\cuttable\cutterclip.h +// Recovered logical types: 16 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2768; PDB kind: unknown. +enum idCutterClip:: : __int32 +{ + EDGESIDE_LEFT = 0x0, + EDGESIDE_RIGHT = 0x1, +}; + +// IDA Local Type ordinal 2769; PDB kind: enum. +enum idCutterClip::horizontalDirection_t : __int32 +{ + HORIZONTALDIRECTION_NONE = 0x0, + HORIZONTALDIRECTION_LEFTTORIGHT = 0x1, + HORIZONTALDIRECTION_RIGHTTOLEFT = 0x2, +}; + +// IDA Local Type ordinal 2770; PDB kind: enum. +enum idCutterClip::intersectProtects_t : __int32 +{ + INTERSECTPROTECTS_NONE = 0x0, + INTERSECTPROTECTS_LEFT = 0x1, + INTERSECTPROTECTS_RIGHT = 0x2, + INTERSECTPROTECTS_BOTH = 0x3, +}; + +// IDA Local Type ordinal 2771; PDB kind: enum. +enum idCutterClip::addEdge_t : __int32 +{ + ADDEDGE_NONE = 0x0, + ADDEDGE_LEFT = 0x1, + ADDEDGE_RIGHT = 0x2, + ADDEDGE_BOTH = 0x3, +}; + +// IDA Local Type ordinal 2772; PDB kind: enum. +enum idCutterClip::memPool_t : __int32 +{ + NUM_POOLSCANBEAMS = 0x100, + NUM_POOLLOCALMINIMAS = 0x100, + NUM_POOLEDGES = 0x400, + NUM_POOLPOLYGONS = 0x20, + NUM_POOLPOLYGONPOINTS = 0x400, + NUM_POOLINTERSECTPOINTS = 0x80, + NUM_POOLJOINRECORDS = 0x80, + NUM_POOLHORIZONTALJOINRECORDS = 0x80, + NUM_POOLNESTEDPOLYGONS = 0x20, + NUM_POOLCONTOURS = 0x20, + NUM_POOLCONTOUREDGES = 0x400, + NUM_POOLCONTOURNODES = 0x400, +}; + +// IDA Local Type ordinal 17335; PDB kind: struct. +struct idCutterClip::Edge_t +{ + idCutterClip::Edge_t *prev; + idCutterClip::Edge_t *next; + idCutterClip::Edge_t *prevLML; + idCutterClip::Edge_t *nextLML; + idCutterClip::Edge_t *prevAEL; + idCutterClip::Edge_t *nextAEL; + idCutterClip::Edge_t *prevSEL; + idCutterClip::Edge_t *nextSEL; + idVec2i top; + idVec2i bottom; + idVec2i current; + float deltaX; + int tmpX; + __int16 windingCount; + __int16 windingCount2; + __int16 outIndex; + __int16 windingDelta; + unsigned __int16 : 1; + unsigned __int16 __free : 12; + unsigned __int16 horizontal : 1; + unsigned __int16 polyType : 1; + unsigned __int16 side : 1; + int ID; +}; + +// IDA Local Type ordinal 17336; PDB kind: struct. +struct idCutterClip::Scanbeam_t +{ + idCutterClip::Scanbeam_t *next; + int y; +}; + +// IDA Local Type ordinal 17337; PDB kind: struct. +struct __declspec(align(4)) idCutterClip::Polygon_t +{ + idCutterClip::Polygon_t *next; + idCutterClip::Polygon_t *firstLeft; + idCutterClip::Polygon_t *appendLink; + idCutterClip::PolygonPoint_t *points; + idCutterClip::PolygonPoint_t *bottomPoint; + idCutterClip::Edge_t *bottomEdge1; + idCutterClip::Edge_t *bottomEdge2; + int index; + bool connected; + bool hole; +}; + +// IDA Local Type ordinal 17338; PDB kind: struct. +struct idCutterClip::PolygonPoint_t +{ + idCutterClip::PolygonPoint_t *next; + idCutterClip::PolygonPoint_t *prev; + idVec2i pos; + int index; +}; + +// IDA Local Type ordinal 17339; PDB kind: struct. +struct idCutterClip::NestedPolygon_t +{ + idCutterClip::NestedPolygon_t *next; + idCutterClip::Polygon_t *outer; + idCutterClip::Polygon_t *inner; +}; + +// IDA Local Type ordinal 17340; PDB kind: struct. +struct idCutterClip::LocalMinima_t +{ + idCutterClip::LocalMinima_t *next; + idCutterClip::Edge_t *leftBound; + idCutterClip::Edge_t *rightBound; + int y; +}; + +// IDA Local Type ordinal 17341; PDB kind: struct. +struct idCutterClip::IntersectNode_t +{ + idCutterClip::IntersectNode_t *next; + idCutterClip::Edge_t *edge1; + idCutterClip::Edge_t *edge2; + idVec2i pos; +}; + +// IDA Local Type ordinal 17342; PDB kind: struct. +struct idCutterClip::JoinRecord_t +{ + idCutterClip::JoinRecord_t *next; + idVec2i point1a; + idVec2i point1b; + idVec2i point2a; + idVec2i point2b; + __int16 polyIndex1; + __int16 polyIndex2; +}; + +// IDA Local Type ordinal 17343; PDB kind: struct. +struct __declspec(align(4)) idCutterClip::HorizontalJoinRecord_t +{ + idCutterClip::HorizontalJoinRecord_t *next; + idCutterClip::Edge_t *edge; + __int16 savedIndex; +}; + +// IDA Local Type ordinal 17351; PDB kind: class. +class __declspec(align(4)) idCutterClip +{ +public: + int memoryPeek; + int memoryCurrent; + int numEdges; + int maxEdges; + int numLocalMinima; + int maxLocalMinima; + int numScanbeams; + int maxScanbeams; + int numPolygons; + int maxPolygons; + int numPolygonPoints; + int maxPolygonPoints; + int numNestedPolygons; + int maxNestedPolygons; + int numJoinRecords; + int maxJoinRecords; + int numHorizontalJoinRecords; + int maxHorizontalJoinRecords; + int numIntersectNode; + int maxIntersectNode; + idCutterClip::Edge_t *edgesPool; + idCutterClip::Scanbeam_t *scanbeamsPool; + idCutterClip::Polygon_t *polygonsPool; + idCutterClip::PolygonPoint_t *polygonPointsPool; + idCutterClip::NestedPolygon_t *nestedPolygonsPool; + idCutterClip::LocalMinima_t *localMinimasPool; + idCutterClip::IntersectNode_t *intersectNodesPool; + idCutterClip::JoinRecord_t *joinRecordsPool; + idCutterClip::HorizontalJoinRecord_t *horizontalJoinRecordsPool; + idCutterClip::LocalMinima_t *currentLocalMinima; + idCutterClip::LocalMinima_t *localMinimaList; + idCutterClip::Scanbeam_t *scanbeams; + idCutterClip::Edge_t *activeEdges; + idCutterClip::Edge_t *sortedEdges; + idCutterClip::IntersectNode_t *intersectNodes; + idCutterClip::NestedPolygon_t *currentNestedPolygon; + idCutterClip::Polygon_t *currentInnerPolygon; + idList edges; + idList polygonPoints; + idList polygons; + idList nestedPolygons; + idList joins; + idList horizontalJoins; + idList poolAllocations; + fillType_t fillTypeSubject; + fillType_t fillTypeClip; + clipMode_t clipMode; + unsigned __int8 : 7; + __int8 running : 1; +}; + +// IDA Local Type ordinal 22052; PDB kind: class. +class idCutterClip::idSort_Polygons : public idSort_Quick +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22053. + virtual ~idSort_Polygons(); + virtual void Sort(idCutterClip::Polygon_t **, unsigned int); + +}; diff --git a/source/engine/models/cuttable/cuttergraph.h b/source/engine/models/cuttable/cuttergraph.h new file mode 100644 index 0000000..ad1a801 --- /dev/null +++ b/source/engine/models/cuttable/cuttergraph.h @@ -0,0 +1,148 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\cuttable\cuttergraph.h +// Recovered logical types: 14 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2616; PDB kind: unknown. +enum idCutterGraphManager:: : __int32 +{ + NUM_POOLNODES = 0x400, + NUM_POOLLINKS = 0x400, +}; + +// IDA Local Type ordinal 15906; PDB kind: class. +class idCutterGraphManager +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15907. + virtual ~idCutterGraphManager(); + + idList savedContours; + idList savedNodes; + idList invalidNodes; + idList graphs; + idList linksPoolBlock; + idList nodesPoolBlock; + idList edgesPoolBlock; + idList linksPool; + idList nodesPool; + idList edgesPool; + ContourManager *contourManager; + idCutterGraphManager::Graph *graph; +}; + +// IDA Local Type ordinal 15908; PDB kind: struct. +struct idCutterGraphManager::savedContour_t +{ + idList contourPoints; + idColor color; + idStr text; +}; + +// IDA Local Type ordinal 15910; PDB kind: struct. +struct idCutterGraphManager::savedPathPos_t +{ + idVec3 pos; + idVec2 localPos; + idColor color; +}; + +// IDA Local Type ordinal 15912; PDB kind: struct. +struct idCutterGraphManager::Node_t +{ + idCutterGraphManager::Node_t *next; + idCutterGraphManager::Link_t *link; + idVec2i pos; + __int32 allocated : 1; + __int32 id : 31; +}; + +// IDA Local Type ordinal 15913; PDB kind: struct. +struct idCutterGraphManager::Link_t +{ + idCutterGraphManager::Link_t *next; + idCutterGraphManager::Edge_t *edge; + idCutterGraphManager::Node_t *node; + unsigned __int32 : 31; + __int32 allocated : 1; + int invalid; +}; + +// IDA Local Type ordinal 15914; PDB kind: struct. +struct idCutterGraphManager::Edge_t +{ + idCutterGraphManager::Edge_t *next; + idCutterGraphManager::Node_t *node1; + idCutterGraphManager::Node_t *node2; + Contour *contour; + ContourEdge_t *contourEdge; + unsigned __int32 : 30; + __int32 allocated : 1; + __int32 visited : 1; +}; + +// IDA Local Type ordinal 15919; PDB kind: struct. +struct idCutterGraphManager::nodeHandle_t +{ + idCutterGraphManager::Node_t *data; +}; + +// IDA Local Type ordinal 15921; PDB kind: struct. +struct idCutterGraphManager::edgeHandle_t +{ + idCutterGraphManager::Edge_t *data; +}; + +// IDA Local Type ordinal 15923; PDB kind: struct. +struct idCutterGraphManager::linkHandle_t +{ + idCutterGraphManager::Link_t *data; +}; + +// IDA Local Type ordinal 15925; PDB kind: class. +class idCutterGraphManager::IDHeap +{ +public: + idList buffer; + unsigned __int32 isStatic : 1; + unsigned __int32 index : 31; + int numBits; +}; + +// IDA Local Type ordinal 15926; PDB kind: class. +class idCutterGraphManager::Graph +{ +public: + idCutterGraphManager::Node_t *lastNode; + idCutterGraphManager::Node_t *prevNode; + idList nodes; + idList edges; + idList links; + Contour *contoursOuter; + Contour *contoursInner; + idCutterGraphManager::IDHeap idheap; + idStr name; + idMat3 inverse; + idMat3 orientation; + idVec3 position; + idVec3 normal; + idVec3 left; + idVec3 down; +}; + +// IDA Local Type ordinal 15927; PDB kind: struct. +struct idCutterGraphManager::graph_t +{ + idCutterGraphManager::Graph *graph; +}; + +// IDA Local Type ordinal 18655; PDB kind: class. +class idCutterGraphState +{ +public: + idCutterGraphManager *manager; + idList graphHandles; +}; diff --git a/source/engine/models/cuttable/earcliptriangulate.h b/source/engine/models/cuttable/earcliptriangulate.h new file mode 100644 index 0000000..1222dea --- /dev/null +++ b/source/engine/models/cuttable/earcliptriangulate.h @@ -0,0 +1,73 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\cuttable\earcliptriangulate.h +// Recovered logical types: 6 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19982; PDB kind: unknown. +union idEarClipTriangulate::Vertex_t:: +{ + __int16 convex; + __int16 reflex; + __int16 value; +}; + +// IDA Local Type ordinal 19983; PDB kind: unknown. +union idEarClipTriangulate::Vertex_t:: +{ + __int16 convex; + __int16 reflex; + __int16 value; +}; + +// IDA Local Type ordinal 19984; PDB kind: struct. +struct idEarClipTriangulate::Vertex_t +{ + __int16 index; + __int16 prevVertex; + __int16 nextVertex; + __int16 prevEar; + __int16 nextEar; + idEarClipTriangulate::Vertex_t:: prevShared; + idEarClipTriangulate::Vertex_t:: nextShared; + __int16 __free : 14; + __int16 isEar : 1; + __int16 isConvex : 1; +}; + +// IDA Local Type ordinal 19987; PDB kind: struct. +struct __declspec(align(4)) idEarClipTriangulate::Contour_t +{ + idList indices; + float valueMax; + __int16 indexMax; +}; + +// IDA Local Type ordinal 19989; PDB kind: class. +class idEarClipTriangulate::IndexMap +{ +public: + idHashIndex hashIndex; + idList indices; +}; + +// IDA Local Type ordinal 19990; PDB kind: class. +class idEarClipTriangulate +{ +public: + idList positions; + idList vertices; + idList contours; + idList indices; + idList triangles; + idEarClipTriangulate::IndexMap indexMap; + int headConvex; + int tailConvex; + int headReflex; + int tailReflex; + int headEar; + int tailEar; + int maxIndex; +}; diff --git a/source/engine/models/cuttable/rendermodelcuttablebeams.h b/source/engine/models/cuttable/rendermodelcuttablebeams.h new file mode 100644 index 0000000..4e2143a --- /dev/null +++ b/source/engine/models/cuttable/rendermodelcuttablebeams.h @@ -0,0 +1,44 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\cuttable\rendermodelcuttablebeams.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2743; PDB kind: unknown. +enum idRenderModelCuttableBeams:: : __int32 +{ + MAX_BEAM_QUADS = 0x1000, + MAX_BEAM_VERTICES = 0x4000, + MAX_BEAM_INDICES = 0x6000, + NUM_VERTEX_BUFFERS = 0x3, + SURFACE_INCISIONS = 0x0, + SURFACE_INCISIONCROSSINGS = 0x1, + SURFACE_INCISIONENDPOINTS = 0x2, + SURFACE_MAX = 0x3, +}; + +// IDA Local Type ordinal 15932; PDB kind: class. +class idRenderModelCuttableBeams : public idRenderModel +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15933. + virtual void Save(idFile *); + virtual bool Load(idFile *); + virtual void SerializeSnapshot(idSerializer *, bool); + virtual const idDeclSkins *GetSkins(); + virtual idHandle *AddDecalFromPoint(idHandle *result, const decalParams_t *, const int, const idVec3 *, const idVec3 *, idIndex); + virtual bool RemoveDecal(const idHandle); + virtual void RemoveDecals(); + virtual void FreeSurfaces(); + virtual bool CommitSubclass(); + virtual bool UpdateInView(const idRenderView *, const idRenderView *, idRenderModelUpdateTools *); + virtual const idList *GetSourceSurfaces(); + virtual ~idRenderModelCuttableBeams(); + + const idMaterial *materialIncision; + const idMaterial *materialIncisionCross; + idCutterGraphManager *graphManager; + int graphHandle; +}; diff --git a/source/engine/models/cuttable/rendermodelcuttabledynamic.h b/source/engine/models/cuttable/rendermodelcuttabledynamic.h new file mode 100644 index 0000000..2cd05df --- /dev/null +++ b/source/engine/models/cuttable/rendermodelcuttabledynamic.h @@ -0,0 +1,34 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\cuttable\rendermodelcuttabledynamic.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2773; PDB kind: unknown. +enum idRenderModelCuttableDynamic:: : __int32 +{ + MAX_VERTICES = 0x80, + MAX_INDICES = 0x180, +}; + +// IDA Local Type ordinal 17359; PDB kind: class. +class idRenderModelCuttableDynamic : public idRenderModel +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17360. + virtual void Save(idFile *); + virtual bool Load(idFile *); + virtual void SerializeSnapshot(idSerializer *, bool); + virtual const idDeclSkins *GetSkins(); + virtual idHandle *AddDecalFromPoint(idHandle *result, const decalParams_t *, const int, const idVec3 *, const idVec3 *, idIndex); + virtual bool RemoveDecal(const idHandle); + virtual void RemoveDecals(); + virtual void FreeSurfaces(); + virtual bool CommitSubclass(); + virtual bool UpdateInView(const idRenderView *, const idRenderView *, idRenderModelUpdateTools *); + virtual const idList *GetSourceSurfaces(); + virtual ~idRenderModelCuttableDynamic(); + +}; diff --git a/source/engine/models/cuttable/rendermodelcuttableresource.h b/source/engine/models/cuttable/rendermodelcuttableresource.h new file mode 100644 index 0000000..95e063a --- /dev/null +++ b/source/engine/models/cuttable/rendermodelcuttableresource.h @@ -0,0 +1,30 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\cuttable\rendermodelcuttableresource.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15902; PDB kind: class. +class __declspec(align(16)) idRenderModelCuttableResource : public idResource +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15903. + virtual ~idRenderModelCuttableResource(); + virtual void LoadResource(); + virtual bool ReloadIfStale(); + virtual void WriteResourceFile(); + virtual idResourceList *GetResourceList(); + virtual void Print(); + virtual void List(); + + const idMaterial *sourceMaterial; + const idMaterial *material; + idTriangles *triangles; + idVec2 *stData; + idVertexBuffer *stMap; + idList contourBound; + idTriangleInterpolator triangleInterpolator; + unsigned int timestamp; +}; diff --git a/source/engine/models/cuttable/rendermodelcuttablesurface.h b/source/engine/models/cuttable/rendermodelcuttablesurface.h new file mode 100644 index 0000000..5cac0e7 --- /dev/null +++ b/source/engine/models/cuttable/rendermodelcuttablesurface.h @@ -0,0 +1,30 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\cuttable\rendermodelcuttablesurface.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15904; PDB kind: class. +class __declspec(align(8)) idRenderModelCuttableSurface : public idRenderModel +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15905. + virtual void Save(idFile *); + virtual bool Load(idFile *); + virtual void SerializeSnapshot(idSerializer *, bool); + virtual const idDeclSkins *GetSkins(); + virtual idHandle *AddDecalFromPoint(idHandle *result, const decalParams_t *, const int, const idVec3 *, const idVec3 *, idIndex); + virtual bool RemoveDecal(const idHandle); + virtual void RemoveDecals(); + virtual void FreeSurfaces(); + virtual bool CommitSubclass(); + virtual bool UpdateInView(const idRenderView *, const idRenderView *, idRenderModelUpdateTools *); + virtual const idList *GetSourceSurfaces(); + virtual ~idRenderModelCuttableSurface(); + + idRenderModelCuttableResource *modelResource; + const idTriangleInterpolator *triangleInterpolator; + int bufferIndex; +}; diff --git a/source/engine/models/cuttable/triangleinterpolator.h b/source/engine/models/cuttable/triangleinterpolator.h new file mode 100644 index 0000000..6a5af4a --- /dev/null +++ b/source/engine/models/cuttable/triangleinterpolator.h @@ -0,0 +1,37 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\cuttable\triangleinterpolator.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15899; PDB kind: struct. +struct idTriangleInterpolator::Triangle_t +{ + idVec2 xy; + idVec2 st[2]; + idVec2 st0[2]; + idVec2 st1[2]; + idVec2 v0; + idVec2 v1; + float d00; + float d01; + float d11; + float invDenom; + float invArea; + unsigned int c0; + unsigned int c1; + unsigned int c2; +}; + +// IDA Local Type ordinal 15901; PDB kind: class. +class __declspec(align(16)) idTriangleInterpolator +{ +public: + idList triangles; + idDrawVert refVert; + idVec3 refNormal; + idVec3 refLeft; + idVec3 refDown; +}; diff --git a/source/engine/models/detail/decldetail.h b/source/engine/models/detail/decldetail.h new file mode 100644 index 0000000..ae24c46 --- /dev/null +++ b/source/engine/models/detail/decldetail.h @@ -0,0 +1,33 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\detail\decldetail.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13618; PDB kind: class. +class idDeclDetail : public idDecl +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13619. + virtual ~idDeclDetail(); + 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(); + + idAtomicString modelName; + idVec3 colorVariance; +}; diff --git a/source/engine/models/detail/detailmodel.h b/source/engine/models/detail/detailmodel.h new file mode 100644 index 0000000..4d3bf16 --- /dev/null +++ b/source/engine/models/detail/detailmodel.h @@ -0,0 +1,25 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\detail\detailmodel.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13622; PDB kind: class. +class idDetailModel : public idResource +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13623. + virtual ~idDetailModel(); + virtual void LoadResource(); + virtual bool ReloadIfStale(); + virtual void WriteResourceFile(); + virtual idResourceList *GetResourceList(); + virtual void Print(); + virtual void List(); + + dm_model_t detailModelData; + idList sharedAttributes; + dm_modelStats_t stats; +}; diff --git a/source/engine/models/detail/detailmodeldata.h b/source/engine/models/detail/detailmodeldata.h new file mode 100644 index 0000000..482d405 --- /dev/null +++ b/source/engine/models/detail/detailmodeldata.h @@ -0,0 +1,24 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\detail\detailmodeldata.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 23362; PDB kind: class. +class idDetailModelData : public idResource +{ +public: + // Recovered virtual interface; IDA vtable ordinal 23363. + virtual ~idDetailModelData(); + virtual void LoadResource(); + virtual bool ReloadIfStale(); + virtual void WriteResourceFile(); + virtual idResourceList *GetResourceList(); + virtual void Print(); + virtual void List(); + + idDetailPaletteData *paletteData; + int paletteIdx; +}; diff --git a/source/engine/models/detail/jobs/detaildata.h b/source/engine/models/detail/jobs/detaildata.h new file mode 100644 index 0000000..2e8fad6 --- /dev/null +++ b/source/engine/models/detail/jobs/detaildata.h @@ -0,0 +1,19 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\detail\jobs\detaildata.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17687; PDB kind: struct. +struct emailData_t +{ + idStr server; + idStr subject; + idStr senderName; + idStr senderEmail; + idList recipientEmail; + idStr body; + idStr attachment; +}; diff --git a/source/engine/models/detail/jobs/detailgather.h b/source/engine/models/detail/jobs/detailgather.h new file mode 100644 index 0000000..c6f62ea --- /dev/null +++ b/source/engine/models/detail/jobs/detailgather.h @@ -0,0 +1,20 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\detail\jobs\detailgather.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 23370; PDB kind: struct. +struct detailGather_t +{ + __int16 frustumVerts[3][8]; + int maxDetailHeight; + const float *mvpMatrix; + unsigned __int16 *detailIndices; + unsigned int maxDetailIndices; + unsigned int numDetailIndices; + unsigned int vertCount; + unsigned int indexCount; +}; diff --git a/source/engine/models/detail/rendermodeldetail.h b/source/engine/models/detail/rendermodeldetail.h new file mode 100644 index 0000000..88405ff --- /dev/null +++ b/source/engine/models/detail/rendermodeldetail.h @@ -0,0 +1,57 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\detail\rendermodeldetail.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 10701; PDB kind: struct. +struct RendererDetails +{ + RendererType type; + RendererRole role; + wchar_t *pszRendererID; + wchar_t *pszDisplayName; + WAVEFORMATEXTENSIBLE format; +}; + +// IDA Local Type ordinal 13631; PDB kind: class. +class __declspec(align(8)) idRenderModelDetail : public idRenderModel +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13632. + virtual void Save(idFile *); + virtual bool Load(idFile *); + virtual void SerializeSnapshot(idSerializer *, bool); + virtual const idDeclSkins *GetSkins(); + virtual idHandle *AddDecalFromPoint(idHandle *result, const decalParams_t *, const int, const idVec3 *, const idVec3 *, idIndex); + virtual bool RemoveDecal(const idHandle); + virtual void RemoveDecals(); + virtual void FreeSurfaces(); + virtual bool CommitSubclass(); + virtual bool UpdateInView(const idRenderView *, const idRenderView *, idRenderModelUpdateTools *); + virtual const idList *GetSourceSurfaces(); + virtual ~idRenderModelDetail(); + + idDetailModel *detailBSP; + deferredDetailGatherParms_t *detailGatherParms; + deferredDetailGenParms_t *detailGenParms; + detailRenderView_t *viewData; + int currentIndex; + unsigned __int16 *detailIndices; + detailSubTreeStats_t *subTreeDetailCounts; + detailGenTotals_t *totalsUsed; + idVertexBuffer vertexBuffers[3]; + idIndexBuffer indexBuffers[3]; + idDrawVert *deferredVerts; + unsigned __int16 *deferredIndices; + const idMaterial *detailMaterial; +}; + +// IDA Local Type ordinal 22882; PDB kind: struct. +struct renderModelDetails_t +{ + const char *modelName; + int count; +}; diff --git a/source/engine/models/detail/rendermodeldetailedit.h b/source/engine/models/detail/rendermodeldetailedit.h new file mode 100644 index 0000000..a0a94eb --- /dev/null +++ b/source/engine/models/detail/rendermodeldetailedit.h @@ -0,0 +1,30 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\detail\rendermodeldetailedit.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13610; PDB kind: class. +class idRenderModelDetailEdit : public idRenderModel +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13611. + virtual void Save(idFile *); + virtual bool Load(idFile *); + virtual void SerializeSnapshot(idSerializer *, bool); + virtual const idDeclSkins *GetSkins(); + virtual idHandle *AddDecalFromPoint(idHandle *result, const decalParams_t *, const int, const idVec3 *, const idVec3 *, idIndex); + virtual bool RemoveDecal(const idHandle); + virtual void RemoveDecals(); + virtual void FreeSurfaces(); + virtual bool CommitSubclass(); + virtual bool UpdateInView(const idRenderView *, const idRenderView *, idRenderModelUpdateTools *); + virtual const idList *GetSourceSurfaces(); + virtual ~idRenderModelDetailEdit(); + + idList detailBSP; + idVertexBuffer vertexBuffers[2]; + idIndexBuffer indexBuffers[2]; +}; diff --git a/source/engine/models/discreteanimation/discreteanimationmodeldata.h b/source/engine/models/discreteanimation/discreteanimationmodeldata.h new file mode 100644 index 0000000..c1abf0c --- /dev/null +++ b/source/engine/models/discreteanimation/discreteanimationmodeldata.h @@ -0,0 +1,40 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\discreteanimation\discreteanimationmodeldata.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14584; PDB kind: class. +class idDiscreteAnimationModelSurface +{ +public: + int jointOffset; + int numJoints; + idTriangles *triangles; +}; + +// IDA Local Type ordinal 14587; PDB kind: class. +class idDiscreteAnimationModelData : public idResource +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14588. + virtual ~idDiscreteAnimationModelData(); + virtual void LoadResource(); + virtual bool ReloadIfStale(); + virtual void WriteResourceFile(); + virtual idResourceList *GetResourceList(); + virtual void Print(); + virtual void List(); + + unsigned int timestamp; + float maxRadius; + idBounds bounds; + const idMaterial *material; + idList traceModels; + idList transforms; + idList surfaces; + idList sourceSurfaces; + idCollisionModel *baseModel; +}; diff --git a/source/engine/models/discreteanimation/rendermodeldiscreteanimation.h b/source/engine/models/discreteanimation/rendermodeldiscreteanimation.h new file mode 100644 index 0000000..26cc9b2 --- /dev/null +++ b/source/engine/models/discreteanimation/rendermodeldiscreteanimation.h @@ -0,0 +1,35 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\discreteanimation\rendermodeldiscreteanimation.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14590; PDB kind: class. +class __declspec(align(16)) idRenderModelDiscreteAnimation : public idRenderModel +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14591. + virtual void Save(idFile *); + virtual bool Load(idFile *); + virtual void SerializeSnapshot(idSerializer *, bool); + virtual const idDeclSkins *GetSkins(); + virtual idHandle *AddDecalFromPoint(idHandle *result, const decalParams_t *, const int, const idVec3 *, const idVec3 *, idIndex); + virtual bool RemoveDecal(const idHandle); + virtual void RemoveDecals(); + virtual void FreeSurfaces(); + virtual bool CommitSubclass(); + virtual bool UpdateInView(const idRenderView *, const idRenderView *, idRenderModelUpdateTools *); + virtual const idList *GetSourceSurfaces(); + virtual ~idRenderModelDiscreteAnimation(); + + const idDiscreteAnimationModelData *modelData; + const idDeclBreakable *declBreakable; + unsigned int modelTimestamp; + idJointBuffer jointBuffers[2]; + int currentJointBuffer; + idList transforms; + idList collapsed; + bool changed; +}; diff --git a/source/engine/models/discreteanimation/rendermodelmanyboxes.h b/source/engine/models/discreteanimation/rendermodelmanyboxes.h new file mode 100644 index 0000000..51f7996 --- /dev/null +++ b/source/engine/models/discreteanimation/rendermodelmanyboxes.h @@ -0,0 +1,41 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\discreteanimation\rendermodelmanyboxes.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16034; PDB kind: struct. +struct idRenderModelManyBoxes::box_t +{ + idVec3 position; + idMat3 orientation; + float radius; +}; + +// IDA Local Type ordinal 16036; PDB kind: class. +class __declspec(align(8)) idRenderModelManyBoxes : public idRenderModel +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16037. + virtual void Save(idFile *); + virtual bool Load(idFile *); + virtual void SerializeSnapshot(idSerializer *, bool); + virtual const idDeclSkins *GetSkins(); + virtual idHandle *AddDecalFromPoint(idHandle *result, const decalParams_t *, const int, const idVec3 *, const idVec3 *, idIndex); + virtual bool RemoveDecal(const idHandle); + virtual void RemoveDecals(); + virtual void FreeSurfaces(); + virtual bool CommitSubclass(); + virtual bool UpdateInView(const idRenderView *, const idRenderView *, idRenderModelUpdateTools *); + virtual const idList *GetSourceSurfaces(); + virtual ~idRenderModelManyBoxes(); + + int gameTime; + const idMaterial *material; + idList boxes; + idVertexBuffer vertexBuffers[2]; + idTriangles triangles; + idIndexBuffer indexBuffer; +}; diff --git a/source/engine/models/flares/rendermodelflare.h b/source/engine/models/flares/rendermodelflare.h new file mode 100644 index 0000000..bf676e5 --- /dev/null +++ b/source/engine/models/flares/rendermodelflare.h @@ -0,0 +1,30 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\flares\rendermodelflare.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14206; PDB kind: class. +class __declspec(align(8)) idRenderModelFlare : public idRenderModel +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14207. + virtual void Save(idFile *); + virtual bool Load(idFile *); + virtual void SerializeSnapshot(idSerializer *, bool); + virtual const idDeclSkins *GetSkins(); + virtual idHandle *AddDecalFromPoint(idHandle *result, const decalParams_t *, const int, const idVec3 *, const idVec3 *, idIndex); + virtual bool RemoveDecal(const idHandle); + virtual void RemoveDecals(); + virtual void FreeSurfaces(); + virtual bool CommitSubclass(); + virtual bool UpdateInView(const idRenderView *, const idRenderView *, idRenderModelUpdateTools *); + virtual const idList *GetSourceSurfaces(); + virtual ~idRenderModelFlare(); + + const idDeclFlare *flareDecl; + int quadModelIndex; + bool isSunFlare; +}; diff --git a/source/engine/models/foliage/declfoliage.h b/source/engine/models/foliage/declfoliage.h new file mode 100644 index 0000000..a6fa531 --- /dev/null +++ b/source/engine/models/foliage/declfoliage.h @@ -0,0 +1,47 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\foliage\declfoliage.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13596; PDB kind: class. +class __declspec(align(4)) idDeclFoliage : public idDecl +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13597. + virtual ~idDeclFoliage(); + 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(); + + unsigned __int16 quadWidth; + unsigned __int16 quadHeight; + float widthVariance; + float heightVariance; + idVec3 colorVariance; + bool rndFlipHoriz; + float swayMagnitude; + const idMaterial *material; + unsigned int shape; + idList stampMaterials; + float stampScale; + float stampParms[4]; + float stampCovers[4]; + idAtomicString stampBlendMode; + bool isReferenceType; + bool isSinglePlacement; +}; diff --git a/source/engine/models/foliage/foliagemodel.h b/source/engine/models/foliage/foliagemodel.h new file mode 100644 index 0000000..0375222 --- /dev/null +++ b/source/engine/models/foliage/foliagemodel.h @@ -0,0 +1,25 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\foliage\foliagemodel.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13600; PDB kind: class. +class idFoliageModel : public idResource +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13601. + virtual ~idFoliageModel(); + virtual void LoadResource(); + virtual bool ReloadIfStale(); + virtual void WriteResourceFile(); + virtual idResourceList *GetResourceList(); + virtual void Print(); + virtual void List(); + + fm_model_t foliageModelData; + idList sharedAttributes; + fm_modelStats_t stats; +}; diff --git a/source/engine/models/foliage/jobs/foliagegather.h b/source/engine/models/foliage/jobs/foliagegather.h new file mode 100644 index 0000000..105e4bb --- /dev/null +++ b/source/engine/models/foliage/jobs/foliagegather.h @@ -0,0 +1,27 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\foliage\jobs\foliagegather.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 23352; PDB kind: struct. +struct foliageGather_t +{ + __int16 frustumVerts[3][8]; + const float *mvpMatrix; + idVec3 viewDir; + idVec3 viewOrg; + foliageIndex_t *foliageIndices; + unsigned int numFoliageIndices; + unsigned int maxFoliageIndices; + __int16 *influenceSphereIndices; + unsigned int numInfluenceSphereIndices; + unsigned int maxInfluenceSphereIndices; + const influenceSphere_t *influenceSpheres; + unsigned int influenceSphereStackSize; + int influenceSphereStack[256]; + float foliageStartFadeDist; + float foliageSmallFadeDistMax; +}; diff --git a/source/engine/models/foliage/rendermodelfoliage.h b/source/engine/models/foliage/rendermodelfoliage.h new file mode 100644 index 0000000..18806a7 --- /dev/null +++ b/source/engine/models/foliage/rendermodelfoliage.h @@ -0,0 +1,34 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\foliage\rendermodelfoliage.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13607; PDB kind: class. +class __declspec(align(8)) idRenderModelFoliage : public idRenderModel +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13608. + virtual void Save(idFile *); + virtual bool Load(idFile *); + virtual void SerializeSnapshot(idSerializer *, bool); + virtual const idDeclSkins *GetSkins(); + virtual idHandle *AddDecalFromPoint(idHandle *result, const decalParams_t *, const int, const idVec3 *, const idVec3 *, idIndex); + virtual bool RemoveDecal(const idHandle); + virtual void RemoveDecals(); + virtual void FreeSurfaces(); + virtual bool CommitSubclass(); + virtual bool UpdateInView(const idRenderView *, const idRenderView *, idRenderModelUpdateTools *); + virtual const idList *GetSourceSurfaces(); + virtual ~idRenderModelFoliage(); + + idFoliageModel *foliageBSP; + deferredFoliageGatherParms_t *foliageGatherParms; + deferredFoliageGenParms_t *foliageGenParms; + foliageRenderView_t *viewData; + foliageIndex_t *foliageIndices; + __int16 *influenceSphereIndices; + foliageSubTreeStats_t *subTreeFoliageCounts; +}; diff --git a/source/engine/models/foliage/rendermodelfoliageedit.h b/source/engine/models/foliage/rendermodelfoliageedit.h new file mode 100644 index 0000000..a853d34 --- /dev/null +++ b/source/engine/models/foliage/rendermodelfoliageedit.h @@ -0,0 +1,30 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\foliage\rendermodelfoliageedit.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13588; PDB kind: class. +class __declspec(align(16)) idRenderModelFoliageEdit : public idRenderModel +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13589. + virtual void Save(idFile *); + virtual bool Load(idFile *); + virtual void SerializeSnapshot(idSerializer *, bool); + virtual const idDeclSkins *GetSkins(); + virtual idHandle *AddDecalFromPoint(idHandle *result, const decalParams_t *, const int, const idVec3 *, const idVec3 *, idIndex); + virtual bool RemoveDecal(const idHandle); + virtual void RemoveDecals(); + virtual void FreeSurfaces(); + virtual bool CommitSubclass(); + virtual bool UpdateInView(const idRenderView *, const idRenderView *, idRenderModelUpdateTools *); + virtual const idList *GetSourceSurfaces(); + virtual ~idRenderModelFoliageEdit(); + + idList foliageBSP; + int numFoliageQuadsInView; + int maxFoliageQuadsAllowed; +}; diff --git a/source/engine/models/particles/declparticle.h b/source/engine/models/particles/declparticle.h new file mode 100644 index 0000000..aee4de8 --- /dev/null +++ b/source/engine/models/particles/declparticle.h @@ -0,0 +1,54 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\particles\declparticle.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13460; PDB kind: class. +class idDeclParticle : public idDecl +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13461. + virtual ~idDeclParticle(); + 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(); + + idList stages; + idList stageNames; + idList stageInheritNames; + idList tableDecls; + idList tables; + idBounds bounds; + int maxSystemDuration; + int lodRadius; +}; + +// IDA Local Type ordinal 15209; PDB kind: class. +class idClothParticle +{ +public: + idVec3 origin; + idVec3 lastOrigin; + idVec3 velocity; + idVec3 force; + idMat3 axis; + float mass; + unsigned __int8 neighbors[4]; + unsigned __int8 anchored; + unsigned __int16 state; +}; diff --git a/source/engine/models/particles/jobs/particlegen.h b/source/engine/models/particles/jobs/particlegen.h new file mode 100644 index 0000000..28669e1 --- /dev/null +++ b/source/engine/models/particles/jobs/particlegen.h @@ -0,0 +1,21 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\particles\jobs\particlegen.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 21646; PDB kind: struct. +struct particleGen_t +{ + int index; + float cycleAge; + float totalAge; + float particleLife; + float frac; + float parmVal; + idRandom2 random; + idRandom2 originalRandom; + idVec4 vertColor; +}; diff --git a/source/engine/models/particles/jobs/particleparm.h b/source/engine/models/particles/jobs/particleparm.h new file mode 100644 index 0000000..01a150f --- /dev/null +++ b/source/engine/models/particles/jobs/particleparm.h @@ -0,0 +1,58 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\particles\jobs\particleparm.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13433; PDB kind: class. +class idParticleParm +{ +public: + float val0; + float val1; + float variance; + __int16 tableIdx; + __int16 table2Idx; + particleCalcType_t calcType; +}; + +// IDA Local Type ordinal 14008; PDB kind: struct. +struct effectParticleParms_t +{ + int startTime; + int duration; + const idParticleStage *stage; + const idLookupTable *tables; + int numTables; + int diversity; + idVec3 origin; + idMat3 axis; + idVec3 velocity; + idVec3 wind; + float shadow; + int currTime; + int numParticles; + unsigned int color; +}; + +// IDA Local Type ordinal 14015; PDB kind: struct. +const struct modelParticleParms_t +{ + int stopTime; + float timeOffset; + int diversity; + float coverage; + idVec4 color; + idVec4 wind; + idVec3 distribScale; + idVec3 origin; + idMat3 axis; + idVec3 scale; + idVec3 velocity; + float shadow; + float alphaScaleOverride; + unsigned __int8 lod; + unsigned __int8 pad[3]; +}; diff --git a/source/engine/models/particles/jobs/particlestage.h b/source/engine/models/particles/jobs/particlestage.h new file mode 100644 index 0000000..390da94 --- /dev/null +++ b/source/engine/models/particles/jobs/particlestage.h @@ -0,0 +1,213 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\particles\jobs\particlestage.h +// Recovered logical types: 20 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13434; PDB kind: struct. +struct __declspec(align(4)) idParticleStage::prtStageProperties_t +{ + const idMaterial *material; + __int16 totalParticles; + __int16 cycles; + int diversity; + idParticleParm particleLife; + float timeOffset; + idParticleParm deadTime; + float useSysTime; + float spawnBunching; + float emissionTime; + prtTextureFlipMode_t textureFlipS; + prtTextureFlipMode_t textureFlipT; + idParticleParm windBias; + prtSortType_t sortType; + float boundsExpansion; + bool randomOnCycle; +}; + +// IDA Local Type ordinal 13435; PDB kind: struct. +struct __declspec(align(4)) idParticleStage::prtDistribution_t +{ + prtDistributionType_t type; + idParticleParm size[3]; + bool random; +}; + +// IDA Local Type ordinal 13436; PDB kind: struct. +struct idParticleStage::prtOrientation_t +{ + prtOrientationType_t type; + __int16 numTrails; + float segmentLength; + float viewFade; + bool orientToVelOnly; + bool world; + bool aimedSafeQuad; + float aimedSafeQuadAlign; + float depthOffset; +}; + +// IDA Local Type ordinal 13437; PDB kind: struct. +struct idParticleStage::prtDirection_t +{ + prtDirectionType_t type; + float parms[4]; + float angleOffsetStart[2]; + float angleOffsetRange[2]; + idMat3 coneAxis; +}; + +// IDA Local Type ordinal 13438; PDB kind: struct. +struct idParticleStage::prtSpeed_t +{ + idParticleParm speed[3]; +}; + +// IDA Local Type ordinal 13439; PDB kind: struct. +struct __declspec(align(4)) idParticleStage::prtAcceleration_t +{ + idParticleParm acceleration[3]; + bool world; +}; + +// IDA Local Type ordinal 13440; PDB kind: struct. +struct __declspec(align(4)) idParticleStage::prtGravity_t +{ + idParticleParm gravity; + bool world; +}; + +// IDA Local Type ordinal 13441; PDB kind: struct. +struct idParticleStage::prtFriction_t +{ + idParticleParm friction[3]; +}; + +// IDA Local Type ordinal 13442; PDB kind: struct. +struct idParticleStage::prtOffset_t +{ + idParticleParm offset[3]; +}; + +// IDA Local Type ordinal 13443; PDB kind: struct. +struct idParticleStage::prtSpawnLocation_t +{ + idParticleParm spawnLocation[3]; +}; + +// IDA Local Type ordinal 13444; PDB kind: struct. +struct idParticleStage::prtColorAttributes_t +{ + idParticleParm baseColor[4]; + idVec4 fadeColor; + float fadeInFraction; + float fadeOutFraction; + float fadeIndexFraction; + float softParticleAlphaScale; + idParticleParm brightness; + bool useGlobalShadows; + float minShadowVal; + float entityColorBlendVal; +}; + +// IDA Local Type ordinal 13445; PDB kind: struct. +struct __declspec(align(4)) idParticleStage::prtRotation_t +{ + idParticleParm rotation[3]; + bool allowRotDirOverride; +}; + +// IDA Local Type ordinal 13446; PDB kind: struct. +struct idParticleStage::prtInitialRotation_t +{ + idParticleParm initialAngle[3]; +}; + +// IDA Local Type ordinal 13447; PDB kind: struct. +struct idParticleStage::prtPivot_t +{ + idVec2 pivotOffset; +}; + +// IDA Local Type ordinal 13448; PDB kind: struct. +struct idParticleStage::prtSize_t +{ + idParticleParm size[3]; + idParticleParm aspectRatio; +}; + +// IDA Local Type ordinal 13449; PDB kind: struct. +struct idParticleStage::prtTexAnimation_t +{ + prtAnimationType_t type; + unsigned __int16 numColumns; + unsigned __int16 numRows; + idParticleParm rate; + __int16 startFrame; + bool useRandomRow; + bool useFrameBlending; +}; + +// IDA Local Type ordinal 13450; PDB kind: struct. +struct idParticleStage::prtCustomPath_t +{ + prtCustomPthType_t type; + idParticleParm parms[5]; +}; + +// IDA Local Type ordinal 13451; PDB kind: struct. +struct idParticleStage::prtGenericParms_t +{ + idParticleParm genericParm[4]; +}; + +// IDA Local Type ordinal 13452; PDB kind: struct. +struct idParticleStage::prtLODParms_t +{ + float sizeScale; + float lerpAmount; + __int16 radius; + __int16 totalParticles; +}; + +// IDA Local Type ordinal 13453; PDB kind: class. +class idParticleStage +{ +public: + const idStaticParticleModelData *staticData; + const idDrawVert *staticVerts; + int numStaticVerts; + int cycleMsec; + float maxParticleLife; + float maxDeadTime; + float bunchTime; + idBounds bounds; + idVec4 atlasScaleBias; + unsigned __int8 : 3; + __int8 hidden : 1; + __int8 hasEmissivePass : 1; + __int8 usesTransSortAtlas : 1; + __int8 isTransparencySorted : 1; + __int8 alphaBlended : 1; + idParticleStage::prtStageProperties_t systemProperties; + idParticleStage::prtDistribution_t distribution; + idParticleStage::prtOrientation_t orientation; + idParticleStage::prtDirection_t direction; + idParticleStage::prtSpeed_t speed; + idParticleStage::prtAcceleration_t acceleration; + idParticleStage::prtGravity_t gravity; + idParticleStage::prtFriction_t friction; + idParticleStage::prtOffset_t offset; + idParticleStage::prtSpawnLocation_t spawnLocation; + idParticleStage::prtColorAttributes_t colorAttributes; + idParticleStage::prtRotation_t rotation; + idParticleStage::prtInitialRotation_t initialRotation; + idParticleStage::prtPivot_t pivot; + idParticleStage::prtSize_t size; + idParticleStage::prtTexAnimation_t texAnimation; + idParticleStage::prtCustomPath_t customPath; + idParticleStage::prtGenericParms_t genericParm; + idParticleStage::prtLODParms_t lodParms; +}; diff --git a/source/engine/models/particles/jobs/staticparticlemodeldata.h b/source/engine/models/particles/jobs/staticparticlemodeldata.h new file mode 100644 index 0000000..bf1d8de --- /dev/null +++ b/source/engine/models/particles/jobs/staticparticlemodeldata.h @@ -0,0 +1,25 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\particles\jobs\staticparticlemodeldata.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13431; PDB kind: class. +class idStaticParticleModelData : public idResource +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13432. + virtual ~idStaticParticleModelData(); + virtual void LoadResource(); + virtual bool ReloadIfStale(); + virtual void WriteResourceFile(); + virtual idResourceList *GetResourceList(); + virtual void Print(); + virtual void List(); + + unsigned int timestamp; + idDrawVert *staticVerts; + int numStaticVerts; +}; diff --git a/source/engine/models/particles/rendermodeleffects.h b/source/engine/models/particles/rendermodeleffects.h new file mode 100644 index 0000000..11d85ad --- /dev/null +++ b/source/engine/models/particles/rendermodeleffects.h @@ -0,0 +1,65 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\particles\rendermodeleffects.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14013; PDB kind: struct. +struct idRenderModelEffects::sortedParticleStage_t +{ + const idParticleStage *stage; + int first; + int num; +}; + +// IDA Local Type ordinal 14017; PDB kind: struct. +struct idRenderModelEffects::deferredStage_t +{ + const idMaterial *mtr; + int vertCount; + int indexOffset; +}; + +// IDA Local Type ordinal 14019; PDB kind: class. +class idRenderModelEffects : public idRenderModel +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14020. + virtual void Save(idFile *); + virtual bool Load(idFile *); + virtual void SerializeSnapshot(idSerializer *, bool); + virtual const idDeclSkins *GetSkins(); + virtual idHandle *AddDecalFromPoint(idHandle *result, const decalParams_t *, const int, const idVec3 *, const idVec3 *, idIndex); + virtual bool RemoveDecal(const idHandle); + virtual void RemoveDecals(); + virtual void FreeSurfaces(); + virtual bool CommitSubclass(); + virtual bool UpdateInView(const idRenderView *, const idRenderView *, idRenderModelUpdateTools *); + virtual const idList *GetSourceSurfaces(); + virtual ~idRenderModelEffects(); + + effectParticleParms_t *particles; + int particleRange[2]; + particleTrailParms_t *particleTrails; + int particleTrailRange[2]; + tracerParms_t *tracers; + int tracerRange[2]; + decalParms_t *decals; + decalVerts_t *decalVerts; + int decalRange[2]; + int gameTime; + int deltaTime; + int latchedTime; + int lastLatchedParticleRange[2]; + int latchedParticleRange[2]; + int latchedTracerRange[2]; + int latchedDecalRange[2]; + idRenderModelEffects::sortedParticleStage_t sortedParticleStages[1024]; + int numSortedParticleStages; + particleRenderView_t *particleRenderView; + deferredParticleGenParms_t *particleGenParms; + idList deferredStages[3]; + idTriangles *triangles; +}; diff --git a/source/engine/models/particles/rendermodelparticle.h b/source/engine/models/particles/rendermodelparticle.h new file mode 100644 index 0000000..c97155e --- /dev/null +++ b/source/engine/models/particles/rendermodelparticle.h @@ -0,0 +1,39 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\particles\rendermodelparticle.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14030; PDB kind: struct. +struct idRenderModelParticle::stageCounts_t +{ + int vertCount; + int indexOffset; +}; + +// IDA Local Type ordinal 14032; PDB kind: class. +class __declspec(align(8)) idRenderModelParticle : public idRenderModel +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14033. + virtual void Save(idFile *); + virtual bool Load(idFile *); + virtual void SerializeSnapshot(idSerializer *, bool); + virtual const idDeclSkins *GetSkins(); + virtual idHandle *AddDecalFromPoint(idHandle *result, const decalParams_t *, const int, const idVec3 *, const idVec3 *, idIndex); + virtual bool RemoveDecal(const idHandle); + virtual void RemoveDecals(); + virtual void FreeSurfaces(); + virtual bool CommitSubclass(); + virtual bool UpdateInView(const idRenderView *, const idRenderView *, idRenderModelUpdateTools *); + virtual const idList *GetSourceSurfaces(); + virtual ~idRenderModelParticle(); + + idList genParms; + particleRenderView_t *particleRenderView; + modelParticleParms_t *modelParms; + idList stageCounts[3]; + const idDeclParticle *particleDecl; +}; diff --git a/source/engine/models/rendermodel.h b/source/engine/models/rendermodel.h new file mode 100644 index 0000000..e9d8043 --- /dev/null +++ b/source/engine/models/rendermodel.h @@ -0,0 +1,103 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\rendermodel.h +// Recovered logical types: 5 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1725; PDB kind: enum. +enum renderMode_t : __int32 +{ + RENDER_MODE_MANUAL = 0x0, + RENDER_MODE_AUTOMATIC = 0x1, + RENDER_MODE_BINK = 0x2, +}; + +// IDA Local Type ordinal 13523; PDB kind: class. +class idRenderModel +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13552. + virtual void Save(idFile *); + virtual bool Load(idFile *); + virtual void SerializeSnapshot(idSerializer *, bool); + virtual const idDeclSkins *GetSkins(); + virtual idHandle *AddDecalFromPoint(idHandle *result, const decalParams_t *, const int, const idVec3 *, const idVec3 *, idIndex); + virtual bool RemoveDecal(const idHandle); + virtual void RemoveDecals(); + virtual void FreeSurfaces(); + virtual bool CommitSubclass(); + virtual bool UpdateInView(const idRenderView *, const idRenderView *, idRenderModelUpdateTools *); + virtual const idList *GetSourceSurfaces(); + virtual ~idRenderModel(); + + __declspec(align(16)) idAtomicString name; + const char *debugName; + idVec3 deferredOrigin; + idMat3 deferredAxis; + bool useDeferredPosition; + bool deferredPositionInitialized; + bool deleteOnSync; + bool unlinked; + bool needWriteToSnapshot; + idRenderModel *nextOnCommitList; + int needCommitFrameNum; + idRenderModelCommitted *committed; + idBounds referenceBounds; + idRenderModelParms g; + idStaticParmBlock<32> gameParmBlock; + idList surfaces; + idStaticList decalData; +}; + +// IDA Local Type ordinal 13666; PDB kind: struct. +struct __declspec(align(4)) idRenderModel::decalData_t +{ + idHandle handle; + idVec3 relativePos; + idMat3 relativeAxis; + idIndex jointId; +}; + +// IDA Local Type ordinal 15019; PDB kind: class. +class idStrRenderModel : public idStr +{ +public: +}; + +// IDA Local Type ordinal 15020; PDB kind: class. +class idRenderModelInfo +{ +public: + idRenderModel *model; + __int8 staticShadowsFromDynamicModel : 1; + __int8 forceAcceptDimShadows : 1; + __int8 allowUpShadows : 1; + __int8 allowHighQualityDimShadows : 1; + __int8 forceDimShadows : 1; + __int8 noShadows : 1; + __int8 noAmbient : 1; + __int8 allowInline : 1; + unsigned __int8 : 3; + __int8 rebakeModel : 1; + __int8 megatexturedModel : 1; + __int8 occluder : 1; + __int8 noLocalLighting : 1; + __int8 privateLightOnly : 1; + float maxTexelDensity; + float maxVisibleRange; + float fadeVisibilityOver; + float dimShadowClipZ; + const idMaterial *customMaterial; + idVec3 scale; + idColor color; + idList renderParms; + const idMaterial *parmBlock; + idStrRenderModel editorModel; + int traceGroup; + float radiosityScale; + float staticReflectionStrength; + bool ownedByPresentable; + idRenderModelInfo *next; +}; diff --git a/source/engine/models/rendermodelaugment.h b/source/engine/models/rendermodelaugment.h new file mode 100644 index 0000000..0756ae5 --- /dev/null +++ b/source/engine/models/rendermodelaugment.h @@ -0,0 +1,27 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\rendermodelaugment.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15388; PDB kind: class. +class idRenderModelAugmentOutline : public idRenderModel +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15389. + virtual void Save(idFile *); + virtual bool Load(idFile *); + virtual void SerializeSnapshot(idSerializer *, bool); + virtual const idDeclSkins *GetSkins(); + virtual idHandle *AddDecalFromPoint(idHandle *result, const decalParams_t *, const int, const idVec3 *, const idVec3 *, idIndex); + virtual bool RemoveDecal(const idHandle); + virtual void RemoveDecals(); + virtual void FreeSurfaces(); + virtual bool CommitSubclass(); + virtual bool UpdateInView(const idRenderView *, const idRenderView *, idRenderModelUpdateTools *); + virtual const idList *GetSourceSurfaces(); + virtual ~idRenderModelAugmentOutline(); + +}; diff --git a/source/engine/models/rendermodelbeam.h b/source/engine/models/rendermodelbeam.h new file mode 100644 index 0000000..0145065 --- /dev/null +++ b/source/engine/models/rendermodelbeam.h @@ -0,0 +1,33 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\rendermodelbeam.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14027; PDB kind: class. +class __declspec(align(8)) idRenderModelBeam : public idRenderModel +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14028. + virtual void Save(idFile *); + virtual bool Load(idFile *); + virtual void SerializeSnapshot(idSerializer *, bool); + virtual const idDeclSkins *GetSkins(); + virtual idHandle *AddDecalFromPoint(idHandle *result, const decalParams_t *, const int, const idVec3 *, const idVec3 *, idIndex); + virtual bool RemoveDecal(const idHandle); + virtual void RemoveDecals(); + virtual void FreeSurfaces(); + virtual bool CommitSubclass(); + virtual bool UpdateInView(const idRenderView *, const idRenderView *, idRenderModelUpdateTools *); + virtual const idList *GetSourceSurfaces(); + virtual ~idRenderModelBeam(); + + idStaticList beamBuffer[2]; + int beamRenderBufferIndex; + idTriangles *triangles; + idVertexBuffer vertexBuffer[2]; + idIndexBuffer indexBuffer; + bool usesPreAllocatedBuffer; +}; diff --git a/source/engine/models/rendermodelchain.h b/source/engine/models/rendermodelchain.h new file mode 100644 index 0000000..e4cef6e --- /dev/null +++ b/source/engine/models/rendermodelchain.h @@ -0,0 +1,51 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\rendermodelchain.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 21864; PDB kind: struct. +struct idRenderModelChain::splinePoint_t +{ + idVec3 value; + float time; +}; + +// IDA Local Type ordinal 21866; PDB kind: class. +class __declspec(align(16)) idRenderModelChain : public idRenderModel +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21867. + virtual void Save(idFile *); + virtual bool Load(idFile *); + virtual void SerializeSnapshot(idSerializer *, bool); + virtual const idDeclSkins *GetSkins(); + virtual idHandle *AddDecalFromPoint(idHandle *result, const decalParams_t *, const int, const idVec3 *, const idVec3 *, idIndex); + virtual bool RemoveDecal(const idHandle); + virtual void RemoveDecals(); + virtual void FreeSurfaces(); + virtual bool CommitSubclass(); + virtual bool UpdateInView(const idRenderView *, const idRenderView *, idRenderModelUpdateTools *); + virtual const idList *GetSourceSurfaces(); + virtual ~idRenderModelChain(); + + idJointBuffer jointBuffers[2]; + idVertexBuffer morphBuffers[2]; + int currentJointBuffer; + int currentMorphBuffer; + int numMorphVertices; + int numMorphLinkVertices; + int numLinks; + float linkSize; + idList transforms; + idList morphMap; + idList splineSettings; + idStr chainLinkModel; + const idMaterial *morphMaterial; + unsigned __int8 : 6; + __int8 updateJointBuffers : 1; + __int8 updateMorphBuffers : 1; + chainGenerateInfo_t genInfo; +}; diff --git a/source/engine/models/rendermodeldecal.h b/source/engine/models/rendermodeldecal.h new file mode 100644 index 0000000..4dc4cfd --- /dev/null +++ b/source/engine/models/rendermodeldecal.h @@ -0,0 +1,81 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\rendermodeldecal.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13546; PDB kind: struct. +struct idRenderModelDecal::decalInfo_t +{ + int startTime; + int lifeTime; + const idMaterial *decalMtr; + int fadeOutTime; + int fadeInTime; + float scaleBiasX; + float scaleBiasY; + float depth; + idVec3 pos; + idMat3 axis; + idVec2 size; + float sizeScale; + bool quad; + idHandle handle; +}; + +// IDA Local Type ordinal 13547; PDB kind: struct. +struct __declspec(align(4)) idRenderModelDecal::tireDecalInfo_t +{ + int startTime; + int lifeTime; + const idMaterial *decalMtr; + int fadeTime; + float scaleBiasX; + float scaleBiasY; + idVec3 pos; + idVec3 dir; + float depth; + idVec3 corners[4]; + idVec3 left; + float halfWidth; + float halfHeight; + bool markStart; + bool markEnd; +}; + +// IDA Local Type ordinal 13550; PDB kind: class. +class __declspec(align(8)) idRenderModelDecal : public idRenderModel +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34034. + virtual void Save(idFile *); + virtual bool Load(idFile *); + virtual void SerializeSnapshot(idSerializer *, bool); + virtual const idDeclSkins *GetSkins(); + virtual idHandle *AddDecalFromPoint(idHandle *result, const decalParams_t *, const int, const idVec3 *, const idVec3 *, idIndex); + virtual bool RemoveDecal(const idHandle); + virtual void RemoveDecals(); + virtual void FreeSurfaces(); + virtual bool CommitSubclass(); + virtual bool UpdateInView(const idRenderView *, const idRenderView *, idRenderModelUpdateTools *); + virtual const idList *GetSourceSurfaces(); + virtual ~idRenderModelDecal(); + + idRenderModelDecal::decalInfo_t *decals; + int decalRange[2]; + idRenderModelDecal::tireDecalInfo_t *tireDecals; + int tireDecalRange[2]; + int gameTime; + idRandom2 random; + int latchedTime; + int latchedDecalRange[2]; + int latchedTireDecalRange[2]; + idVertexBuffer vertexBuffer[2]; + idIndexBuffer indexBufferBoxes; + idIndexBuffer indexBufferQuads; + bool usesPreAllocatedBuffer; + idTriangles *triangles; + const idDeclRenderParm *parmPositionToLocalBoxSpace[4]; +}; diff --git a/source/engine/models/rendermodelgui.h b/source/engine/models/rendermodelgui.h new file mode 100644 index 0000000..236e1a7 --- /dev/null +++ b/source/engine/models/rendermodelgui.h @@ -0,0 +1,35 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\rendermodelgui.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14936; PDB kind: class. +class __declspec(align(8)) idRenderModelGui : public idRenderModel +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14937. + virtual void Save(idFile *); + virtual bool Load(idFile *); + virtual void SerializeSnapshot(idSerializer *, bool); + virtual const idDeclSkins *GetSkins(); + virtual idHandle *AddDecalFromPoint(idHandle *result, const decalParams_t *, const int, const idVec3 *, const idVec3 *, idIndex); + virtual bool RemoveDecal(const idHandle); + virtual void RemoveDecals(); + virtual void FreeSurfaces(); + virtual bool CommitSubclass(); + virtual bool UpdateInView(const idRenderView *, const idRenderView *, idRenderModelUpdateTools *); + virtual const idList *GetSourceSurfaces(); + virtual ~idRenderModelGui(); + + guiModelSurface_t *surf; + unsigned int currentVertexColor; + int numGuiSurfaces; + idArray guiSurfaces; + idArray triangles; + bool useVirtualSize; + int frameNum; + int waitForFrame; +}; diff --git a/source/engine/models/rendermodelimposter.h b/source/engine/models/rendermodelimposter.h new file mode 100644 index 0000000..5bd4043 --- /dev/null +++ b/source/engine/models/rendermodelimposter.h @@ -0,0 +1,28 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\rendermodelimposter.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22478; PDB kind: class. +class __declspec(align(16)) idRenderModelImposter : public idRenderModel +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22479. + virtual void Save(idFile *); + virtual bool Load(idFile *); + virtual void SerializeSnapshot(idSerializer *, bool); + virtual const idDeclSkins *GetSkins(); + virtual idHandle *AddDecalFromPoint(idHandle *result, const decalParams_t *, const int, const idVec3 *, const idVec3 *, idIndex); + virtual bool RemoveDecal(const idHandle); + virtual void RemoveDecals(); + virtual void FreeSurfaces(); + virtual bool CommitSubclass(); + virtual bool UpdateInView(const idRenderView *, const idRenderView *, idRenderModelUpdateTools *); + virtual const idList *GetSourceSurfaces(); + virtual ~idRenderModelImposter(); + + idRenderModel *parent; +}; diff --git a/source/engine/models/skeletalanimation/animation.h b/source/engine/models/skeletalanimation/animation.h new file mode 100644 index 0000000..25590e5 --- /dev/null +++ b/source/engine/models/skeletalanimation/animation.h @@ -0,0 +1,51 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\skeletalanimation\animation.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17968; PDB kind: class. +class idAnimation +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17975. + virtual ~idAnimation(); + virtual void Initialize(); + virtual void Shutdown(); + virtual void FreeDynamic(); + virtual const char *GetOriginJointName(); + virtual const idHandle *GetOriginJointHandle(); + virtual idHandle *RegisterJoint(idHandle *result, const char *); + virtual idHandle *FindJointHandle(idHandle *result, const char *); + virtual const char *GetJointName(const idHandle *); + virtual idHandle *RegisterUserChannel(idHandle *result, const char *); + virtual idHandle *FindUserChannelHandle(idHandle *result, const char *); + virtual const char *GetUserChannelName(const idHandle *); + virtual int GetNumUserChannels(); + virtual void MakeDefaultJointConversion(const char *, const idList *, const idList *); + virtual idHandle *FindJointConversionHandle(idHandle *result, const char *); + virtual const char *GetJointConversionName(const idHandle *); + virtual void UnregisterJointConversion(idJointConversion *); + virtual __int16 GetJointIndex(idHandle, const idHandle *); + virtual __int16 GetJointIndex_2(idHandle, const char *); + virtual __int16 GetJointIndex_3(const char *, const char *); + virtual idHandle *GetJointConversionCrc(idHandle *result, idHandle); + virtual __int16 GetUserChannelIndex(idHandle, const idHandle *); + virtual __int16 GetUserChannelIndex_2(idHandle, const char *); + virtual __int16 GetUserChannelIndex_3(const char *, const char *); + virtual idHandle *RegisterAlias(idHandle *result, const idDeclMD6 *, const char *); + virtual void UnregisterAlias(const idDeclMD6 *, const idHandle *); + virtual void UnregisterAliases(const idDeclMD6 *); + virtual idHandle *FindAliasHandle(idHandle *result, const idDeclMD6 *, const char *); + virtual idHandle *FindAliasHandle_2(idHandle *result, const char *); + virtual const char *FindAliasName(const idHandle *); + virtual idHandle *AddStrongAliasRef(idHandle *result, const char *); + virtual idHandle *StrongLoadAlias(idHandle *result, const idDeclMD6 *, const char *); + virtual const idMD6Alias *StrongLoadAlias_2(const idDeclMD6 *, const idHandle *); + virtual void FinalizeAliasRefs(); + virtual void GetAliasRefs(const idHandle *, const bool, idList *); + + idRandom2 randomNumberGenerator; +}; diff --git a/source/engine/models/skeletalanimation/animationtypes.h b/source/engine/models/skeletalanimation/animationtypes.h new file mode 100644 index 0000000..93128f6 --- /dev/null +++ b/source/engine/models/skeletalanimation/animationtypes.h @@ -0,0 +1,16 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\skeletalanimation\animationtypes.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2465; PDB kind: enum. +enum prtAnimationType_t : __int32 +{ + PANIM_TYPE_CYLE_RATE = 0x0, + PANIM_TYPE_SINGLE_CYCLE_RATE = 0x1, + PANIM_TYPE_SINGLE_CYCLE = 0x2, + NUM_PANIM_TYPES = 0x3, +}; diff --git a/source/engine/models/skeletalanimation/animhash.h b/source/engine/models/skeletalanimation/animhash.h new file mode 100644 index 0000000..a12f478 --- /dev/null +++ b/source/engine/models/skeletalanimation/animhash.h @@ -0,0 +1,87 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\skeletalanimation\animhash.h +// Recovered logical types: 8 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 23318; PDB kind: struct. +struct idAnimHash,enum idAnimationLocal::jointTypeId,256,256,idAnimationLocal::idAllocNew,idAnimationLocal::idGenNameNormal >::entry_t +{ + const idStr *ptr; + const idStr *parent; + idStr name; + idAnimationLocal::jointTypeId typeId; + idHandle handle; + idResource::referenceType_t refType; +}; + +// IDA Local Type ordinal 23320; PDB kind: class. +class idAnimHash,enum idAnimationLocal::jointTypeId,256,256,idAnimationLocal::idAllocNew,idAnimationLocal::idGenNameNormal > +{ +public: + idList,enum idAnimationLocal::jointTypeId,256,256,idAnimationLocal::idAllocNew,idAnimationLocal::idGenNameNormal >::entry_t,30> list; + idHashIndex nameHash; + int markStaticNum; +}; + +// IDA Local Type ordinal 23321; PDB kind: struct. +struct idAnimHash,enum idAnimationLocal::userChannelTypeId,256,256,idAnimationLocal::idAllocNew,idAnimationLocal::idGenNameNormal >::entry_t +{ + const idStr *ptr; + const idStr *parent; + idStr name; + idAnimationLocal::userChannelTypeId typeId; + idHandle handle; + idResource::referenceType_t refType; +}; + +// IDA Local Type ordinal 23323; PDB kind: class. +class idAnimHash,enum idAnimationLocal::userChannelTypeId,256,256,idAnimationLocal::idAllocNew,idAnimationLocal::idGenNameNormal > +{ +public: + idList,enum idAnimationLocal::userChannelTypeId,256,256,idAnimationLocal::idAllocNew,idAnimationLocal::idGenNameNormal >::entry_t,30> list; + idHashIndex nameHash; + int markStaticNum; +}; + +// IDA Local Type ordinal 23326; PDB kind: struct. +struct idAnimHash,enum idAnimationLocal::aliasTypeId,4096,4096,idAnimationLocal::idAllocNew,idAnimationLocal::idGenNameNormal >::entry_t +{ + const idAliasGroup *ptr; + const idDeclMD6 *parent; + idStr name; + idAnimationLocal::aliasTypeId typeId; + idHandle handle; + idResource::referenceType_t refType; +}; + +// IDA Local Type ordinal 23328; PDB kind: class. +class idAnimHash,enum idAnimationLocal::aliasTypeId,4096,4096,idAnimationLocal::idAllocNew,idAnimationLocal::idGenNameNormal > +{ +public: + idList,enum idAnimationLocal::aliasTypeId,4096,4096,idAnimationLocal::idAllocNew,idAnimationLocal::idGenNameNormal >::entry_t,30> list; + idHashIndex nameHash; + int markStaticNum; +}; + +// IDA Local Type ordinal 23329; PDB kind: struct. +struct idAnimHash,enum idAnimationLocal::jointConversionTypeId,256,256,idAnimationLocal::idAllocNew,idAnimationLocal::idGenNameNormal >::entry_t +{ + const idJointConversion *ptr; + const idJointConversion *parent; + idStr name; + idAnimationLocal::jointConversionTypeId typeId; + idHandle handle; + idResource::referenceType_t refType; +}; + +// IDA Local Type ordinal 23331; PDB kind: class. +class idAnimHash,enum idAnimationLocal::jointConversionTypeId,256,256,idAnimationLocal::idAllocNew,idAnimationLocal::idGenNameNormal > +{ +public: + idList,enum idAnimationLocal::jointConversionTypeId,256,256,idAnimationLocal::idAllocNew,idAnimationLocal::idGenNameNormal >::entry_t,30> list; + idHashIndex nameHash; + int markStaticNum; +}; diff --git a/source/engine/models/skeletalanimation/declmd6.h b/source/engine/models/skeletalanimation/declmd6.h new file mode 100644 index 0000000..0292e02 --- /dev/null +++ b/source/engine/models/skeletalanimation/declmd6.h @@ -0,0 +1,129 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\skeletalanimation\declmd6.h +// Recovered logical types: 7 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1999; PDB kind: enum. +enum idDeclMD6::modelCaps_t : __int32 +{ + MODELCAP_LIPSYNC = 0x1, + MODELCAP_FACESETUP = 0x2, + MODELCAP_MOODS = 0x4, + MODELCAP_GESTURES = 0x8, +}; + +// IDA Local Type ordinal 2934; PDB kind: enum. +enum idDeclMD6::userPropEx_t : __int32 +{ + USERPROPEX_NONE = 0x0, + USERPROPEX_DECL_START = 0x1, + USERPROPEX_DECL_RENDERPROG = 0x1, + USERPROPEX_DECL_AF = 0x2, + USERPROPEX_DECL_ENTITYDEF = 0x3, + USERPROPEX_DECL_MATERIAL = 0x4, + USERPROPEX_DECL_PARTICLES = 0x5, + USERPROPEX_DECL_CLOTH = 0x6, + USERPROPEX_DECL_SOUNDSHADER = 0x7, + USERPROPEX_DECL_MD6DEF = 0x8, + USERPROPEX_DECL_SKIN = 0x9, + USERPROPEX_DECL_TABLE = 0xA, + USERPROPEX_DECL_ENV = 0xB, + USERPROPEX_DECL_FX = 0xC, + USERPROPEX_DECL_VOICEOVER = 0xD, + USERPROPEX_DECL_ANIMWEB = 0xE, + USERPROPEX_DECL_VISEMESET = 0xF, + USERPROPEX_DECL_BREAKABLE = 0x10, + USERPROPEX_DECL_RIBBON = 0x11, + USERPROPEX_DECL_FLARE = 0x12, + USERPROPEX_DECL_END = 0x13, +}; + +// IDA Local Type ordinal 13313; PDB kind: class. +class idDeclMD6 : public idDecl +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13422. + virtual ~idDeclMD6(); + 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(); + virtual void Write(idFile_String *, const char *); + + idMD6Blend::configInfo_t *config; + const idMD6Model *model; + idStr parent; + const idDeclMD6 *parentDecl; + idList declsToIncludeAnimDataFrom; + idBounds referenceBounds; + int numLoadErrors; + idJointGroupCollection jointGroupCollection; + idPropsCollection props; + idAnimEvents animEvents; + idEyeInfoCollection eyeInfoCollection; + idList,19> userProps; + idList aliases; + idHashIndex aliasHash; + unsigned __int16 curAliasHandle; + idList headTrackGroups; + idList >,19> meshKitGroups[3]; + idStr meshKitDefault[3]; + idMorphVertices *morphVertices; + idList morphDefList; + bool calcRefBoundsFromJoints; + idList wrinkleMapRegionExpressions; + float attachmentOverrideScale; + int modelCaps; + int userChannelWeightGroupOverride; + idHandle baseUserChannelAlias; + idList,19> userChannelToAnimationAliasMap; + idList,idHandle >,19> userChannelToAnimationAliasOverrides; +}; + +// IDA Local Type ordinal 13364; PDB kind: struct. +struct __declspec(align(4)) idDeclMD6::includeDecl_t +{ + const idDeclMD6 *includeDecl; + bool isOriginalInclude; +}; + +// IDA Local Type ordinal 13403; PDB kind: class. +class idDeclMD6::idHeadTrackJoint +{ +public: + idIndex jointIdx; + float pitchScale; + float yawScale; +}; + +// IDA Local Type ordinal 13405; PDB kind: class. +class idDeclMD6::idHeadTrackGroup +{ +public: + idAtomicString name; + idList trackJoints; + idIndex focusJointIdx; + idIndex orientationJointIdx; + int blendTime; +}; + +// IDA Local Type ordinal 22460; PDB kind: struct. +struct idDeclMD6::animEventData_t +{ + const idDeclMD6 *definingDecl; + const idAnimEvents::animEventInfo_t *info; +}; diff --git a/source/engine/models/skeletalanimation/eyeinfocollection.h b/source/engine/models/skeletalanimation/eyeinfocollection.h new file mode 100644 index 0000000..88a13ab --- /dev/null +++ b/source/engine/models/skeletalanimation/eyeinfocollection.h @@ -0,0 +1,15 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\skeletalanimation\eyeinfocollection.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13396; PDB kind: class. +class idEyeInfoCollection +{ +public: + unsigned __int16 curHandle; + idList eyeInfos; +}; diff --git a/source/engine/models/skeletalanimation/jobs/md6animdata.h b/source/engine/models/skeletalanimation/jobs/md6animdata.h new file mode 100644 index 0000000..cd7d898 --- /dev/null +++ b/source/engine/models/skeletalanimation/jobs/md6animdata.h @@ -0,0 +1,51 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\skeletalanimation\jobs\md6animdata.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1998; PDB kind: enum. +enum idMD6AnimData::animFlag_t : __int32 +{ + ANIM_FLAG_ADDITIVE = 0x1, + ANIM_FLAG_USE_FORWARD_TRANSLATION = 0x2, + ANIM_FLAG_USE_LEFT_TRANSLATION = 0x4, + ANIM_FLAG_USE_UP_TRANSLATION = 0x8, + ANIM_FLAG_USE_ROTATION = 0x10, + ANIM_FLAG_IGNORE_BOUNDS = 0x20, + ANIM_FLAG_DEFAULTED = 0x40, + ANIM_FLAG_PROXY = 0x80, + ANIM_FLAG_RETARGET_ADDITIVE = 0x100, + ANIM_FLAG_FRAME_ZERO_DELTA = 0x200, + ANIM_FLAG_HAS_JOINT_DATA = 0x400, + ANIM_FLAG_HAS_USER_CHANNEL_DATA = 0x800, + ANIM_FLAG_HAS_ORIGIN_DELTA = 0x1000, + ANIM_FLAG_INJURED = 0x2000, + ANIM_FLAG_SCRAMBLE = 0x4000, + ANIM_FLAG_FACETRACKS_COMPOSITE = 0x8000, +}; + +// IDA Local Type ordinal 13352; PDB kind: class. +class idMD6AnimData +{ +public: + unsigned int totalSize; + unsigned __int16 size; + unsigned __int16 flags; + unsigned __int16 numFrames; + unsigned __int16 frameRate; + unsigned __int16 numFrameSets; + unsigned __int16 frameSetTblOffset; + unsigned __int16 frameSetOffsetTblOffset; + unsigned __int16 numAnimMaps; + unsigned __int16 constROffset; + unsigned __int16 constSOffset; + unsigned __int16 constTOffset; + unsigned __int16 constUOffset; + unsigned __int16 nextSize; + unsigned __int16 jointWeightsOffset; + float startDelta[12]; + float endDelta[12]; +}; diff --git a/source/engine/models/skeletalanimation/jobs/md6blend.h b/source/engine/models/skeletalanimation/jobs/md6blend.h new file mode 100644 index 0000000..94d392d --- /dev/null +++ b/source/engine/models/skeletalanimation/jobs/md6blend.h @@ -0,0 +1,164 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\skeletalanimation\jobs\md6blend.h +// Recovered logical types: 15 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1040; PDB kind: enum. +enum idMD6Blend::blendOp_t : __int32 +{ + BOP_NO = 0x0, + BOP_LERP = 0x1, + BOP_REF_LERP = 0x2, + BOP_ADD_LEFT = 0x3, + BOP_ADD_RIGHT = 0x4, + BOP_SUB_LEFT = 0x5, + BOP_SUB_RIGHT = 0x6, + BOP_BLEND = 0x7, + BOP_BLENDA = 0x8, + BOP_FUSION = 0x9, + BOP_MAX = 0xA, +}; + +// IDA Local Type ordinal 1041; PDB kind: enum. +enum idMD6Blend::originBlend_t : __int32 +{ + ORIGINBLEND_BRANCH = 0x0, + ORIGINBLEND_LEFT = 0x1, + ORIGINBLEND_RIGHT = 0x2, + ORIGINBLEND_DEFAULT = 0x0, + ORIGINBLEND_SOURCE = 0x1, + ORIGINBLEND_DEST = 0x2, + ORIGINBLEND_MAX = 0x3, +}; + +// IDA Local Type ordinal 2538; PDB kind: unknown. +enum idMD6Blend::jointMod_t:: : __int32 +{ + DRIVER_MODEL = 0x1, + DRIVER_ROTATION = 0x2, + DRIVER_SCALE = 0x4, + DRIVER_TRANSLATION = 0x8, + DRIVER_USERCHANNEL = 0x10, + DRIVER_OVERRIDE = 0x20, + POSE_REFERENCE = 0x40, + POSE_FINAL = 0x80, +}; + +// IDA Local Type ordinal 13314; PDB kind: struct. +struct idMD6Blend::configInfo_t +{ + float visualOffset[4]; +}; + +// IDA Local Type ordinal 14048; PDB kind: struct. +const struct idMD6Blend::jointMod_t +{ + float mat[12]; + float s[3]; + idIndex joint; + unsigned __int16 flags; +}; + +// IDA Local Type ordinal 14050; PDB kind: struct. +struct md6BlendInfo_t +{ + unsigned __int8 op; + unsigned __int8 filterGroup; + unsigned __int8 originBlend; + unsigned __int8 pad; + float currentAlpha; +}; + +// IDA Local Type ordinal 14054; PDB kind: struct. +struct idMD6Blend::blendParms_t +{ + const idMD6SkelData *skeleton; + const idMD6Blend::configInfo_t *config; + const md6AnimCommand_t *cmds; + const idMD6Blend::jointMod_t *mods; + const float *invertedBasePose; + const float *invertedBasePoseQuat; + const unsigned __int8 *jointRemap; + unsigned int numCmds; + unsigned int numMods; + unsigned int clearOriginTransform; + unsigned int flags; + idIndex boundsSkipJoint; + float *referencePose; + float *finalPose; + float *renderPose; + float *userChannels; + md6OriginDelta_t *originDelta; +}; + +// IDA Local Type ordinal 14249; PDB kind: class. +class __declspec(align(4)) idMD6BlendBranch : public idMD6BlendBranch_Base +{ +public: + idList currentCoordinate; + idList,30> userChannelIndices; + idList activeCoordinate; + idList activeIndices; + idList branchList; + unsigned __int8 numDimensions; + bool isAngleWrapped; +}; + +// IDA Local Type ordinal 21622; PDB kind: class. +class idMD6BlendBranch::idSearch_AlphaNodePair : public idSearch_Binary,idMD6BlendBranch::idSearch_AlphaNodePair> +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21623. + virtual ~idSearch_AlphaNodePair(); + virtual int Search(const idPair *, unsigned int, const idPair *); + virtual int Search_FirstGreater(const idPair *, const int, const idPair *); + virtual int Search_FirstGreaterEqual(const idPair *, const int, const idPair *); + virtual int Search_LastLess(const idPair *, const int, const idPair *); + virtual int Search_LastLessEqual(const idPair *, const int, const idPair *); + +}; + +// IDA Local Type ordinal 21643; PDB kind: class. +class idMD6Blend +{ +public: +}; + +// IDA Local Type ordinal 21644; PDB kind: struct. +struct idMD6Blend::frameOffsets_t +{ + unsigned __int8 leftFrameOffset[256]; + unsigned __int8 rightFrameOffset[256]; + unsigned __int16 leftKeyOffset[256]; + unsigned __int16 rightKeyOffset[256]; +}; + +// IDA Local Type ordinal 21645; PDB kind: struct. +struct idMD6Blend::doubleStack_t +{ + char *start; + char *end; + char *top; + char *bot; +}; + +// IDA Local Type ordinal 23291; PDB kind: struct. +struct idMD6Blend::ExecuteCommandsInternal::__l2::local_t +{ +}; + +// IDA Local Type ordinal 23292; PDB kind: struct. +struct idMD6Blend::TransformLocalJointsToModelMatrices::__l30::local_t +{ +}; + +// IDA Local Type ordinal 23293; PDB kind: struct. +struct idMD6Blend::ApplyAnimMods::__l2::jointQuat_t +{ + float r[4]; + float s[4]; + float t[4]; +}; diff --git a/source/engine/models/skeletalanimation/jobs/md6skeldata.h b/source/engine/models/skeletalanimation/jobs/md6skeldata.h new file mode 100644 index 0000000..f40cccc --- /dev/null +++ b/source/engine/models/skeletalanimation/jobs/md6skeldata.h @@ -0,0 +1,26 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\skeletalanimation\jobs\md6skeldata.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13359; PDB kind: class. +class idMD6SkelData +{ +public: + unsigned __int16 size; + unsigned __int16 numJoints; + unsigned __int16 numUserChannels; + idHandle parentTblCrc; + unsigned __int16 basePoseOffset; + unsigned __int16 inverseBasePoseOffset; + unsigned __int16 inverseBasePoseQuatOffset; + unsigned __int16 parentTblOffset; + unsigned __int16 jointHandleTblOffset; + unsigned __int16 userChannelHandleTblOffset; + unsigned __int16 jointWeightOffsets[8]; + unsigned __int16 userWeightOffsets[8]; + unsigned __int8 pad[12]; +}; diff --git a/source/engine/models/skeletalanimation/jointgroup.h b/source/engine/models/skeletalanimation/jointgroup.h new file mode 100644 index 0000000..217baff --- /dev/null +++ b/source/engine/models/skeletalanimation/jointgroup.h @@ -0,0 +1,49 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\skeletalanimation\jointgroup.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1632; PDB kind: enum. +enum idJointGroup::jointGroup_t : __int32 +{ + JOINTGROUP_DAMAGE = 0x0, + JOINTGROUP_PAIN = 0x1, + JOINTGROUP_TWITCH = 0x2, + JOINTGROUP_DEATH = 0x3, + JOINTGROUP_LIMBLOSS = 0x4, + JOINTGROUP_HEADTRACKING = 0x5, + JOINTGROUP_FOCUS = 0x6, + JOINTGROUP_ORIENTATION = 0x7, + JOINTGROUP_HITTEST = 0x8, + JOINTGROUP_EYES = 0x9, + JOINTGROUP_FEET = 0xA, + JOINTGROUP_BOUNDS = 0xB, + JOINTGROUP_MAX = 0xC, +}; + +// IDA Local Type ordinal 13370; PDB kind: struct. +struct __declspec(align(4)) idJointGroup::jointGroupArgs_t +{ + int surfType; + bool active; +}; + +// IDA Local Type ordinal 13372; PDB kind: class. +class idJointGroup +{ +public: + idJointGroup::jointGroup_t type; + idAtomicString groupName; + idList,30> joints; + idList jointOffsets; + idList jointScalars; + idJointGroup::jointGroupArgs_t args; + idVec3 groupOffset; + idHandle handle; +}; + +// IDA Local Type ordinal 31142; PDB kind: typedef. +typedef idHandle jointGroupHandle_t; diff --git a/source/engine/models/skeletalanimation/md6alias.h b/source/engine/models/skeletalanimation/md6alias.h new file mode 100644 index 0000000..1b131fb --- /dev/null +++ b/source/engine/models/skeletalanimation/md6alias.h @@ -0,0 +1,25 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\skeletalanimation\md6alias.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2835; PDB kind: enum. +enum idMD6Alias::flags_t : __int32 +{ + ALIASFLAG_FORCE_LOAD = 0x1, + ALIASFLAG_IS_LOADED = 0x2, + ALIASFLAG_WRITABLE_FLAGS = 0x1, +}; + +// IDA Local Type ordinal 13401; PDB kind: class. +class idMD6Alias +{ +public: + idAtomicString name; + idHandle aliasHandle; + unsigned __int16 flags; + idList,19> animRefs; +}; diff --git a/source/engine/models/skeletalanimation/md6allocator.h b/source/engine/models/skeletalanimation/md6allocator.h new file mode 100644 index 0000000..6824008 --- /dev/null +++ b/source/engine/models/skeletalanimation/md6allocator.h @@ -0,0 +1,40 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\skeletalanimation\md6allocator.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14227; PDB kind: class. +class idMD6Allocator +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14229. + virtual ~idMD6Allocator(); + virtual idMD6Node *Alloc(const idMD6Node::nodeType_t); + virtual void Free(idMD6Node *); + virtual void Condense(); + virtual unsigned int Size(); + virtual int NumNodes(); + virtual idMD6Node *NodeForIndex(const int); + virtual const idMD6Node *NodeForIndex_2(const int); + +}; + +// IDA Local Type ordinal 21758; PDB kind: class. +class idMD6Allocator_New : public idMD6Allocator +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21759. + virtual ~idMD6Allocator_New(); + virtual idMD6Node *Alloc(const idMD6Node::nodeType_t); + virtual void Free(idMD6Node *); + virtual void Condense(); + virtual unsigned int Size(); + virtual int NumNodes(); + virtual idMD6Node *NodeForIndex(const int); + virtual const idMD6Node *NodeForIndex_2(const int); + + idList nodes; +}; diff --git a/source/engine/models/skeletalanimation/md6anim.h b/source/engine/models/skeletalanimation/md6anim.h new file mode 100644 index 0000000..2bb5b5e --- /dev/null +++ b/source/engine/models/skeletalanimation/md6anim.h @@ -0,0 +1,73 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\skeletalanimation\md6anim.h +// Recovered logical types: 5 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 3121; PDB kind: enum. +enum idMD6Anim::CompressAnim::__l2::local_t::channel_t : __int32 +{ + ROTATION_CHANNEL = 0x0, + SCALE_CHANNEL = 0x1, + TRANSLATION_CHANNEL = 0x2, + USER_CHANNEL = 0x3, +}; + +// IDA Local Type ordinal 13357; PDB kind: class. +class idMD6Anim : public idResource +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13358. + virtual ~idMD6Anim(); + virtual void LoadResource(); + virtual bool ReloadIfStale(); + virtual void WriteResourceFile(); + virtual idResourceList *GetResourceList(); + virtual void Print(); + virtual void List(); + + idAtomicString skelName; + idMD6AnimData *animData; + idMD6PhaseTrack phaseTrack; + idBoundsShort translatedBounds; + idBoundsShort normalizedBounds; + idHandle jointConversionHandle; + idHandle jointConversionChecksum; + unsigned int timestamp; + unsigned int phaseTrackTimestamp; + unsigned int settingsTimestamp; + int timeCode; + idVec3 origWorldPos; + idAngles origWorldRot; + idVec3 origWorldScale; + __int16 startFrameOffset; + __int16 endFrameOffset; +}; + +// IDA Local Type ordinal 21929; PDB kind: struct. +struct idMD6Anim::animationSettings_t +{ + float errorTolerance; + int startFrameOffset; + int endFrameOffset; + bool removeOrigin; + bool useForwardTranslation; + bool useLeftTranslation; + bool useUpTranslation; + bool useRotation; + bool retargetAdditive; + bool facetracksComposite; + bool frameZeroDelta; +}; + +// IDA Local Type ordinal 23287; PDB kind: struct. +struct idMD6Anim::CompressAnim::__l2::local_t +{ +}; + +// IDA Local Type ordinal 23288; PDB kind: struct. +struct idMD6Anim::RewriteText::__l166::helper_t +{ +}; diff --git a/source/engine/models/skeletalanimation/md6animevent.h b/source/engine/models/skeletalanimation/md6animevent.h new file mode 100644 index 0000000..192aaa5 --- /dev/null +++ b/source/engine/models/skeletalanimation/md6animevent.h @@ -0,0 +1,20 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\skeletalanimation\md6animevent.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13388; PDB kind: class. +class __declspec(align(4)) idMD6AnimEvent +{ +public: + idVarArgs<4> args; + idCachedJoint *cachedJoint; + __int16 eventNum; + __int16 frameNum; + idHandle eventId; + bool locked; + unsigned __int8 row; +}; diff --git a/source/engine/models/skeletalanimation/md6blockalloc.h b/source/engine/models/skeletalanimation/md6blockalloc.h new file mode 100644 index 0000000..fef1dbe --- /dev/null +++ b/source/engine/models/skeletalanimation/md6blockalloc.h @@ -0,0 +1,33 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\skeletalanimation\md6blockalloc.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14278; PDB kind: class. +class idMD6BlockAlloc : public idMD6Allocator +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14279. + virtual ~idMD6BlockAlloc(); + virtual idMD6Node *Alloc(const idMD6Node::nodeType_t); + virtual void Free(idMD6Node *); + virtual void Condense(); + virtual unsigned int Size(); + virtual int NumNodes(); + virtual idMD6Node *NodeForIndex(const int); + virtual const idMD6Node *NodeForIndex_2(const int); + + idBlockAlloc playLeaves; + idBlockAlloc pauseLeaves; + idBlockAlloc branches; + idBlockAlloc blendBranches; + idBlockAlloc blendAdditiveBranches; + idBlockAlloc fusionBranches; + idBlockAlloc bestLeaves; + idBlockAlloc tagFilters; + idList nodes; + idList nodesToDelete; +}; diff --git a/source/engine/models/skeletalanimation/md6mesh.h b/source/engine/models/skeletalanimation/md6mesh.h new file mode 100644 index 0000000..86ab502 --- /dev/null +++ b/source/engine/models/skeletalanimation/md6mesh.h @@ -0,0 +1,49 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\skeletalanimation\md6mesh.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13340; PDB kind: struct. +struct idMD6Mesh::vert_t +{ + idVec3 xyz; + idVec2 st; + idVec3 normal; + idVec4 tangent; + unsigned __int8 weights[4]; + unsigned __int8 jointIdxs[4]; +}; + +// IDA Local Type ordinal 13343; PDB kind: struct. +struct idMD6Mesh::stset_t +{ + unsigned __int8 slot; + idList st; + idVertexBuffer *vb; +}; + +// IDA Local Type ordinal 13346; PDB kind: class. +class idMD6Mesh +{ +public: + idStr name; + const idMaterial *material; + bool discrete; + bool allowSkinRemapping; + int numTexCoordSets; + idBounds bounds; + int numVerts; + int numTris; + int jointOffset; + int numJoints; + int hashST; + idList morphMap; + idTriangles *tris; + idList skinRemaps; + idList vertexes; + idList stSets; + idList indexes; +}; diff --git a/source/engine/models/skeletalanimation/md6model.h b/source/engine/models/skeletalanimation/md6model.h new file mode 100644 index 0000000..cc4b1c8 --- /dev/null +++ b/source/engine/models/skeletalanimation/md6model.h @@ -0,0 +1,77 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\skeletalanimation\md6model.h +// Recovered logical types: 5 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2180; PDB kind: enum. +enum idMD6Node::nodeType_t : __int32 +{ + NODE_BRANCH = 0x0, + NODE_LEAF_PAUSE = 0x1, + NODE_LEAF_PLAY = 0x2, + NODE_BLEND_BRANCH = 0x3, + NODE_BLENDA_BRANCH = 0x4, + NODE_FUSION_BRANCH = 0x5, + NODE_BEST_LEAF = 0x6, + NODE_TAG_FILTER = 0x7, + NODE_NONE = 0xFF, +}; + +// IDA Local Type ordinal 13362; PDB kind: class. +class idMD6Model : public idResource +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13363. + virtual ~idMD6Model(); + virtual void LoadResource(); + virtual bool ReloadIfStale(); + virtual void WriteResourceFile(); + virtual idResourceList *GetResourceList(); + virtual void Print(); + virtual void List(); + + idStr filename; + unsigned int timestamp; + unsigned int skelTimestamp; + idBounds defaultBounds; + bool remapForSkinning; + unsigned int skinChecksum; + idStr morphSkinName; + int morphSkin; + int numMeshesBeforeSplitting; + idList meshes; + idList jointRemap; + idList sourceSurfaces; + idList materials; + const idMD6Skel *skeleton; + idVec3 minBoundsExpansion; + idVec3 maxBoundsExpansion; +}; + +// IDA Local Type ordinal 13595; PDB kind: struct. +struct fm_model_t +{ + int numTreeNodes; + int numSubTrees; + fm_treeNode_t *treeNodes; + fm_subTree_t *subTrees; +}; + +// IDA Local Type ordinal 13617; PDB kind: struct. +struct dm_model_t +{ + int numTreeNodes; + int numSubTrees; + dm_treeNode_t *treeNodes; + dm_subTree_t *subTrees; +}; + +// IDA Local Type ordinal 14228; PDB kind: class. +class idMD6Node +{ +public: + unsigned __int8 type; +}; diff --git a/source/engine/models/skeletalanimation/md6phasetrack.h b/source/engine/models/skeletalanimation/md6phasetrack.h new file mode 100644 index 0000000..894608b --- /dev/null +++ b/source/engine/models/skeletalanimation/md6phasetrack.h @@ -0,0 +1,14 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\skeletalanimation\md6phasetrack.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13354; PDB kind: class. +class idMD6PhaseTrack +{ +public: + phaseTrackData_t *data; +}; diff --git a/source/engine/models/skeletalanimation/md6skel.h b/source/engine/models/skeletalanimation/md6skel.h new file mode 100644 index 0000000..9a273e7 --- /dev/null +++ b/source/engine/models/skeletalanimation/md6skel.h @@ -0,0 +1,34 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\skeletalanimation\md6skel.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 3100; PDB kind: enum. +enum idMD6Skel::GetJointList::__l2::jointOp_t : __int32 +{ + JOINTOP_INCLUDE_CHILDREN = 0x1, + JOINTOP_SUBTRACT = 0x2, +}; + +// IDA Local Type ordinal 13360; PDB kind: class. +class idMD6Skel : public idResource +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13361. + virtual ~idMD6Skel(); + virtual void LoadResource(); + virtual bool ReloadIfStale(); + virtual void WriteResourceFile(); + virtual idResourceList *GetResourceList(); + virtual void Print(); + virtual void List(); + + const idMD6Anim *defaultAnim; + idMD6SkelData *data; + unsigned int timestamp; + idHandle jointConversion; + idHandle jointConversionChecksum; +}; diff --git a/source/engine/models/skeletalanimation/md6util.h b/source/engine/models/skeletalanimation/md6util.h new file mode 100644 index 0000000..bc7bb50 --- /dev/null +++ b/source/engine/models/skeletalanimation/md6util.h @@ -0,0 +1,46 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\skeletalanimation\md6util.h +// Recovered logical types: 5 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1870; PDB kind: unknown. +enum idMD6Util:: : __int32 +{ + FRAME_FIRST = 0x0, + FRAME_LAST = 0xFFFFFFFF, +}; + +// IDA Local Type ordinal 19708; PDB kind: class. +class __declspec(align(16)) idMD6Util::idJointCache +{ +public: + idJointMat jointMatrices[256]; + const idDeclAnimWeb *webRef; + const idDeclMD6 *md6Decl; + const idMD6Anim *md6anim; + int frameNum; + bool validJointCache; +}; + +// IDA Local Type ordinal 19709; PDB kind: struct. +struct idMD6Util::animDelta_t +{ + idVec3 deltaTranslation; + idMat3 deltaAxis; +}; + +// IDA Local Type ordinal 21890; PDB kind: struct. +struct idMD6Util::idAnimWebBlendInfo +{ + __int16 startBlendFrame; + __int16 endBlendFrame; +}; + +// IDA Local Type ordinal 21891; PDB kind: class. +class idMD6Util +{ +public: +}; diff --git a/source/engine/models/skeletalanimation/modelhandle.h b/source/engine/models/skeletalanimation/modelhandle.h new file mode 100644 index 0000000..06b67e6 --- /dev/null +++ b/source/engine/models/skeletalanimation/modelhandle.h @@ -0,0 +1,13 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\skeletalanimation\modelhandle.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 32575; PDB kind: typedef. +typedef idHandle decalHandle_t; + +// IDA Local Type ordinal 33683; PDB kind: typedef. +typedef unsigned __int16 modelHandleType_t; diff --git a/source/engine/models/skeletalanimation/taginfo.h b/source/engine/models/skeletalanimation/taginfo.h new file mode 100644 index 0000000..11e7ee1 --- /dev/null +++ b/source/engine/models/skeletalanimation/taginfo.h @@ -0,0 +1,15 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\skeletalanimation\taginfo.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13377; PDB kind: class. +class idTagInfo +{ +public: + idAtomicString tagName; + tagData_t tagData; +}; diff --git a/source/engine/models/skeletalanimation/treeanimator.h b/source/engine/models/skeletalanimation/treeanimator.h new file mode 100644 index 0000000..05d570c --- /dev/null +++ b/source/engine/models/skeletalanimation/treeanimator.h @@ -0,0 +1,83 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\skeletalanimation\treeanimator.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1527; PDB kind: unknown. +enum idTreeAnimator:: : __int32 +{ + JOINTS_GAME_REFERENCE = 0x0, + JOINTS_GAME_FINAL = 0x1, + JOINTS_DEFERRED_REFERENCE = 0x2, + JOINTS_DEFERRED_FINAL = 0x3, + NUM_JOINT_ARRAYS = 0x4, +}; + +// IDA Local Type ordinal 14058; PDB kind: struct. +struct idTreeAnimator::morphMap_t +{ + unsigned __int8 *map; + idArray buffers; +}; + +// IDA Local Type ordinal 14066; PDB kind: class. +class idTreeAnimator : public idRenderModel +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14067. + virtual void Save(idFile *); + virtual bool Load(idFile *); + virtual void SerializeSnapshot(idSerializer *, bool); + virtual const idDeclSkins *GetSkins(); + virtual idHandle *AddDecalFromPoint(idHandle *result, const decalParams_t *, const int, const idVec3 *, const idVec3 *, idIndex); + virtual bool RemoveDecal(const idHandle); + virtual void RemoveDecals(); + virtual void FreeSurfaces(); + virtual bool CommitSubclass(); + virtual bool UpdateInView(const idRenderView *, const idRenderView *, idRenderModelUpdateTools *); + virtual const idList *GetSourceSurfaces(); + virtual ~idTreeAnimator(); + + const idDeclMD6 *decl; + idList meshVisibility; + __int16 morphSkin; + idIndex skipJointForBounds; + float initialMorphValue; + int currentDeferred; + md6AnimCommand_t *commands; + idList jointMods[2]; + idMD6Blend::blendParms_t *blendParms; + idJointMat *joints[4]; + idList userChannels[2]; + md6OriginDelta_t *originDelta[2]; + int lastBlendTime; + unsigned __int8 : 1; + __int8 useDualQuatSkinning : 1; + __int8 skipSerialization : 1; + __int8 updateMorphBuffers : 1; + __int8 calcRefBoundsFromJoints : 1; + __int8 originDeltaLookAhead : 1; + __int8 clearOriginTransform : 1; + __int8 hasDeferredJoints : 1; + idBounds frameBounds; + idBounds normalizedBounds; + idBounds translatedBounds; + idArray jointBuffers; + idList userChannelBuffers[4]; + int deferredJobJointBuffer; + int nextRenderThreadJointBuffer; + int renderThreadJointBuffer; + idList morphMaps; + int currentMorphBuffer; + idList wrinkleMapExpressions; +}; + +// IDA Local Type ordinal 21901; PDB kind: struct. +struct idTreeAnimator::meshHandle_t +{ + idList indices; + idStr name; +}; diff --git a/source/engine/models/skeletalanimation/userchannelexpression.h b/source/engine/models/skeletalanimation/userchannelexpression.h new file mode 100644 index 0000000..7ebd03c --- /dev/null +++ b/source/engine/models/skeletalanimation/userchannelexpression.h @@ -0,0 +1,30 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\skeletalanimation\userchannelexpression.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14060; PDB kind: class. +class idUserChannelExpression::VarId +{ +public: + int index; +}; + +// IDA Local Type ordinal 14064; PDB kind: class. +class idUserChannelExpression +{ +public: + idRuntimeExpression expr; +}; + +// IDA Local Type ordinal 21634; PDB kind: class. +class idUserChannelExpression::VarContext +{ +public: + const idDeclMD6 *decl; + const float *channels; + int numChannels; +}; diff --git a/source/engine/models/static/jobs/statictransparencygen.h b/source/engine/models/static/jobs/statictransparencygen.h new file mode 100644 index 0000000..aa39b2a --- /dev/null +++ b/source/engine/models/static/jobs/statictransparencygen.h @@ -0,0 +1,25 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\static\jobs\statictransparencygen.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14744; PDB kind: struct. +struct staticTransparencyGenParms_t +{ + const idDrawVert *inputVerts; + int numInputVerts; + float fadeStartDist; + float fadeMaxDist; + idVec3 origin; + idMat3 axis; + idVec3 viewOrg; + idVec3 viewDir; + idVec4 transSortScaleBias; + approximateLighting_t lighting; + idTransparencyVert *verts; + float *quadDepth; + int *quadsUsed; +}; diff --git a/source/engine/models/static/rendermodelstatic.h b/source/engine/models/static/rendermodelstatic.h new file mode 100644 index 0000000..cb11c79 --- /dev/null +++ b/source/engine/models/static/rendermodelstatic.h @@ -0,0 +1,31 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\static\rendermodelstatic.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14746; PDB kind: class. +class __declspec(align(8)) idRenderModelStatic : public idRenderModel +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14747. + virtual void Save(idFile *); + virtual bool Load(idFile *); + virtual void SerializeSnapshot(idSerializer *, bool); + virtual const idDeclSkins *GetSkins(); + virtual idHandle *AddDecalFromPoint(idHandle *result, const decalParams_t *, const int, const idVec3 *, const idVec3 *, idIndex); + virtual bool RemoveDecal(const idHandle); + virtual void RemoveDecals(); + virtual void FreeSurfaces(); + virtual bool CommitSubclass(); + virtual bool UpdateInView(const idRenderView *, const idRenderView *, idRenderModelUpdateTools *); + virtual const idList *GetSourceSurfaces(); + virtual ~idRenderModelStatic(); + + const idStaticModel *staticModel; + int skin; + int reloadCount; + idList transparencyGenParms; +}; diff --git a/source/engine/models/static/staticmodel.h b/source/engine/models/static/staticmodel.h new file mode 100644 index 0000000..3b1becd --- /dev/null +++ b/source/engine/models/static/staticmodel.h @@ -0,0 +1,45 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\static\staticmodel.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2909; PDB kind: enum. +enum idStaticModel::modelLoadFlags_t : __int32 +{ + MODELLOADFLAGS_RESIDE_ON_CPU = 0x1, + MODELLOADFLAGS_RESIDE_ON_GPU = 0x2, + MODELLOADFLAGS_DEFAULT = 0x2, +}; + +// IDA Local Type ordinal 13428; PDB kind: class. +class idStaticModel : public idResource +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13429. + virtual ~idStaticModel(); + virtual void LoadResource(); + virtual bool ReloadIfStale(); + virtual void WriteResourceFile(); + virtual idResourceList *GetResourceList(); + virtual void Print(); + virtual void List(); + + bool pristine; + bool isReloadable; + char binaryFileName[256]; + unsigned int binaryTimeStamp; + unsigned int sourceTimeStamp; + int reloadCount; + bool modelIsAutosprite; + bool usesTransparencySort; + idBounds referenceBounds; + idVec3 referencePosition; + bool sharedSurfaces; + int modelLoadFlags; + idList surfaces; + idList sourceSurfaces; + idList materials; +}; diff --git a/source/engine/models/static/staticmodelmanager.h b/source/engine/models/static/staticmodelmanager.h new file mode 100644 index 0000000..5b6f7cf --- /dev/null +++ b/source/engine/models/static/staticmodelmanager.h @@ -0,0 +1,46 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\static\staticmodelmanager.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 18729; PDB kind: class. +class idStaticModelManager +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18731. + virtual ~idStaticModelManager(); + virtual void Init(); + virtual const idStaticModel *FindStaticModel(const char *, bool); + virtual void AddStaticModel(idStaticModel *); + virtual void ReloadModels(); + virtual void CalculateStats(idStaticModelManager::idStats *); + +}; + +// IDA Local Type ordinal 18730; PDB kind: struct. +struct idStaticModelManager::idStats +{ + int totalCPUMem; + int totalGPUMem; + int inUse; + int totalVerts; + int totalTriangles; + int totalSurfaces; +}; + +// IDA Local Type ordinal 23184; PDB kind: class. +class idStaticModelManagerLocal : public idStaticModelManager +{ +public: + // Recovered virtual interface; IDA vtable ordinal 23185. + virtual ~idStaticModelManagerLocal(); + virtual void Init(); + virtual const idStaticModel *FindStaticModel(const char *, bool); + virtual void AddStaticModel(idStaticModel *); + virtual void ReloadModels(); + virtual void CalculateStats(idStaticModelManager::idStats *); + +}; diff --git a/source/engine/models/static/staticmodelrawsurface.h b/source/engine/models/static/staticmodelrawsurface.h new file mode 100644 index 0000000..8b2b526 --- /dev/null +++ b/source/engine/models/static/staticmodelrawsurface.h @@ -0,0 +1,14 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\static\staticmodelrawsurface.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13426; PDB kind: class. +class idStaticModelSurface : public idRenderModelSurface +{ +public: + idList skinRemaps; +}; diff --git a/source/engine/models/transparency/jobs/influencespherecull.h b/source/engine/models/transparency/jobs/influencespherecull.h new file mode 100644 index 0000000..6ec1af2 --- /dev/null +++ b/source/engine/models/transparency/jobs/influencespherecull.h @@ -0,0 +1,22 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\transparency\jobs\influencespherecull.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13544; PDB kind: struct. +struct influenceSphereCullParms_t +{ + float nearDist; + float farDist; + idVec2 fov; + idVec3 viewOrg; + idVec3 viewFwd; + idVec3 viewLeft; + idVec3 viewUp; + const influenceSphere_t *influenceSpheres; + int numInfluenceSpheres; + visibleInfluenceSpheres_t *visibleInfluenceSpheres; +}; diff --git a/source/engine/models/transparency/jobs/influencespheredata.h b/source/engine/models/transparency/jobs/influencespheredata.h new file mode 100644 index 0000000..0d53b31 --- /dev/null +++ b/source/engine/models/transparency/jobs/influencespheredata.h @@ -0,0 +1,10 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\transparency\jobs\influencespheredata.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 27582; PDB kind: typedef. +typedef __int16 influenceSphereIndex_t; diff --git a/source/engine/models/transparency/jobs/transparencyvert.h b/source/engine/models/transparency/jobs/transparencyvert.h new file mode 100644 index 0000000..6ba6d0d --- /dev/null +++ b/source/engine/models/transparency/jobs/transparencyvert.h @@ -0,0 +1,19 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\transparency\jobs\transparencyvert.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13539; PDB kind: class. +class idTransparencyVert +{ +public: + idVec3 xyz; + __int16 st[2]; + __int16 st1[2]; + unsigned __int8 normal[4]; + unsigned __int8 tangent[4]; + unsigned __int8 color[4]; +}; diff --git a/source/engine/models/transparency/rendermodeltransparency.h b/source/engine/models/transparency/rendermodeltransparency.h new file mode 100644 index 0000000..232f6b1 --- /dev/null +++ b/source/engine/models/transparency/rendermodeltransparency.h @@ -0,0 +1,34 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\transparency\rendermodeltransparency.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13545; PDB kind: class. +class __declspec(align(16)) idRenderModelTransparency : public idRenderModel +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34035. + virtual void Save(idFile *); + virtual bool Load(idFile *); + virtual void SerializeSnapshot(idSerializer *, bool); + virtual const idDeclSkins *GetSkins(); + virtual idHandle *AddDecalFromPoint(idHandle *result, const decalParams_t *, const int, const idVec3 *, const idVec3 *, idIndex); + virtual bool RemoveDecal(const idHandle); + virtual void RemoveDecals(); + virtual void FreeSurfaces(); + virtual bool CommitSubclass(); + virtual bool UpdateInView(const idRenderView *, const idRenderView *, idRenderModelUpdateTools *); + virtual const idList *GetSourceSurfaces(); + virtual ~idRenderModelTransparency(); + + transSortParms_t *sortParms; + transSortResult_t *sortResult; + influenceSphere_t *influenceSpheres[2]; + int numInfluenceSpheres[2]; + int currentSphereIndex; + visibleInfluenceSpheres_t *visibleInfluenceSpheres; + influenceSphereCullParms_t *influenceSphereCullParms; +}; diff --git a/source/engine/models/water/rendermodelwatersurface.h b/source/engine/models/water/rendermodelwatersurface.h new file mode 100644 index 0000000..ac5918e --- /dev/null +++ b/source/engine/models/water/rendermodelwatersurface.h @@ -0,0 +1,45 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\water\rendermodelwatersurface.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 18865; PDB kind: struct. +struct idRenderModelWaterSurface::waterSimParms_t +{ + float spacing; + float damping; + float speed; + float timeStep; + idBounds waterBounds; +}; + +// IDA Local Type ordinal 18866; PDB kind: class. +class __declspec(align(8)) idRenderModelWaterSurface : public idRenderModel +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18867. + virtual void Save(idFile *); + virtual bool Load(idFile *); + virtual void SerializeSnapshot(idSerializer *, bool); + virtual const idDeclSkins *GetSkins(); + virtual idHandle *AddDecalFromPoint(idHandle *result, const decalParams_t *, const int, const idVec3 *, const idVec3 *, idIndex); + virtual bool RemoveDecal(const idHandle); + virtual void RemoveDecals(); + virtual void FreeSurfaces(); + virtual bool CommitSubclass(); + virtual bool UpdateInView(const idRenderView *, const idRenderView *, idRenderModelUpdateTools *); + virtual const idList *GetSourceSurfaces(); + virtual ~idRenderModelWaterSurface(); + + idWaterSurfaceSim *waterSim; + idVertexBuffer vertexBuffer[3]; + idIndexBuffer indexBuffer; + idDrawVert *deferredVerts; + int currentIndex; + deferredWaterBlockGenParms_t *waterGenBlockParms; + idRenderModelWaterSurface::waterSimParms_t waterSimParms; + const idMaterial *material; +}; diff --git a/source/engine/models/water/watersurfacesim.h b/source/engine/models/water/watersurfacesim.h new file mode 100644 index 0000000..66370f2 --- /dev/null +++ b/source/engine/models/water/watersurfacesim.h @@ -0,0 +1,33 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\water\watersurfacesim.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 18863; PDB kind: class. +class idWaterSurfaceSim +{ +public: + unsigned int width; + unsigned int height; + float spacing; + float damping; + float speed; + float timeStep; + bool visible; + idVec3 origin; + idRandom2 rnd; + int currentDeferred; + int numDisturbances; + int allocWidth; + int allocHeight; + int numBlocksX; + int numBlocksY; + idList simulateParms; + idList vertGradient; + idList waveHeight[2]; + idList dummyBlock; + idList waterDisturbances[2]; +}; diff --git a/source/engine/models/zipline/jobs/nonuniformbspline.h b/source/engine/models/zipline/jobs/nonuniformbspline.h new file mode 100644 index 0000000..3a9535b --- /dev/null +++ b/source/engine/models/zipline/jobs/nonuniformbspline.h @@ -0,0 +1,104 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\zipline\jobs\nonuniformbspline.h +// Recovered logical types: 5 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 3079; PDB kind: enum. +enum __bitmask idNonUniformBSpline::boundary_t : __int32 +{ + CLAMPED = 0x1, + CLOSED = 0x2, +}; + +// IDA Local Type ordinal 12901; PDB kind: class. +class idCurve_NonUniformBSpline : public idCurve_BSpline +{ +public: + // Recovered virtual interface; IDA vtable ordinal 12902. + virtual ~idCurve_NonUniformBSpline(); + virtual int AddValue(const float, const idVec4 *); + virtual void RemoveIndex(const int); + virtual void Clear(); + virtual void SetNumValues(int); + virtual idVec4 *GetCurrentValue(idVec4 *result, const float); + virtual idVec4 *GetCurrentFirstDerivative(idVec4 *result, const float); + virtual idVec4 *GetCurrentSecondDerivative(idVec4 *result, const float); + virtual bool IsDone(const float); + virtual float GetLengthForTime(const float); + virtual float EstimateLengthForTime(const float); + virtual idCurve *CreateNewCurve(); + virtual void SetBoundaryType(const boundary_t::eType); + virtual boundary_t::eType GetBoundaryType(); + virtual void SetCloseTime(const float); + virtual float GetCloseTime(); + virtual int GetOrder(); + virtual void SetOrder(const int); + +}; + +// IDA Local Type ordinal 18169; PDB kind: class. +class idCurve_NonUniformBSpline : public idCurve_BSpline +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18170. + virtual ~idCurve_NonUniformBSpline(); + virtual int AddValue(const float, const idVec3 *); + virtual void RemoveIndex(const int); + virtual void Clear(); + virtual void SetNumValues(int); + virtual idVec3 *GetCurrentValue(idVec3 *result, const float); + virtual idVec3 *GetCurrentFirstDerivative(idVec3 *result, const float); + virtual idVec3 *GetCurrentSecondDerivative(idVec3 *result, const float); + virtual bool IsDone(const float); + virtual float GetLengthForTime(const float); + virtual float EstimateLengthForTime(const float); + virtual idCurve *CreateNewCurve(); + virtual void SetBoundaryType(const boundary_t::eType); + virtual boundary_t::eType GetBoundaryType(); + virtual void SetCloseTime(const float); + virtual float GetCloseTime(); + virtual int GetOrder(); + virtual void SetOrder(const int); + +}; + +// IDA Local Type ordinal 18806; PDB kind: class. +class idNonUniformBSpline +{ +public: + float times[512]; + idVec3 values[512]; + int numKnots; + idNonUniformBSpline::boundary_t boundaryType; + float closeTime; + int order; +}; + +// IDA Local Type ordinal 19672; PDB kind: class. +class idCurve_NonUniformBSpline : public idCurve_BSpline +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19673. + virtual ~idCurve_NonUniformBSpline(); + virtual int AddValue(const float, const idAngles *); + virtual void RemoveIndex(const int); + virtual void Clear(); + virtual void SetNumValues(int); + virtual idAngles *GetCurrentValue(idAngles *result, const float); + virtual idAngles *GetCurrentFirstDerivative(idAngles *result, const float); + virtual idAngles *GetCurrentSecondDerivative(idAngles *result, const float); + virtual bool IsDone(const float); + virtual float GetLengthForTime(const float); + virtual float EstimateLengthForTime(const float); + virtual idCurve *CreateNewCurve(); + virtual void SetBoundaryType(const boundary_t::eType); + virtual boundary_t::eType GetBoundaryType(); + virtual void SetCloseTime(const float); + virtual float GetCloseTime(); + virtual int GetOrder(); + virtual void SetOrder(const int); + +}; diff --git a/source/engine/models/zipline/jobs/ziplinegen.h b/source/engine/models/zipline/jobs/ziplinegen.h new file mode 100644 index 0000000..d95656c --- /dev/null +++ b/source/engine/models/zipline/jobs/ziplinegen.h @@ -0,0 +1,27 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\zipline\jobs\ziplinegen.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 18807; PDB kind: struct. +struct zipLineGenParms_t +{ + const idNonUniformBSpline *controlSpline; + int splineTessellationDistance; + int splineMaxSubdivisions; + int cableSubdivisions; + float cableDiameter; + const sweptPoint_t *sweptPoints; + float time; + float fractionBeforeLerp; + bool downDirection; + int maxVertices; + int maxIndices; + idDrawVert *vertices; + unsigned __int16 *indices; + int *numVertices; + int *numIndices; +}; diff --git a/source/engine/models/zipline/rendermodelzipline.h b/source/engine/models/zipline/rendermodelzipline.h new file mode 100644 index 0000000..e37e469 --- /dev/null +++ b/source/engine/models/zipline/rendermodelzipline.h @@ -0,0 +1,45 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\models\zipline\rendermodelzipline.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 18808; PDB kind: class. +class __declspec(align(16)) idRenderModelZipline : public idRenderModel +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18809. + virtual void Save(idFile *); + virtual bool Load(idFile *); + virtual void SerializeSnapshot(idSerializer *, bool); + virtual const idDeclSkins *GetSkins(); + virtual idHandle *AddDecalFromPoint(idHandle *result, const decalParams_t *, const int, const idVec3 *, const idVec3 *, idIndex); + virtual bool RemoveDecal(const idHandle); + virtual void RemoveDecals(); + virtual void FreeSurfaces(); + virtual bool CommitSubclass(); + virtual bool UpdateInView(const idRenderView *, const idRenderView *, idRenderModelUpdateTools *); + virtual const idList *GetSourceSurfaces(); + virtual ~idRenderModelZipline(); + + const idMaterial *material; + int splineMaxSubdivisions; + int splineTessellationDistance; + float cableDiameter; + int cableSubdivisions; + float time; + float fractionBeforeLerp; + bool downDirection; + int dirty; + sweptPoint_t *sweptPoints; + idNonUniformBSpline *sourceSpline[2]; + int currentSourceSpline; + zipLineGenParms_t *parms; + int currentBuffer; + idVertexBuffer vertexBuffer[3]; + idIndexBuffer indexBuffer[3]; + int numVertices; + int numIndices; +}; diff --git a/source/engine/network/hansoftreport.h b/source/engine/network/hansoftreport.h new file mode 100644 index 0000000..d263c2c --- /dev/null +++ b/source/engine/network/hansoftreport.h @@ -0,0 +1,17 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\network\hansoftreport.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17685; PDB kind: class. +class idHansoftReport : public idIssueReport +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17686. + virtual ~idHansoftReport(); + virtual void WriteReport(); + +}; diff --git a/source/engine/network/issuereport.h b/source/engine/network/issuereport.h new file mode 100644 index 0000000..99bb09a --- /dev/null +++ b/source/engine/network/issuereport.h @@ -0,0 +1,18 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\network\issuereport.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17681; PDB kind: class. +class idIssueReport +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17682. + virtual ~idIssueReport(); + virtual void WriteReport(); + + idStr attachFileName; +}; diff --git a/source/engine/network/localreport.h b/source/engine/network/localreport.h new file mode 100644 index 0000000..ad052bb --- /dev/null +++ b/source/engine/network/localreport.h @@ -0,0 +1,18 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\network\localreport.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17683; PDB kind: class. +class idLocalReport : public idIssueReport +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17684. + virtual ~idLocalReport(); + virtual void WriteReport(); + + idStr fileName; +}; diff --git a/source/engine/network/packetprocessor.h b/source/engine/network/packetprocessor.h new file mode 100644 index 0000000..b1e1924 --- /dev/null +++ b/source/engine/network/packetprocessor.h @@ -0,0 +1,74 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\network\packetprocessor.h +// Recovered logical types: 5 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 10548; PDB kind: struct. +struct PACKET_PROCESSOR +{ + PACKET_QUEUE FreePacketContexts; + PACKET_QUEUE InFlight; + PACKET_CONTEXT *PacketContextAllocation; +}; + +// IDA Local Type ordinal 22294; PDB kind: class. +class idPacketProcessor +{ +public: + unsigned __int8 msgBuffer[8000]; + int msgWritePos; + int fragmentSequence; + int droppedFrags; + bool fragmentedSend; + idDataQueue<63,8000> reliable; + int reliableSequenceSend; + int reliableSequenceRecv; + int numReliable; + unsigned __int8 reliableBuffer[8000]; + const unsigned __int8 *reliableMsgPtrs[63]; + int reliableMsgSize[63]; + int queuedReliableAck; + idBitMsg unsentMsg; + unsigned __int8 unsentBuffer[8000]; + int lastSendTime; + int outgoingRateTime; + float outgoingRateBytes; + int incomingRateTime; + float incomingRateBytes; + int outgoingBytes; + int incomingBytes; + int currentOutgoingRate; + int lastOutgoingRateTime; + int lastOutgoingBytes; + int currentIncomingRate; + int lastIncomingRateTime; + int lastIncomingBytes; + idGaugeMetric outgoingPacketSize; + idGaugeMetric incomingPacketSize; + idGaugeMetric handledReliableMsgSize; + idGaugeMetric queuedReliableMsgSize; + idGaugeMetric fragmentedPacketSize; + idGaugeMetric sentSnapShotSize; + int fragmentAccumulator; +}; + +// IDA Local Type ordinal 22295; PDB kind: class. +class idPacketProcessor::idOuterPacketHeader +{ +public: + unsigned __int16 sessionID; +}; + +// IDA Local Type ordinal 22296; PDB kind: class. +class idPacketProcessor::idInnerPacketHeader +{ +public: + int type; + int userData; +}; + +// IDA Local Type ordinal 26638; PDB kind: typedef. +typedef PACKET_PROCESSOR *PPACKET_PROCESSOR; diff --git a/source/engine/network/serializer.h b/source/engine/network/serializer.h new file mode 100644 index 0000000..ece1936 --- /dev/null +++ b/source/engine/network/serializer.h @@ -0,0 +1,60 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\network\serializer.h +// Recovered logical types: 5 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13123; PDB kind: class. +class __declspec(align(4)) idSimpleSerializer +{ +public: + unsigned __int8 *data; + int size; + int pos; + bool writing; +}; + +// IDA Local Type ordinal 13524; PDB kind: class. +class idSerializer +{ +public: + bool writing; + idBitMsg *msg; +}; + +// IDA Local Type ordinal 13678; PDB kind: struct. +struct idSerializerLog::logEntry_t +{ + idStr typeName; + idStr instanceName; + int objID; + int parent; + int parentObjID; + int start; + int end; + int startWriteBit; + int endWriteBit; +}; + +// IDA Local Type ordinal 13680; PDB kind: struct. +struct idSerializerLog::compressionEntry_t +{ + int objID; + int csize; +}; + +// IDA Local Type ordinal 13682; PDB kind: class. +class idSerializerLog +{ +public: + idList logEntries; + idList compressionEntries; + int finalCompressedSize; + int finalUncompressedSize; + bool fragmented; + int lastEntry; + int lastObjID; + int refCount; +}; diff --git a/source/engine/network/smtp.h b/source/engine/network/smtp.h new file mode 100644 index 0000000..e5039ac --- /dev/null +++ b/source/engine/network/smtp.h @@ -0,0 +1,31 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\network\smtp.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 12990; PDB kind: struct. +struct idMTP::request_t +{ + unsigned __int64 offset; + unsigned int length; + unsigned __int16 filenameLength; + unsigned __int16 operation; +}; + +// IDA Local Type ordinal 12992; PDB kind: struct. +struct idMTP::stats_t +{ + unsigned __int64 length; + unsigned int timestamp; + unsigned int unused; +}; + +// IDA Local Type ordinal 23109; PDB kind: class. +class idSMTP +{ +public: + idTCP tcp; +}; diff --git a/source/engine/network/snapshot.h b/source/engine/network/snapshot.h new file mode 100644 index 0000000..ba87094 --- /dev/null +++ b/source/engine/network/snapshot.h @@ -0,0 +1,66 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\network\snapshot.h +// Recovered logical types: 5 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1101; PDB kind: enum. +enum snapshotState_t : __int32 +{ + SNAP_NONE = 0x0, + SNAP_READING = 0x1, + SNAP_WRITING = 0x2, +}; + +// IDA Local Type ordinal 13672; PDB kind: struct. +struct idSnapShot::objectBuffer_t +{ + unsigned __int8 *data; + unsigned int size; +}; + +// IDA Local Type ordinal 13673; PDB kind: struct. +struct __declspec(align(4)) idSnapShot::objectState_t +{ + unsigned __int16 objectNum; + idSnapShot::objectBuffer_t buffer; + unsigned int visMask; + bool stale; + bool deleted; + int changedCount; + int expectedSequence; + bool createdFromTemplate; +}; + +// IDA Local Type ordinal 13683; PDB kind: class. +class __declspec(align(4)) idSnapShot +{ +public: + idList objectStates; + idBlockAlloc allocatedObjs; + idSerializerLog *serializeLog; + int time; + int recvTime; + bool isGlobalHeap; +}; + +// IDA Local Type ordinal 22183; PDB kind: struct. +struct idSnapShot::submitDeltaJobsInfo_t +{ + objParms_t *objParms; + int maxObjParms; + unsigned __int8 *objMemory; + objHeader_t *headers; + int maxHeaders; + int maxObjMemory; + lzwParm_t *lzwParms; + int maxDeltaParms; + idSnapShot *oldSnap; + int visIndex; + int baseSequence; + idSnapShot *templateStates; + lzwInOutData_t *lzwInOutData; + idParallelJobList *snapshotJobList; +}; diff --git a/source/engine/network/snapshotmetrics.h b/source/engine/network/snapshotmetrics.h new file mode 100644 index 0000000..5ce889d --- /dev/null +++ b/source/engine/network/snapshotmetrics.h @@ -0,0 +1,40 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\network\snapshotmetrics.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22308; PDB kind: class. +class idSnapshotMetrics +{ +public: + idStaticList ignoreList; + idStaticList watchList; + bool printNextReport; + float SNAPSHOTS_DRAW_SCALE; + float SNAPSHOTS_Y_OFFSET; + float SNAPSHOTS_X_OFFSET; + float SNAPSHOTS_Y_SPACING; + float curY; + int width; + int height; + int nameLen; + int lastReportMS; + int guiOffset; + int nextKeyEvent; + idArray peerSeq; +}; + +// IDA Local Type ordinal 22309; PDB kind: class. +class idSnapshotMetrics::idSnapshotMetricRecord : public idMetricRecord +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22310. + virtual ~idSnapshotMetricRecord(); + virtual void WriteHeader(idMetricFile *); + virtual void SerializeEntry(idMetricFile *); + + idStr text; +}; diff --git a/source/engine/network/snapshotprocessor.h b/source/engine/network/snapshotprocessor.h new file mode 100644 index 0000000..683eb23 --- /dev/null +++ b/source/engine/network/snapshotprocessor.h @@ -0,0 +1,37 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\network\snapshotprocessor.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 21666; PDB kind: struct. +struct idSnapshotProcessor::jobMemory_t +{ + idArray objParms; + idArray headers; + idArray lzwParms; + idArray lzwDeltas; + idArray lzwMem; + lzwInOutData_t lzwInOutData; +}; + +// IDA Local Type ordinal 21667; PDB kind: class. +class idSnapshotProcessor +{ +public: + int snapSequence; + int baseSequence; + int lastFullSnapBaseSequence; + idSnapShot baseState; + idDataQueue<64,65536> deltas; + idArray deltaLogs; + idSnapShot pendingSnap; + bool hasPendingSnap; + idSnapshotProcessor::jobMemory_t *jobMemory; + idSnapShot submittedState; + idSnapShot templateStates; + idSnapShot submittedTemplateStates; + int partialBaseSequence; +}; diff --git a/source/engine/renderer/ambientlighting.h b/source/engine/renderer/ambientlighting.h new file mode 100644 index 0000000..4ca1950 --- /dev/null +++ b/source/engine/renderer/ambientlighting.h @@ -0,0 +1,14 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\ambientlighting.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13564; PDB kind: class. +class idAmbientLighting +{ +public: + ambientMap_t *ambientMap; +}; diff --git a/source/engine/renderer/autorenderparms.h b/source/engine/renderer/autorenderparms.h new file mode 100644 index 0000000..39dfcad --- /dev/null +++ b/source/engine/renderer/autorenderparms.h @@ -0,0 +1,104 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\autorenderparms.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17440; PDB kind: class. +class idAutoRenderParms +{ +public: + const idDeclRenderParm *If; + const idDeclRenderParm *Time; + const idDeclRenderParm *Color; + const idDeclRenderParm *coverage; + const idDeclRenderParm *modelFade; + const idDeclRenderParm *useSkinBlending; + const idDeclRenderParm *exposure; + const idDeclRenderParm *TimeScale; + const idDeclRenderParm *TimeOffset; + const idDeclRenderParm *TimeStop; + const idDeclRenderParm *Diversity; + const idDeclRenderParm *Wind; + const idDeclRenderParm *NoShadows; + const idDeclRenderParm *polygonOffset; + const idDeclRenderParm *lightColor; + const idDeclRenderParm *lightScale; + const idDeclRenderParm *lightProjectMap; + const idDeclRenderParm *lightFalloffMap; + const idDeclRenderParm *globalViewOrigin; + const idDeclRenderParm *globalViewFwd; + const idDeclRenderParm *globalViewLeft; + const idDeclRenderParm *globalViewUp; + const idDeclRenderParm *stageProgram; + const idDeclRenderParm *interactionProgram; + const idDeclRenderParm *shadowProgram; + const idDeclRenderParm *depthFillProgram; + const idDeclRenderParm *addProgram; + const idDeclRenderParm *blendProgram; + const idDeclRenderParm *stageSort; + const idDeclRenderParm *sortCoverage; + const idDeclRenderParm *sortSkybox; + const idDeclRenderParm *sortBackground; + const idDeclRenderParm *sortEmit; + const idDeclRenderParm *sortEmitOnly; + const idDeclRenderParm *sortLight; + const idDeclRenderParm *sortDecal; + const idDeclRenderParm *sortTransSort; + const idDeclRenderParm *sortTrans; + const idDeclRenderParm *sortWater; + const idDeclRenderParm *sortPerturber; + const idDeclRenderParm *surfaceFlags; + const idDeclRenderParm *contentFlags; + const idDeclRenderParm *toolsFlags; + const idDeclRenderParm *surfaceType; + const idDeclRenderParm *skipSurfaceInfo; + const idDeclRenderParm *discrete; + const idDeclRenderParm *noFragment; + const idDeclRenderParm *editorImage; + const idDeclRenderParm *editorDraw; + const idDeclRenderParm *editorAlpha; + const idDeclRenderParm *viewMatrix[4]; + const idDeclRenderParm *inverseViewMatrix[4]; + const idDeclRenderParm *modelMatrix[4]; + const idDeclRenderParm *inverseModelMatrix[4]; + const idDeclRenderParm *projectionMatrix[4]; + const idDeclRenderParm *inverseProjectionMatrix[4]; + const idDeclRenderParm *mvpMatrix[4]; + const idDeclRenderParm *worldSpaceInverseMVPMatrix[4]; + const idDeclRenderParm *powerMip; + const idDeclRenderParm *diffuseMap; + const idDeclRenderParm *specularMap; + const idDeclRenderParm *bumpMap; + const idDeclRenderParm *powerMap; + const idDeclRenderParm *coverMap; + const idDeclRenderParm *virtualTransMap; + const idDeclRenderParm *transMap; + const idDeclRenderParm *textureMap; + const idDeclRenderParm *sMatrix; + const idDeclRenderParm *tMatrix; + const idDeclRenderParm *rMatrix; + const idDeclRenderParm *qMatrix; + const idDeclRenderParm *select; + const idDeclRenderParm *virtualMapping; + const idDeclRenderParm *positionToViewTexture; + const idDeclRenderParm *renderPositionToViewTexture; + const idDeclRenderParm *positionToFeedback; + const idDeclRenderParm *ambientLightColor; + const idDeclRenderParm *channelLight[6]; + const idDeclRenderParm *primeLightDir; + const idDeclRenderParm *primeLightColor; + const idDeclRenderParm *highlightColor; + const idDeclRenderParm *landPageFile; + const idDeclRenderParm *renderBump; + const idDeclRenderParm *stampCovers; + const idDeclRenderParm *stampScales; + const idDeclRenderParm *stampBlendMode; + const idDeclRenderParm *stampBlendModeNone; + const idDeclRenderParm *depthOfField; + const idDeclRenderParm *radialBlurCenter; + const idDeclRenderParm *globalBlur; + const idDeclRenderParm *doubleVision; +}; diff --git a/source/engine/renderer/binaryimage.h b/source/engine/renderer/binaryimage.h new file mode 100644 index 0000000..82df359 --- /dev/null +++ b/source/engine/renderer/binaryimage.h @@ -0,0 +1,30 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\binaryimage.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19092; PDB kind: class. +class idBinaryImage::idBinaryImageData +{ +public: + int level; + int destZ; + int width; + int height; + int dataSize; + idList data; +}; + +// IDA Local Type ordinal 19094; PDB kind: class. +class idBinaryImage +{ +public: + idStr imgName; + unsigned int sourceFileTime; + unsigned int binaryFileTime; + idImageOpts opts; + idList images; +}; diff --git a/source/engine/renderer/coderenderparm.h b/source/engine/renderer/coderenderparm.h new file mode 100644 index 0000000..1775726 --- /dev/null +++ b/source/engine/renderer/coderenderparm.h @@ -0,0 +1,21 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\coderenderparm.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19088; PDB kind: class. +class idCodeRenderParm +{ +public: + idAtomicString name; + const char *initString; + int parmIndex; + parmType_t parmType; + bool cubeFilterTexture; + parmValue_t declaredValue; + parmEdit_t edit; + float editRange[2]; +}; diff --git a/source/engine/renderer/declmaterial.h b/source/engine/renderer/declmaterial.h new file mode 100644 index 0000000..7090fb1 --- /dev/null +++ b/source/engine/renderer/declmaterial.h @@ -0,0 +1,19 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\declmaterial.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22382; PDB kind: class. +class idASEMaterial +{ +public: + idStr name; + float uOffset; + float vOffset; + float uTiling; + float vTiling; + float angle; +}; diff --git a/source/engine/renderer/declrenderparm.h b/source/engine/renderer/declrenderparm.h new file mode 100644 index 0000000..18fd5d1 --- /dev/null +++ b/source/engine/renderer/declrenderparm.h @@ -0,0 +1,38 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\declrenderparm.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13548; PDB kind: class. +class idDeclRenderParm : public idDecl +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13549. + virtual ~idDeclRenderParm(); + 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(); + + int parmIndex; + parmType_t parmType; + parmCreator_t creator; + bool cubeFilterTexture; + parmValue_t declaredValue; + parmEdit_t edit; + float editRange[2]; +}; diff --git a/source/engine/renderer/declrenderprog.h b/source/engine/renderer/declrenderprog.h new file mode 100644 index 0000000..645f1a4 --- /dev/null +++ b/source/engine/renderer/declrenderprog.h @@ -0,0 +1,78 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\declrenderprog.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2609; PDB kind: enum. +enum idDeclRenderProg::programType_t : __int32 +{ + PROGRAM_TYPE_VERTEX = 0x0, + PROGRAM_TYPE_FRAGMENT = 0x1, +}; + +// IDA Local Type ordinal 13320; PDB kind: class. +class __declspec(align(8)) idDeclRenderProg : public idDecl +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13324. + virtual ~idDeclRenderProg(); + 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(); + + const idDeclRenderProg *renamed; + unsigned __int64 glState; + bool hasClip; + bool hasAlphaToCoverage; + bool hasHardwareSkinning; + bool hasInteractions; + bool has16BitScaleBias; + bool hasVertexTexture; + unsigned __int16 fragmentOutputs; + unsigned __int8 registerCountPS3; + unsigned __int8 registerCount360; + float stageSort; + idParmBlock parmBlock; + unsigned int vertexMask; + unsigned int vertexProgramChecksum; + unsigned int fragmentProgramChecksum; + __int16 vertexParms[32]; + int numVertexParms; + __int16 fragmentParms[32]; + int numFragmentParms; + __int16 textureParms[16]; + int numTextureParms; + bool hasDerived; + const idDeclRenderProg *inheritedVertexProgram; + const idDeclRenderProg *inheritedFragmentProgram; + idArray vertexDeclarations; + int numVertexDeclarations; + void *compiledVertexCode; + D3DPixelShader *fragmentShaderD3D; + bool isFastZ; + idStr vertexCode[4]; + idStr fragmentCode[4]; + const idDeclRenderProg *versions[4]; +}; + +// IDA Local Type ordinal 13322; PDB kind: struct. +struct idDeclRenderProg::vertexDeclaration_t +{ + D3DVertexShader *vertexShaderD3D; + unsigned int vertexMask; +}; diff --git a/source/engine/renderer/development/cpugen/clouduser.h b/source/engine/renderer/development/cpugen/clouduser.h new file mode 100644 index 0000000..861f60b --- /dev/null +++ b/source/engine/renderer/development/cpugen/clouduser.h @@ -0,0 +1,40 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\development\cpugen\clouduser.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 23642; PDB kind: class. +class idCloud +{ +public: + // Recovered virtual interface; IDA vtable ordinal 23655. + virtual ~idCloud(); + virtual bool IsAvailable(); + virtual bool IsRemote(); + virtual void Reset(); + virtual void Heartbeat(); + virtual int NumCloudServers(); + virtual int NumCommandsStillOutstanding(); + virtual idPageGenClient *GetPageGenClient(); + virtual idPixelGenClient *GetPixelGenClient(); + virtual idRenderBumpClient *GetRenderBumpClient(); + virtual void CloudStamp(idRenderWorld *, const idStr *, int, cloudMode_t, const idList *); + virtual void CloudRadPreview(const idStr *, idGenWorld *, const cloudMode_t); + virtual void CloudRenderBump(const cloudMode_t); + virtual void GetClusterInfos(struct idList *); + virtual int GetNumQualityPresets(); + virtual const idQualityPreset *GetQualityPreset(const int); + virtual void LoadQualityPresets(); + virtual int ProcessResponses(); + virtual bool LoadBuildCVars(const idStr *); + virtual void AddTraceFile(const idStr *, const idStr *, const idStr *); + virtual int GetOutstandingPages(); + virtual int GetOutstandingMips(); + virtual float GetPagesPerSecond(); + virtual float GetMipsPerSecond(); + virtual void ClearPendingWork(); + +}; diff --git a/source/engine/renderer/development/cpugen/genmodel.h b/source/engine/renderer/development/cpugen/genmodel.h new file mode 100644 index 0000000..9acc9ca --- /dev/null +++ b/source/engine/renderer/development/cpugen/genmodel.h @@ -0,0 +1,50 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\development\cpugen\genmodel.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 21708; PDB kind: class. +class idGenModelSurf +{ +public: + idList verts; + idList tris; + idBounds bounds; + const idMaterial *material; + const idMaterial *mappingMaterial; + genModelSurfParms_t parms; + int materialNum; + int basePoseVertexMask; +}; + +// IDA Local Type ordinal 21710; PDB kind: class. +class idGenModel +{ +public: + idStr path; + unsigned int timestamp; + idList surfaces; + idList binaryModelNames; + idBounds bounds; + idBounds staticBounds; +}; + +// IDA Local Type ordinal 23777; PDB kind: class. +class idGenGridModel +{ +public: + idList indices; + idList vertices; + idList edges; + idList polygonEdges; + idList polygons; + idList parts; + idList nodes; + int numX; + int numY; + idVec2i offset; + int dimension; +}; diff --git a/source/engine/renderer/development/cpugen/radpreview.h b/source/engine/renderer/development/cpugen/radpreview.h new file mode 100644 index 0000000..e8e98c9 --- /dev/null +++ b/source/engine/renderer/development/cpugen/radpreview.h @@ -0,0 +1,23 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\development\cpugen\radpreview.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 23673; PDB kind: class. +class idRadPreview +{ +public: + // Recovered virtual interface; IDA vtable ordinal 23676. + virtual ~idRadPreview(); + virtual bool Start(idRadPreviewToolIface *, const idStr *); + virtual void Stop(); + virtual void Update(); + virtual void SignalWorldChanged(int); + virtual void Pause(bool); + virtual void Unpause(); + virtual void RebuildGeometry(); + +}; diff --git a/source/engine/renderer/development/manifold.h b/source/engine/renderer/development/manifold.h new file mode 100644 index 0000000..d9e94dc --- /dev/null +++ b/source/engine/renderer/development/manifold.h @@ -0,0 +1,105 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\development\manifold.h +// Recovered logical types: 9 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 3033; PDB kind: enum. +enum idManifold::occluders_t : __int32 +{ + OCCLUDERS_NONE = 0x0, + OCCLUDERS_ALL = 0x1, + OCCLUDERS_SIGNIFICANT = 0x2, + OCCLUDERS_OMNI_SIGNIFICANT = 0x3, + OCCLUDERS_DETAIL = 0x4, + OCCLUDERS_PIPE = 0x5, +}; + +// IDA Local Type ordinal 3034; PDB kind: enum. +enum idManifold::color_t : __int32 +{ + COLOR_NONE = 0x0, + COLOR_ISLANDS = 0x1, + COLOR_NODES = 0x2, +}; + +// IDA Local Type ordinal 3035; PDB kind: unknown. +typedef idBSPSurface:: idManifold::; + +// IDA Local Type ordinal 22836; PDB kind: struct. +struct manifoldEdge_t +{ + manifoldVertex_t *verts[2]; + manifoldEdgeTriangle_t *tris[2]; + manifoldEdge_t *split[2]; + int numTris; + int flags; +}; + +// IDA Local Type ordinal 22837; PDB kind: struct. +struct manifoldHint_t +{ + int planeType; + float planeDist; + idWinding *winding; +}; + +// IDA Local Type ordinal 22842; PDB kind: struct. +struct manifoldNode_t +{ + int planeType; + float planeDist; + idBounds bounds; + idList hints; + idList triangles; + idHashIndex triangleHash; + idList islands; + manifoldNode_t *children[2]; +}; + +// IDA Local Type ordinal 22845; PDB kind: struct. +struct idManifold::tree_t +{ + manifoldNode_t *root; + idManifold::occluders_t splitOccluders; + int trianglesPerNode; + float planarEpsilon; + float colinearEpsilon; + float flipEpsilon; + float convexEpsilon; + float textureSpaceEpsilon; + int doneTriangles; + int donePercent; +}; + +// IDA Local Type ordinal 22864; PDB kind: class. +class idManifold +{ +public: + idList vertices; + idList edges; + idList triangles; + idList islands; + idHashIndex vertexHash; + idHashIndex edgeHash; + idHashIndex triangleHash; + idList splitEdges; + idManifold::tree_t tree; + idList binaryModelNames; + idList binaryModelState; + idBlockAlloc manifoldVertexAllocator; + idBlockAlloc manifoldEdgeTriangleAllocator; + idBlockAlloc manifoldEdgeAllocator; + idBlockAlloc manifoldTriangleAllocator; + idBlockAlloc manifoldIslandAllocator; + idBlockAlloc manifoldNodeAllocator; +}; + +// IDA Local Type ordinal 22865; PDB kind: struct. +struct idManifold::tjunction_t +{ + manifoldEdge_t *edge; + manifoldVertex_t *vertex; +}; diff --git a/source/engine/renderer/development/texturevectors.h b/source/engine/renderer/development/texturevectors.h new file mode 100644 index 0000000..b86a114 --- /dev/null +++ b/source/engine/renderer/development/texturevectors.h @@ -0,0 +1,14 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\development\texturevectors.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22832; PDB kind: class. +class idTextureVectors +{ +public: + long double texVec[2][4]; +}; diff --git a/source/engine/renderer/globalshadows.h b/source/engine/renderer/globalshadows.h new file mode 100644 index 0000000..8ad6214 --- /dev/null +++ b/source/engine/renderer/globalshadows.h @@ -0,0 +1,14 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\globalshadows.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13566; PDB kind: class. +class idGlobalShadows +{ +public: + shadowMap_t *shadowMap; +}; diff --git a/source/engine/renderer/iesfile.h b/source/engine/renderer/iesfile.h new file mode 100644 index 0000000..090e651 --- /dev/null +++ b/source/engine/renderer/iesfile.h @@ -0,0 +1,46 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\iesfile.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13573; PDB kind: class. +class idIESfile : public idResource +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13574. + virtual ~idIESfile(); + virtual void LoadResource(); + virtual bool ReloadIfStale(); + virtual void WriteResourceFile(); + virtual idResourceList *GetResourceList(); + virtual void Print(); + virtual void List(); + + int formatYear; + int lampToLuminaireGeometry; + int numAngleFactors; + idList factorAngles; + idList factorScales; + int numLamps; + float lumensPerLamp; + float candelaMultiplier; + int numVerticalAngles; + int numHorizontalAngles; + int photoMetricType; + int unitsType; + float width; + float length; + float height; + float ballastFactor; + int futureUse; + float inputWats; + idList verticalAngles; + idList horizontalAngles; + idList candela; + iesRenderInfo_t renderInfo; + idStr editorModelName; + idStaticModel *editorModel; +}; diff --git a/source/engine/renderer/image.h b/source/engine/renderer/image.h new file mode 100644 index 0000000..cf65174 --- /dev/null +++ b/source/engine/renderer/image.h @@ -0,0 +1,230 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\image.h +// Recovered logical types: 8 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 4963; PDB kind: union. +union _IMAGE_PTE +{ + struct + { + unsigned __int32 ReadOnly : 1; + unsigned __int32 Data : 1; + unsigned __int32 NoExecute : 1; + unsigned __int32 Valid : 1; + unsigned __int32 StartOfImage : 1; + unsigned __int32 EndOfImage : 1; + unsigned __int32 PageFrameNumber : 14; + unsigned __int32 Whitening : 10; + unsigned __int32 Terabyte : 2; + } __s0; + struct + { + unsigned __int32 VNDR : 4; + unsigned __int32 Markers : 2; + unsigned __int32 RealPageNumber : 26; + } __s1; + unsigned int AsULONG; +}; + +// IDA Local Type ordinal 13318; PDB kind: class. +class idImage : public idResource +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13319. + virtual ~idImage(); + virtual void LoadResource(); + virtual bool ReloadIfStale(); + virtual void WriteResourceFile(); + virtual idResourceList *GetResourceList(); + virtual void Print(); + virtual void List(); + + void *backgroundReadData; + volatile bool backgroundReadComplete; + bool defaulted; + unsigned int sourceFileTime; + unsigned int binaryFileTime; + int frameUsed; + int bindCount; + idImageOpts opts; + bool optsHasBeenSet; + bool allocationFailed; + _D3DFORMAT d3dFormat; + _D3DLOCKED_RECT lockRect[14]; + D3DTexture *d3dTexture; + void *imageBuffer; + int allocWidth; + int allocHeight; + int _D3DSAMP_MAGFILTER; + int _D3DSAMP_MINFILTER; + int _D3DSAMP_MIPFILTER; + int _D3DSAMP_MAXANISOTROPY; + int _D3DSAMP_MIPMAPLODBIAS; + int _D3DSAMP_MAXMIPLEVEL; + int _D3DSAMP_MINMIPLEVEL; + int _D3DSAMP_BORDERCOLOR; + int _D3DSAMP_ADDRESSU; + int _D3DSAMP_ADDRESSV; + int _D3DSAMP_TRILINEARTHRESHOLD; + int physicalMemoryBytes; +}; + +// IDA Local Type ordinal 22948; PDB kind: unknown. +struct jxr_image:: +{ + macroblock_s *up4; + macroblock_s *up3; + macroblock_s *up2; + macroblock_s *up1; + macroblock_s *cur; + int *upsample_memory_y; + int *upsample_memory_x; +}; + +// IDA Local Type ordinal 22952; PDB kind: struct. +struct __declspec(align(8)) jxr_image +{ + int user_flags; + unsigned int width1; + unsigned int height1; + unsigned int extended_width; + unsigned int extended_height; + unsigned __int8 header_flags1; + unsigned __int8 header_flags2; + unsigned __int8 header_flags_fmt; + jxr_output_clr_fmt_e output_clr_fmt; + unsigned __int8 use_clr_fmt; + JXRC_GUID_e ePixelFormat; + unsigned __int32 : 28; + unsigned __int32 trim_flexbits : 4; + unsigned __int8 bands_present; + unsigned __int8 bands_present_of_primary; + unsigned __int8 chroma_centering_x; + unsigned __int8 chroma_centering_y; + unsigned __int8 num_channels; + unsigned int disableTileOverlapFlag; + unsigned int tile_rows; + unsigned int tile_columns; + unsigned int *tile_row_height; + unsigned int *tile_column_width; + unsigned int *tile_row_height_input; + unsigned int *tile_column_width_input; + unsigned int *tile_column_position; + unsigned int *tile_row_position; + __int64 *tile_index_table; + __int64 tile_index_table_length; + unsigned __int16 window_extra_top; + unsigned __int16 window_extra_left; + unsigned __int16 window_extra_bottom; + unsigned __int16 window_extra_right; + unsigned __int32 : 26; + unsigned __int32 hp_frame_uniform : 1; + unsigned __int32 hp_use_lp_qp : 1; + unsigned __int32 lp_frame_uniform : 1; + unsigned __int32 lp_use_dc_qp : 1; + unsigned __int32 dc_frame_uniform : 1; + unsigned __int32 scaled_flag : 1; + unsigned __int8 shift_bits; + unsigned __int8 len_mantissa; + char exp_bias; + unsigned int num_lp_qps; + unsigned int num_hp_qps; + int cur_my; + jxr_image:: strip[16]; + macroblock_s *mb_row_buffer[16]; + macroblock_s *mb_row_context[16]; + adaptive_vlc_s vlc_table[20]; + int count_max_CBPLP; + int count_zero_CBPLP; + cbp_model_s hp_cbp_model; + unsigned int lopass_scanorder[15]; + unsigned int lopass_scantotals[15]; + unsigned int hipass_hor_scanorder[15]; + unsigned int hipass_hor_scantotals[15]; + unsigned int hipass_ver_scanorder[15]; + unsigned int hipass_ver_scantotals[15]; + jxr_component_mode_e dc_component_mode; + jxr_component_mode_e lp_component_mode; + jxr_component_mode_e hp_component_mode; + unsigned __int8 dc_quant_ch[16]; + unsigned __int8 lp_quant_ch[16][16]; + unsigned __int8 hp_quant_ch[16][16]; + jxr_tile_qp *tile_quant; + model_s model_dc; + model_s model_lp; + model_s model_hp; + model_s *model_hp_buffer; + cbp_model_s *hp_cbp_model_buffer; + void (__fastcall *out_fun)(jxr_image *, int, int, int *); + void (__fastcall *inp_fun)(jxr_image *, int, int, int *); + void *user_data; + jxr_image *alpha; + int primary; + unsigned __int8 profile_idc; + unsigned __int8 level_idc; + unsigned __int8 lwf_test; + unsigned int container_width; + unsigned int container_height; + unsigned __int8 container_nc; + unsigned __int8 container_alpha; + unsigned __int8 container_separate_alpha; + jxr_bitdepth_e container_bpc; + jxr_output_clr_fmt_e container_color; + unsigned __int8 container_image_band_presence; + unsigned __int8 container_alpha_band_presence; + unsigned __int8 container_current_separate_alpha; + rbitstream rbits; + wbitstream wbits; + unsigned int stripe_tx; + unsigned int stripe_ty; + unsigned int stripe_my; + unsigned int cleanup_state; + int freq_buffered_flag; + int spatial_buffered_flag; + int output_sent; + unsigned int spatial_mb_width; + unsigned int spatial_mb_height; + void *temp_buffer; + int temp_buffer_size; + int temp_buffer_used; +}; + +// IDA Local Type ordinal 23018; PDB kind: class. +class idImageCPU : public idResource +{ +public: + // Recovered virtual interface; IDA vtable ordinal 23019. + virtual ~idImageCPU(); + virtual void LoadResource(); + virtual bool ReloadIfStale(); + virtual void WriteResourceFile(); + virtual idResourceList *GetResourceList(); + virtual void Print(); + virtual void List(); + + struct idHashStoreJar *jar; + imageCpuHeader_t *header; + int width; + int height; + unsigned __int8 *data; + bool emptyImage; + unsigned int fileLength; +}; + +// IDA Local Type ordinal 23100; PDB kind: class. +class idImageDef +{ +public: + idImageOpts opts; + idStr imageProgram; +}; + +// IDA Local Type ordinal 28136; PDB kind: typedef. +typedef jxr_image *jxr_image_t; + +// IDA Local Type ordinal 29664; PDB kind: typedef. +typedef _IMAGE_PTE IMAGE_PTE; diff --git a/source/engine/renderer/imageatlas.h b/source/engine/renderer/imageatlas.h new file mode 100644 index 0000000..face328 --- /dev/null +++ b/source/engine/renderer/imageatlas.h @@ -0,0 +1,37 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\imageatlas.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 3016; PDB kind: enum. +enum imageFlags_t : __int32 +{ + IMAGE_SPECULAR = 0x1, + IMAGE_DIFFUSE = 0x2, + IMAGE_NORMAL = 0x4, + IMAGE_TEST_FBR = 0x8, + IMAGE_TEST_VBR = 0x10, +}; + +// IDA Local Type ordinal 22768; PDB kind: class. +class idImageAtlas +{ +public: + int ATLAS_WIDTH_BITS; + int ATLAS_HEIGHT_BITS; + int ATLAS_MIP_LEVELS; + int ATLAS_TILE_WIDTH_BITS; + int ATLAS_TILE_HEIGHT_BITS; + int ATLAS_WIDTH; + int ATLAS_HEIGHT; + int ATLAS_TILE_WIDTH; + int ATLAS_TILE_HEIGHT; + int ATLAS_TILES_WIDE; + int ATLAS_TILES_HIGH; + int ATLAS_TILES; + idBitArray tileAlloc; + idImage *atlas; +}; diff --git a/source/engine/renderer/imagedata.h b/source/engine/renderer/imagedata.h new file mode 100644 index 0000000..ad7958b --- /dev/null +++ b/source/engine/renderer/imagedata.h @@ -0,0 +1,17 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\imagedata.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 18514; PDB kind: class. +class idImageData +{ +public: + int width; + int height; + unsigned __int8 *data; + float *floatData; +}; diff --git a/source/engine/renderer/imagemanager.h b/source/engine/renderer/imagemanager.h new file mode 100644 index 0000000..834d775 --- /dev/null +++ b/source/engine/renderer/imagemanager.h @@ -0,0 +1,34 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\imagemanager.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22769; PDB kind: class. +class idImageManager +{ +public: + idImage *defaultImage; + idImage *whiteImage; + idImage *borderedPointWhiteImage; + idImage *blackImage; + idImage *ps3ReplacementImage; + idImageAtlas *transSortImageAtlas; + textureFilter_t textureMinFilter; + textureFilter_t textureMaxFilter; + textureFilter_t textureMipFilter; + float textureAnisotropy; + float textureLODBias; + idImageOpts newImageOpts; +}; + +// IDA Local Type ordinal 23016; PDB kind: struct. +struct idImageManager::ChangeTextureFilter::__l2::filterName_t +{ + char *name; + textureFilter_t minimize; + textureFilter_t maximize; + textureFilter_t mipimize; +}; diff --git a/source/engine/renderer/imagetools/color/colorspace.h b/source/engine/renderer/imagetools/color/colorspace.h new file mode 100644 index 0000000..fd89fff --- /dev/null +++ b/source/engine/renderer/imagetools/color/colorspace.h @@ -0,0 +1,39 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\imagetools\color\colorspace.h +// Recovered logical types: 5 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 395; PDB kind: enum. +enum _D3DCOLORSPACE : __int32 +{ + D3DCOLORSPACE_RGB = 0x0, + D3DCOLORSPACE_YCbCr601 = 0x1, + D3DCOLORSPACE_YCbCr709 = 0x2, + D3DCOLORSPACE_FORCE_DWORD = 0x7FFFFFFF, +}; + +// IDA Local Type ordinal 3160; PDB kind: enum. +enum J_COLOR_SPACE : __int32 +{ + JCS_UNKNOWN = 0x0, + JCS_GRAYSCALE = 0x1, + JCS_RGB = 0x2, + JCS_YCbCr = 0x3, + JCS_CMYK = 0x4, + JCS_YCCK = 0x5, +}; + +// IDA Local Type ordinal 5255; PDB kind: struct. +struct HCOLORSPACE__ +{ + int unused; +}; + +// IDA Local Type ordinal 25991; PDB kind: typedef. +typedef _D3DCOLORSPACE D3DCOLORSPACE; + +// IDA Local Type ordinal 30658; PDB kind: typedef. +typedef HCOLORSPACE__ *HCOLORSPACE; diff --git a/source/engine/renderer/imagetools/filter/filter.h b/source/engine/renderer/imagetools/filter/filter.h new file mode 100644 index 0000000..2e658c3 --- /dev/null +++ b/source/engine/renderer/imagetools/filter/filter.h @@ -0,0 +1,33 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\imagetools\filter\filter.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 3070; PDB kind: enum. +enum idFilter::bicubicFilter_t : __int32 +{ + BICUBIC_PHOTOSHOP = 0x0, + BICUBIC_SHIFTED = 0x1, +}; + +// IDA Local Type ordinal 14263; PDB kind: class. +class idMD6Filter : public idMD6Node +{ +public: +}; + +// IDA Local Type ordinal 21415; PDB kind: struct. +struct aiFilter_t +{ + const char *filterName; + int filter; +}; + +// IDA Local Type ordinal 23011; PDB kind: class. +class idFilter +{ +public: +}; diff --git a/source/engine/renderer/imagetools/filter/mipmap.h b/source/engine/renderer/imagetools/filter/mipmap.h new file mode 100644 index 0000000..d801e1b --- /dev/null +++ b/source/engine/renderer/imagetools/filter/mipmap.h @@ -0,0 +1,52 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\imagetools\filter\mipmap.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 9002; PDB kind: unknown. +struct MSI_MAP:: +{ + unsigned __int32 CAP_ID : 8; + unsigned __int32 NEXT_PTR : 8; + unsigned __int32 EN : 1; + unsigned __int32 FIXD : 1; + unsigned __int32 : 9; + unsigned __int32 CAP_TYPE : 5; +}; + +// IDA Local Type ordinal 9003; PDB kind: union. +union MSI_MAP +{ + MSI_MAP:: bitfields; + MSI_MAP:: bits; + unsigned int u32All; + int i32All; + float f32All; +}; + +// IDA Local Type ordinal 16080; PDB kind: struct. +struct mpMap_t +{ + idStrId name; + idStr map; + idStr titleStorageMapName; + idStrId description; + idStrId introQuote; + idStr material; + int type; + int cashRequired; + int levelRequired; + int menuIndex; + int loadScreenAlternate; + rageStat_t challengeSpecialCollectionStat; + idStaticList modes; +}; + +// IDA Local Type ordinal 22997; PDB kind: class. +class idMipMap +{ +public: +}; diff --git a/source/engine/renderer/imagetools/imageprocess.h b/source/engine/renderer/imagetools/imageprocess.h new file mode 100644 index 0000000..2f75dce --- /dev/null +++ b/source/engine/renderer/imagetools/imageprocess.h @@ -0,0 +1,18 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\imagetools\imageprocess.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22932; PDB kind: struct. +struct imageProperties_t +{ + const idMaterial *mtr; + int x; + int y; + int width; + int height; + int area; +}; diff --git a/source/engine/renderer/ingamevideo.h b/source/engine/renderer/ingamevideo.h new file mode 100644 index 0000000..1fa36d6 --- /dev/null +++ b/source/engine/renderer/ingamevideo.h @@ -0,0 +1,72 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\ingamevideo.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13819; PDB kind: class. +class idInGameVideoFile : public idResource +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13820. + virtual ~idInGameVideoFile(); + virtual void LoadResource(); + virtual bool ReloadIfStale(); + virtual void WriteResourceFile(); + virtual idResourceList *GetResourceList(); + virtual void Print(); + virtual void List(); + + unsigned __int8 *buffer; +}; + +// IDA Local Type ordinal 17674; PDB kind: class. +class idInGameVideoManager +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17675. + virtual ~idInGameVideoManager(); + virtual void Init(); + virtual void Shutdown(); + virtual void Update(); + virtual void UnbindAll(); + virtual void BindVideo(int, const idInGameVideoFile *); + virtual void SetVideoTime(int, int); + virtual void SetLooping(int, bool); + virtual void SetPaused(int, bool); + virtual int GetWeaponVideoIndex(); + +}; + +// IDA Local Type ordinal 22991; PDB kind: struct. +struct idInGameVideoManagerLocal::video_t +{ + int timeOffset; + int pausedTime; + bool looping; + int lastFrame; + const idInGameVideoFile *file; +}; + +// IDA Local Type ordinal 22992; PDB kind: class. +class idInGameVideoManagerLocal : public idInGameVideoManager +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22993. + virtual ~idInGameVideoManagerLocal(); + virtual void Init(); + virtual void Shutdown(); + virtual void Update(); + virtual void UnbindAll(); + virtual void BindVideo(int, const idInGameVideoFile *); + virtual void SetVideoTime(int, int); + virtual void SetLooping(int, bool); + virtual void SetPaused(int, bool); + virtual int GetWeaponVideoIndex(); + + idParallelJobList *parallelJobList; + idInGameVideoManagerLocal::video_t videos[6]; + videoTranscodeParms_t parms[6]; +}; diff --git a/source/engine/renderer/jobs/approximatelighting/approximatelighting.h b/source/engine/renderer/jobs/approximatelighting/approximatelighting.h new file mode 100644 index 0000000..bcededf --- /dev/null +++ b/source/engine/renderer/jobs/approximatelighting/approximatelighting.h @@ -0,0 +1,38 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\approximatelighting\approximatelighting.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13633; PDB kind: struct. +struct approximateLighting_t +{ + idVec4 primeLightDir; + idVec4 primeLightColor; + idVec4 channelLighting[6]; + idVec4 lightingModel; +}; + +// IDA Local Type ordinal 13635; PDB kind: struct. +struct approximateLightingParms_t +{ + approximateLighting_t *lighting; + lightContribution_t *contributions; + const ambientMap_t *ambientMap; + const shadowMap_t *shadowMap; + const idRenderLightCommitted **lights; + int numLights; + idVec3 samplePoint; + lightingModel_t lightingModel; + bool noAmbient; + bool noApproximateLighting; + bool privateLightOnly; + bool unused_padding_byte_1; + float ambientChannelScale; + float directChannelScale; + float primeLightScale; + float dynamicLightingScale; + float dimShadowHeightTweak; +}; diff --git a/source/engine/renderer/jobs/pagesort/pagesort.h b/source/engine/renderer/jobs/pagesort/pagesort.h new file mode 100644 index 0000000..b5436cd --- /dev/null +++ b/source/engine/renderer/jobs/pagesort/pagesort.h @@ -0,0 +1,43 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\pagesort\pagesort.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1498; PDB kind: enum. +enum pageSource_t : __int32 +{ + PAGESOURCE_INVALID = 0x0, + PAGESOURCE_VMTR = 0x1, + PAGESOURCE_UNIQUE = 0x2, + PAGESOURCE_ALLOC2 = 0x3, + PAGESOURCE_ALLOC3 = 0x4, + PAGESOURCE_ALLOC4 = 0x5, + PAGESOURCE_ALLOC5 = 0x6, + PAGESOURCE_ALLOC6 = 0x7, + PAGESOURCE_ALLOC7 = 0x8, + PAGESOURCE_ALLOC8 = 0x9, + PAGESOURCE_ALLOC9 = 0xA, + PAGESOURCE_ALLOC10 = 0xB, + PAGESOURCE_ALLOC11 = 0xC, + PAGESOURCE_ALLOC12 = 0xD, + PAGESOURCE_ALLOC13 = 0xE, + PAGESOURCE_ALLOC14 = 0xF, + PAGESOURCE_TOTAL = 0x10, +}; + +// IDA Local Type ordinal 13650; PDB kind: struct. +struct pageSortParms_t +{ + int frameNum; + const int *pagePriority; + const int *pageFrameNum; + const __int64 *physicalPageNums; + int *firstPageIndex; + int *lastPageIndex; + int indexMask; + __int64 *sortedPhysicalPageNums; + volatile int *done; +}; diff --git a/source/engine/renderer/jobs/render/parmstate.h b/source/engine/renderer/jobs/render/parmstate.h new file mode 100644 index 0000000..50e0eab --- /dev/null +++ b/source/engine/renderer/jobs/render/parmstate.h @@ -0,0 +1,79 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\render\parmstate.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 21766; PDB kind: struct. +struct uniqueParmState_t +{ + unsigned __int64 renderParmVersion; + unsigned int numBlocks; + const idParmBlock *parmBlocks[32]; + void *userData; +}; + +// IDA Local Type ordinal 21822; PDB kind: struct. +struct idParmState::parmStack_t::parmBlockStack_t +{ + unsigned int lastOpLevel; + const idParmBlock *parmBlock; +}; + +// IDA Local Type ordinal 21823; PDB kind: struct. +struct idParmState::parmStack_t +{ + unsigned int virtualParmBlockLevel; + unsigned int currentParmBlockLevel; + unsigned int currentOpLevel; + unsigned int virtualParmBlockStackMask; + idParmState::parmStack_t::parmBlockStack_t parmBlockStack[32]; + parmValue_t opStack[1024]; +}; + +// IDA Local Type ordinal 21824; PDB kind: class. +class idParmState +{ +public: + unsigned __int64 renderParmVersion; + unsigned __int64 vertexParmVersion; + unsigned __int64 fragmentParmVersion; + unsigned __int64 textureParmVersion; + bool currentMVPHasNegativeDeterminant; + __declspec(align(16)) parmValue_t values[2048]; + unsigned int onParmBlockStack[2048]; + idParmState::parmStack_t parmStack; + const idDeclRenderParm *parmDecl[2048]; + unsigned __int8 parmUsageMask[2048]; + const idDeclTable *globalTables[128]; + const idLookupTable *globalLookupTables[128]; + int numGlobalTables; + int parmIndexPositionToViewTexture; + int parmIndexRenderPositionToViewTexture; + int parmIndexPositionToFeedback; + int parmIndexModelMatrixX; + int parmIndexModelMatrixY; + int parmIndexModelMatrixZ; + int parmIndexModelMatrixW; + int parmIndexInverseModelMatrixX; + int parmIndexInverseModelMatrixY; + int parmIndexInverseModelMatrixZ; + int parmIndexInverseModelMatrixW; + int parmIndexMVPMatrixX; + int parmIndexMVPMatrixY; + int parmIndexMVPMatrixZ; + int parmIndexMVPMatrixW; + int parmIndexPrimeLightDir; + int parmIndexPrimeLightColor; + int parmIndexChannelLight[6]; + int parmIndexLightingModel; + int parmIndexHighlightColor; + int parmIndexVertexStScaleBias; + int parmIndexVertexXYZScale; + int parmIndexVertexXYZBias; + int parmIndexIf; + int parmIndexPolygonOffset; + int parmIndexVertexMorphScale; +}; diff --git a/source/engine/renderer/jobs/render/render_types.h b/source/engine/renderer/jobs/render/render_types.h new file mode 100644 index 0000000..e71602f --- /dev/null +++ b/source/engine/renderer/jobs/render/render_types.h @@ -0,0 +1,15 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\render\render_types.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 669; PDB kind: enum. +enum RendererType : __int32 +{ + CrossProcessRenderer = 0x0, + DirectSoundRenderer = 0x1, + XboxRenderer = 0x2, +}; diff --git a/source/engine/renderer/jobs/render/renderaugment.h b/source/engine/renderer/jobs/render/renderaugment.h new file mode 100644 index 0000000..76517cc --- /dev/null +++ b/source/engine/renderer/jobs/render/renderaugment.h @@ -0,0 +1,32 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\render\renderaugment.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22926; PDB kind: struct. +struct renderAugmentParms_t +{ + const renderSettings_t *settings; + const idRenderView *renderView; + const idRenderModelCommitted **viewAugmentModels; + int numViewAugmentModels; + const idDeclRenderProg *progColorParmOnly; + const idRenderDestination *renderDestDefault; + const idRenderDestination *renderDestAugment; +}; + +// IDA Local Type ordinal 23652; PDB kind: class. +class idRenderBumpClient +{ +public: + // Recovered virtual interface; IDA vtable ordinal 23653. + virtual void Start(); + virtual void Stop(); + virtual void QueueScanLine(const int); + virtual void GetCompletedScanLines(struct idList *); + virtual void UpdateParms(const idRbParms *); + +}; diff --git a/source/engine/renderer/jobs/render/rendercapture.h b/source/engine/renderer/jobs/render/rendercapture.h new file mode 100644 index 0000000..fc84a42 --- /dev/null +++ b/source/engine/renderer/jobs/render/rendercapture.h @@ -0,0 +1,17 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\render\rendercapture.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 3021; PDB kind: enum. +enum renderCapture_t : __int32 +{ + CAPTURE_VIEW_COLOR = 0x0, + CAPTURE_VIEW_DEPTH = 0x1, + CAPTURE_FEEDBACK = 0x2, + CAPTURE_GLARE_MAP = 0x3, + CAPTURE_GUI_IMAGE = 0x4, +}; diff --git a/source/engine/renderer/jobs/render/rendercull.h b/source/engine/renderer/jobs/render/rendercull.h new file mode 100644 index 0000000..e9f228b --- /dev/null +++ b/source/engine/renderer/jobs/render/rendercull.h @@ -0,0 +1,22 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\render\rendercull.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22914; PDB kind: struct. +struct renderCullParms_t +{ + const renderSettings_t *settings; + const idRenderView *renderView; + const idBounds *areaNodeBounds; + const idBounds *worldAreaSubspaceBounds; + const idBounds *worldAreaGeometryBounds; + int numAreaNodes; + int numWorldAreas; + unsigned __int8 *areaNodeBoundsCulled; + unsigned __int8 *worldAreaSubspaceBoundsCulled; + unsigned __int8 *worldAreaGeometryBoundsCulled; +}; diff --git a/source/engine/renderer/jobs/render/renderdepth.h b/source/engine/renderer/jobs/render/renderdepth.h new file mode 100644 index 0000000..d9fe179 --- /dev/null +++ b/source/engine/renderer/jobs/render/renderdepth.h @@ -0,0 +1,33 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\render\renderdepth.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22918; PDB kind: struct. +struct renderDepthParms_t +{ + const renderSettings_t *settings; + const idRenderView *renderView; + const viewWorldArea_t *viewWorldAreas; + int numViewWorldAreas; + const idRenderModelSurface **viewWorldSurfaces; + int numViewWorldSurfaces; + const idRenderModelCommitted **viewModels; + int numViewModels; + const idRenderModelCommitted **sceneModels; + int numSceneModels; + const bool *binaryModelState; + const idRenderDestination *renderDestDefault; + const idTriangles *occlusionBaseTriangles; + const idDeclRenderProg *progOccluderDepthOnly; + const idDeclRenderProg *progOutside; + const idDeclRenderProg *progRadiosityPreview; + const idImage *imgBlack; + int extraClears; + occlusionState_t *occlusionState; + drawSurf_t *drawSurfs; + int *numDrawSurfs; +}; diff --git a/source/engine/renderer/jobs/render/renderdimshadows.h b/source/engine/renderer/jobs/render/renderdimshadows.h new file mode 100644 index 0000000..3174f83 --- /dev/null +++ b/source/engine/renderer/jobs/render/renderdimshadows.h @@ -0,0 +1,41 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\render\renderdimshadows.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22921; PDB kind: struct. +struct renderDimShadowsParms_t +{ + __int16 *dimShadowModelSlaves; + const renderSettings_t *settings; + const idRenderView *renderView; + const idRenderModelCommitted *const *linkedRenderModels; + int numLinkedRenderModels; + const idRenderModelCommitted *dimShadowModels; + const idTriangles *extrudeBox; + const idRenderDestination *renderDestDimShadow; + const idRenderDestination *renderDestDefault; + const idImage *imgViewColor; + const idDeclRenderParm *rpViewColor; + const idDeclRenderParm *rpDimShadowFade; + const idDeclRenderParm *rpDimShadowExtrude; + const idDeclRenderParm *rpDimShadowClipPlane; + const idDeclRenderParm *rpWindowPosToDimShadowBlurS; + const idDeclRenderParm *rpWindowPosToDimShadowBlurT; + const idDeclRenderParm *rpWindowPosToDimShadowBlurR; + const idDeclRenderParm *rpWindowPosToDimShadowBlurQ; + const idDeclRenderParm *rpVertexMorphScale; + const idDeclRenderProg *progDimShadowCreate; + const idDeclRenderProg *progDimShadowCreateWound; + const idDeclRenderProg *progDimShadowCreateAlpha; + const idDeclRenderProg *progDimShadowDraw; + const idDeclRenderProg *progDimShadowDrawHighQuality; + const idDeclRenderProg *progDimShadowStencil; + const idDeclRenderProg *progDimShadowDebugDraw; + occlusionState_t *occlusionState; + int *numDimShadows; + unsigned __int8 *modelDimShadowState; +}; diff --git a/source/engine/renderer/jobs/render/renderdrawsurf.h b/source/engine/renderer/jobs/render/renderdrawsurf.h new file mode 100644 index 0000000..eddcd32 --- /dev/null +++ b/source/engine/renderer/jobs/render/renderdrawsurf.h @@ -0,0 +1,25 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\render\renderdrawsurf.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22829; PDB kind: struct. +struct renderDrawSurfParms_t +{ + const renderSettings_t *settings; + const idRenderView *renderView; + bool allowInGameGUIs; + captureParms_t captureParms; + const idRenderDestination *renderDestDefault; + const idRenderDestination *renderDestGui; +}; + +// IDA Local Type ordinal 22910; PDB kind: class. +class idRenderDrawSurf +{ +public: + const idRenderModelCommitted *currentModel; +}; diff --git a/source/engine/renderer/jobs/render/renderdynamicenv.h b/source/engine/renderer/jobs/render/renderdynamicenv.h new file mode 100644 index 0000000..def0635 --- /dev/null +++ b/source/engine/renderer/jobs/render/renderdynamicenv.h @@ -0,0 +1,29 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\render\renderdynamicenv.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22917; PDB kind: struct. +struct renderDynamicEnvParms_t +{ + const renderSettings_t *settings; + const idRenderView *renderView; + const idDeclRenderParm *rpEnvBlendMip; + const idDeclRenderParm *rpAmbientEnvMap; + const idDeclRenderParm *rpUserEnvMap; + const idDeclRenderParm *rpColor; + const idDeclRenderParm *rpEnvSMatrix; + const idDeclRenderParm *rpEnvTMatrix; + const idDeclRenderParm *rpEnvRMatrix; + const idRenderDestination *renderDestDynamicEnv; + const idImage *imgDynamicEnv; + const idImage *imgAmbientEnv; + const idImage *imgUserEnv; + const idTriangles *unitCubeTris; + const idDeclRenderProg *progBlend; + idMat3 envMapRotation; + envBlend_t *envBlend; +}; diff --git a/source/engine/renderer/jobs/render/renderfog.h b/source/engine/renderer/jobs/render/renderfog.h new file mode 100644 index 0000000..0f21d39 --- /dev/null +++ b/source/engine/renderer/jobs/render/renderfog.h @@ -0,0 +1,16 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\render\renderfog.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22924; PDB kind: struct. +struct renderFogParms_t +{ + const renderSettings_t *settings; + const idRenderView *renderView; + const idDeclRenderProg *progGlobalFog; + const idTriangles *unitSquareTris; +}; diff --git a/source/engine/renderer/jobs/render/rendergather.h b/source/engine/renderer/jobs/render/rendergather.h new file mode 100644 index 0000000..2a9c141 --- /dev/null +++ b/source/engine/renderer/jobs/render/rendergather.h @@ -0,0 +1,48 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\render\rendergather.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22916; PDB kind: struct. +struct renderGatherParms_t +{ + unsigned __int8 *temp; + int tempSize; + const renderSettings_t *settings; + const idRenderView *renderView; + const idRenderModelCommitted *const *linkedRenderModels; + int numLinkedRenderModels; + const idRenderLightCommitted *const *linkedRenderLights; + int numLinkedRenderLights; + const nodeWorldArea_t *nodeWorldAreas; + const unsigned __int8 *worldAreaSubspaceBoundsCulled; + const unsigned __int8 *worldAreaGeometryBoundsCulled; + int numNodeWorldAreas; + const worldArea_t *worldAreas; + int numWorldAreas; + const idRenderModelCommitted *addAlwaysModels; + occlusionState_t *occlusionState; + int *occlusionTestNodes; + int *numOcclusionTestNodes; + viewWorldArea_t *viewWorldAreas; + int *numViewWorldAreas; + const idRenderModelSurface **viewWorldSurfaces; + int *numViewWorldSurfaces; + const idRenderModelCommitted **viewModels; + int *numViewModels; + const idRenderModelCommitted **sceneModels; + int *numSceneModels; + const idRenderModelCommitted **viewAugmentModels; + int *numViewAugmentModels; + const idRenderLightCommitted **viewLights; + int *numViewLights; + int *occlusionTestWorldAreas; + int *numOcclusionTestWorldAreas; + const idRenderModelCommitted **occlusionTestModels; + int *numOcclusionTestModels; + const idRenderLightCommitted **occlusionTestLights; + int *numOcclusionTestLights; +}; diff --git a/source/engine/renderer/jobs/render/renderglare.h b/source/engine/renderer/jobs/render/renderglare.h new file mode 100644 index 0000000..b0f7cec --- /dev/null +++ b/source/engine/renderer/jobs/render/renderglare.h @@ -0,0 +1,26 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\render\renderglare.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22928; PDB kind: struct. +struct renderGlareParms_t +{ + const renderSettings_t *settings; + const idRenderView *renderView; + float xScale; + float yScale; + const idRenderDestination *renderDestDefault; + const idRenderDestination *renderDestViewColor; + const idRenderDestination *renderDestMip3; + const idRenderDestination *renderDestMip3Alt; + const idImage *imgBlack; + const idDeclRenderParm *rpGlareMap; + const idDeclRenderParm *rpGlareStep; + const idDeclRenderProg *progGauss; + const idDeclRenderProg *progGlareScale; + const idTriangles *unitSquareTris; +}; diff --git a/source/engine/renderer/jobs/render/rendergodrays.h b/source/engine/renderer/jobs/render/rendergodrays.h new file mode 100644 index 0000000..1363100 --- /dev/null +++ b/source/engine/renderer/jobs/render/rendergodrays.h @@ -0,0 +1,204 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\render\rendergodrays.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19746; PDB kind: class. +class __declspec(align(8)) idGodRays : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19747. + virtual idTypeInfo *GetType(); + virtual ~idGodRays(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + bool isRelativeToCamera; + idVec3 direction; + int sourceSize; + int size; + idColor color; + float colorScale; + const idMaterial *texture; + bool enabled; +}; + +// IDA Local Type ordinal 22925; PDB kind: struct. +struct renderGodRaysParms_t +{ + const renderSettings_t *settings; + const idRenderView *renderView; + const idDeclRenderProg *progCreateGodRays; + const idDeclRenderProg *progDrawGodRays; + const idRenderDestination *renderDestDefault; + const idRenderDestination *renderDestOffScreen; + const idImage *imgOffScreen; + const idTriangles *unitSquareTris; + bool godRaysRelativeToCamera; + idVec3 godRaysPosition; + float godRaysSize; + float godRaysSourceSize; + idVec3 godRaysColor; + const idMaterial *godRaysMaterial; + const idDeclRenderParm *rpGodRayMap; + const idDeclRenderParm *rpScaleBiasQuad; + const idDeclRenderParm *rpScaleBiasSource; + const idDeclRenderParm *rpGodRaysColor; + const idDeclRenderParm *rpTransMap; +}; diff --git a/source/engine/renderer/jobs/render/renderocclusion.h b/source/engine/renderer/jobs/render/renderocclusion.h new file mode 100644 index 0000000..3f785c2 --- /dev/null +++ b/source/engine/renderer/jobs/render/renderocclusion.h @@ -0,0 +1,31 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\render\renderocclusion.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22919; PDB kind: struct. +struct renderOcclusionParms_t +{ + const renderSettings_t *settings; + const idRenderView *renderView; + int *occlusionTestNodes; + int numOcclusionTestNodes; + int *occlusionTestWorldAreas; + int numOcclusionTestWorldAreas; + const idRenderModelCommitted **occlusionTestModels; + int numOcclusionTestModels; + const idRenderLightCommitted **occlusionTestLights; + int numOcclusionTestLights; + const int *areaNodeOcclusionIndex; + const idBounds *areaNodeBounds; + const idBounds *worldAreaGeometryBounds; + int numWorldAreas; + const idRenderDestination *renderDestDefault; + const idDeclRenderProg *progDepthOnly; + const idTriangles *unitCubeTris; + const idTriangles *zeroOneCubeTris; + occlusionState_t *occlusionState; +}; diff --git a/source/engine/renderer/jobs/render/renderpasses.h b/source/engine/renderer/jobs/render/renderpasses.h new file mode 100644 index 0000000..a83f9a5 --- /dev/null +++ b/source/engine/renderer/jobs/render/renderpasses.h @@ -0,0 +1,40 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\render\renderpasses.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1721; PDB kind: enum. +enum renderPass_t : __int32 +{ + RENDERPASS_CLEAR = 0x0, + RENDERPASS_EMISSIVE = 0x1, + RENDERPASS_EMISSIVE_ONLY = 0x2, + RENDERPASS_BLEND = 0x3, + RENDERPASS_DISTORTION = 0x4, + NUM_RENDER_PASSES = 0x5, +}; + +// IDA Local Type ordinal 22825; PDB kind: struct. +struct renderPassSurfaces_t +{ + int firstSurface; + int lastSurface; +}; + +// IDA Local Type ordinal 22830; PDB kind: struct. +struct renderPassParms_t +{ + renderPass_t pass; + const renderSettings_t *settings; + const idRenderView *renderView; + renderDrawSurfParms_t drawSurfParms; + const idRenderDestination *renderDestDefault; + const idRenderDestination *renderDestDistortion; + const idDeclRenderParm *rpViewColor; + const renderPassSurfaces_t *renderPasses; + drawSurf_t **sortedDrawSurfs; + const bool *binaryModelState; +}; diff --git a/source/engine/renderer/jobs/render/renderpostprocess.h b/source/engine/renderer/jobs/render/renderpostprocess.h new file mode 100644 index 0000000..fb60fd3 --- /dev/null +++ b/source/engine/renderer/jobs/render/renderpostprocess.h @@ -0,0 +1,29 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\render\renderpostprocess.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22929; PDB kind: struct. +struct renderPostProcessParms_t +{ + const renderSettings_t *settings; + const idRenderView *renderView; + const idDeclRenderParm *rpViewColor; + const idDeclRenderParm *rpGlareMap; + const idDeclRenderParm *rpAdaptiveGlareMap; + const idDeclRenderParm *rpAdaptiveGlareLuminance; + const idDeclRenderParm *rpDistortionMap; + const idDeclRenderParm *rpDepthOfField; + const idDeclRenderParm *rpDepthOfField2; + const idDeclRenderProg *progPostProcess; + const idImage *imgViewColor; + const idImage *imgGlare; + const idImage *imgAdaptiveGlare; + const idImage *imgAdaptiveGlareLuminance; + const idImage *imgBlack; + const idImage *imgDistortion; + const idTriangles *unitSquareTris; +}; diff --git a/source/engine/renderer/jobs/render/rendershadowbuffer.h b/source/engine/renderer/jobs/render/rendershadowbuffer.h new file mode 100644 index 0000000..53c9a23 --- /dev/null +++ b/source/engine/renderer/jobs/render/rendershadowbuffer.h @@ -0,0 +1,25 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\render\rendershadowbuffer.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22922; PDB kind: struct. +struct renderShadowBufferParms_t +{ + const renderSettings_t *settings; + const idRenderView *renderView; + const idBounds *worldAreaSubspaceBounds; + const idBounds *worldAreaGeometryBounds; + const unsigned __int8 *worldAreaSubspaceBoundsCulled; + const idRenderModelCommitted *worldModel; + const idRenderModelCommitted *const *linkedRenderModels; + int numLinkedRenderModels; + const idDeclRenderParm *rpShadowBufferResolution; + const idRenderDestination *renderDestDefault; + const idRenderDestination *renderDestShadow; + shadowBufferOptions_t options; + unsigned __int8 *modelConsideredAsOccluder; +}; diff --git a/source/engine/renderer/jobs/render/rendersort.h b/source/engine/renderer/jobs/render/rendersort.h new file mode 100644 index 0000000..09839e7 --- /dev/null +++ b/source/engine/renderer/jobs/render/rendersort.h @@ -0,0 +1,18 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\render\rendersort.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22920; PDB kind: struct. +struct renderSortParms_t +{ + const renderSettings_t *settings; + const idRenderView *renderView; + drawSurf_t *drawSurfs; + int numDrawSurfs; + drawSurf_t **sortedDrawSurfs; + renderPassSurfaces_t *renderPasses; +}; diff --git a/source/engine/renderer/jobs/render/renderwalkbsp.h b/source/engine/renderer/jobs/render/renderwalkbsp.h new file mode 100644 index 0000000..d9ff825 --- /dev/null +++ b/source/engine/renderer/jobs/render/renderwalkbsp.h @@ -0,0 +1,25 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\render\renderwalkbsp.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22915; PDB kind: struct. +struct renderWalkBSPParms_t +{ + const renderSettings_t *settings; + const idRenderView *renderView; + const unsigned __int8 *areaNodeBoundsCulled; + const int *areaNodeOcclusionIndex; + const __int64 *areaNodeOcclusionQuery; + const idBounds *areaNodeBounds; + const areaNode_t *areaNodes; + int numAreaNodes; + int numWorldAreas; + int *occlusionTestNodes; + int *numOcclusionTestNodes; + nodeWorldArea_t *nodeWorldAreas; + int *numNodeWorldAreas; +}; diff --git a/source/engine/renderer/jobs/render/setupcolorgrading.h b/source/engine/renderer/jobs/render/setupcolorgrading.h new file mode 100644 index 0000000..ecc3743 --- /dev/null +++ b/source/engine/renderer/jobs/render/setupcolorgrading.h @@ -0,0 +1,22 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\render\setupcolorgrading.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22913; PDB kind: struct. +struct setupColorGradingParms_t +{ + const idDeclRenderParm *rpCGShadow; + const idDeclRenderParm *rpCGMidtone; + const idDeclRenderParm *rpCGHighlight; + const idDeclRenderParm *rpCGColorDodgeBlend; + const idDeclRenderParm *rpCGColorBurnBlend; + const idDeclRenderParm *rpCGColorMultiplyBlend; + const idDeclRenderParm *rpCGColorScreenBlend; + const idDeclRenderParm *rpCGBlackLevel; + const idDeclRenderParm *rpColorGradingLUT; + idImage *imageLUT; +}; diff --git a/source/engine/renderer/jobs/transcode/image/baredct/baredct.h b/source/engine/renderer/jobs/transcode/image/baredct/baredct.h new file mode 100644 index 0000000..9551fa2 --- /dev/null +++ b/source/engine/renderer/jobs/transcode/image/baredct/baredct.h @@ -0,0 +1,20 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\transcode\image\baredct\baredct.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22789; PDB kind: class. +class idBareDctBase +{ +public: + int luminanceQuality; + int chrominanceQuality; + int alphaQuality; + sampleMode_t sampleMode; + unsigned __int16 quantTableY[64]; + unsigned __int16 quantTableCoCg[64]; + unsigned __int16 quantTableA[64]; +}; diff --git a/source/engine/renderer/jobs/transcode/image/baredct/baredcthuffmantable.h b/source/engine/renderer/jobs/transcode/image/baredct/baredcthuffmantable.h new file mode 100644 index 0000000..0227c7b --- /dev/null +++ b/source/engine/renderer/jobs/transcode/image/baredct/baredcthuffmantable.h @@ -0,0 +1,22 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\transcode\image\baredct\baredcthuffmantable.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22788; PDB kind: class. +class idBareDCTHuffmanTable +{ +public: + unsigned int code[256]; + char size[256]; + unsigned __int8 look_nbits[256]; + unsigned __int8 look_sym[256]; + unsigned __int8 symbols[256]; + int test_nbits[16]; + int minCode[17]; + int maxCode[18]; + int symOffset[17]; +}; diff --git a/source/engine/renderer/jobs/transcode/image/baredct/dct_reference.h b/source/engine/renderer/jobs/transcode/image/baredct/dct_reference.h new file mode 100644 index 0000000..7a63df8 --- /dev/null +++ b/source/engine/renderer/jobs/transcode/image/baredct/dct_reference.h @@ -0,0 +1,451 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\transcode\image\baredct\dct_reference.h +// Recovered logical types: 36 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 6002; PDB kind: unknown. +struct CP_RT9_REFERENCE:: +{ + unsigned __int32 REFERENCE : 32; +}; + +// IDA Local Type ordinal 6003; PDB kind: union. +union CP_RT9_REFERENCE +{ + CP_RT9_REFERENCE:: bitfields; + CP_RT9_REFERENCE:: bits; + unsigned int u32All; + int i32All; + float f32All; +}; + +// IDA Local Type ordinal 6834; PDB kind: unknown. +struct CP_RT1_REFERENCE:: +{ + unsigned __int32 REFERENCE : 32; +}; + +// IDA Local Type ordinal 6835; PDB kind: union. +union CP_RT1_REFERENCE +{ + CP_RT1_REFERENCE:: bitfields; + CP_RT1_REFERENCE:: bits; + unsigned int u32All; + int i32All; + float f32All; +}; + +// IDA Local Type ordinal 7465; PDB kind: unknown. +struct CP_RT6_REFERENCE:: +{ + unsigned __int32 REFERENCE : 32; +}; + +// IDA Local Type ordinal 7466; PDB kind: union. +union CP_RT6_REFERENCE +{ + CP_RT6_REFERENCE:: bitfields; + CP_RT6_REFERENCE:: bits; + unsigned int u32All; + int i32All; + float f32All; +}; + +// IDA Local Type ordinal 7907; PDB kind: unknown. +struct CP_RT7_REFERENCE:: +{ + unsigned __int32 REFERENCE : 32; +}; + +// IDA Local Type ordinal 7908; PDB kind: union. +union CP_RT7_REFERENCE +{ + CP_RT7_REFERENCE:: bitfields; + CP_RT7_REFERENCE:: bits; + unsigned int u32All; + int i32All; + float f32All; +}; + +// IDA Local Type ordinal 8280; PDB kind: unknown. +struct CP_RT14_REFERENCE:: +{ + unsigned __int32 REFERENCE : 32; +}; + +// IDA Local Type ordinal 8281; PDB kind: union. +union CP_RT14_REFERENCE +{ + CP_RT14_REFERENCE:: bitfields; + CP_RT14_REFERENCE:: bits; + unsigned int u32All; + int i32All; + float f32All; +}; + +// IDA Local Type ordinal 8329; PDB kind: unknown. +struct CP_RT5_REFERENCE:: +{ + unsigned __int32 REFERENCE : 32; +}; + +// IDA Local Type ordinal 8330; PDB kind: union. +union CP_RT5_REFERENCE +{ + CP_RT5_REFERENCE:: bitfields; + CP_RT5_REFERENCE:: bits; + unsigned int u32All; + int i32All; + float f32All; +}; + +// IDA Local Type ordinal 8429; PDB kind: unknown. +struct CP_RT10_REFERENCE:: +{ + unsigned __int32 REFERENCE : 32; +}; + +// IDA Local Type ordinal 8430; PDB kind: union. +union CP_RT10_REFERENCE +{ + CP_RT10_REFERENCE:: bitfields; + CP_RT10_REFERENCE:: bits; + unsigned int u32All; + int i32All; + float f32All; +}; + +// IDA Local Type ordinal 8557; PDB kind: unknown. +struct CP_RT15_REFERENCE:: +{ + unsigned __int32 REFERENCE : 32; +}; + +// IDA Local Type ordinal 8558; PDB kind: union. +union CP_RT15_REFERENCE +{ + CP_RT15_REFERENCE:: bitfields; + CP_RT15_REFERENCE:: bits; + unsigned int u32All; + int i32All; + float f32All; +}; + +// IDA Local Type ordinal 8628; PDB kind: unknown. +struct CP_RT12_REFERENCE:: +{ + unsigned __int32 REFERENCE : 32; +}; + +// IDA Local Type ordinal 8629; PDB kind: union. +union CP_RT12_REFERENCE +{ + CP_RT12_REFERENCE:: bitfields; + CP_RT12_REFERENCE:: bits; + unsigned int u32All; + int i32All; + float f32All; +}; + +// IDA Local Type ordinal 8724; PDB kind: unknown. +struct CP_RT13_REFERENCE:: +{ + unsigned __int32 REFERENCE : 32; +}; + +// IDA Local Type ordinal 8725; PDB kind: union. +union CP_RT13_REFERENCE +{ + CP_RT13_REFERENCE:: bitfields; + CP_RT13_REFERENCE:: bits; + unsigned int u32All; + int i32All; + float f32All; +}; + +// IDA Local Type ordinal 9209; PDB kind: unknown. +struct CP_RT0_REFERENCE:: +{ + unsigned __int32 REFERENCE : 32; +}; + +// IDA Local Type ordinal 9210; PDB kind: union. +union CP_RT0_REFERENCE +{ + CP_RT0_REFERENCE:: bitfields; + CP_RT0_REFERENCE:: bits; + unsigned int u32All; + int i32All; + float f32All; +}; + +// IDA Local Type ordinal 9231; PDB kind: unknown. +struct CP_RT3_REFERENCE:: +{ + unsigned __int32 REFERENCE : 32; +}; + +// IDA Local Type ordinal 9232; PDB kind: union. +union CP_RT3_REFERENCE +{ + CP_RT3_REFERENCE:: bitfields; + CP_RT3_REFERENCE:: bits; + unsigned int u32All; + int i32All; + float f32All; +}; + +// IDA Local Type ordinal 9706; PDB kind: unknown. +struct CP_RT2_REFERENCE:: +{ + unsigned __int32 REFERENCE : 32; +}; + +// IDA Local Type ordinal 9707; PDB kind: union. +union CP_RT2_REFERENCE +{ + CP_RT2_REFERENCE:: bitfields; + CP_RT2_REFERENCE:: bits; + unsigned int u32All; + int i32All; + float f32All; +}; + +// IDA Local Type ordinal 9984; PDB kind: unknown. +struct CP_RT11_REFERENCE:: +{ + unsigned __int32 REFERENCE : 32; +}; + +// IDA Local Type ordinal 9985; PDB kind: union. +union CP_RT11_REFERENCE +{ + CP_RT11_REFERENCE:: bitfields; + CP_RT11_REFERENCE:: bits; + unsigned int u32All; + int i32All; + float f32All; +}; + +// IDA Local Type ordinal 9996; PDB kind: unknown. +struct CP_RT8_REFERENCE:: +{ + unsigned __int32 REFERENCE : 32; +}; + +// IDA Local Type ordinal 9997; PDB kind: union. +union CP_RT8_REFERENCE +{ + CP_RT8_REFERENCE:: bitfields; + CP_RT8_REFERENCE:: bits; + unsigned int u32All; + int i32All; + float f32All; +}; + +// IDA Local Type ordinal 10054; PDB kind: unknown. +struct CP_RT4_REFERENCE:: +{ + unsigned __int32 REFERENCE : 32; +}; + +// IDA Local Type ordinal 10055; PDB kind: union. +union CP_RT4_REFERENCE +{ + CP_RT4_REFERENCE:: bitfields; + CP_RT4_REFERENCE:: bits; + unsigned int u32All; + int i32All; + float f32All; +}; + +// IDA Local Type ordinal 19725; PDB kind: class. +class __declspec(align(8)) idReferenceMap : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19726. + virtual idTypeInfo *GetType(); + virtual ~idReferenceMap(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + idStrMapName mapname; + bool zeroTransform; +}; + +// IDA Local Type ordinal 22327; PDB kind: class. +class idMapReference : public idMapPrimitive +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22328. + virtual ~idMapReference(); + virtual unsigned int GetGeometryCRC(); + virtual void Transform(const idVec3 *, const idMat3 *); + virtual bool Write(idFile *, int); + + idStr mapName; + idStr worldSpawnText; + idMapFile *map; +}; + +// IDA Local Type ordinal 27553; PDB kind: typedef. +typedef char *reference; + +// IDA Local Type ordinal 30328; PDB kind: typedef. +typedef const char *const_reference; diff --git a/source/engine/renderer/jobs/transcode/image/barehdp/barehdp.h b/source/engine/renderer/jobs/transcode/image/barehdp/barehdp.h new file mode 100644 index 0000000..8aeb980 --- /dev/null +++ b/source/engine/renderer/jobs/transcode/image/barehdp/barehdp.h @@ -0,0 +1,24 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\transcode\image\barehdp\barehdp.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22812; PDB kind: class. +class idBareHDP +{ +public: + int quality; + void *tempBuffer; + int tempBufferSize; + int tempBufferUsed; + int imageROILeftX; + int imageROITopY; + int imageROIWidth; + int imageROIHeight; + int imageByteStride; + hdpCodec_t *codec; + unsigned __int8 streamTemp[128]; +}; diff --git a/source/engine/renderer/jobs/transcode/image/barehdp/hdpbitio.h b/source/engine/renderer/jobs/transcode/image/barehdp/hdpbitio.h new file mode 100644 index 0000000..ff9476c --- /dev/null +++ b/source/engine/renderer/jobs/transcode/image/barehdp/hdpbitio.h @@ -0,0 +1,20 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\transcode\image\barehdp\hdpbitio.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22800; PDB kind: struct. +struct hdpBitIO_t +{ + unsigned __int64 bitBuff; + unsigned __int64 bitCnt; + unsigned __int8 *byteBufStart; + unsigned __int8 *byteBufEnd; + unsigned __int8 *byteBufCur; + unsigned int byteCount; + hdpStream_t *stream; + unsigned int streamOffset; +}; diff --git a/source/engine/renderer/jobs/transcode/image/barehdp/hdpcodec.h b/source/engine/renderer/jobs/transcode/image/barehdp/hdpcodec.h new file mode 100644 index 0000000..dac7a09 --- /dev/null +++ b/source/engine/renderer/jobs/transcode/image/barehdp/hdpcodec.h @@ -0,0 +1,107 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\transcode\image\barehdp\hdpcodec.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22799; PDB kind: struct. +struct __declspec(align(4)) hdpCodecParms_t +{ + hdpColorFormat_t colorFormat; + unsigned int numChannels; + hdpStreamLayout_t streamLayout; + hdpSubBands_t subBands; + hdpOverlap_t overlap; + unsigned __int8 mantissaLengthOrShift; + char exponentBias; + bool useScaledArith; + bool hasAlphaChannel; + bool hasPerTileTrimFlexbits; + unsigned __int8 uniformTrimFlexBits; + unsigned __int8 quantizationDefault; + unsigned __int8 quantizationUV; + unsigned int quantizationMode; + unsigned __int8 quantizerIndexDC[16]; + unsigned __int8 quantizerIndexLP[16]; + unsigned __int8 quantizerIndexHP[16]; + bool hasTileIndex; + unsigned int numTilesHighMinusOne; + unsigned int numTilesWideMinusOne; + unsigned int *tileMacroblockOffsetX; + unsigned int *tileMacroblockOffsetY; + unsigned int extraPixelsTop; + unsigned int extraPixelsLeft; + unsigned int extraPixelsBottom; + unsigned int extraPixelsRight; + bool transcode; + bool changeSubsamplingUV; + hdpStream_t *baseStream; + void *tempBuffer; + unsigned int tempBufferSize; + unsigned int tempBufferUsed; + bool skipFlexbits; + bool decodeCoeffientsOnly; + unsigned int fullImageROILeftX; + unsigned int fullImageROIRightX; + unsigned int fullImageROITopY; + unsigned int fullImageROIBottomY; + unsigned int thumbnailWidth; + unsigned int thumbnailHeight; + unsigned __int8 postProcStrength; + unsigned int fullImageROILeftTile; + unsigned int fullImageROIRightTile; + unsigned int fullImageROITopTile; + unsigned int fullImageROIBottomTile; + unsigned int thumbnailScale; + bool decodeLP; + bool decodeHP; + bool decodeFlexbits; + bool decodeFullFrame; + bool decodeFullWidth; +}; + +// IDA Local Type ordinal 22811; PDB kind: struct. +struct __declspec(align(4)) hdpCodec_t +{ + hdpMacroblockInfo_t MBInfo; + hdpImageInfo_t imageInfo; + hdpImageBufferInfo_t imageBufferInfo; + hdpCodecParms_t codecParms; + unsigned int *tileIndex; + unsigned int baseTileOffset; + hdpBitIO_t *bitIOHeader; + hdpStream_t **tileStreams; + hdpBitIO_t *tileBitIOs; + unsigned int numTileBitIOs; + unsigned int numSubBands; + hdpTileQuantization_t *tileQuantization; + hdpContext_t *tileContexts; + unsigned int currentTileRow; + unsigned int currentTileColumn; + bool atTileLeftMB; + bool atTileTopMB; + bool resetAdaptiveScanTotals; + bool adaptContextHuffman; + bool processedFirstMBRow; + unsigned int widthInMacroblocks; + unsigned int heightInMacroblocks; + unsigned int currentMacroblockRow; + unsigned int currentMacroblockColumn; + __int16 *macroBlockRowBuffer0[16]; + __int16 *macroBlockRowBuffer1[16]; + __int16 *macroBlockColumnPtr0[16]; + __int16 *macroBlockColumnPtr1[16]; + __int16 *macroBlockPrevColumnPtr[16]; + hdpPredictionInfo_t *predInfoCurRow[16]; + hdpPredictionInfo_t *predInfoPrevRow[16]; + hdpPredictionInfo_t *predInfoMemory; + hdpPostProcessInfo_t *postProcInfo[16][2]; + __int16 *resampleU; + __int16 *resampleV; + unsigned int *rotFlipOffsetX; + unsigned int *rotFlipOffsetY; + hdpCodec_t *nextCodec; + bool isSecondaryCodec; +}; diff --git a/source/engine/renderer/jobs/transcode/image/barehdp/hdpcontext.h b/source/engine/renderer/jobs/transcode/image/barehdp/hdpcontext.h new file mode 100644 index 0000000..42320ec --- /dev/null +++ b/source/engine/renderer/jobs/transcode/image/barehdp/hdpcontext.h @@ -0,0 +1,32 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\transcode\image\barehdp\hdpcontext.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22808; PDB kind: struct. +struct hdpContext_t +{ + hdpBitIO_t *bitIODC; + hdpBitIO_t *bitIOLP; + hdpBitIO_t *bitIOHP; + hdpBitIO_t *bitIOFL; + hdpAdaptiveCBPModelLP_t adaptCBPModelLP; + hdpAdaptiveCBPModelHP_t adaptCBPModelHP; + hdpAdaptiveCNModel_t adaptCNModelDC; + hdpAdaptiveCNModel_t adaptCNModelLP; + hdpAdaptiveCNModel_t adaptCNModelHP; + hdpAdaptiveScan_t adaptScanLP[1][16]; + hdpAdaptiveScan_t adaptScanHorHP[1][16]; + hdpAdaptiveScan_t adaptScanVerHP[1][16]; + hdpAdaptiveHuffman_t adaptHuffDC[3]; + hdpAdaptiveHuffman_t adaptHuffLP[8]; + hdpAdaptiveHuffman_t adaptHuffHP[8]; + hdpAdaptiveHuffman_t adaptHuffCBP[3]; + int trimTileFlexBits; +}; + +// IDA Local Type ordinal 31237; PDB kind: typedef. +typedef void *HCONTEXT; diff --git a/source/engine/renderer/jobs/transcode/image/barehdp/hdppostprocess.h b/source/engine/renderer/jobs/transcode/image/barehdp/hdppostprocess.h new file mode 100644 index 0000000..e97cde4 --- /dev/null +++ b/source/engine/renderer/jobs/transcode/image/barehdp/hdppostprocess.h @@ -0,0 +1,14 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\transcode\image\barehdp\hdppostprocess.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22810; PDB kind: struct. +struct __declspec(align(4)) hdpPostProcessInfo_t +{ + int iMBDC; + unsigned __int8 ucMBTexture; +}; diff --git a/source/engine/renderer/jobs/transcode/image/barehdp/hdpprediction.h b/source/engine/renderer/jobs/transcode/image/barehdp/hdpprediction.h new file mode 100644 index 0000000..b115bca --- /dev/null +++ b/source/engine/renderer/jobs/transcode/image/barehdp/hdpprediction.h @@ -0,0 +1,16 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\transcode\image\barehdp\hdpprediction.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22809; PDB kind: struct. +struct __declspec(align(4)) hdpPredictionInfo_t +{ + int iQPIndex; + int iCBP; + __int16 iDC; + __int16 iLP[6]; +}; diff --git a/source/engine/renderer/jobs/transcode/image/barehdp/hdpquantization.h b/source/engine/renderer/jobs/transcode/image/barehdp/hdpquantization.h new file mode 100644 index 0000000..ebe8987 --- /dev/null +++ b/source/engine/renderer/jobs/transcode/image/barehdp/hdpquantization.h @@ -0,0 +1,19 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\transcode\image\barehdp\hdpquantization.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22802; PDB kind: struct. +struct hdpTileQuantization_t +{ + hdpQuantizer_t *pQuantizerDC[16]; + hdpQuantizer_t *pQuantizerLP[16]; + hdpQuantizer_t *pQuantizerHP[16]; + unsigned __int8 cNumQPLP; + unsigned __int8 cNumQPHP; + unsigned __int8 cBitsLP; + unsigned __int8 cBitsHP; +}; diff --git a/source/engine/renderer/jobs/transcode/image/barejxr/barejxr.h b/source/engine/renderer/jobs/transcode/image/barejxr/barejxr.h new file mode 100644 index 0000000..f436d88 --- /dev/null +++ b/source/engine/renderer/jobs/transcode/image/barejxr/barejxr.h @@ -0,0 +1,21 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\transcode\image\barejxr\barejxr.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22940; PDB kind: class. +class idBareJXR +{ +public: + int quality; + void *tempBuffer; + int tempBufferSize; + int tempBufferUsed; + int cROILeftX; + int cROITopY; + int cROIWidth; + int cROIHeight; +}; diff --git a/source/engine/renderer/jobs/transcode/image/dxt/dxtcodec.h b/source/engine/renderer/jobs/transcode/image/dxt/dxtcodec.h new file mode 100644 index 0000000..c2261e1 --- /dev/null +++ b/source/engine/renderer/jobs/transcode/image/dxt/dxtcodec.h @@ -0,0 +1,27 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\transcode\image\dxt\dxtcodec.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22779; PDB kind: class. +class idDxtEncoder +{ +public: + int width; + int height; + unsigned __int8 *outData; + int srcPadding; + int dstPadding; +}; + +// IDA Local Type ordinal 22780; PDB kind: class. +class idDxtDecoder +{ +public: + int width; + int height; + const unsigned __int8 *inData; +}; diff --git a/source/engine/renderer/jobs/transcode/pagecompression.h b/source/engine/renderer/jobs/transcode/pagecompression.h new file mode 100644 index 0000000..b6afab4 --- /dev/null +++ b/source/engine/renderer/jobs/transcode/pagecompression.h @@ -0,0 +1,19 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\transcode\pagecompression.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1492; PDB kind: enum. +enum pageCompression_t : __int32 +{ + COMP_NONE = 0x1, + COMP_DXT = 0x2, + COMP_LZW = 0x3, + COMP_DCT = 0x4, + COMP_HDP = 0x5, + COMP_JXR = 0x6, + COMP_MAX_COMPRESSIONS = 0x7, +}; diff --git a/source/engine/renderer/jobs/videotranscode/videotranscode.h b/source/engine/renderer/jobs/videotranscode/videotranscode.h new file mode 100644 index 0000000..8e41464 --- /dev/null +++ b/source/engine/renderer/jobs/videotranscode/videotranscode.h @@ -0,0 +1,20 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\jobs\videotranscode\videotranscode.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22939; PDB kind: struct. +struct __declspec(align(4)) videoTranscodeParms_t +{ + unsigned __int8 dctQualityLuma; + unsigned __int8 dctQualityChroma; + unsigned __int8 *dctBuffer; + int dctBufferSize; + idImage *image; + unsigned __int8 *dxtBuffer; + int targetBytePitch; + bool needSubImageUpload; +}; diff --git a/source/engine/renderer/materialmap.h b/source/engine/renderer/materialmap.h new file mode 100644 index 0000000..4748977 --- /dev/null +++ b/source/engine/renderer/materialmap.h @@ -0,0 +1,37 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\materialmap.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13328; PDB kind: class. +class idMaterialMapping +{ +public: + idAtomicString materialName; + unsigned int materialChecksum; + unsigned int materialTimestamp; + int x; + int y; + int width; + int height; + idVec4 scaleBias; + idVirtualImageFile specularFile; + idVirtualImageFile coverFile; + idVirtualImageFile diffuseFile; + idVirtualImageFile bumpFile; + idVirtualImageFile powerFile; +}; + +// IDA Local Type ordinal 13330; PDB kind: class. +class idMaterialMap +{ +public: + idStr name; + int width; + int height; + unsigned int skinFileTimeStamp; + idList mappings; +}; diff --git a/source/engine/renderer/parmblock.h b/source/engine/renderer/parmblock.h new file mode 100644 index 0000000..0bfcb9a --- /dev/null +++ b/source/engine/renderer/parmblock.h @@ -0,0 +1,25 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\parmblock.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13321; PDB kind: class. +class __declspec(align(4)) idParmBlock +{ +public: + idList ops; + idList constants; + threadId_t thread; + bool usingTempOps; +}; + +// IDA Local Type ordinal 13533; PDB kind: class. +class idStaticParmBlock<32> : public idParmBlock +{ +public: + expOp_t staticOps[32]; + __declspec(align(16)) parmValue_t staticConstants[32]; +}; diff --git a/source/engine/renderer/parmblockoptimizer.h b/source/engine/renderer/parmblockoptimizer.h new file mode 100644 index 0000000..6f6a7aa --- /dev/null +++ b/source/engine/renderer/parmblockoptimizer.h @@ -0,0 +1,15 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\parmblockoptimizer.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22930; PDB kind: class. +class idParmBlockOptimizer +{ +public: + int usedParms[200]; + int numUsedParms; +}; diff --git a/source/engine/renderer/render.h b/source/engine/renderer/render.h new file mode 100644 index 0000000..953cc7c --- /dev/null +++ b/source/engine/renderer/render.h @@ -0,0 +1,54 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\render.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22827; PDB kind: class. +class idRender +{ +public: + unsigned __int8 temp[1024]; + unsigned __int8 areaNodeBoundsCulled[8192]; + unsigned __int8 worldAreaSubspaceBoundsCulled[8192]; + unsigned __int8 worldAreaGeometryBoundsCulled[8192]; + nodeWorldArea_t nodeWorldAreas[8192]; + viewWorldArea_t viewWorldAreas[8192]; + const idRenderModelSurface *viewWorldSurfaces[8192]; + const idRenderModelCommitted *viewModels[4096]; + const idRenderModelCommitted *sceneModels[64]; + const idRenderModelCommitted *viewAugmentModels[32]; + const idRenderLightCommitted *viewLights[4096]; + int occlusionTestNodes[64]; + int occlusionTestWorldAreas[4096]; + const idRenderModelCommitted *occlusionTestModels[4096]; + const idRenderLightCommitted *occlusionTestLights[512]; + drawSurf_t drawSurfs[4096]; + drawSurf_t *sortedDrawSurfs[4096]; + __int16 dimShadowModelSlaves[4096]; + unsigned __int8 modelConsideredAsOccluder[512]; + unsigned __int8 modelDimShadowState[4096]; + int numNodeWorldAreas; + int numViewWorldAreas; + int numViewWorldSurfaces; + int numViewModels; + int numSceneModels; + int numViewAugmentModels; + int numViewLights; + int numOcclusionTestNodes; + int numOcclusionTestWorldAreas; + int numOcclusionTestModels; + int numOcclusionTestLights; + int numDrawSurfs; + int numShadows; + int numDimShadows; + renderPassSurfaces_t renderPasses[5]; + renderSettings_t settings; + idRenderView *renderViewObject; + const idRenderWorldLocal *world; + const idScreenView *screenView; + idRenderModelCommitted worldSpace; + idRenderModelCommitted viewSpace; +}; diff --git a/source/engine/renderer/renderdestination.h b/source/engine/renderer/renderdestination.h new file mode 100644 index 0000000..c4780e9 --- /dev/null +++ b/source/engine/renderer/renderdestination.h @@ -0,0 +1,21 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\renderdestination.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 18485; PDB kind: class. +class idRenderDestination +{ +public: + bool isDefault; + int targetWidth; + int targetHeight; + idImage *targetImage[4]; + idImage *depthImage; + idImage *stencilImage; + D3DSurface *targetSurface[4]; + D3DSurface *depthSurface; +}; diff --git a/source/engine/renderer/renderlight.h b/source/engine/renderer/renderlight.h new file mode 100644 index 0000000..34ed410 --- /dev/null +++ b/source/engine/renderer/renderlight.h @@ -0,0 +1,21 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\renderlight.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13578; PDB kind: class. +class __declspec(align(8)) idRenderLight +{ +public: + idRenderLightParms g; + idStaticParmBlock<32> gameParmBlock; + bool deleteOnSync; + bool unlinked; + bool needWriteToSnapshot; + bool skipAutoReplication; + int serializedChangeCount; + idRenderLightCommitted *committed; +}; diff --git a/source/engine/renderer/renderlightcommitted.h b/source/engine/renderer/renderlightcommitted.h new file mode 100644 index 0000000..fa64ea0 --- /dev/null +++ b/source/engine/renderer/renderlightcommitted.h @@ -0,0 +1,28 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\renderlightcommitted.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13576; PDB kind: class. +class __declspec(align(4)) idRenderLightCommitted +{ +public: + idRenderWorldLocal *world; + idRenderIndex index; + idRenderLightParms r; + idStaticParmBlock<32> renderParmBlock; + idRenderLightCommitted *nextOnPostCommitList; + idList references; + bool needsReferences; + idBounds globalReferenceBounds; + idVec3 globalLightOrigin; + idVec3 currentColor; + idVec4 maxVisibleRange; + idRenderMatrix baseLightProject; + idRenderMatrix inverseBaseLightProject; + const idMaterial *lightMtr; + bool castsShadows; +}; diff --git a/source/engine/renderer/renderlightparms.h b/source/engine/renderer/renderlightparms.h new file mode 100644 index 0000000..76220d3 --- /dev/null +++ b/source/engine/renderer/renderlightparms.h @@ -0,0 +1,97 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\renderlightparms.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13575; PDB kind: class. +class idRenderLightParms +{ +public: + idMat3 axis; + idVec3 origin; + int allowLightOnlyInViewID; + int suppressLightInViewID; + lightType_t lightType; + lightClass_t lightClass; + lightFallOff_t lightFalloff; + bool noShadows; + bool slowLight; + const idMaterial *shader; + idVec3 lightRadius; + idVec3 lightCenter; + idVec3 target; + idVec3 right; + idVec3 up; + idVec3 start; + idVec3 end; + idVec3 dynamicModelLightingScale; + float dimShadowStretch; + float maxVisibleRange; + float fadeVisibilityOver; + float staticSpecularScale; + idVec3 staticSpecularVector; + bool bakedParallelShadows; + const idIESfile *iesFile; + float iesPowerScale; + float iesAreaScale; + float areaLightSize; + float shadowSampleScale; + int slowMultiPass; +}; + +// IDA Local Type ordinal 22923; PDB kind: struct. +struct renderLightsParms_t +{ + const renderSettings_t *settings; + const idRenderView *renderView; + renderDrawSurfParms_t drawSurfParms; + renderShadowBufferParms_t shadowBufferParms; + const idRenderLightCommitted **viewLights; + int numViewLights; + const idRenderModelCommitted **viewModels; + int numViewModels; + const idRenderModelSurface **viewWorldSurfaces; + int numViewWorldSurfaces; + const idDeclRenderParm *rpLightRotation; + const idDeclRenderParm *rpLightTranslation; + const idDeclRenderParm *rpLightScale; + const idDeclRenderParm *rpLightOscillationAmp; + const idDeclRenderParm *rpLightOscillationFreq; + const idDeclRenderParm *rpLightOscillationPhase; + const idDeclRenderParm *rpWindowPosToProjectedTexS; + const idDeclRenderParm *rpWindowPosToProjectedTexT; + const idDeclRenderParm *rpWindowPosToProjectedTexR; + const idDeclRenderParm *rpWindowPosToProjectedTexQ; + const idDeclRenderParm *rpWindowPosToProjectedShadowS; + const idDeclRenderParm *rpWindowPosToProjectedShadowT; + const idDeclRenderParm *rpWindowPosToProjectedShadowR; + const idDeclRenderParm *rpWindowPosToProjectedShadowQ; + const idDeclRenderParm *rpShadowProjectionS; + const idDeclRenderParm *rpShadowProjectionT; + const idDeclRenderParm *rpShadowProjectionR; + const idDeclRenderParm *rpShadowProjectionQ; + const idDeclRenderParm *rpGlobalLightOrigin; + const idDeclRenderParm *rpStaticSpecularScale; + const idDeclRenderParm *rpStaticSpecularVector; + const idDeclRenderParm *rpLightProjectionS; + const idDeclRenderParm *rpLightProjectionT; + const idDeclRenderParm *rpLightProjectionR; + const idDeclRenderParm *rpLightProjectionQ; + const idDeclRenderParm *rpLocalToLightS; + const idDeclRenderParm *rpLocalToLightT; + const idDeclRenderParm *rpLocalToLightR; + const idDeclRenderParm *rpLocalToLightQ; + const idDeclRenderParm *rpLightFade; + const idDeclRenderProg *progDepthOnly; + const idDeclRenderProg *progBlendedLightDebugDraw; + const idDeclRenderProg *progDeferredPointLight; + const idDeclRenderProg *progDeferredSpotLight; + const idDeclRenderProg *progDeferredParallelLight; + const idRenderDestination *renderDestDefault; + const idTriangles *zeroOneCubeTris; + const bool *binaryModelState; + int *numShadows; +}; diff --git a/source/engine/renderer/renderlog.h b/source/engine/renderer/renderlog.h new file mode 100644 index 0000000..1bdd010 --- /dev/null +++ b/source/engine/renderer/renderlog.h @@ -0,0 +1,31 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\renderlog.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19083; PDB kind: struct. +struct idRenderLog::logStats_t +{ + unsigned __int64 startTiming; + int startDraws; + int startIndexes; +}; + +// IDA Local Type ordinal 19084; PDB kind: class. +class __declspec(align(8)) idRenderLog +{ +public: + int activeLevel; + renderLogIndentLabel_t indentLabel[20]; + char indentString[80]; + int indentLevel; + renderLogMainBlock_t lastMainBlock; + _iobuf *logFile; + unsigned __int64 frameStartTime; + unsigned __int64 closeBlockTime; + idRenderLog::logStats_t logStats[20]; + int logLevel; +}; diff --git a/source/engine/renderer/rendermodelcommitted.h b/source/engine/renderer/rendermodelcommitted.h new file mode 100644 index 0000000..aa87cc9 --- /dev/null +++ b/source/engine/renderer/rendermodelcommitted.h @@ -0,0 +1,42 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\rendermodelcommitted.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13636; PDB kind: class. +class __declspec(align(8)) idRenderModelCommitted +{ +public: + const char *name; + idRenderWorldLocal *world; + idRenderIndex index; + idBounds referenceBounds; + idRenderModelParms r; + idStaticParmBlock<32> renderParmBlock; + idList surfaces; + idRenderModelCommitted *nextOnPostCommitList; + idList references; + idRenderModelCommitted *nextAddAlwaysModel; + idRenderModelCommitted *nextDimShadowModel; + idRenderModelCommitted *referenceModel; + int guiFrameCount; + idVec4 maxVisibleRange; + idBounds globalReferenceBounds; + idVec3 localLightingPoint; + idRenderMatrix modelMatrix; + idRenderMatrix inverseModelMatrix; + approximateLighting_t approximateLighting; + idVec4 highlightColor; + __int8 isLitTransSort : 1; + __int8 hasUniqueVirtualTexture : 1; + __int8 mayMakeInteractions : 1; + __int8 mayCastShadows : 1; + __int8 mayBeDrawn : 1; + __int8 needsApproximatedLighting : 1; + __int8 needsReferences : 1; + __int8 lightCenterInitialized : 1; + idRenderMatrix mvpMatrix; +}; diff --git a/source/engine/renderer/rendermodelparms.h b/source/engine/renderer/rendermodelparms.h new file mode 100644 index 0000000..aff706c --- /dev/null +++ b/source/engine/renderer/rendermodelparms.h @@ -0,0 +1,74 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\rendermodelparms.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13664; PDB kind: class. +class idRenderModelParms +{ +public: + idVec3 origin; + idMat3 axis; + idVec3 scale; + const idMaterial *customMaterial; + int customSkin; + int groupMasterIndex; + int allowSurfaceOnlyInViewID; + int suppressSurfaceInViewID; + int suppressShadowInViewID; + int suppressShadowInLightIndex; + int firstVisibleFrameCount; + float fovScale; + float modelDepthHack; + dimShadow_t castDimShadows; + __int8 augmentShowOnlyWhenOccluded : 1; + __int8 isAugment : 1; + __int8 isSceneModel : 1; + __int8 isSky : 1; + __int8 isWorld : 1; + __int8 isStatic : 1; + __int8 allowUpShadows : 1; + __int8 allowHighQualityDimShadows : 1; + __int8 mvpIsIdentity : 1; + __int8 viewOriented : 1; + __int8 addAlways : 1; + __int8 megatexturedModel : 1; + __int8 acceptDimShadows : 1; + __int8 staticShadowsFromDynamicModel : 1; + __int8 noInteractions : 1; + __int8 noShadow : 1; + __int8 privateLightOnly : 1; + __int8 addAlwaysForceOcclusionQuery : 1; + __int8 alwaysOcclusionCullBounds : 1; + __int8 neverOcclusionCullBounds : 1; + __int8 noGPUocclusionTest : 1; + __int8 woundsActive : 1; + __int8 mvpIsSunFlare : 1; + __int8 mvpIsOrthographic : 1; + unsigned __int8 : 2; + __int8 enableStaticSpecular : 1; + __int8 forceApproximatedLighting : 1; + __int8 noAmbient : 1; + __int8 boostLightingPoint : 1; + __int8 moveLightingPoint : 1; + __int8 noLocalLighting : 1; + unsigned __int32 : 24; + __int32 traceGroup : 8; + float radiosityScale; + unsigned __int8 : 5; + __int8 noStippleFade : 1; + __int8 rebakeModel : 1; + __int8 radiosityPreview : 1; + float staticReflectionStrength; + highlightColor_t highlightColor; + float dimShadowClipZ; + float maxTexelDensity; + float modelFade; + float maxVisibleRange; + float fadeVisibilityOver; + idRenderModel *referenceModel; + idScreenRect viewport; +}; diff --git a/source/engine/renderer/rendermodelsurface.h b/source/engine/renderer/rendermodelsurface.h new file mode 100644 index 0000000..d997293 --- /dev/null +++ b/source/engine/renderer/rendermodelsurface.h @@ -0,0 +1,24 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\rendermodelsurface.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13425; PDB kind: class. +class idRenderModelSurface +{ +public: + const idMaterial *material; + int materialNum; + unsigned __int64 extraGLState; + idTriangles *geometry; + bool geometryIsReference; + unsigned __int8 referenceMask; + int binaryModelId; + idJointBuffer *joints; + idVertexBuffer *morphMap; + idVertexBuffer *stMap; + idVec4 skinOffsets; +}; diff --git a/source/engine/renderer/rendersystem.h b/source/engine/renderer/rendersystem.h new file mode 100644 index 0000000..4024259 --- /dev/null +++ b/source/engine/renderer/rendersystem.h @@ -0,0 +1,75 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\rendersystem.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17560; PDB kind: class. +class idRenderSystem +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17566. + virtual ~idRenderSystem(); + virtual void Init(); + virtual void Init2(); + virtual void Shutdown(); + virtual idRenderWorld *AllocRenderWorld(const char *, bool); + virtual void RenderFrame(void *const, const idRenderFrameInfo *, const bool, const bool, const bool); + virtual void EndFrame(void *, int, int, idRenderWorld *, idRenderModel **, int, bool, bool, bool, int); + virtual void ToolEndFrame(void *, int, int, idRenderWorld *, const renderView_t *, idRenderModel *, int); + virtual int FrameNumber(); + virtual bool SyncRenderThread(bool); + virtual void BeginBinkVideo(void *, const char *const, const videoFlags_t, idRenderVideoOverlay *); + virtual bool BinkVideoIsLoaded(); + virtual bool BinkVideoIsPlaying(); + virtual void FreeBinkVideo(); + virtual void AllowBackgroundSwaps(bool); + virtual void BeginAutomaticBackgroundSwaps(void *, bool); + virtual void EndAutomaticBackgroundSwaps(); + virtual void SetLoadingIconInfo(float, float, float, float); + virtual void RegenerateReferences(); + virtual void InhibitEndFrameRendering(int); + virtual bool IsEndFrameRenderingInhibited(); + virtual int GetNumRenderWorlds(); + virtual idRenderWorld *RenderWorldForIndex(int); + virtual int GetNextRenderView(idRenderWorld *const); + virtual int GetNumMonitors(); + virtual void GetMonitorSize(int, int *, int *); + virtual int GetCurrentMonitor(); + virtual bool GPUTranscodeAvailable(); + virtual void EnableGPUTranscode(bool); + virtual bool GPUTranscodeIsEnabled(); + virtual bool SwapTearAvailable(); + virtual void ClearOutOfMemory(); + virtual bool CheckOutOfMemory(); + virtual void *GetGameWindow(); + virtual void Restart(); + virtual void SwapBuffers(void *, bool); + virtual void SetBlackLevel(const float); + virtual void SetGamma(unsigned __int16 *, unsigned __int16 *, unsigned __int16 *); + virtual bool MakeCurrent(void *); + virtual int GetWidth(); + virtual int GetHeight(); + virtual float GetPixelAspect(); + virtual float GetScreenAspect(); + virtual int GetScanoutWidth(); + virtual int GetScanoutHeight(); + virtual stereoRenderMode_t GetStereoRenderMode(); + virtual int GetNumMultisamples(); + virtual int GetMaxSupportedMultisamples(); + virtual bool IgnoreSizeMessages(); + virtual void WindowSizeDragged(int, int); + virtual bool WindowChangeMultisamples(const int); + virtual bool EnumerateModes(int, int *, int *, int *); + virtual void (__fastcall *ExtensionPointer(const char *))(); + virtual void SetPixelFormat(void *); + virtual void ShowGameWindow(); + virtual void HideGameWindow(); + virtual bool IsFullscreen(); + virtual void GoWindowed(); + virtual void GoFullScreen(); + virtual void SetStudioMode(bool); + +}; diff --git a/source/engine/renderer/rendersystem_local.h b/source/engine/renderer/rendersystem_local.h new file mode 100644 index 0000000..08ec24e --- /dev/null +++ b/source/engine/renderer/rendersystem_local.h @@ -0,0 +1,203 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\rendersystem_local.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19102; PDB kind: class. +class __declspec(align(8)) idRenderSystemLocal : public idRenderSystem +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19104. + virtual ~idRenderSystemLocal(); + virtual void Init(); + virtual void Init2(); + virtual void Shutdown(); + virtual idRenderWorld *AllocRenderWorld(const char *, bool); + virtual void RenderFrame(void *const, const idRenderFrameInfo *, const bool, const bool, const bool); + virtual void EndFrame(void *, int, int, idRenderWorld *, idRenderModel **, int, bool, bool, bool, int); + virtual void ToolEndFrame(void *, int, int, idRenderWorld *, const renderView_t *, idRenderModel *, int); + virtual int FrameNumber(); + virtual bool SyncRenderThread(bool); + virtual void BeginBinkVideo(void *, const char *const, const videoFlags_t, idRenderVideoOverlay *); + virtual bool BinkVideoIsLoaded(); + virtual bool BinkVideoIsPlaying(); + virtual void FreeBinkVideo(); + virtual void AllowBackgroundSwaps(bool); + virtual void BeginAutomaticBackgroundSwaps(void *, bool); + virtual void EndAutomaticBackgroundSwaps(); + virtual void SetLoadingIconInfo(float, float, float, float); + virtual void RegenerateReferences(); + virtual void InhibitEndFrameRendering(int); + virtual bool IsEndFrameRenderingInhibited(); + virtual int GetNumRenderWorlds(); + virtual idRenderWorld *RenderWorldForIndex(int); + virtual int GetNextRenderView(idRenderWorld *const); + virtual int GetNumMonitors(); + virtual void GetMonitorSize(int, int *, int *); + virtual int GetCurrentMonitor(); + virtual bool GPUTranscodeAvailable(); + virtual void EnableGPUTranscode(bool); + virtual bool GPUTranscodeIsEnabled(); + virtual bool SwapTearAvailable(); + virtual void ClearOutOfMemory(); + virtual bool CheckOutOfMemory(); + virtual void *GetGameWindow(); + virtual void Restart(); + virtual void SwapBuffers(void *, bool); + virtual void SetBlackLevel(const float); + virtual void SetGamma(unsigned __int16 *, unsigned __int16 *, unsigned __int16 *); + virtual bool MakeCurrent(void *); + virtual int GetWidth(); + virtual int GetHeight(); + virtual float GetPixelAspect(); + virtual float GetScreenAspect(); + virtual int GetScanoutWidth(); + virtual int GetScanoutHeight(); + virtual stereoRenderMode_t GetStereoRenderMode(); + virtual int GetNumMultisamples(); + virtual int GetMaxSupportedMultisamples(); + virtual bool IgnoreSizeMessages(); + virtual void WindowSizeDragged(int, int); + virtual bool WindowChangeMultisamples(const int); + virtual bool EnumerateModes(int, int *, int *, int *); + virtual void (__fastcall *ExtensionPointer(const char *))(); + virtual void SetPixelFormat(void *); + virtual void ShowGameWindow(); + virtual void HideGameWindow(); + virtual bool IsFullscreen(); + virtual void GoWindowed(); + virtual void GoFullScreen(); + virtual void SetStudioMode(bool); + virtual void InitContext(); + + bool insideEndFrame; + bool automaticBackgroundSwapsEnabled; + bool renderLoadingIcon; + bool renderingIsReadyForSwapbuffers; + bool allowBackgroundSwaps; + volatile bool renderSynced; + int frameCount; + int inhibitRendering; + float loadingIconPosX; + float loadingIconPosY; + float loadingIconScale; + float loadingIconSpeed; + idRenderWorldLocal *worlds; + idRenderWorldLocal *primaryWorld; + idRenderWorldLocal *performanceCounterLogWorld; + int performanceCounterLogWorldFrame; + idRenderWorldLocal *testWorld; + idImage *testImage; + idImage *testCubeImage; + const idMaterial *testMaterial; + performanceCounters_t pc; + idRenderVideoOverlay *videoOverlay; + const idMaterial *mtrDefault; + const idMaterial *mtrDefaultPointLight; + const idMaterial *mtrDefaultProjectedLight; + const idMaterial *mtrDefaultParallelLight; + const idMaterial *mtrDefaultPointBlendLight; + const idMaterial *mtrDefaultProjectedBlendLight; + const idMaterial *mtrDefaultParallelBlendLight; + const idDeclRenderProg *progGauss; + const idDeclRenderProg *progGlareScale; + const idDeclRenderProg *progOverlappedDownSample; + const idDeclRenderProg *progFeedbackDownSample; + const idDeclRenderProg *progBloomThreshold; + const idDeclRenderProg *progLuminosity; + const idDeclRenderProg *progAdaptiveGlareGauss; + const idDeclRenderProg *progPostProcess; + const idDeclRenderProg *progDepthOnly; + const idDeclRenderProg *progColorOnly; + const idDeclRenderProg *progColorParmOnly; + const idDeclRenderProg *progWireFrame; + const idDeclRenderProg *progTextureOnly; + const idDeclRenderProg *progCubeImageOnly; + const idDeclRenderProg *progTestImage; + const idDeclRenderProg *progTestImageShadow; + const idDeclRenderProg *progTestImageMultisample; + const idDeclRenderProg *progBasicBlend; + const idDeclRenderProg *progEnvironmentBlend; + const idDeclRenderProg *progOccluderDepthOnly; + const idDeclRenderProg *progOccluderUnique; + const idDeclRenderProg *progLandUniqueBump; + const idDeclRenderProg *progLandUniqueDiffuseOnly; + const idDeclRenderProg *progBlendedLightDebugDraw; + const idDeclRenderProg *progDeferredPointLight; + const idDeclRenderProg *progDeferredSpotLight; + const idDeclRenderProg *progDeferredParallelLight; + const idDeclRenderProg *progVarianceShadowMap; + const idDeclRenderProg *progGlobalFog; + const idDeclRenderProg *progCreateGodRayMask; + const idDeclRenderProg *progDrawGodRay; + const idDeclRenderParm *rpGlareMap; + const idDeclRenderParm *rpGlareStep; + const idDeclRenderParm *rpDistortionMap; + const idDeclRenderParm *rpGrainMap; + const idDeclRenderParm *rpDynamicEnvMap; + const idDeclRenderParm *rpPowerMip; + const idDeclRenderParm *rpFrameNumber; + const idDeclRenderParm *rpVirtualTextureFeedbackFloat; + const idDeclRenderParm *rpPageTableMap; + const idDeclRenderParm *rpVmtrPageTableMap; + const idDeclRenderParm *rpDepthOfField2; + const idDeclRenderParm *rpGodRayQuadScaleBias; + const idDeclRenderParm *rpGodRaySourceScaleBias; + const idDeclRenderParm *rpGodRaysColor; + const idDeclRenderParm *rpAdaptiveGlareMap; + const idDeclRenderParm *rpAdaptiveGlareMapAlt; + const idDeclRenderParm *rpLuminosityMap; + const idDeclRenderParm *rpLuminosityMapAlt; + const idDeclRenderParm *rpAdaptiveLuminance; + const idDeclRenderParm *rpAdaptiveGlareBlurMap; + const idDeclRenderParm *rpAdaptiveGlareBlurStep; + const idDeclRenderParm *rpAdaptiveGlareParms; + const idDeclTable *declHighlightTable; + const idDeclTable *declHighlightExplodeTable; + const idStaticModel *defaultCubeModel; + const idStaticModel *unitCubeModel; + const idStaticModel *zeroOneCubeModel; + const idStaticModel *extrudeBoxModel; + const idStaticModel *unitSquareModel; + const idStaticModel *zeroOneSquareModel; + idTriangles *unitSquareTris; + idTriangles *unitSquareGuiTris; + idImage *imgViewColor[2]; + idImage *imgViewDepth; + idImage *imgColorGradingLUT[2]; + idImage *imgDistortion[2]; + idImage *imgScreenMip3; + idImage *imgScreenMip3Alt; + idImage *imgGui; + idImage *imgDynamicEnvironment[2]; + idImage *imgGrain; + idImage *imgLuminosity; + idImage *imgLuminosityAlt; + idRenderDestination *renderDestViewColor[2]; + idRenderDestination *renderDestViewDepth; + idRenderDestination *renderDestMip1; + idRenderDestination *renderDestMip3; + idRenderDestination *renderDestMip3Alt; + idRenderDestination *renderDestDistortion[2]; + idRenderDestination *renderDestGui; + idRenderDestination *renderDestDynamicEnv[2]; + idRenderDestination *renderDestDimShadow; + idRenderDestination *renderDestLuminosity; + idRenderDestination *renderDestLuminosityAlt; + int windowWidth; + int windowHeight; + int renderWidth; + int renderHeight; + idRenderFrameInfo currentRenderFrameInfo; + idRenderView *currentRenderView; + unsigned __int16 gammaTable[256]; + float blackLevel[2]; + bool updateGammaTable; + idGaugeMetric drawsMetric; + idGaugeMetric trisMetric; + idGaugeMetric vertsMetric; + idRenderThread *renderThread; +}; diff --git a/source/engine/renderer/renderthread.h b/source/engine/renderer/renderthread.h new file mode 100644 index 0000000..dafc9f3 --- /dev/null +++ b/source/engine/renderer/renderthread.h @@ -0,0 +1,21 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\renderthread.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19100; PDB kind: class. +class __declspec(align(4)) idRenderThread : public idSysThread +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19101. + virtual ~idRenderThread(); + virtual int Run(); + + void *hdc; + renderMode_t renderMode; + renderMode_t renderModeBeforeSync; + bool initialized; +}; diff --git a/source/engine/renderer/renderview.h b/source/engine/renderer/renderview.h new file mode 100644 index 0000000..3411554 --- /dev/null +++ b/source/engine/renderer/renderview.h @@ -0,0 +1,122 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\renderview.h +// Recovered logical types: 5 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13534; PDB kind: struct. +struct __declspec(align(16)) renderView_t +{ + int renderTime; + int viewID; + bool forceFullVirtualTextureLoad; + bool discontinuousViewPosition; + bool skipDimShadows; + bool skipPostProcess; + bool skipDynamicEnvironment; + bool forceFullResolution; + bool useHQViewColorMipsGeneration; + float fov_x; + float fov_y; + bool cramZNear; + idRenderMatrix explicitProjectionMatrix; + bool useExplicitProjectionMatrix; + idVec3 vieworg; + idMat3 viewaxis; + bool forceIdentityViewMatrix; + idStaticParmBlock<32> parmBlock; + const idDeclEnv *dynEnvOverride; + float dynEnvOverrideDuration; + int dynEnvOverrideModelIndex; + bool applyDynEnvOverride; + idStaticParmBlock<32> envOverrideParmBlock; + bool radialBlurEnabled; + idVec3 radialBlurCenterPos; + bool godRaysEnabled; + bool godRaysRelativeToCamera; + idVec3 godRaysPosition; + idVec3 godRaysColor; + float godRaysSize; + float godRaysSourceSize; + const idMaterial *godRaysMaterial; +}; + +// IDA Local Type ordinal 13537; PDB kind: class. +class __declspec(align(16)) idRenderView +{ +public: + renderView_t g; + idImage *imgViewColor; + int viewIndex; + envBlend_t envBlend; + idParmBlock blendedEnvironmentParms; + renderView_t r; + idRenderMatrix projectionMatrix; + idRenderMatrix inverseProjectionMatrix; + idRenderMatrix viewMatrix; + idRenderMatrix inverseViewMatrix; + idRenderMatrix worldSpaceMVPMatrix; + idRenderMatrix worldSpaceInverseMVPMatrix; + idRenderMatrix viewSpaceModelMatrix; + idRenderMatrix viewSpaceInverseModelMatrix; + idRenderMatrix viewSpaceMVPMatrix; + int windowWidth; + int windowHeight; + int renderWidth; + int renderHeight; + int feedbackWidth; + int feedbackHeight; + idScreenRect viewport; + idScreenRect scissorRect; + idScreenRect testScissor; + __int64 firstOcclusionQueryInPreviousFrame; + occlusionState_t *occlusionState; +}; + +// IDA Local Type ordinal 13602; PDB kind: struct. +const struct foliageRenderView_t +{ + float time; + float nearDist; + float farDist; + float fov[2]; + idVec3 viewOrg; + idVec3 viewFwd; + idVec3 viewLeft; + idVec3 viewUp; + idRenderMatrix mvpMatrix; + unsigned __int16 atlasWidth; + unsigned __int16 atlasHeight; + int pad[2]; +}; + +// IDA Local Type ordinal 13624; PDB kind: struct. +const struct detailRenderView_t +{ + float time; + float nearDist; + float farDist; + float fov[2]; + idVec3 viewOrg; + idVec3 viewFwd; + idVec3 viewLeft; + idVec3 viewUp; + int pad[3]; + idRenderMatrix mvpMatrix; +}; + +// IDA Local Type ordinal 14014; PDB kind: struct. +struct particleRenderView_t +{ + idVec3 viewOrg; + idVec3 viewFwd; + idVec3 viewLeft; + idVec3 viewUp; + int renderTime; + int deltaTime; + unsigned __int16 atlasWidth; + unsigned __int16 atlasHeight; + int pad; +}; diff --git a/source/engine/renderer/renderworld.h b/source/engine/renderer/renderworld.h new file mode 100644 index 0000000..eec671b --- /dev/null +++ b/source/engine/renderer/renderworld.h @@ -0,0 +1,85 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\renderworld.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13520; PDB kind: class. +class idRenderWorld +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13689. + virtual ~idRenderWorld(); + virtual const char *GetName(); + virtual bool IsComboMap(); + virtual bool HasGlobalShadows(); + virtual void UpdateDeferredPositions(); + virtual void AddEnvironment(const idBounds *, const idDeclEnv *); + virtual void ClearEnvironments(); + virtual int NumEnvironments(); + virtual const idParmBlock *GetCurrentBlendedParms(); + virtual const idDeclEnv *GetEnvironmentDeclForCurrentViewPoint(); + virtual void TestEnvironment(const idDeclEnv *); + virtual void SpecificationComplete(bool); + virtual idRenderModel *StampModel(); + virtual idRenderModelFoliageEdit *FoliageEditRenderModel(); + virtual idRenderModelFoliage *FoliageRenderModel(); + virtual idRenderModelDetailEdit *DetailEditRenderModel(); + virtual idRenderModelDetail *DetailRenderModel(); + virtual idRenderModelTransparency *TransparencyRenderModel(); + virtual idRenderModelDecal *DecalModel(); + virtual idRenderLight *AllocRenderLight(bool); + virtual idRenderModel *AllocRenderModel(const char *, bool, int); + virtual void MarkLightSerialized(idRenderLight *, bool, bool); + virtual void MarkAllLightsAsSerialized(); + virtual void SetBinaryModelState(const char *, const bool); + virtual void SetNumRenderViews(int); + virtual idRenderView *RenderViewForIndex(int); + virtual bool InitForTools(const char *); + virtual int GetNumRenderModels(); + virtual idRenderModel *RenderModelForIndex(int); + virtual int GetNumRenderLights(); + virtual idRenderLight *RenderLightForIndex(int); + virtual int GetNumMegatextures(); + virtual pageSource_t MegatextureForIndex(int); + virtual const idStaticModel *GetWorldStaticModel(); + virtual const idRenderModel *GetWorldRenderModel(); + virtual void GetStaticWorldBounds(idBounds *); + virtual bool Trace(modelTrace_t *, const idVec3 *, const idVec3 *, const idTraceOpts *); + virtual float ShadowSample(const idVec3 *); + virtual void SaveGame(idFile *); + virtual bool LoadGame(idFile *); + virtual void WriteToSnapshot(idSnapShot *, const idSnapShot *); + virtual void ReadFromSnapshot(idSnapShot *, const idSnapShot *); + virtual void ResetSnapshots(); + virtual void DebugClear(int); + virtual void DebugLine(const idVec4 *, const idVec3 *, const idVec3 *, const int, const bool); + virtual void DebugArrow(const idVec4 *, const idVec3 *, const idVec3 *, float, const int, const bool); + virtual void DebugArrow2(const idVec4 *, const idVec3 *, const idVec3 *, float, const int, const bool, const idVec3 *); + virtual void DebugArrow3(const idVec4 *, const idVec3 *, const idVec3 *, float, const int, const bool); + virtual void DebugPyramid(const idVec4 *, const idVec3 *, const idVec3 *, const idVec3 *, float, float, const int, const bool); + virtual void DebugWinding(const idVec4 *, const idWinding *, const idVec3 *, const idMat3 *, const int, const bool); + virtual void DebugCircle(const idVec4 *, const idVec3 *, const idVec3 *, const float, const int, const int, const bool); + virtual void DebugCylinder(const idVec4 *, const idCylinder *, const idVec3 *, const int, const int, const bool); + virtual void DebugArc(const idVec4 *, const idVec3 *, const idVec3 *, const float, const float, const float, const float, const int, const bool, const bool); + virtual void DebugShadedArc(const idVec4 *, const idVec3 *, const idVec3 *, const idVec3 *, const float, const float, const float, const float, const int, const bool); + virtual void DebugSphere(const idVec4 *, const idSphere *, const int, const int, const bool); + virtual void DebugBounds(const idVec4 *, const idBounds *, const idVec3 *, const int, const bool); + virtual void DebugOrientedBounds(const idVec4 *, const idBounds *, const idVec3 *, const idMat3 *, const int, const bool); + virtual void DebugBox(const idVec4 *, const idBox *, const int, const bool); + virtual void DebugFrustum(const idVec4 *, const idFrustum *, const bool, const int); + virtual void DebugCone(const idVec4 *, const idVec3 *, const idVec3 *, float, const int, const bool); + virtual void DebugCone_2(const idVec4 *, const idVec3 *, const idVec3 *, float, float, const int, const bool); + virtual void DebugAxis(const idVec4 *, const idVec3 *, const idMat3 *, const int, const bool); + virtual void DebugAxis_2(const idVec3 *, const idMat3 *, const int, const bool); + virtual void DebugAxisScaled(const idVec3 *, const idMat3 *, const float, const int, const bool); + virtual void DebugPoint(const idVec4 *, const idVec3 *, const int, const bool); + virtual void DebugFilledPolygon(const idVec4 *, const idWinding *, const int, const bool); + virtual void DebugFilledBounds(const idVec4 *, const idBounds *, const idVec3 *, const int, const bool); + virtual void DebugText(const char *, const idVec3 *, float, const idVec4 *, const int, const int, const bool, const bool); + virtual void DebugText_2(const char *, const idVec3 *, float, const idVec4 *, const idMat3 *, const int, const int, const bool, const bool); + virtual void DebugSpline(const idVec4 *, idCurve_Spline *, float, bool, int, const bool); + +}; diff --git a/source/engine/renderer/renderworld_local.h b/source/engine/renderer/renderworld_local.h new file mode 100644 index 0000000..c98d532 --- /dev/null +++ b/source/engine/renderer/renderworld_local.h @@ -0,0 +1,157 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\renderworld_local.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1742; PDB kind: enum. +enum idRenderWorldLocal::layoutPhase_t : __int32 +{ + LAYOUT_NORMAL = 0x0, + LAYOUT_PHASE1 = 0x1, + LAYOUT_PHASE2 = 0x2, +}; + +// IDA Local Type ordinal 13553; PDB kind: class. +class __declspec(align(4)) idRenderWorldLocal : public idRenderWorld +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34036. + virtual ~idRenderWorldLocal(); + virtual const char *GetName(); + virtual bool IsComboMap(); + virtual bool HasGlobalShadows(); + virtual void UpdateDeferredPositions(); + virtual void AddEnvironment(const idBounds *, const idDeclEnv *); + virtual void ClearEnvironments(); + virtual int NumEnvironments(); + virtual const idParmBlock *GetCurrentBlendedParms(); + virtual const idDeclEnv *GetEnvironmentDeclForCurrentViewPoint(); + virtual void TestEnvironment(const idDeclEnv *); + virtual void SpecificationComplete(bool); + virtual idRenderModel *StampModel(); + virtual idRenderModelFoliageEdit *FoliageEditRenderModel(); + virtual idRenderModelFoliage *FoliageRenderModel(); + virtual idRenderModelDetailEdit *DetailEditRenderModel(); + virtual idRenderModelDetail *DetailRenderModel(); + virtual idRenderModelTransparency *TransparencyRenderModel(); + virtual idRenderModelDecal *DecalModel(); + virtual idRenderLight *AllocRenderLight(bool); + virtual idRenderModel *AllocRenderModel(const char *, bool, int); + virtual void MarkLightSerialized(idRenderLight *, bool, bool); + virtual void MarkAllLightsAsSerialized(); + virtual void SetBinaryModelState(const char *, const bool); + virtual void SetNumRenderViews(int); + virtual idRenderView *RenderViewForIndex(int); + virtual bool InitForTools(const char *); + virtual int GetNumRenderModels(); + virtual idRenderModel *RenderModelForIndex(int); + virtual int GetNumRenderLights(); + virtual idRenderLight *RenderLightForIndex(int); + virtual int GetNumMegatextures(); + virtual pageSource_t MegatextureForIndex(int); + virtual const idStaticModel *GetWorldStaticModel(); + virtual const idRenderModel *GetWorldRenderModel(); + virtual void GetStaticWorldBounds(idBounds *); + virtual bool Trace(modelTrace_t *, const idVec3 *, const idVec3 *, const idTraceOpts *); + virtual float ShadowSample(const idVec3 *); + virtual void SaveGame(idFile *); + virtual bool LoadGame(idFile *); + virtual void WriteToSnapshot(idSnapShot *, const idSnapShot *); + virtual void ReadFromSnapshot(idSnapShot *, const idSnapShot *); + virtual void ResetSnapshots(); + virtual void DebugClear(int); + virtual void DebugLine(const idVec4 *, const idVec3 *, const idVec3 *, const int, const bool); + virtual void DebugArrow(const idVec4 *, const idVec3 *, const idVec3 *, float, const int, const bool); + virtual void DebugArrow2(const idVec4 *, const idVec3 *, const idVec3 *, float, const int, const bool, const idVec3 *); + virtual void DebugArrow3(const idVec4 *, const idVec3 *, const idVec3 *, float, const int, const bool); + virtual void DebugPyramid(const idVec4 *, const idVec3 *, const idVec3 *, const idVec3 *, float, float, const int, const bool); + virtual void DebugWinding(const idVec4 *, const idWinding *, const idVec3 *, const idMat3 *, const int, const bool); + virtual void DebugCircle(const idVec4 *, const idVec3 *, const idVec3 *, const float, const int, const int, const bool); + virtual void DebugCylinder(const idVec4 *, const idCylinder *, const idVec3 *, const int, const int, const bool); + virtual void DebugArc(const idVec4 *, const idVec3 *, const idVec3 *, const float, const float, const float, const float, const int, const bool, const bool); + virtual void DebugShadedArc(const idVec4 *, const idVec3 *, const idVec3 *, const idVec3 *, const float, const float, const float, const float, const int, const bool); + virtual void DebugSphere(const idVec4 *, const idSphere *, const int, const int, const bool); + virtual void DebugBounds(const idVec4 *, const idBounds *, const idVec3 *, const int, const bool); + virtual void DebugOrientedBounds(const idVec4 *, const idBounds *, const idVec3 *, const idMat3 *, const int, const bool); + virtual void DebugBox(const idVec4 *, const idBox *, const int, const bool); + virtual void DebugFrustum(const idVec4 *, const idFrustum *, const bool, const int); + virtual void DebugCone(const idVec4 *, const idVec3 *, const idVec3 *, float, const int, const bool); + virtual void DebugCone_2(const idVec4 *, const idVec3 *, const idVec3 *, float, float, const int, const bool); + virtual void DebugAxis(const idVec4 *, const idVec3 *, const idMat3 *, const int, const bool); + virtual void DebugAxis_2(const idVec3 *, const idMat3 *, const int, const bool); + virtual void DebugAxisScaled(const idVec3 *, const idMat3 *, const float, const int, const bool); + virtual void DebugPoint(const idVec4 *, const idVec3 *, const int, const bool); + virtual void DebugFilledPolygon(const idVec4 *, const idWinding *, const int, const bool); + virtual void DebugFilledBounds(const idVec4 *, const idBounds *, const idVec3 *, const int, const bool); + virtual void DebugText(const char *, const idVec3 *, float, const idVec4 *, const int, const int, const bool, const bool); + virtual void DebugText_2(const char *, const idVec3 *, float, const idVec4 *, const idMat3 *, const int, const int, const bool, const bool); + virtual void DebugSpline(const idVec4 *, idCurve_Spline *, float, bool, int, const bool); + virtual bool InitFromMap(const char *, bool); + + idStr mapName; + bool isComboMap; + bool everInitialized; + bool specificationCompleteHasBeenCalled; + bool hasWorldSurfaceOffsets; + idRenderWorldLocal *nextOnWorldList; + areaNode_t *areaNodes; + idBounds *areaNodeBounds; + int *areaNodeOcclusionIndex; + int numAreaNodes; + worldArea_t *worldAreas; + idBounds *worldAreaSubspaceBounds; + idBounds *worldAreaGeometryBounds; + int numWorldAreas; + idVertexBuffer worldVertexBuffer; + idIndexBuffer worldIndexBuffer; + idStaticModel *worldStaticModel; + idRenderModel *worldRenderModel; + idRenderModel *skyModel; + idRenderModel *occlusionBaseModel; + idAmbientLighting ambientLighting; + idGlobalShadows globalShadows; + idStaticList dynamicEnvironments; + idStaticList renderModels; + idStaticList renderLights; + idStaticList serializedLights; + idStaticList renderViews; + idArray commitModels; + idArray commitLights; + idArray postCommitModels; + idArray postCommitLights; + idArray deletedModels; + idHashIndex binaryModelHash; + idStaticList binaryModelNames; + idStaticList binaryModelState; + idRenderModel *stampModel; + idRenderModelFoliageEdit *foliageEditRenderModel; + idRenderModelFoliage *foliageRenderModel; + idRenderModelDetailEdit *detailEditRenderModel; + idRenderModelDetail *detailRenderModel; + idRenderModelTransparency *transparencyRenderModel; + idRenderModelDecal *decalRenderModel; + idParallelJobList *transparencyJobList; + idParallelJobList *renderModelJobList; + approximateLightingParms_t *approximateLightingParms; + int numApproximateLightingParms; + const idRenderLightCommitted **approximateLightingLights; + int numApproximateLightingLights; + idStaticList linkedRenderModels; + idStaticList linkedRenderLights; + idRenderModelCommitted *addAlwaysModels; + idRenderModelCommitted *dimShadowModels; + idList megaTextures; + const idDeclEnv *testEnv; + idList rb_debugLines; + idList rb_debugText; + idList rb_debugPolygons; + idList rb_debugBounds; + idList latchedDebugLines; + idList latchedDebugText; + idList latchedDebugPolygons; + idList latchedDebugBounds; + bool worldEnableStaticSpecular; +}; diff --git a/source/engine/renderer/resolutionscale.h b/source/engine/renderer/resolutionscale.h new file mode 100644 index 0000000..9e2573d --- /dev/null +++ b/source/engine/renderer/resolutionscale.h @@ -0,0 +1,19 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\resolutionscale.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22821; PDB kind: class. +class idResolutionScale +{ +public: + float dropMilliseconds; + float raiseMilliseconds; + int framesAboveRaise; + float currentResolution; + idGaugeMetric resolutionScaleMetricX; + idGaugeMetric resolutionScaleMetricY; +}; diff --git a/source/engine/renderer/seenbits.h b/source/engine/renderer/seenbits.h new file mode 100644 index 0000000..53b297a --- /dev/null +++ b/source/engine/renderer/seenbits.h @@ -0,0 +1,20 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\seenbits.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13646; PDB kind: class. +class idSeenBits +{ +public: + int merges; + int layoutVersion; + int width; + int coarsestLevel; + __int64 bitArraySize; + unsigned __int8 *bits; + __int64 levelOffset[32]; +}; diff --git a/source/engine/renderer/triangles.h b/source/engine/renderer/triangles.h new file mode 100644 index 0000000..308e38d --- /dev/null +++ b/source/engine/renderer/triangles.h @@ -0,0 +1,26 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\triangles.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13337; PDB kind: class. +class idTriangles +{ +public: + idBounds bounds; + bool generateNormals; + int numIndexes; + int numVerts; + int detailOffset; + bool allowGpuHosting; + idVertexScaleAndBias vsb; + unsigned int cpuVertexMask; + idDrawVert *verts; + unsigned __int16 *indexes; + unsigned int vertexMask; + idVertexBuffer vertexBuffer; + idIndexBuffer indexBuffer; +}; diff --git a/source/engine/renderer/virtualmaterialatlas.h b/source/engine/renderer/virtualmaterialatlas.h new file mode 100644 index 0000000..e54dc91 --- /dev/null +++ b/source/engine/renderer/virtualmaterialatlas.h @@ -0,0 +1,31 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\virtualmaterialatlas.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 3015; PDB kind: enum. +enum idVirtualMaterial::vmtrFlag_t : __int32 +{ + VF_TRANSMAP = 0x1, + VF_NO_BORDER = 0x2, +}; + +// IDA Local Type ordinal 13332; PDB kind: class. +class idVirtualMaterial +{ +public: + idAtomicString materialName; + unsigned int materialChecksum; + unsigned int cpuVmtrTimeStamp; + int allocX; + int allocY; + int allocWidth; + int allocHeight; + int flags; + const idMaterial *material; + const struct idVmtrCPU *cpuVmtr; + idVec4 scaleAndBias; +}; diff --git a/source/engine/renderer/virtualtexture.h b/source/engine/renderer/virtualtexture.h new file mode 100644 index 0000000..89fe043 --- /dev/null +++ b/source/engine/renderer/virtualtexture.h @@ -0,0 +1,51 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\virtualtexture.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13641; PDB kind: class. +class __declspec(align(8)) idVirtualTexture +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13642. + virtual ~idVirtualTexture(); + virtual void FreeData(); + + pageFileHeader_t header; + idStrStatic<256> pageFilePath; + idStrStatic<256> baseName; + pageSource_t pageSource; + int layoutVersion; + idFile *pageFile; + idFile *pageFileInstalled; + int minMipLevelInstalled; + int VIRTUAL_PAGES_WIDE_LOG2; + int VIRTUAL_TEXELS_WIDE; + int VIRTUAL_MAPPING_PAGES_WIDE; + unsigned __int16 mipLevelPagesWide[16]; + idStrStatic<128> mapName; + idSeenBits dirtyPages; + idPhysicalPages *physicalPages; + texturePage_t *rootTexturePage; + idImage *pageTableImage; + bool enlargedPageTableAllocationFailed; + bool isDirectMapped; + int levelResidency[12]; + idSysMutex headerMutex; + bool pageFileIsLocal; + bool skipFlush; + pageCompression_t forcedPageCompression; +}; + +// IDA Local Type ordinal 18488; PDB kind: struct. +const struct virtualTextureInfo_t +{ + unsigned int numLevels; + unsigned int baseLevel; + unsigned int pagesWide; + unsigned __int16 physicalPagesPool; + unsigned __int16 priorityBias; +}; diff --git a/source/engine/renderer/virtualtexturepreloader.h b/source/engine/renderer/virtualtexturepreloader.h new file mode 100644 index 0000000..faeffe1 --- /dev/null +++ b/source/engine/renderer/virtualtexturepreloader.h @@ -0,0 +1,32 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\virtualtexturepreloader.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22774; PDB kind: class. +class __declspec(align(4)) idVirtualTexturePreloadThread : public idSysThread +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22775. + virtual ~idVirtualTexturePreloadThread(); + virtual int Run(); + + preloadCommand_t preloadCommands[8]; + preloadCommand_t *preloadCommandQueue[16]; + volatile int preloadCommandQueueStart; + volatile int preloadCommandQueueEnd; + int currentHandle; + volatile bool endCalled; + volatile bool cancelToTerminate; +}; + +// IDA Local Type ordinal 22776; PDB kind: class. +class __declspec(align(4)) idVirtualTexturePreloader +{ +public: + idVirtualTexturePreloadThread *thread; + bool running; +}; diff --git a/source/engine/renderer/virtualtexturesystem.h b/source/engine/renderer/virtualtexturesystem.h new file mode 100644 index 0000000..aa85ee2 --- /dev/null +++ b/source/engine/renderer/virtualtexturesystem.h @@ -0,0 +1,60 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\renderer\virtualtexturesystem.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 18496; PDB kind: class. +class __declspec(align(8)) idVirtualTextureSystem +{ +public: + char vmtrPath[256]; + char vmtrName[256]; + idList vmtrs; + idHashIndex vmtrHash; + idVirtualTexture vts[16]; + idVirtualTexture *vmtrMega; + idVirtualTexture *vtPtrs[16]; + idList cachedPagesFiles; + int numReferencedVirtualTextures; + char referencedVTPath[100][256]; + char referencedVTName[100][32]; + idPhysicalPages physicalPagesPool[4]; + bool mapHasSpecularPages; + bool mapHasDiffuseOnlyPages; + bool mapHasDiffuseOnly2Pages; + char containerPath[256]; + void *feedbackBuffer; + int feedbackBufferPitch; + idPixelPackBuffer *feedbackBufferObject; + idRenderDestination *renderDestFeedback[3]; + idImage *feedbackVisualize; + idImage *feedbackStreaming; + float mipLevelMSE; + int feedbackFrameNum; + bool flushNextFeedback; + int pageUploadCount; + int pageTranscodeCount; + int emptyCacheTime; + vmtrBatch_t vmtrBatchBuild; + idBitBlockAllocator *bitBlock; + analyzeParms_t analyzeParms; + virtualTextureInfo_t *vtInfo; + unsigned int currentPageIndices; + pageIndices_t *pageIndices[2]; + unsigned __int8 *explicitPages[2]; + int numExplicitPages[2]; + idParallelJobList *analyzeJobList; + transcodeJobList_t transcodeJobList[2]; + int currentTranscodeJobList; + volatile bool cancelToTerminate; + idSysMutex metricMutex; + idGaugeMetric vmtrTotalPagesMetric; + idGaugeMetric vmtrBiasMetric; + idGaugeMetric specTotalPagesMetric; + idGaugeMetric specBiasMetric; + idGaugeMetric diffuseTotalPagesMetric; + idGaugeMetric diffuseBiasMetric; +}; diff --git a/source/engine/sound/files/wavefile.h b/source/engine/sound/files/wavefile.h new file mode 100644 index 0000000..8161cc8 --- /dev/null +++ b/source/engine/sound/files/wavefile.h @@ -0,0 +1,176 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\sound\files\wavefile.h +// Recovered logical types: 17 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2937; PDB kind: unknown. +enum idWaveFile:: : __int32 +{ + CHANNEL_INDEX_FRONT_LEFT = 0x0, + CHANNEL_INDEX_FRONT_RIGHT = 0x1, + CHANNEL_INDEX_FRONT_CENTER = 0x2, + CHANNEL_INDEX_LOW_FREQUENCY = 0x3, + CHANNEL_INDEX_BACK_LEFT = 0x4, + CHANNEL_INDEX_BACK_RIGHT = 0x5, + CHANNEL_INDEX_FRONT_LEFT_CENTER = 0x6, + CHANNEL_INDEX_FRONT_RIGHT_CENTER = 0x7, + CHANNEL_INDEX_BACK_CENTER = 0x8, + CHANNEL_INDEX_SIDE_LEFT = 0x9, + CHANNEL_INDEX_SIDE_RIGHT = 0xA, + CHANNEL_INDEX_MAX = 0xB, +}; + +// IDA Local Type ordinal 13497; PDB kind: struct. +struct idWaveFile::waveFmt_t::basic_t +{ + unsigned __int16 formatTag; + unsigned __int16 numChannels; + unsigned int samplesPerSec; + unsigned int avgBytesPerSec; + unsigned __int16 blockSize; + unsigned __int16 bitsPerSample; +}; + +// IDA Local Type ordinal 13498; PDB kind: struct. +struct idWaveFile::waveFmt_t::extra_t::extensible_t::guid_t +{ + unsigned int data1; + unsigned __int16 data2; + unsigned __int16 data3; + unsigned __int16 data4; + unsigned __int8 data5[6]; +}; + +// IDA Local Type ordinal 13499; PDB kind: struct. +struct __unaligned __declspec(align(2)) idWaveFile::waveFmt_t::extra_t::extensible_t +{ + unsigned __int16 validBitsPerSample; + unsigned int channelMask; + idWaveFile::waveFmt_t::extra_t::extensible_t::guid_t subFormat; +}; + +// IDA Local Type ordinal 13500; PDB kind: struct. +struct idWaveFile::waveFmt_t::extra_t::adpcm_t::adpcmcoef_t +{ + __int16 coef1; + __int16 coef2; +}; + +// IDA Local Type ordinal 13501; PDB kind: struct. +struct idWaveFile::waveFmt_t::extra_t::adpcm_t +{ + unsigned __int16 samplesPerBlock; + unsigned __int16 numCoef; + idWaveFile::waveFmt_t::extra_t::adpcm_t::adpcmcoef_t aCoef[7]; +}; + +// IDA Local Type ordinal 13502; PDB kind: struct. +struct __unaligned __declspec(align(2)) idWaveFile::waveFmt_t::extra_t::xma2_t +{ + unsigned __int16 numStreams; + unsigned int channelMask; + unsigned int samplesEncoded; + unsigned int bytesPerBlock; + unsigned int playBegin; + unsigned int playLength; + unsigned int loopBegin; + unsigned int loopLength; + unsigned __int8 loopCount; + unsigned __int8 encoderVersion; + unsigned __int16 blockCount; +}; + +// IDA Local Type ordinal 13503; PDB kind: union. +union idWaveFile::waveFmt_t::extra_t +{ + idWaveFile::waveFmt_t::extra_t::extensible_t extensible; + idWaveFile::waveFmt_t::extra_t::adpcm_t adpcm; + idWaveFile::waveFmt_t::extra_t::xma2_t xma2; +}; + +// IDA Local Type ordinal 13504; PDB kind: struct. +struct idWaveFile::waveFmt_t +{ + idWaveFile::waveFmt_t::basic_t basic; + unsigned __int16 extraSize; + idWaveFile::waveFmt_t::extra_t extra; +}; + +// IDA Local Type ordinal 21716; PDB kind: struct. +struct idWaveFile::chunk_t +{ + unsigned int id; + unsigned int size; + unsigned int offset; +}; + +// IDA Local Type ordinal 22471; PDB kind: class. +class idWaveFile +{ +public: + idFile *file; + idStaticList chunks; +}; + +// IDA Local Type ordinal 22472; PDB kind: struct. +struct idWaveFile::dataChunk_t +{ + unsigned int size; + void *data; +}; + +// IDA Local Type ordinal 22473; PDB kind: struct. +struct __declspec(align(4)) idWaveFile::formatChunk_t +{ + unsigned int size; + unsigned __int16 compressionCode; + unsigned __int16 numChannels; + unsigned int sampleRate; + unsigned int averageBytesPerSecond; + unsigned __int16 blockAlign; + unsigned __int16 bitsPerSample; + unsigned __int16 numExtraFormatByte; +}; + +// IDA Local Type ordinal 22474; PDB kind: struct. +struct idWaveFile::samplerChunk_t +{ + unsigned int manufacturer; + unsigned int product; + unsigned int samplePeriod; + unsigned int MIDIUnityNote; + unsigned int MIDIPitchFraction; + unsigned int SMPTEFormat; + unsigned int SMPTEOffset; + unsigned int numSampleLoops; + unsigned int extraSamplerData; +}; + +// IDA Local Type ordinal 22475; PDB kind: struct. +struct idWaveFile::sampleData_t +{ + unsigned int identifier; + unsigned int type; + unsigned int start; + unsigned int end; + unsigned int fraction; + unsigned int playCount; +}; + +// IDA Local Type ordinal 22766; PDB kind: struct. +struct idWaveFile::Open::__l23::header_t +{ + unsigned int id; + unsigned int size; + unsigned int format; +}; + +// IDA Local Type ordinal 22767; PDB kind: struct. +struct idWaveFile::Open::__l28::chuckHeader_t +{ + unsigned int id; + unsigned int size; +}; diff --git a/source/engine/sound/occlusion/flatsoundbsp.h b/source/engine/sound/occlusion/flatsoundbsp.h new file mode 100644 index 0000000..172122b --- /dev/null +++ b/source/engine/sound/occlusion/flatsoundbsp.h @@ -0,0 +1,26 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\sound\occlusion\flatsoundbsp.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13706; PDB kind: struct. +struct flatSoundBSP_t +{ + idPlane *planes; + idVec3 *vertices; + int *vertIndex; + sbspFace_t *faces; + int *faceIndex; + sbspArea_t *areas; + sbspNode_t *nodes; + int numPlanes; + int numVertices; + int numVertIndex; + int numFaces; + int numFaceIndex; + int numAreas; + int numNodes; +}; diff --git a/source/engine/sound/occlusion/soundocclusion.h b/source/engine/sound/occlusion/soundocclusion.h new file mode 100644 index 0000000..667f069 --- /dev/null +++ b/source/engine/sound/occlusion/soundocclusion.h @@ -0,0 +1,34 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\sound\occlusion\soundocclusion.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13727; PDB kind: struct. +struct soundOcclusionResult_t +{ + idVec3 virtualSoundOrigin; + float occludedDistance; + idVec3 *pathPoints; + int numPathPoints; + int maxPathPoints; + int valid; +}; + +// IDA Local Type ordinal 13728; PDB kind: struct. +struct soundOcclusionParms_t +{ + soundOcclusionResult_t result; + flatSoundBSP_t flatBSP; + int *listenerRoute; + int numAreas; + float *doors; + int numDoors; + int listenerAreaNum; + idVec3 listenerOrigin; + int soundAreaNum; + idVec3 soundOrigin; + float maxDistance; +}; diff --git a/source/engine/sound/occlusion/soundrouting.h b/source/engine/sound/occlusion/soundrouting.h new file mode 100644 index 0000000..940a180 --- /dev/null +++ b/source/engine/sound/occlusion/soundrouting.h @@ -0,0 +1,19 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\sound\occlusion\soundrouting.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13711; PDB kind: struct. +struct soundRoutingParms_t +{ + int *route; + flatSoundBSP_t flatBSP; + int numAreas; + int listenerAreaNum; + idVec3 listenerOrigin; + unsigned __int8 *temp; + int tempSize; +}; diff --git a/source/engine/sound/soundbspfile.h b/source/engine/sound/soundbspfile.h new file mode 100644 index 0000000..02db5b1 --- /dev/null +++ b/source/engine/sound/soundbspfile.h @@ -0,0 +1,23 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\sound\soundbspfile.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13707; PDB kind: class. +class idSoundBSPFile +{ +public: + idList planes; + idList vertices; + idList vertIndex; + idList faces; + idList faceIndex; + idList areas; + idList nodes; + int numEnvironments; + int numDoors; + flatSoundBSP_t flatBSP; +}; diff --git a/source/engine/sound/soundemitter.h b/source/engine/sound/soundemitter.h new file mode 100644 index 0000000..07765e7 --- /dev/null +++ b/source/engine/sound/soundemitter.h @@ -0,0 +1,223 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\sound\soundemitter.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13512; PDB kind: class. +class idSoundEmitter +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13515. + virtual int Index(); + virtual void Free(bool); + virtual void Reset(); + virtual void UpdateEmitter(const idVec3 *, const idMat3 *, const idVec3 *, int); + virtual int StartSound(soundChannel_t, const idSoundShader *, const soundShaderParms_t *); + virtual void ModifySound(soundChannel_t, const idSoundShader *, const soundShaderParms_t *); + virtual void StopSound(soundChannel_t); + virtual void SetVolume(soundChannel_t, float); + virtual void SetPitch(soundChannel_t, float); + virtual void FadeSound(soundChannel_t, float, float, float, bool); + virtual void FadePitch(soundChannel_t, float, float, float); + virtual bool IsCurrentlyPlaying(soundChannel_t); + virtual void SetVolumeAdjustment(float); + virtual void ClearVolumeAdjustment(); + virtual float GetVolumeAdjustment(); + virtual const idSoundShader *GetCurrentSoundShader(soundChannel_t); + virtual idSoundSample *GetCurrentSample(soundChannel_t); + virtual idTypesafeNumber *GetCurrentSampleTime(idTypesafeNumber *result, soundChannel_t); + virtual idTypesafeNumber *GetRemainingSampleTime(idTypesafeNumber *result, soundChannel_t); + virtual bool GetDebugInfo(int, soundDebugInfo_t *); + virtual void SetDebugName(const char *); + virtual const char *GetDebugName(); + virtual const idVec3 *GetPosition(); + virtual ~idSoundEmitter(); + +}; + +// IDA Local Type ordinal 19721; PDB kind: class. +class idWindEmitter : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19722. + virtual idTypeInfo *GetType(); + virtual ~idWindEmitter(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + const idSoundShader *sndBaseWind; + const idSoundShader *sndGustOverlay[3]; + int minGustDuration; + int maxGustDuration; + int gustCrossFadeTime; + float gustWeight; + float minWindVolume; + float maxWindVolume; + float minDistance; + float maxDistance; + float windStrengthStartVal; + float windStrengthEndVal; + float windAngle; + idEntityInfluenceTrail influence; + float fadeOut; + bool startOff; + bool cycleTrigger; + idInterpolateAccelDecelSine windStrength; + int currGustOverlayIdx; +}; diff --git a/source/engine/sound/soundemitter_local.h b/source/engine/sound/soundemitter_local.h new file mode 100644 index 0000000..d225072 --- /dev/null +++ b/source/engine/sound/soundemitter_local.h @@ -0,0 +1,56 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\sound\soundemitter_local.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13714; PDB kind: class. +class __declspec(align(4)) idSoundEmitterLocal : public idSoundEmitter +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13729. + virtual int Index(); + virtual void Free(bool); + virtual void Reset(); + virtual void UpdateEmitter(const idVec3 *, const idMat3 *, const idVec3 *, int); + virtual int StartSound(soundChannel_t, const idSoundShader *, const soundShaderParms_t *); + virtual void ModifySound(soundChannel_t, const idSoundShader *, const soundShaderParms_t *); + virtual void StopSound(soundChannel_t); + virtual void SetVolume(soundChannel_t, float); + virtual void SetPitch(soundChannel_t, float); + virtual void FadeSound(soundChannel_t, float, float, float, bool); + virtual void FadePitch(soundChannel_t, float, float, float); + virtual bool IsCurrentlyPlaying(soundChannel_t); + virtual void SetVolumeAdjustment(float); + virtual void ClearVolumeAdjustment(); + virtual float GetVolumeAdjustment(); + virtual const idSoundShader *GetCurrentSoundShader(soundChannel_t); + virtual idSoundSample *GetCurrentSample(soundChannel_t); + virtual idTypesafeNumber *GetCurrentSampleTime(idTypesafeNumber *result, soundChannel_t); + virtual idTypesafeNumber *GetRemainingSampleTime(idTypesafeNumber *result, soundChannel_t); + virtual bool GetDebugInfo(int, soundDebugInfo_t *); + virtual void SetDebugName(const char *); + virtual const char *GetDebugName(); + virtual const idVec3 *GetPosition(); + virtual ~idSoundEmitterLocal(); + + idSoundWorldLocal *soundWorld; + int index; + bool canFree; + float volumeAdjustment; + idStaticList channels; + int areaNum; + idVec3 origin; + idMat3 axis; + idVec3 velocity; + int emitterId; + float distance; + float occludedDistance; + idVec3 occludedDirection; + float occlusion; + soundOcclusionParms_t *occlusionParms; + const char *debugName; + bool occlusionValidLastUpdate; +}; diff --git a/source/engine/sound/soundshader.h b/source/engine/sound/soundshader.h new file mode 100644 index 0000000..397c894 --- /dev/null +++ b/source/engine/sound/soundshader.h @@ -0,0 +1,157 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\sound\soundshader.h +// Recovered logical types: 7 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1085; PDB kind: enum. +enum __bitmask soundShaderFlags_t : __int32 +{ + SSF_PRIVATE_SOUND = 0x1, + SSF_ANTI_PRIVATE_SOUND = 0x2, + SSF_NO_OCCLUSION = 0x4, + SSF_GLOBAL = 0x8, + SSF_OMNIDIRECTIONAL = 0x10, + SSF_FRONTDIRECTIONAL = 0x20, + SSF_REARDIRECTIONAL = 0x40, + SSF_ENVIRONMENTAL = 0x80, + SSF_CONEATTENUATION = 0x100, + SSF_LOOPING = 0x200, + SSF_PLAY_ONCE = 0x400, + SSF_SEQUENTIAL = 0x800, + SSF_NO_RANDOM_OFFSET = 0x1000, + SSF_AUTO_RESTART = 0x2000, + SSF_FLICKER = 0x4000, + SSF_NO_EFFECTS = 0x8000, + SSF_FINITE_SPEED_OF_SOUND = 0x10000, + SSF_DISTANCE_LOW_PASS = 0x20000, + SSF_LFE = 0x40000, + SSF_DISTANCE_BASED_STEREO = 0x80000, + SSF_RANDOM_LOOPING = 0x100000, + SSF_PASS_HDR = 0x200000, + SSF_BLOCK_ON_LOAD = 0x400000, + SSF_DOPPLER = 0x800000, + SSF_LOOP_FADE_IN = 0x1000000, + SSF_LOOP_FADE_OUT = 0x2000000, +}; + +// IDA Local Type ordinal 1087; PDB kind: enum. +enum soundShaderGroups_t : __int32 +{ + SSG_MASTER = 0x0, + SSG_UI = 0x1, + SSG_MUSIC_MENU = 0x2, + SSG_MUSIC_INGAME = 0x4, + SSG_SFX_GENERAL = 0x8, + SSG_AMB_CORE = 0x10, + SSG_AMB_SPOT = 0x20, + SSG_EXPLOSIONS = 0x40, + SSG_KEY_EVENTS = 0x80, + SSG_IMPACTS = 0x100, + SSG_RICO_BYS = 0x200, + SSG_MOVEMENT_AI = 0x400, + SSG_MOVEMENT_PL = 0x800, + SSG_VEH_AI = 0x1000, + SSG_VEH_PL = 0x2000, + SSG_VEH_COLLISIONS_AI = 0x4000, + SSG_VEH_COLLISIONS_PL = 0x8000, + SSG_WEAPONS_AI = 0x10000, + SSG_WEAPONS_PL = 0x20000, + SSG_SPECIAL_ENEMY_MOVEMENT = 0x40000, + SSG_SPECIAL_ENEMY_VOICE = 0x80000, + SSG_VO_PLAYER = 0x100000, + SSG_VO_EVENT = 0x200000, + SSG_VO_INGAME = 0x400000, + SSG_VO_RADIO = 0x800000, + SSG_VO_BATTLE = 0x1000000, +}; + +// IDA Local Type ordinal 13490; PDB kind: struct. +struct soundShaderParms_t::coneAttenuationVars_t +{ + float innerAngle; + float outerAngle; + float outerVolume; +}; + +// IDA Local Type ordinal 13491; PDB kind: struct. +struct soundShaderParms_t::distancesBasedVars_t +{ + float nearMinRange; + float farMaxRange; +}; + +// IDA Local Type ordinal 13493; PDB kind: struct. +struct soundShaderParms_t::maxPlayerVars_t +{ + int maxShaders; + soundMaxPlaybackType_t playbackType; +}; + +// IDA Local Type ordinal 13494; PDB kind: struct. +struct soundShaderParms_t +{ + float minDistance; + float maxDistance; + float distanceFactor; + float wetMinDistanceOffset; + float wetMaxDistanceOffset; + soundShaderParms_t::coneAttenuationVars_t coneAttenuation; + soundShaderParms_t::distancesBasedVars_t distanceBasedRanges; + randomValue_t volume; + float wetVolume; + randomValue_t pitch; + float loopFadeInDuration; + float loopFadeOutDuration; + float dopplerMultiplier; + float shakes; + float minShakeDistance; + float maxShakeDistance; + const idDeclTable *shakeFalloff; + soundShaderGroups_t groups; + soundChannel_t soundChannel; + soundShaderFlags_t soundShaderFlags; + float lowPassMinDistance; + float lowPassStrength; + float lfeVolume; + float centerChannel; + const idDeclTable *falloff; + const idDeclTable *wetFalloff; + float headroom; + soundShaderParms_t::maxPlayerVars_t maxPlay; + soundPriority_t priority; +}; + +// IDA Local Type ordinal 13510; PDB kind: class. +class idSoundShader : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13734. + virtual ~idSoundShader(); + 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(); + + soundShaderParms_t parms; + idList soundFiles; + idList entries; + const idSoundShader *preSound; + const idSoundShader *postSound; + const idSoundShader *remoteSound; + idSoundSample *nextSample; + idLinkList playingChannels; +}; diff --git a/source/engine/sound/soundsystem.h b/source/engine/sound/soundsystem.h new file mode 100644 index 0000000..4752a1f --- /dev/null +++ b/source/engine/sound/soundsystem.h @@ -0,0 +1,36 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\sound\soundsystem.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 18506; PDB kind: class. +class idSoundSystem +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18507. + virtual ~idSoundSystem(); + virtual void Init(); + virtual void Shutdown(); + virtual idSoundWorld *AllocSoundWorld(const char *, idRenderWorld *); + virtual void FreeSoundWorld(idSoundWorld *); + virtual void SetPlayingSoundWorld(idSoundWorld *); + virtual idSoundWorld *GetPlayingSoundWorld(); + virtual void SetEditorSoundWorld(idSoundWorld *); + virtual idSoundWorld *GetEditorSoundWorld(); + virtual void Render(bool); + virtual void WaitForSoundThread(); + virtual void MuteBackgroundMusic(bool); + virtual void SetMute(bool); + virtual bool IsMuted(); + virtual void OnReloadSound(const idDecl *); + virtual void StopAllSounds(); + virtual void InitStreamBuffers(); + virtual void FreeStreamBuffers(); + virtual void *GetIXAudio2(); + virtual int GetNumSpeakers(); + virtual int GetSpeakerMask(); + +}; diff --git a/source/engine/sound/soundsystem_local.h b/source/engine/sound/soundsystem_local.h new file mode 100644 index 0000000..9cd7f58 --- /dev/null +++ b/source/engine/sound/soundsystem_local.h @@ -0,0 +1,60 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\sound\soundsystem_local.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22685; PDB kind: struct. +struct idSoundSystemLocal::bufferContext_t +{ + idSoundVoice_XAudio2 *voice; + void *buffer; + unsigned int sampleRate; +}; + +// IDA Local Type ordinal 22692; PDB kind: class. +class idSoundSystemLocal : public idSoundSystem +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22693. + virtual ~idSoundSystemLocal(); + virtual void Init(); + virtual void Shutdown(); + virtual idSoundWorld *AllocSoundWorld(const char *, idRenderWorld *); + virtual void FreeSoundWorld(idSoundWorld *); + virtual void SetPlayingSoundWorld(idSoundWorld *); + virtual idSoundWorld *GetPlayingSoundWorld(); + virtual void SetEditorSoundWorld(idSoundWorld *); + virtual idSoundWorld *GetEditorSoundWorld(); + virtual void Render(bool); + virtual void WaitForSoundThread(); + virtual void MuteBackgroundMusic(bool); + virtual void SetMute(bool); + virtual bool IsMuted(); + virtual void OnReloadSound(const idDecl *); + virtual void StopAllSounds(); + virtual void InitStreamBuffers(); + virtual void FreeStreamBuffers(); + virtual void *GetIXAudio2(); + virtual int GetNumSpeakers(); + virtual int GetSpeakerMask(); + + idSysMutex streamBufferMutex; + int soundTime; + idSoundWorldLocal *editorSoundWorld; + idSoundWorldLocal *currentSoundWorld; + idStaticList soundWorlds; + idSoundHardware hardware; + idStaticList freeStreamBufferContexts; + idStaticList activeStreamBufferContexts; + idStaticList bufferContexts; + idRandom2 random; + bool muted; + bool musicMuted; + bool needsRestart; + bool soundThreadRunning; + idSoundThread *soundThread; + idParallelJobList *parallelJobList; +}; diff --git a/source/engine/sound/soundvoice.h b/source/engine/sound/soundvoice.h new file mode 100644 index 0000000..ed007af --- /dev/null +++ b/source/engine/sound/soundvoice.h @@ -0,0 +1,56 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\sound\soundvoice.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13731; PDB kind: class. +class idSoundVoice_Base +{ +public: + idMat3 invListenerAxis; + idMat3 axis; + idVec3 position; + idVec3 velocity; + float gain; + float dryGain; + float wetGain; + float gainLFE; + float centerChannel; + float pitch; + float innerRadius; + float occlusion; + unsigned int channelMask; + float innerSampleRangeSqr; + float outerSampleRangeSqr; + idList samples; +}; + +// IDA Local Type ordinal 13732; PDB kind: class. +class idSoundVoice_XAudio2 : public idSoundVoice_Base +{ +public: + IXAudio2SourceVoice *pSourceVoice; + idSoundSample_XAudio2 *sample; + pinnedCacheLines_t pins[3]; + int readPin; + bool paused; + unsigned __int16 formatTag; + unsigned __int16 numChannels; + unsigned int sourceVoiceRate; + unsigned int sampleRate; + unsigned __int16 bitsPerSample; + int currentStreamBlock; + volatile int currentStreamRemaining; + bool hasVUMeter; + bool hasReverb; + int startFlags; +}; + +// IDA Local Type ordinal 13733; PDB kind: class. +class idSoundVoice : public idSoundVoice_XAudio2 +{ +public: +}; diff --git a/source/engine/sound/soundworld.h b/source/engine/sound/soundworld.h new file mode 100644 index 0000000..a227069 --- /dev/null +++ b/source/engine/sound/soundworld.h @@ -0,0 +1,44 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\sound\soundworld.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13516; PDB kind: class. +class idSoundWorld +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13690. + virtual ~idSoundWorld(); + virtual void StopAllSounds(); + virtual idSoundEmitter *AllocSoundEmitter(); + virtual int NumEmitters(); + virtual idSoundEmitter *EmitterForIndex(int); + virtual void PlaceListener(const idVec3 *, const idMat3 *, const idVec3 *, const int); + virtual void SetNumListeners(int); + virtual int FindEnvironment(const idVec3 *); + virtual bool SetEnvironmentParams(int, const soundEnvironment_t *); + virtual bool GetEnvironmentParams(int, soundEnvironment_t *); + virtual void OverrideEnvironmentParams(const soundEnvironment_t *, int); + virtual void BlendEnvironmentParams(const soundEnvironment_t *, float, int); + virtual int FindDoor(const idVec3 *); + virtual void SetDoor(int, float); + virtual float CurrentShakeAmplitude(int); + virtual int PlayPositionedShaderDirectly(const idSoundShader *, const idVec3 *, const idMat3 *, float); + virtual int PlayGlobalShaderDirectly(const idSoundShader *, soundChannel_t, float); + virtual void Fade(soundShaderGroups_t, float, int); + virtual void Duck(const idDeclDuck *, int, int, int); + virtual void DuckBlend(const idDeclDuck *, float); + virtual void DrawDebug(idRenderWorld *); + virtual void SaveGame(idFile *); + virtual bool LoadGame(idFile *); + virtual void WriteToSnapshot(idSnapShot *, const idSnapShot *); + virtual void ReadFromSnapshot(idSnapShot *, const idSnapShot *); + virtual bool Trace(const idVec3 *, const idVec3 *); + virtual void Pause(); + virtual void UnPause(); + virtual int GetSoundTime(); + +}; diff --git a/source/engine/sound/soundworld_local.h b/source/engine/sound/soundworld_local.h new file mode 100644 index 0000000..c7a5567 --- /dev/null +++ b/source/engine/sound/soundworld_local.h @@ -0,0 +1,77 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\sound\soundworld_local.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13694; PDB kind: struct. +struct idSoundWorldLocal::idDuckLayer +{ + idArray fromVolumes; + const idDeclDuck *decl; + int startFadeStart; + int startFadeEnd; + int endFadeStart; + int endFadeEnd; + float blendAlpha; +}; + +// IDA Local Type ordinal 13723; PDB kind: class. +class __declspec(align(4)) idSoundWorldLocal : public idSoundWorld +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13724. + virtual ~idSoundWorldLocal(); + virtual void StopAllSounds(); + virtual idSoundEmitter *AllocSoundEmitter(); + virtual int NumEmitters(); + virtual idSoundEmitter *EmitterForIndex(int); + virtual void PlaceListener(const idVec3 *, const idMat3 *, const idVec3 *, const int); + virtual void SetNumListeners(int); + virtual int FindEnvironment(const idVec3 *); + virtual bool SetEnvironmentParams(int, const soundEnvironment_t *); + virtual bool GetEnvironmentParams(int, soundEnvironment_t *); + virtual void OverrideEnvironmentParams(const soundEnvironment_t *, int); + virtual void BlendEnvironmentParams(const soundEnvironment_t *, float, int); + virtual int FindDoor(const idVec3 *); + virtual void SetDoor(int, float); + virtual float CurrentShakeAmplitude(int); + virtual int PlayPositionedShaderDirectly(const idSoundShader *, const idVec3 *, const idMat3 *, float); + virtual int PlayGlobalShaderDirectly(const idSoundShader *, soundChannel_t, float); + virtual void Fade(soundShaderGroups_t, float, int); + virtual void Duck(const idDeclDuck *, int, int, int); + virtual void DuckBlend(const idDeclDuck *, float); + virtual void DrawDebug(idRenderWorld *); + virtual void SaveGame(idFile *); + virtual bool LoadGame(idFile *); + virtual void WriteToSnapshot(idSnapShot *, const idSnapShot *); + virtual void ReadFromSnapshot(idSnapShot *, const idSnapShot *); + virtual bool Trace(const idVec3 *, const idVec3 *); + virtual void Pause(); + virtual void UnPause(); + virtual int GetSoundTime(); + + idSoundFade volumeFade; + idArray groupFade; + idStaticList ducks; + idRenderWorld *renderWorld; + idSoundBSPFile sbspFile; + idList environments; + idList doors; + idArray listeners; + int listenerIndex; + int numListeners; + float currentCushionDB; + idList emitters; + idSoundEmitter *localSound; + idSoundEmitter *tinnitusEmitter; + idSoundEmitter *positionedEmitters[32]; + idBlockAlloc emitterAllocator; + idBlockAlloc channelAllocator; + idSoundFade pauseFade; + int pausedTime; + int accumulatedPauseTime; + bool isPaused; +}; diff --git a/source/engine/sound/xaudio2/xa2_soundhardware.h b/source/engine/sound/xaudio2/xa2_soundhardware.h new file mode 100644 index 0000000..c21eff0 --- /dev/null +++ b/source/engine/sound/xaudio2/xa2_soundhardware.h @@ -0,0 +1,32 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\sound\xaudio2\xa2_soundhardware.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22677; PDB kind: class. +class idSoundHardware_XAudio2 +{ +public: + IXAudio2 *pXAudio2; + IXAudio2MasteringVoice *pMasterVoice; + IXAudio2SubmixVoice *pSubmixVoice; + idSoundEngineCallback soundEngineCallback; + float dryGain; + int outputChannels; + int channelMask; + idDebugGraph *vuMeterRMS; + idDebugGraph *vuMeterPeak; + int vuMeterPeakTimes[8]; + idStaticList voices; + idStaticList zombieVoices; + idStaticList freeVoices; +}; + +// IDA Local Type ordinal 22684; PDB kind: class. +class idSoundHardware : public idSoundHardware_XAudio2 +{ +public: +}; diff --git a/source/engine/sound/xaudio2/xa2_soundsample.h b/source/engine/sound/xaudio2/xa2_soundsample.h new file mode 100644 index 0000000..2b353ab --- /dev/null +++ b/source/engine/sound/xaudio2/xa2_soundsample.h @@ -0,0 +1,22 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\sound\xaudio2\xa2_soundsample.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13507; PDB kind: class. +class idSoundSample : public idSoundSample_XAudio2 +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13508. + virtual ~idSoundSample(); + virtual void LoadResource(); + virtual bool ReloadIfStale(); + virtual void WriteResourceFile(); + virtual idResourceList *GetResourceList(); + virtual void Print(); + virtual void List(); + +}; diff --git a/source/engine/sys/sys_crashhandler.h b/source/engine/sys/sys_crashhandler.h new file mode 100644 index 0000000..bf9b7db --- /dev/null +++ b/source/engine/sys/sys_crashhandler.h @@ -0,0 +1,15 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\sys\sys_crashhandler.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19086; PDB kind: class. +class idCrashHandler +{ +public: + bool defaultMessage; + int (__fastcall *originalHandler)(_EXCEPTION_POINTERS *); +}; diff --git a/source/engine/sys/sys_dedicated_server_search.h b/source/engine/sys/sys_dedicated_server_search.h new file mode 100644 index 0000000..f601fce --- /dev/null +++ b/source/engine/sys/sys_dedicated_server_search.h @@ -0,0 +1,23 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\sys\sys_dedicated_server_search.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17414; PDB kind: struct. +struct idDedicatedServerSearch::serverInfoDedicated_t +{ + lobbyAddress_t addr; + serverInfo_t serverInfo; + idList connectedPlayers; +}; + +// IDA Local Type ordinal 17416; PDB kind: class. +class idDedicatedServerSearch +{ +public: + idList list; + idCallback *callback; +}; diff --git a/source/engine/sys/sys_lobby.h b/source/engine/sys/sys_lobby.h new file mode 100644 index 0000000..2ebe96a --- /dev/null +++ b/source/engine/sys/sys_lobby.h @@ -0,0 +1,318 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\sys\sys_lobby.h +// Recovered logical types: 17 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2966; PDB kind: enum. +enum idLobby::migrationState_t : __int32 +{ + MIGRATE_NONE = 0x0, + MIGRATE_PICKING_HOST = 0x1, + MIGRATE_BECOMING_HOST = 0x2, +}; + +// IDA Local Type ordinal 2968; PDB kind: enum. +enum idLobby::lobbyType_t : __int32 +{ + TYPE_PARTY = 0x0, + TYPE_GAME = 0x1, + TYPE_GAME_STATE = 0x2, + TYPE_INVALID = 0xFF, +}; + +// IDA Local Type ordinal 2969; PDB kind: enum. +enum idLobby::lobbyState_t : __int32 +{ + STATE_CREATE_LOBBY_BACKEND = 0x1, + STATE_SEARCHING = 0x2, + STATE_OBTAINING_ADDRESS = 0x3, + STATE_CONNECT_HELLO_WAIT = 0x4, + STATE_FINALIZE_CONNECT = 0x5, + NUM_STATES = 0x7, +}; + +// IDA Local Type ordinal 2970; PDB kind: enum. +enum idLobby::reliablePlayerToPlayer_t : __int32 +{ + RELIABLE_PLAYER_TO_PLAYER_GAME_DATA = 0x0, + NUM_RELIABLE_PLAYER_TO_PLAYER = 0x1, +}; + +// IDA Local Type ordinal 2971; PDB kind: enum. +enum idLobby::reliableType_t : __int32 +{ + RELIABLE_HELLO = 0x0, + RELIABLE_USER_CONNECTED = 0x1, + RELIABLE_USER_DISCONNECTED = 0x2, + RELIABLE_START_LOADING = 0x3, + RELIABLE_LOADING_DONE = 0x4, + RELIABLE_IN_GAME = 0x5, + RELIABLE_SNAPSHOT_ACK = 0x6, + RELIABLE_RESOURCE_ACK = 0x7, + RELIABLE_CONNECT_AND_MOVE_TO_LOBBY = 0x8, + RELIABLE_PARTY_CONNECT_OK = 0x9, + RELIABLE_PARTY_LEAVE_GAME_LOBBY = 0xA, + RELIABLE_MATCH_PARMS = 0xB, + RELIABLE_UPDATE_MATCH_PARMS = 0xC, + RELIABLE_USER_CONNECT_REQUEST = 0xD, + RELIABLE_USER_CONNECT_DENIED = 0xE, + RELIABLE_USER_DISCONNECT_REQUEST = 0xF, + RELIABLE_KICK_PLAYER = 0x10, + RELIABLE_MATCHFINISHED = 0x11, + RELIABLE_ENDMATCH = 0x12, + RELIABLE_ENDMATCH_PREMATURE = 0x13, + RELIABLE_SESSION_USER_MODIFIED = 0x14, + RELIABLE_UPDATE_SESSION_USER = 0x15, + RELIABLE_HEADSET_STATE = 0x16, + RELIABLE_VOICE_STATE = 0x17, + RELIABLE_PING = 0x18, + RELIABLE_PING_VALUES = 0x19, + RELIABLE_BANDWIDTH_VALUES = 0x1A, + RELIABLE_ARBITRATE = 0x1B, + RELIABLE_ARBITRATE_OK = 0x1C, + RELIABLE_POST_STATS = 0x1D, + RELIABLE_MIGRATION_GAME_DATA = 0x1E, + RELIABLE_START_MATCH_GAME_LOBBY_HOST = 0x1F, + RELIABLE_DUMMY_MSG = 0x20, + RELIABLE_PLAYER_TO_PLAYER_BEGIN = 0x21, + RELIABLE_PLAYER_TO_PLAYER_END = 0x22, + RELIABLE_GAME_DATA = 0x22, +}; + +// IDA Local Type ordinal 2972; PDB kind: enum. +enum idLobby::connectionState_t : __int32 +{ + CONNECTION_FREE = 0x0, + CONNECTION_CONNECTING = 0x1, + CONNECTION_ESTABLISHED = 0x2, +}; + +// IDA Local Type ordinal 2976; PDB kind: enum. +enum idLobby::failedReason_t : __int32 +{ + FAILED_UNKNOWN = 0x0, + FAILED_CONNECT_FAILED = 0x1, + FAILED_MIGRATION_CONNECT_FAILED = 0x2, +}; + +// IDA Local Type ordinal 2994; PDB kind: enum. +enum idLobby::DrawDebugNetworkHUD_ServerSnapshotMetrics::__l22::netDebugGraphs_t : __int32 +{ + GRAPH_SNAPSENT = 0x0, + GRAPH_OUTGOING = 0x1, + GRAPH_INCOMINGREPORTED = 0x2, + GRAPH_MAX = 0x3, +}; + +// IDA Local Type ordinal 22539; PDB kind: class. +class __declspec(align(8)) idLobby : public idLobbyBase +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22558. + virtual bool IsHost(); + virtual bool IsPeer(); + virtual bool HasActivePeers(); + virtual int GetNumLobbyUsers(); + virtual int GetNumActiveLobbyUsers(); + virtual lobbyUserID_t *GetLobbyUserIdByOrdinal(lobbyUserID_t *result, int); + virtual int GetLobbyUserIndexFromLobbyUserID(lobbyUserID_t); + virtual void SendReliable(int, idBitMsg *, bool, unsigned __int8); + virtual void SendReliableToLobbyUser(lobbyUserID_t, int, idBitMsg *); + virtual void SendReliableToHost(int, idBitMsg *); + virtual const char *GetLobbyUserName(lobbyUserID_t); + virtual void KickLobbyUser(lobbyUserID_t); + virtual bool IsLobbyUserValid(lobbyUserID_t); + virtual bool IsLobbyUserLoaded(lobbyUserID_t); + virtual bool LobbyUserHasFirstFullSnap(lobbyUserID_t); + virtual void EnableSnapshotsForLobbyUser(lobbyUserID_t); + virtual int GetLobbyUserEmblemOrdinal(lobbyUserID_t); + virtual int GetLobbyUserLevel(lobbyUserID_t); + virtual int GetLobbyUserQoS(lobbyUserID_t); + virtual int GetLobbyUserTeam(lobbyUserID_t); + virtual bool SetLobbyUserTeam(lobbyUserID_t, int); + virtual int GetLobbyUserPartyToken(lobbyUserID_t); + virtual idPlayerProfile *GetProfileFromLobbyUser(lobbyUserID_t); + virtual idLocalUser *GetLocalUserFromLobbyUser(lobbyUserID_t); + virtual int GetNumLobbyUsersOnTeam(int); + virtual void SendLobbyUserUpdateToPeers(); + virtual int PeerIndexFromLobbyUser(lobbyUserID_t); + virtual lobbyUserID_t *AllocLobbyUserSlotForBot(lobbyUserID_t *result, const char *, void *); + virtual void *GetLobbyUserBotData(lobbyUserID_t); + virtual void RemoveBotFromLobbyUserList(lobbyUserID_t); + virtual bool GetLobbyUserIsBot(lobbyUserID_t); + virtual const char *GetHostUserName(); + virtual const idMatchParameters *GetMatchParms(); + virtual bool IsLobbyFull(); + virtual bool EnsureAllPeersHaveBaseState(); + virtual bool AllPeersInGame(); + virtual int GetNumConnectedPeers(); + virtual int GetNumConnectedPeersInGame(); + virtual int PeerIndexOnHost(); + virtual bool IsPeerDisconnected(int); + virtual bool AllPeersHaveStaleSnapObj(int); + virtual bool AllPeersHaveExpectedSnapObj(int); + virtual void RefreshSnapObj(int); + virtual void MarkSnapObjDeleted(int); + virtual void AddSnapObjTemplate(int, idBitMsg *); + virtual void DrawDebugNetworkHUD(idRenderModelGui *); + virtual void DrawDebugNetworkHUD2(idRenderModelGui *); + virtual void DrawDebugNetworkHUD_ServerSnapshotMetrics(idRenderModelGui *, bool); + virtual bool IsLobbyUserDisconnected(int); + + int lastPingValuesRecvTime; + int nextSendPingValuesTime; + int nextSendMigrationGameTime; + int nextSendMigrationGamePeer; + idLobby::lobbyType_t lobbyType; + idLobby::lobbyState_t state; + idLobby::failedReason_t failedReason; + int host; + int peerIndexOnHost; + lobbyAddress_t hostAddress; + bool isHost; + idLobbyBackend *lobbyBackend; + int helloStartTime; + int lastConnectRequest; + int connectionAttempts; + bool needToDisplayMigrateMsg; + gameDialogMessages_t migrationDlg; + unsigned __int8 migrateMsgFlags; + int migrateMsgGameType; + bool joiningMigratedGame; + int bandwidthChallengeEndTime; + int bandwidthChallengeStartTime; + bool bandwidthChallengeFinished; + int bandwidthChallengeNumGoodSeq; + int lastSnapBspHistoryUpdateSequence; + idSessionCallbacks *sessionCB; + idLobby::migrationInfo_t migrationInfo; + bool showHostLeftTheSession; + bool connectIsFromInvite; + idStaticList searchResults; + idStaticList userList; + idStaticList freeUsers; + idStaticList userPool; + idStaticList peers; + unsigned int partyToken; + idMatchParameters parms; + bool loaded; + bool respondToArbitrate; + bool everyoneArbitrated; + bool waitForPartyOk; + bool startLoadingFromHost; + bool haveSubmittedSnaps; + idSnapShot *localReadSS; + idStaticList snapDeltaAckQueue; +}; + +// IDA Local Type ordinal 22542; PDB kind: struct. +struct idLobby::migrationInvite_t +{ + lobbyAddress_t address; + int pingMs; + lobbyUserID_t userId; + int lastInviteTime; + int migrationGameData; +}; + +// IDA Local Type ordinal 22545; PDB kind: struct. +struct __declspec(align(4)) idLobby::migrationInfo_t::persistUntilGameEnds_t +{ + int ourGameData; + bool wasMigratedHost; + bool wasMigratedJoin; + bool wasMigratedGame; + bool hasRelaunchedMigratedGame; + unsigned __int8 gameData[32]; + unsigned __int8 gameDataUser[6][64]; + bool hasGameData; +}; + +// IDA Local Type ordinal 22546; PDB kind: struct. +struct idLobby::migrationInfo_t +{ + idLobby::migrationState_t state; + idStaticList invites; + int migrationStartTime; + int ourPingMs; + lobbyUserID_t ourUserId; + idLobby::migrationInfo_t::persistUntilGameEnds_t persistUntilGameEndsData; +}; + +// IDA Local Type ordinal 22552; PDB kind: struct. +struct idLobby::peer_t +{ + idLobby::connectionState_t connectionState; + bool loaded; + bool inGame; + int lastSnapTime; + float snapHz; + int lastProcTime; + int lastInBandProcTime; + int lastFragmentSendTime; + unsigned int networkChecksum; + int pauseSnapshots; + lobbyAddress_t address; + int numResources; + idPacketProcessor *packetProc; + idSnapshotProcessor *snapProc; + idGaugeMetric latencyMetric; + idStaticList debugGraphs; + int lastResourceTime; + int lastHeartBeat; + int nextPing; + int lastPingRtt; + bool needToSubmitPendingSnap; + int lastSnapJobTime; + int startResourceLoadTime; + int maxSnapQueueSize; + int throttledSnapRate; + int nextThrottleCheck; + int numSnapsSent; + float sentBpsHistory[32]; + int receivedBpsIndex; + float receivedBps; + float maxSnapBps; + float receivedThrottle; + int receivedThrottleTime; + int throttleSnapsForXSeconds; + int recoverPing; + int failedPingRecoveries; + int rightBeforeSnapsPing; + int bandwidthChallengeStartSendTime; + int bandwidthTestLastSendTime; + int bandwidthTestBytes; + int bandwidthSequenceNum; + bool bandwidthChallengeResults; + bool bandwidthChallengeSendComplete; + unsigned __int16 sessionID; +}; + +// IDA Local Type ordinal 22555; PDB kind: struct. +struct idLobby::snapDeltaAck_t +{ + int p; + int snapshotNumber; +}; + +// IDA Local Type ordinal 22580; PDB kind: struct. +struct idLobby::reliablePlayerToPlayerHeader_t +{ + int fromSessionUserIndex; + int toSessionUserIndex; +}; + +// IDA Local Type ordinal 22581; PDB kind: struct. +struct idLobby::pktPing_t +{ + int timestamp; +}; + +// IDA Local Type ordinal 22583; PDB kind: struct. +struct idLobby::pktPingValues_t +{ + idArray pings; +}; diff --git a/source/engine/sys/sys_lobby_backend_direct.h b/source/engine/sys/sys_lobby_backend_direct.h new file mode 100644 index 0000000..dc03579 --- /dev/null +++ b/source/engine/sys/sys_lobby_backend_direct.h @@ -0,0 +1,49 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\sys\sys_lobby_backend_direct.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22616; PDB kind: class. +class idLobbyBackendDirect : public idLobbyBackend +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22615. + virtual void StartHosting(const idMatchParameters *, float, idLobbyBackend::lobbyBackendType_t); + virtual void StartFinding(const idMatchParameters *, int, float); + virtual void JoinFromConnectInfo(const lobbyConnectInfo_t *); + virtual void GetSearchResults(idList *); + virtual lobbyConnectInfo_t *GetConnectInfo(lobbyConnectInfo_t *result); + virtual void FillMsgWithPostConnectInfo(idBitMsg *); + virtual void PostConnectFromMsg(idBitMsg *); + virtual bool IsOwnerOfConnectInfo(const lobbyConnectInfo_t *); + virtual void Shutdown(); + virtual void GetOwnerAddress(lobbyAddress_t *); + virtual bool IsHost(); + virtual void SetIsJoinable(bool); + virtual void Pump(); + virtual void UpdateMatchParms(const idMatchParameters *); + virtual void UpdateLobbySkill(float); + virtual void SetInGame(bool); + virtual idLobbyBackend::lobbyBackendState_t GetState(); + virtual bool IsLocal(); + virtual bool IsOnline(); + virtual bool StartArbitration(); + virtual void Arbitrate(); + virtual void VerifyArbitration(); + virtual bool UserArbitrated(lobbyUser_t *); + virtual void RegisterUser(lobbyUser_t *, bool); + virtual void UnregisterUser(lobbyUser_t *, bool); + virtual void StartSession(); + virtual void EndSession(); + virtual bool IsSessionStarted(); + virtual void FlushStats(); + virtual void BecomeHost(int); + virtual void RegisterAddress(lobbyAddress_t *); + virtual void FinishBecomeHost(); + + idLobbyBackend::lobbyBackendState_t state; + netadr_t address; +}; diff --git a/source/engine/sys/sys_local.h b/source/engine/sys/sys_local.h new file mode 100644 index 0000000..735f9b2 --- /dev/null +++ b/source/engine/sys/sys_local.h @@ -0,0 +1,45 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\sys\sys_local.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22635; PDB kind: class. +class idSysLocal : public idSys +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22636. + virtual ~idSysLocal(); + virtual __int64 GetClockTicks(); + virtual __int64 ClockTicksPerSecond(); + virtual cpuid_t GetProcessorId(); + virtual const char *GetProcessorString(); + virtual const char *FPU_GetState(); + virtual bool FPU_StackIsEmpty(); + virtual void FPU_SetFTZ(bool); + virtual void FPU_SetDAZ(bool); + virtual void FPU_EnableExceptions(int); + virtual unsigned int DLL_Load(const char *); + virtual void *DLL_GetProcAddress(unsigned int, const char *); + virtual void DLL_Unload(unsigned int); + virtual void DLL_GetFileName(const char *, char *, int); + virtual void OpenURL(const char *, bool); + virtual void StartProcess(const char *, bool); + virtual const char *GetClipboardData(); + virtual void SetClipboardData(const char *); + virtual int Milliseconds(); + virtual unsigned int VblCount(); + virtual void PrintStackTrace(); + virtual idJoystick *Joystick(); + virtual idKeyboard *Keyboard(); + virtual idMouse *Mouse(); + virtual const char *GetOSUserName(); + virtual const char *GetMachineName(); + virtual void QueueEvent(sysEventType_t, int, int, int, void *, int); + virtual void GenerateEvents(); + virtual sysEvent_t *GetEvent(sysEvent_t *result); + virtual void ClearEvents(); + +}; diff --git a/source/engine/sys/sys_profile.h b/source/engine/sys/sys_profile.h new file mode 100644 index 0000000..ece97b2 --- /dev/null +++ b/source/engine/sys/sys_profile.h @@ -0,0 +1,19 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\sys\sys_profile.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22941; PDB kind: class. +class idProfile +{ +public: +}; + +// IDA Local Type ordinal 23759; PDB kind: struct. +struct profile_t +{ + timings_t timings[5]; +}; diff --git a/source/engine/sys/sys_server_query.h b/source/engine/sys/sys_server_query.h new file mode 100644 index 0000000..4fccc19 --- /dev/null +++ b/source/engine/sys/sys_server_query.h @@ -0,0 +1,25 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\sys\sys_server_query.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22586; PDB kind: struct. +struct idServerQuery::serverQueryInfo_t +{ + lobbyConnectInfo_t connectInfo; + lobbyAddress_t addr; + int lastAttemptTime; + int attempts; + bool acked; + serverInfo_t serverInfo; +}; + +// IDA Local Type ordinal 22589; PDB kind: class. +class idServerQuery +{ +public: + idStaticList servers; +}; diff --git a/source/engine/sys/sys_session_local.h b/source/engine/sys/sys_session_local.h new file mode 100644 index 0000000..7ccd42f --- /dev/null +++ b/source/engine/sys/sys_session_local.h @@ -0,0 +1,493 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\sys\sys_session_local.h +// Recovered logical types: 13 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2965; PDB kind: enum. +enum idSessionLocal::state_t : __int32 +{ + STATE_PRESS_START = 0x0, + STATE_PARTY_LOBBY_HOST = 0x2, + STATE_PARTY_LOBBY_PEER = 0x3, + STATE_GAME_LOBBY_HOST = 0x4, + STATE_GAME_LOBBY_PEER = 0x5, + STATE_GAME_STATE_LOBBY_HOST = 0x6, + STATE_GAME_STATE_LOBBY_PEER = 0x7, + STATE_CREATE_AND_MOVE_TO_PARTY_LOBBY = 0x8, + STATE_CREATE_AND_MOVE_TO_GAME_LOBBY = 0x9, + STATE_CREATE_AND_MOVE_TO_GAME_STATE_LOBBY = 0xA, + STATE_FIND_OR_CREATE_MATCH = 0xB, + STATE_CONNECT_AND_MOVE_TO_PARTY = 0xC, + STATE_CONNECT_AND_MOVE_TO_GAME = 0xD, + STATE_CONNECT_AND_MOVE_TO_GAME_STATE = 0xE, + STATE_BUSY = 0xF, + STATE_LOADING = 0x10, + STATE_INGAME = 0x11, +}; + +// IDA Local Type ordinal 2980; PDB kind: enum. +enum idSessionLocal::connectType_t : __int32 +{ + CONNECT_NONE = 0x0, + CONNECT_DIRECT = 0x1, + CONNECT_FIND_OR_CREATE = 0x2, + CONNECT_JOIN_MATCH_AFTER_PARTY_CREATED = 0x3, +}; + +// IDA Local Type ordinal 2981; PDB kind: enum. +enum idSessionLocal::pendingInviteMode_t : __int32 +{ + PENDING_INVITE_NONE = 0x0, + PENDING_INVITE_WAITING = 0x1, + PENDING_SELF_INVITE_WAITING = 0x2, +}; + +// IDA Local Type ordinal 22538; PDB kind: class. +class __declspec(align(4)) idSessionLocal : public idSession +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22575. + virtual ~idSessionLocal(); + virtual void Initialize(); + virtual void Shutdown(); + virtual void InitializeSoundRelatedSystems(); + virtual void ShutdownSoundRelatedSystems(); + virtual void CreatePartyLobby(const idMatchParameters *); + virtual void FindOrCreateMatch(const idMatchParameters *, int); + virtual void CreateMatch(const idMatchParameters *); + virtual void CreateGameStateLobby(const idMatchParameters *); + virtual void UpdateMatchParms(const idMatchParameters *); + virtual void UpdatePartyParms(const idMatchParameters *); + virtual void StartMatch(); + virtual void EndMatch(bool); + virtual void MatchFinished(); + virtual void QuitMatch(); + virtual void QuitMatchToTitle(); + virtual void SetSessionOption(idSession::sessionOption_t); + virtual void ClearSessionOption(idSession::sessionOption_t); + virtual idSession::sessionState_t GetBackState(); + virtual void Cancel(); + virtual void MoveToPressStart(); + virtual void FinishDisconnect(); + virtual void LoadingFinished(); + virtual bool IsCurrentLobbyMigrating(); + virtual bool IsLosingConnectionToHost(); + virtual bool WasMigrationGame(); + virtual bool ShouldRelaunchMigrationGame(); + virtual bool WasGameLobbyCoalesced(); + virtual bool GetMigrationGameData(idBitMsg *, bool); + virtual bool GetMigrationGameDataUser(lobbyUserID_t, idBitMsg *, bool); + virtual bool GetMatchParamUpdate(int *, int *); + virtual void Pump(); + virtual void ProcessSnapAckQueue(); + virtual void InviteFriends(); + virtual void InviteParty(); + virtual void ShowPartySessions(); + virtual bool IsPlatformPartyInLobby(); + virtual idLobbyBase *GetPartyLobbyBase(); + virtual idLobbyBase *GetGameLobbyBase(); + virtual idLobbyBase *GetActingGameStateLobbyBase(); + virtual idLobbyBase *GetActivePlatformLobbyBase(); + virtual idLobbyBase *GetLobbyFromLobbyUserID(lobbyUserID_t); + virtual void SendLocalSessionUsersToPeers(); + virtual idPlayerProfile *GetProfileFromMasterLocalUser(); + virtual bool ProcessInputEvent(const sysEvent_t *); + virtual float GetUpstreamDropRate(); + virtual float GetUpstreamQueueRate(); + virtual int GetQueuedBytes(); + virtual int GetLoadingID(); + virtual bool IsAboutToLoad(); + virtual const char *GetLocalUserName(int); + virtual idSession::sessionState_t GetState(); + virtual const char *GetStateString(); + virtual const char *GetStateString_2(idSession::sessionState_t); + virtual int NumServers(); + virtual void ListServers(const idCallback *); + virtual void CancelListServers(); + virtual void ConnectToServer(int); + virtual const serverInfo_t *ServerInfo(int); + virtual const idList *ServerPlayerList(int); + virtual void ShowServerGamerCardUI(int); + virtual void ShowOnlineSignin(); + virtual void DropClient(int, int); + virtual void JoinAfterSwap(void *); + virtual void EnumerateDownloadableContent(); + virtual int GetNumContentPackages(); + virtual int GetContentPackageID(int); + virtual const char *GetContentPackagePath(int); + virtual int GetContentPackageIndexForID(int); + virtual void ShowSystemMarketplaceUI(); + virtual bool GetSystemMarketplaceHasNewContent(); + virtual void SetSystemMarketplaceHasNewContent(bool); + virtual bool GetTitleStorageFloat(const char *, float, float *); + virtual float GetTitleStorageFloat_2(const char *, float); + virtual bool GetTitleStorageInt(const char *, int, int *); + virtual int GetTitleStorageInt_2(const char *, int); + virtual bool GetTitleStorageBool(const char *, bool, bool *); + virtual bool GetTitleStorageBool_2(const char *, bool); + virtual bool GetTitleStorageString(const char *, const char *, const char **); + virtual const char *GetTitleStorageString_2(const char *, const char *); + virtual bool IsTitleStorageLoaded(); + virtual void LeaderboardUpload(lobbyUserID_t, const leaderboardDefinition_t *, const column_t *, const idFile_Memory *); + virtual void LeaderboardDownload(int, const leaderboardDefinition_t *, int, int, const idLeaderboardCallback *); + virtual void LeaderboardDownloadAttachment(int, const leaderboardDefinition_t *, __int64); + virtual void LeaderboardFlush(); + virtual void SetLobbyUserRelativeScore(lobbyUserID_t, int, int); + virtual int SaveGameSync(const char *, const idStaticList *, const idSaveGameDetails *); + virtual int SaveGameAsync(const char *, const idStaticList *, const idSaveGameDetails *); + virtual int LoadGameSync(const char *, idStaticList *); + virtual int EnumerateSaveGamesSync(); + virtual int EnumerateSaveGamesAsync(); + virtual int DeleteSaveGameSync(const char *); + virtual int DeleteSaveGameAsync(const char *); + virtual bool IsSaveGameCompletedFromHandle(const int *); + virtual void CancelSaveGameWithHandle(const int *); + virtual bool IsEnumerating(); + virtual int GetEnumerationHandle(); + virtual const idStaticList *GetEnumeratedSavegames(); + virtual void SetCurrentSaveSlot(const char *); + virtual const char *GetCurrentSaveSlot(); + virtual bool IsDLCAvailable(const char *); + virtual bool LoadGameCheckDiscNumber(idSaveLoadParms *); + virtual void ShowLobbyUserGamerCardUI(lobbyUserID_t); + virtual void UpdateRichPresence(); + virtual void SendUsercmds(idBitMsg *); + virtual void SendSnapshot(idSnapShot *); + virtual int GetInputRouting(int *); + virtual void UpdateSignInManager(); + virtual struct idDiscSwapper *GetDiscSwapper(); + virtual bool IsSystemUIShowing(); + virtual void SetSystemUIShowing(bool); + virtual voiceState_t GetLobbyUserVoiceState(lobbyUserID_t); + virtual voiceStateDisplay_t GetDisplayStateFromVoiceState(voiceState_t); + virtual void ToggleLobbyUserVoiceMute(lobbyUserID_t); + virtual void SetActiveChatGroup(int); + virtual void CheckVoicePrivileges(); + virtual bool StartOrContinueBandwidthChallenge(bool); + virtual void DebugSetPeerSnaprate(int, int); + virtual float GetIncomingByteRate(); + virtual void HandleBootableInvite(__int64); + virtual void ClearBootableInvite(); + virtual bool HasPendingBootableInvite(); + virtual void OnLocalUserSignin(idLocalUser *); + virtual void OnLocalUserSignout(idLocalUser *); + virtual void OnMasterLocalUserSignout(); + virtual void OnMasterLocalUserSignin(); + virtual void OnLocalUserProfileLoaded(idLocalUser *); + virtual void JoinMatch(const lobbyConnectInfo_t *, bool); + virtual bool ShouldShowMigratingDialog(); + virtual const char *GetPeerName(int); + virtual void PrePickNewHost(idLobby *, bool, bool); + virtual bool PreMigrateInvite(idLobby *); + virtual void UpdateMasterUserHeadsetState(); + virtual void PlatformPump(); + virtual bool IsSteamInitialized(); + virtual bool IsSteamStatsInitialized(); + virtual void ListServersCommon(); + virtual void HandleServerQueryRequest(lobbyAddress_t *, idBitMsg *, idLobby::lobbyType_t, int); + virtual void HandleServerQueryAck(lobbyAddress_t *, idBitMsg *); + virtual void UpdatePendingInvite(); + virtual idLobbyPort *GetPort(bool); + virtual idLobbyBackend *CreateLobbyBackend(const idMatchParameters *, float, idLobbyBackend::lobbyBackendType_t); + virtual idLobbyBackend *FindLobbyBackend(const idMatchParameters *, int, float, idLobbyBackend::lobbyBackendType_t); + virtual idLobbyBackend *JoinFromConnectInfo(const lobbyConnectInfo_t *, idLobbyBackend::lobbyBackendType_t); + virtual void DestroyLobbyBackend(idLobbyBackend *); + virtual void PumpLobbies(); + virtual bool GetLobbyAddressFromNetAddress(const netadr_t *, lobbyAddress_t *); + virtual bool GetNetAddressFromLobbyAddress(const lobbyAddress_t *, netadr_t *); + virtual void RecvLeaderboardStats360(idBitMsg *); + + idParallelJobList *snapshotJobList; + lzwCompressionData_t *lzwData; + unsigned __int8 *objMemory; + int storedPeer; + int storedMsgType; + bool initialized; + idSessionLocal::state_t localState; + unsigned int sessionOptions; + idSessionLocal::connectType_t connectType; + int connectTime; + lobbyConnectInfo_t connectAddress; + int fallbackGameMode; + idLobby partyLobby; + idLobby gameLobby; + idLobby gameStateLobby; + idLobbyStub stubLobby; + int currentID; + idVoiceChatMgr *voiceChat; + int lastVoiceSendtime; + bool hasShownVoiceRestrictionDialog; + idSessionLocal::pendingInviteMode_t pendingInviteMode; + int pendingInviteDevice; + lobbyConnectInfo_t pendingInviteConnectInfo; + bool isSysUIShowing; + idDict titleStorageVars; + bool titleStorageLoaded; + int showMigratingInfoStartTime; + int nextGameCoalesceTime; + bool gameLobbyWasCoalesced; + int numFullSnapsReceived; + bool flushedStats; + int loadingID; + std::auto_ptr processorSaveFiles; + std::auto_ptr processorLoadFiles; + std::auto_ptr processorDelete; + std::auto_ptr processorEnumerate; + idStr currentSaveSlot; + int enumerationHandle; + idStaticList downloadedContent; + bool marketplaceHasNewContent; + idBlockAlloc packetAllocator; + idQueue sendQueue; + idQueue recvQueue; + float upstreamDropRate; + int upstreamDropRateTime; + float upstreamQueueRate; + int upstreamQueueRateTime; + int queuedBytes; + int waitingOnGameStateMembersToLeaveTime; + int waitingOnGameStateMembersToJoinTime; + idSessionCallbacks *sessionCallbacks; + int offlineTransitionTimerStart; + bool droppedByHost; +}; + +// IDA Local Type ordinal 22565; PDB kind: struct. +struct idSessionLocal::contentData_t +{ + bool isMounted; + idStrStatic<128> displayName; + idStrStatic<256> packageFileName; + idStrStatic<256> rootPath; + int dlcID; + _XCONTENT_DATA contentData; +}; + +// IDA Local Type ordinal 22568; PDB kind: class. +class idSessionLocal::idQueuePacket +{ +public: + unsigned __int8 data[1200]; + lobbyAddress_t address; + int size; + int time; + bool dedicated; + idQueueNode queueNode; +}; + +// IDA Local Type ordinal 22590; PDB kind: class. +class idSessionLocal::idStateRecord : public idMetricRecord +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22591. + virtual ~idStateRecord(); + virtual void WriteHeader(idMetricFile *); + virtual void SerializeEntry(idMetricFile *); + + idStr state; +}; + +// IDA Local Type ordinal 22602; PDB kind: class. +class __declspec(align(8)) idSessionLocalXbox : public idSessionLocal +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22614. + virtual ~idSessionLocalXbox(); + virtual void Initialize(); + virtual void Shutdown(); + virtual void InitializeSoundRelatedSystems(); + virtual void ShutdownSoundRelatedSystems(); + virtual void CreatePartyLobby(const idMatchParameters *); + virtual void FindOrCreateMatch(const idMatchParameters *, int); + virtual void CreateMatch(const idMatchParameters *); + virtual void CreateGameStateLobby(const idMatchParameters *); + virtual void UpdateMatchParms(const idMatchParameters *); + virtual void UpdatePartyParms(const idMatchParameters *); + virtual void StartMatch(); + virtual void EndMatch(bool); + virtual void MatchFinished(); + virtual void QuitMatch(); + virtual void QuitMatchToTitle(); + virtual void SetSessionOption(idSession::sessionOption_t); + virtual void ClearSessionOption(idSession::sessionOption_t); + virtual idSession::sessionState_t GetBackState(); + virtual void Cancel(); + virtual void MoveToPressStart(); + virtual void FinishDisconnect(); + virtual void LoadingFinished(); + virtual bool IsCurrentLobbyMigrating(); + virtual bool IsLosingConnectionToHost(); + virtual bool WasMigrationGame(); + virtual bool ShouldRelaunchMigrationGame(); + virtual bool WasGameLobbyCoalesced(); + virtual bool GetMigrationGameData(idBitMsg *, bool); + virtual bool GetMigrationGameDataUser(lobbyUserID_t, idBitMsg *, bool); + virtual bool GetMatchParamUpdate(int *, int *); + virtual void Pump(); + virtual void ProcessSnapAckQueue(); + virtual void InviteFriends(); + virtual void InviteParty(); + virtual void ShowPartySessions(); + virtual bool IsPlatformPartyInLobby(); + virtual idLobbyBase *GetPartyLobbyBase(); + virtual idLobbyBase *GetGameLobbyBase(); + virtual idLobbyBase *GetActingGameStateLobbyBase(); + virtual idLobbyBase *GetActivePlatformLobbyBase(); + virtual idLobbyBase *GetLobbyFromLobbyUserID(lobbyUserID_t); + virtual void SendLocalSessionUsersToPeers(); + virtual idPlayerProfile *GetProfileFromMasterLocalUser(); + virtual bool ProcessInputEvent(const sysEvent_t *); + virtual float GetUpstreamDropRate(); + virtual float GetUpstreamQueueRate(); + virtual int GetQueuedBytes(); + virtual int GetLoadingID(); + virtual bool IsAboutToLoad(); + virtual const char *GetLocalUserName(int); + virtual idSession::sessionState_t GetState(); + virtual const char *GetStateString(); + virtual const char *GetStateString_2(idSession::sessionState_t); + virtual int NumServers(); + virtual void ListServers(const idCallback *); + virtual void CancelListServers(); + virtual void ConnectToServer(int); + virtual const serverInfo_t *ServerInfo(int); + virtual const idList *ServerPlayerList(int); + virtual void ShowServerGamerCardUI(int); + virtual void ShowOnlineSignin(); + virtual void DropClient(int, int); + virtual void JoinAfterSwap(void *); + virtual void EnumerateDownloadableContent(); + virtual int GetNumContentPackages(); + virtual int GetContentPackageID(int); + virtual const char *GetContentPackagePath(int); + virtual int GetContentPackageIndexForID(int); + virtual void ShowSystemMarketplaceUI(); + virtual bool GetSystemMarketplaceHasNewContent(); + virtual void SetSystemMarketplaceHasNewContent(bool); + virtual bool GetTitleStorageFloat(const char *, float, float *); + virtual float GetTitleStorageFloat_2(const char *, float); + virtual bool GetTitleStorageInt(const char *, int, int *); + virtual int GetTitleStorageInt_2(const char *, int); + virtual bool GetTitleStorageBool(const char *, bool, bool *); + virtual bool GetTitleStorageBool_2(const char *, bool); + virtual bool GetTitleStorageString(const char *, const char *, const char **); + virtual const char *GetTitleStorageString_2(const char *, const char *); + virtual bool IsTitleStorageLoaded(); + virtual void LeaderboardUpload(lobbyUserID_t, const leaderboardDefinition_t *, const column_t *, const idFile_Memory *); + virtual void LeaderboardDownload(int, const leaderboardDefinition_t *, int, int, const idLeaderboardCallback *); + virtual void LeaderboardDownloadAttachment(int, const leaderboardDefinition_t *, __int64); + virtual void LeaderboardFlush(); + virtual void SetLobbyUserRelativeScore(lobbyUserID_t, int, int); + virtual int SaveGameSync(const char *, const idStaticList *, const idSaveGameDetails *); + virtual int SaveGameAsync(const char *, const idStaticList *, const idSaveGameDetails *); + virtual int LoadGameSync(const char *, idStaticList *); + virtual int EnumerateSaveGamesSync(); + virtual int EnumerateSaveGamesAsync(); + virtual int DeleteSaveGameSync(const char *); + virtual int DeleteSaveGameAsync(const char *); + virtual bool IsSaveGameCompletedFromHandle(const int *); + virtual void CancelSaveGameWithHandle(const int *); + virtual bool IsEnumerating(); + virtual int GetEnumerationHandle(); + virtual const idStaticList *GetEnumeratedSavegames(); + virtual void SetCurrentSaveSlot(const char *); + virtual const char *GetCurrentSaveSlot(); + virtual bool IsDLCAvailable(const char *); + virtual bool LoadGameCheckDiscNumber(idSaveLoadParms *); + virtual void ShowLobbyUserGamerCardUI(lobbyUserID_t); + virtual void UpdateRichPresence(); + virtual void SendUsercmds(idBitMsg *); + virtual void SendSnapshot(idSnapShot *); + virtual int GetInputRouting(int *); + virtual void UpdateSignInManager(); + virtual struct idDiscSwapper *GetDiscSwapper(); + virtual bool IsSystemUIShowing(); + virtual void SetSystemUIShowing(bool); + virtual voiceState_t GetLobbyUserVoiceState(lobbyUserID_t); + virtual voiceStateDisplay_t GetDisplayStateFromVoiceState(voiceState_t); + virtual void ToggleLobbyUserVoiceMute(lobbyUserID_t); + virtual void SetActiveChatGroup(int); + virtual void CheckVoicePrivileges(); + virtual bool StartOrContinueBandwidthChallenge(bool); + virtual void DebugSetPeerSnaprate(int, int); + virtual float GetIncomingByteRate(); + virtual void HandleBootableInvite(__int64); + virtual void ClearBootableInvite(); + virtual bool HasPendingBootableInvite(); + virtual void OnLocalUserSignin(idLocalUser *); + virtual void OnLocalUserSignout(idLocalUser *); + virtual void OnMasterLocalUserSignout(); + virtual void OnMasterLocalUserSignin(); + virtual void OnLocalUserProfileLoaded(idLocalUser *); + virtual void JoinMatch(const lobbyConnectInfo_t *, bool); + virtual bool ShouldShowMigratingDialog(); + virtual const char *GetPeerName(int); + virtual void PrePickNewHost(idLobby *, bool, bool); + virtual bool PreMigrateInvite(idLobby *); + virtual void UpdateMasterUserHeadsetState(); + virtual void PlatformPump(); + virtual bool IsSteamInitialized(); + virtual bool IsSteamStatsInitialized(); + virtual void ListServersCommon(); + virtual void HandleServerQueryRequest(lobbyAddress_t *, idBitMsg *, idLobby::lobbyType_t, int); + virtual void HandleServerQueryAck(lobbyAddress_t *, idBitMsg *); + virtual void UpdatePendingInvite(); + virtual idLobbyPort *GetPort(bool); + virtual idLobbyBackend *CreateLobbyBackend(const idMatchParameters *, float, idLobbyBackend::lobbyBackendType_t); + virtual idLobbyBackend *FindLobbyBackend(const idMatchParameters *, int, float, idLobbyBackend::lobbyBackendType_t); + virtual idLobbyBackend *JoinFromConnectInfo(const lobbyConnectInfo_t *, idLobbyBackend::lobbyBackendType_t); + virtual void DestroyLobbyBackend(idLobbyBackend *); + virtual void PumpLobbies(); + virtual bool GetLobbyAddressFromNetAddress(const netadr_t *, lobbyAddress_t *); + virtual bool GetNetAddressFromLobbyAddress(const lobbyAddress_t *, netadr_t *); + virtual void RecvLeaderboardStats360(idBitMsg *); + virtual bool PreInviteDiscCheck(_XINVITE_INFO *); + virtual bool GetRequiredAchievementStorage(unsigned __int64 *); + + idLeaderboards leaderboards; + id360ServerFinder *serverFinder; + idList systemLinkServers; + idCallback *systemLinkFinderCB; + int startSystemLinkQuery; + idLobbyPort port; + idLobbyPort dedicatedPort; + idArray lobbyBackends; + idStaticList shutdownLobbies; + bool obtainedTitleAddr; + __unaligned __declspec(align(1)) XNADDR titleAddress; + unsigned __int64 machineId; + idLobbyToSessionCBLocal *lobbyToSessionCB; +}; + +// IDA Local Type ordinal 22605; PDB kind: struct. +struct idSessionLocalXbox::systemLinkServer_t +{ + _XSESSION_INFO sessionInfo; + serverInfo_t serverInfo; +}; + +// IDA Local Type ordinal 22661; PDB kind: struct. +struct idSessionLocal::LoadGameSync::__l3::local_t +{ + idSaveLoadParms *parms; + idStrStatic<64> slotName; +}; + +// IDA Local Type ordinal 22662; PDB kind: struct. +struct idSessionLocal::DeleteSaveGameSync::__l2::local_t +{ +}; + +// IDA Local Type ordinal 22663; PDB kind: struct. +struct idSessionLocal::SaveGameAsync::__l2::local_t +{ + idSaveLoadParms *parms; +}; + +// IDA Local Type ordinal 22664; PDB kind: struct. +struct idSessionLocal::EnumerateSaveGamesSync::__l2::local_t +{ +}; diff --git a/source/engine/sys/sys_signin.h b/source/engine/sys/sys_signin.h new file mode 100644 index 0000000..ae09ba8 --- /dev/null +++ b/source/engine/sys/sys_signin.h @@ -0,0 +1,14 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\sys\sys_signin.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 12255; PDB kind: class. +class idSysSignal +{ +public: + void *handle; +}; diff --git a/source/engine/sys/xenon/xen_friends_enum.h b/source/engine/sys/xenon/xen_friends_enum.h new file mode 100644 index 0000000..72f1a3c --- /dev/null +++ b/source/engine/sys/xenon/xen_friends_enum.h @@ -0,0 +1,20 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\sys\xenon\xen_friends_enum.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22504; PDB kind: class. +class idFriendsEnum : public OverlappedOperation +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22505. + virtual ~idFriendsEnum(); + virtual void OnCompleted(); + virtual void OnFailed(); + + void *resultsEnum; + unsigned __int8 *resultsBuffer; +}; diff --git a/source/engine/sys/xenon/xen_overlapped_operation.h b/source/engine/sys/xenon/xen_overlapped_operation.h new file mode 100644 index 0000000..79375ad --- /dev/null +++ b/source/engine/sys/xenon/xen_overlapped_operation.h @@ -0,0 +1,19 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\sys\xenon\xen_overlapped_operation.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22502; PDB kind: class. +class OverlappedOperation +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22503. + virtual ~OverlappedOperation(); + virtual void OnCompleted(); + virtual void OnFailed(); + + _XOVERLAPPED overlapped; +}; diff --git a/source/engine/sys/xenon/xen_server_finder.h b/source/engine/sys/xenon/xen_server_finder.h new file mode 100644 index 0000000..bca31f1 --- /dev/null +++ b/source/engine/sys/xenon/xen_server_finder.h @@ -0,0 +1,70 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\sys\xenon\xen_server_finder.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2985; PDB kind: enum. +enum id360FriendsServerFinder::finderState_t : __int32 +{ + STATE_IDLE = 0x0, + STATE_FINDING_FRIENDS = 0x1, + STATE_FINDING_SESSIONS = 0x2, + STATE_QUERY_SERVERS = 0x3, + STATE_SUCCESS = 0x4, + STATE_FAILED = 0x5, +}; + +// IDA Local Type ordinal 22603; PDB kind: class. +class id360ServerFinder +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22604. + virtual ~id360ServerFinder(); + virtual void FindServers(const idCallback *); + virtual int NumServers(); + virtual bool GetServerSessionInfo(int, _XSESSION_INFO *); + virtual void KeepServerSecurityAssociation(int); + virtual const serverInfo_t *GetServerInfo(int); + virtual unsigned __int64 GetFriendXuid(int); + virtual void Pump(); + + idCallback *callback; + idServerQuery serverQuery; + idLobby *partyLobby; + idLobby *gameLobby; +}; + +// IDA Local Type ordinal 22621; PDB kind: struct. +struct __declspec(align(4)) id360FriendsServerFinder::friendGameQuery_t +{ + char szGamertag[16]; + unsigned __int64 xuid; + serverInfo_t serverInfo; + XNKID sessionID; + _XSESSION_INFO sessionInfo; + bool acked; +}; + +// IDA Local Type ordinal 22624; PDB kind: class. +class __declspec(align(8)) id360FriendsServerFinder : public id360ServerFinder +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22625. + virtual ~id360FriendsServerFinder(); + virtual void FindServers(const idCallback *); + virtual int NumServers(); + virtual bool GetServerSessionInfo(int, _XSESSION_INFO *); + virtual void KeepServerSecurityAssociation(int); + virtual const serverInfo_t *GetServerInfo(int); + virtual unsigned __int64 GetFriendXuid(int); + virtual void Pump(); + + idFriendsEnum *friendsEnum; + idSessionFinder *sessionFinder; + idStaticList sessionIDs; + idStaticList friendGames; + id360FriendsServerFinder::finderState_t state; +}; diff --git a/source/engine/sys/xenon/xen_session_key_mgr.h b/source/engine/sys/xenon/xen_session_key_mgr.h new file mode 100644 index 0000000..32371e1 --- /dev/null +++ b/source/engine/sys/xenon/xen_session_key_mgr.h @@ -0,0 +1,23 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\sys\xenon\xen_session_key_mgr.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22631; PDB kind: struct. +struct idSessionKeyMgr::sessionKey_t +{ + int refCount; + XNKID sessionID; + XNKEY keyExchangeKey; + idLobbyBackend *lobbyOwner; +}; + +// IDA Local Type ordinal 22634; PDB kind: class. +class idSessionKeyMgr +{ +public: + idStaticList sessionKeys; +}; diff --git a/source/engine/test/regressionlocal.h b/source/engine/test/regressionlocal.h new file mode 100644 index 0000000..74900d5 --- /dev/null +++ b/source/engine/test/regressionlocal.h @@ -0,0 +1,42 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\test\regressionlocal.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 21753; PDB kind: class. +class idRegressionLocal : public idRegression +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21754. + virtual ~idRegressionLocal(); + virtual void MakeTest(const idCmdArgs *); + virtual void MakeTestLoadGame(const idCmdArgs *); + virtual void StopTest(); + virtual void PlayTest(const char *, bool); + virtual void NextTest(); + virtual void DisplayTextScreen(const char *, int); + virtual idTestReport *GetTestReport(); + virtual void SetName(const char *); + virtual const char *GetName(); + virtual void QueueEventString(const char *); + virtual bool ProcessQueuedEvents(); + virtual void SetTestInProgress(bool); + virtual bool GetTestInProgress(); + virtual void UpdateCurrentTestFile(const char *); + virtual void SetForceIgnoreNextTestCommands(bool); + + idList includedTests; + idList excludedTests; + idList testReports; + idList folderReports; + int currentTestReport; + idStr rootPath; + idStr regressionName; + bool testInProgress; + eventQueue_t eventQueue; + bool ignoreNextTest; + idXMLWriter xmlWriter; +}; diff --git a/source/engine/test/report.h b/source/engine/test/report.h new file mode 100644 index 0000000..0166f33 --- /dev/null +++ b/source/engine/test/report.h @@ -0,0 +1,981 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\engine\test\report.h +// Recovered logical types: 39 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 916; PDB kind: enum. +enum idreports::LogEvent_Severity : __int32 +{ + LogEvent_Severity_SEV_EMERGENCY = 0x50, + LogEvent_Severity_SEV_ALERT = 0x46, + LogEvent_Severity_SEV_CRITICAL = 0x3C, + LogEvent_Severity_SEV_ERROR = 0x32, + LogEvent_Severity_SEV_WARNING = 0x28, + LogEvent_Severity_SEV_NOTICE = 0x1E, + LogEvent_Severity_SEV_INFO = 0x14, + LogEvent_Severity_SEV_DEBUG = 0xA, + LogEvent_Severity_SEV_TRASH = 0x0, +}; + +// IDA Local Type ordinal 917; PDB kind: enum. +enum idreports::TargetPlatform : __int32 +{ + TARGET_WIN32 = 0x0, + TARGET_X64 = 0x1, + TARGET_XBOX360 = 0x2, + TARGET_PS3 = 0x3, + TARGET_DURANGO = 0x4, + TARGET_WIIU = 0x5, + TARGET_IPHONE = 0x6, + TARGET_OSX = 0x7, + TARGET_LINUX = 0x8, +}; + +// IDA Local Type ordinal 918; PDB kind: enum. +enum idreports::HeapType : __int32 +{ + UNKNOWN_HEAP = 0x0, + MAP_HEAP = 0x1, + SYSTEM_HEAP = 0x2, +}; + +// IDA Local Type ordinal 919; PDB kind: enum. +enum idreports::Xbox360ConsoleType : __int32 +{ + XBOX360_DEVELOPMENT_KIT = 0x0, + XBOX360_TEST_KIT = 0x1, + XBOX360_UNKNOWN_KIT = 0x2, +}; + +// IDA Local Type ordinal 1199; PDB kind: unknown. +enum idReportData:: : __int32 +{ + MAX_SEVERITY = 0x5, + MAX_DEVGROUP = 0x4, + MAX_REPRODUCED = 0x5, +}; + +// IDA Local Type ordinal 12565; PDB kind: class. +class idreports::Xbox360VersionInfo : public google::protobuf::MessageLite +{ +public: + // Recovered virtual interface; IDA vtable ordinal 12566. + virtual ~Xbox360VersionInfo(); + virtual std::string *GetTypeName(std::string *result); + virtual google::protobuf::MessageLite *New(); + virtual void Clear(); + virtual bool IsInitialized(); + virtual std::string *InitializationErrorString(std::string *result); + virtual void CheckTypeAndMergeFrom(const google::protobuf::MessageLite *); + virtual bool MergePartialFromCodedStream(google::protobuf::io::CodedInputStream *); + virtual int ByteSize(); + virtual void SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream *); + virtual unsigned __int8 *SerializeWithCachedSizesToArray(unsigned __int8 *); + virtual int GetCachedSize(); + + unsigned int major_; + unsigned int minor_; + unsigned int build_; + unsigned int qfe_; + int _cached_size_; + unsigned int _has_bits_[1]; +}; + +// IDA Local Type ordinal 12571; PDB kind: class. +class idreports::SPURegisterInfo : public google::protobuf::MessageLite +{ +public: + // Recovered virtual interface; IDA vtable ordinal 12572. + virtual ~SPURegisterInfo(); + virtual std::string *GetTypeName(std::string *result); + virtual google::protobuf::MessageLite *New(); + virtual void Clear(); + virtual bool IsInitialized(); + virtual std::string *InitializationErrorString(std::string *result); + virtual void CheckTypeAndMergeFrom(const google::protobuf::MessageLite *); + virtual bool MergePartialFromCodedStream(google::protobuf::io::CodedInputStream *); + virtual int ByteSize(); + virtual void SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream *); + virtual unsigned __int8 *SerializeWithCachedSizesToArray(unsigned __int8 *); + virtual int GetCachedSize(); + + google::protobuf::RepeatedPtrField gpr_; + google::protobuf::RepeatedPtrField fpscr_; + unsigned int npc_; + unsigned int srr0_; + unsigned __int64 spu_cfg_; + unsigned int spu_status_; + unsigned int mb_stat_; + google::protobuf::RepeatedField spu_mb_; + unsigned int ppu_mb_; + unsigned int decrementer_; + google::protobuf::RepeatedField mfc_cq_sr_; + int _cached_size_; + unsigned int _has_bits_[1]; +}; + +// IDA Local Type ordinal 12575; PDB kind: class. +class idreports::LogEvent : public google::protobuf::MessageLite +{ +public: + // Recovered virtual interface; IDA vtable ordinal 12576. + virtual ~LogEvent(); + virtual std::string *GetTypeName(std::string *result); + virtual google::protobuf::MessageLite *New(); + virtual void Clear(); + virtual bool IsInitialized(); + virtual std::string *InitializationErrorString(std::string *result); + virtual void CheckTypeAndMergeFrom(const google::protobuf::MessageLite *); + virtual bool MergePartialFromCodedStream(google::protobuf::io::CodedInputStream *); + virtual int ByteSize(); + virtual void SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream *); + virtual unsigned __int8 *SerializeWithCachedSizesToArray(unsigned __int8 *); + virtual int GetCachedSize(); + + std::string *timestamp_; + std::string *message_; + google::protobuf::RepeatedPtrField tags_; + std::string *data_; + int severity_; + int platform_; + std::string *datatype_; + google::protobuf::RepeatedPtrField externs_; + int _cached_size_; + unsigned int _has_bits_[1]; +}; + +// IDA Local Type ordinal 12577; PDB kind: class. +class idreports::PS3ExceptionInfo : public google::protobuf::MessageLite +{ +public: + // Recovered virtual interface; IDA vtable ordinal 12578. + virtual ~PS3ExceptionInfo(); + virtual std::string *GetTypeName(std::string *result); + virtual google::protobuf::MessageLite *New(); + virtual void Clear(); + virtual bool IsInitialized(); + virtual std::string *InitializationErrorString(std::string *result); + virtual void CheckTypeAndMergeFrom(const google::protobuf::MessageLite *); + virtual bool MergePartialFromCodedStream(google::protobuf::io::CodedInputStream *); + virtual int ByteSize(); + virtual void SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream *); + virtual unsigned __int8 *SerializeWithCachedSizesToArray(unsigned __int8 *); + virtual int GetCachedSize(); + + std::string *exceptionname_; + unsigned __int64 exceptioncode_; + unsigned __int64 dar_; + int _cached_size_; + unsigned int _has_bits_[1]; +}; + +// IDA Local Type ordinal 12579; PDB kind: struct. +struct idreports::StaticDescriptorInitializer_reports_2eproto +{ +}; + +// IDA Local Type ordinal 12580; PDB kind: class. +class idreports::Xbox360KitInfo : public google::protobuf::MessageLite +{ +public: + // Recovered virtual interface; IDA vtable ordinal 12581. + virtual ~Xbox360KitInfo(); + virtual std::string *GetTypeName(std::string *result); + virtual google::protobuf::MessageLite *New(); + virtual void Clear(); + virtual bool IsInitialized(); + virtual std::string *InitializationErrorString(std::string *result); + virtual void CheckTypeAndMergeFrom(const google::protobuf::MessageLite *); + virtual bool MergePartialFromCodedStream(google::protobuf::io::CodedInputStream *); + virtual int ByteSize(); + virtual void SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream *); + virtual unsigned __int8 *SerializeWithCachedSizesToArray(unsigned __int8 *); + virtual int GetCachedSize(); + + idreports::Xbox360VersionInfo *basekernelversion_; + idreports::Xbox360VersionInfo *kernelversion_; + int kittype_; + unsigned int systeminfoflags_; + idreports::Xbox360VersionInfo *xdkversion_; + std::string *consolename_; + int _cached_size_; + unsigned int _has_bits_[1]; +}; + +// IDA Local Type ordinal 12582; PDB kind: class. +class idreports::MemoryInfo : public google::protobuf::MessageLite +{ +public: + // Recovered virtual interface; IDA vtable ordinal 12583. + virtual ~MemoryInfo(); + virtual std::string *GetTypeName(std::string *result); + virtual google::protobuf::MessageLite *New(); + virtual void Clear(); + virtual bool IsInitialized(); + virtual std::string *InitializationErrorString(std::string *result); + virtual void CheckTypeAndMergeFrom(const google::protobuf::MessageLite *); + virtual bool MergePartialFromCodedStream(google::protobuf::io::CodedInputStream *); + virtual int ByteSize(); + virtual void SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream *); + virtual unsigned __int8 *SerializeWithCachedSizesToArray(unsigned __int8 *); + virtual int GetCachedSize(); + + unsigned int inuse_; + unsigned int physicalmb_; + unsigned int physicalfree_; + unsigned int pagingfile_; + unsigned int pagingfree_; + unsigned int useraddress_; + unsigned int userfree_; + int _cached_size_; + unsigned int _has_bits_[1]; +}; + +// IDA Local Type ordinal 12584; PDB kind: class. +class idreports::Attachment : public google::protobuf::MessageLite +{ +public: + // Recovered virtual interface; IDA vtable ordinal 12585. + virtual ~Attachment(); + virtual std::string *GetTypeName(std::string *result); + virtual google::protobuf::MessageLite *New(); + virtual void Clear(); + virtual bool IsInitialized(); + virtual std::string *InitializationErrorString(std::string *result); + virtual void CheckTypeAndMergeFrom(const google::protobuf::MessageLite *); + virtual bool MergePartialFromCodedStream(google::protobuf::io::CodedInputStream *); + virtual int ByteSize(); + virtual void SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream *); + virtual unsigned __int8 *SerializeWithCachedSizesToArray(unsigned __int8 *); + virtual int GetCachedSize(); + + std::string *attachment_; + std::string *filename_; + int _cached_size_; + unsigned int _has_bits_[1]; +}; + +// IDA Local Type ordinal 12586; PDB kind: class. +class idreports::ViewNoteReport : public google::protobuf::MessageLite +{ +public: + // Recovered virtual interface; IDA vtable ordinal 12587. + virtual ~ViewNoteReport(); + virtual std::string *GetTypeName(std::string *result); + virtual google::protobuf::MessageLite *New(); + virtual void Clear(); + virtual bool IsInitialized(); + virtual std::string *InitializationErrorString(std::string *result); + virtual void CheckTypeAndMergeFrom(const google::protobuf::MessageLite *); + virtual bool MergePartialFromCodedStream(google::protobuf::io::CodedInputStream *); + virtual int ByteSize(); + virtual void SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream *); + virtual unsigned __int8 *SerializeWithCachedSizesToArray(unsigned __int8 *); + virtual int GetCachedSize(); + + std::string *game_; + std::string *username_; + std::string *reportedby_; + std::string *platform_; + bool issingleplayer_; + int buildnumbermajor_; + std::string *timestamp_; + std::string *launchcommand_; + std::string *vtfilepath_; + std::string *vtfilepathvmtroverride_; + std::string *bugtitle_; + std::string *tasktype_; + std::string *reprosteps_; + std::string *details_; + std::string *severity_; + std::string *mappath_; + std::string *priority_; + idreports::Attachment *attachment_; + int buildnumberminor_; + int _cached_size_; + unsigned int _has_bits_[1]; +}; + +// IDA Local Type ordinal 12588; PDB kind: class. +class idreports::PS3VMRegionStats : public google::protobuf::MessageLite +{ +public: + // Recovered virtual interface; IDA vtable ordinal 12589. + virtual ~PS3VMRegionStats(); + virtual std::string *GetTypeName(std::string *result); + virtual google::protobuf::MessageLite *New(); + virtual void Clear(); + virtual bool IsInitialized(); + virtual std::string *InitializationErrorString(std::string *result); + virtual void CheckTypeAndMergeFrom(const google::protobuf::MessageLite *); + virtual bool MergePartialFromCodedStream(google::protobuf::io::CodedInputStream *); + virtual int ByteSize(); + virtual void SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream *); + virtual unsigned __int8 *SerializeWithCachedSizesToArray(unsigned __int8 *); + virtual int GetCachedSize(); + + std::string *regionname_; + int virtualsizeinbytes_; + int uncommittedpages_; + int physicalpages_; + int diskpages_; + int maxpages_; + int committedpages_; + int _cached_size_; + unsigned int _has_bits_[1]; +}; + +// IDA Local Type ordinal 12590; PDB kind: class. +class idreports::ExceptionInfo : public google::protobuf::MessageLite +{ +public: + // Recovered virtual interface; IDA vtable ordinal 12591. + virtual ~ExceptionInfo(); + virtual std::string *GetTypeName(std::string *result); + virtual google::protobuf::MessageLite *New(); + virtual void Clear(); + virtual bool IsInitialized(); + virtual std::string *InitializationErrorString(std::string *result); + virtual void CheckTypeAndMergeFrom(const google::protobuf::MessageLite *); + virtual bool MergePartialFromCodedStream(google::protobuf::io::CodedInputStream *); + virtual int ByteSize(); + virtual void SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream *); + virtual unsigned __int8 *SerializeWithCachedSizesToArray(unsigned __int8 *); + virtual int GetCachedSize(); + + std::string *expcode_; + std::string *expaddress_; + int expflags_; + int _cached_size_; + unsigned int _has_bits_[1]; +}; + +// IDA Local Type ordinal 12592; PDB kind: class. +class idreports::XenonRegisterInfo : public google::protobuf::MessageLite +{ +public: + // Recovered virtual interface; IDA vtable ordinal 12593. + virtual ~XenonRegisterInfo(); + virtual std::string *GetTypeName(std::string *result); + virtual google::protobuf::MessageLite *New(); + virtual void Clear(); + virtual bool IsInitialized(); + virtual std::string *InitializationErrorString(std::string *result); + virtual void CheckTypeAndMergeFrom(const google::protobuf::MessageLite *); + virtual bool MergePartialFromCodedStream(google::protobuf::io::CodedInputStream *); + virtual int ByteSize(); + virtual void SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream *); + virtual unsigned __int8 *SerializeWithCachedSizesToArray(unsigned __int8 *); + virtual int GetCachedSize(); + + std::string *msr_; + std::string *iar_; + std::string *lr_; + std::string *ctr_; + std::string *fpscr_; + google::protobuf::RepeatedPtrField fpr_; + std::string *cr_; + std::string *xer_; + google::protobuf::RepeatedPtrField gpr_; + std::string *vscr_; + google::protobuf::RepeatedPtrField vr_; + int _cached_size_; + unsigned int _has_bits_[1]; +}; + +// IDA Local Type ordinal 12594; PDB kind: class. +class idreports::XenonMemoryInfo : public google::protobuf::MessageLite +{ +public: + // Recovered virtual interface; IDA vtable ordinal 12595. + virtual ~XenonMemoryInfo(); + virtual std::string *GetTypeName(std::string *result); + virtual google::protobuf::MessageLite *New(); + virtual void Clear(); + virtual bool IsInitialized(); + virtual std::string *InitializationErrorString(std::string *result); + virtual void CheckTypeAndMergeFrom(const google::protobuf::MessageLite *); + virtual bool MergePartialFromCodedStream(google::protobuf::io::CodedInputStream *); + virtual int ByteSize(); + virtual void SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream *); + virtual unsigned __int8 *SerializeWithCachedSizesToArray(unsigned __int8 *); + virtual int GetCachedSize(); + + unsigned int totalpages_; + unsigned int availablepages_; + unsigned int stackpages_; + unsigned int virtualpagetablepages_; + unsigned int systempagetablepages_; + unsigned int poolpages_; + unsigned int virtualmappedpages_; + unsigned int imagepages_; + unsigned int filecachepages_; + unsigned int contiguouspages_; + unsigned int debuggerpages_; + int _cached_size_; + unsigned int _has_bits_[1]; +}; + +// IDA Local Type ordinal 12596; PDB kind: class. +class idreports::Xbox360CrashReport : public google::protobuf::MessageLite +{ +public: + // Recovered virtual interface; IDA vtable ordinal 12597. + virtual ~Xbox360CrashReport(); + virtual std::string *GetTypeName(std::string *result); + virtual google::protobuf::MessageLite *New(); + virtual void Clear(); + virtual bool IsInitialized(); + virtual std::string *InitializationErrorString(std::string *result); + virtual void CheckTypeAndMergeFrom(const google::protobuf::MessageLite *); + virtual bool MergePartialFromCodedStream(google::protobuf::io::CodedInputStream *); + virtual int ByteSize(); + virtual void SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream *); + virtual unsigned __int8 *SerializeWithCachedSizesToArray(unsigned __int8 *); + virtual int GetCachedSize(); + + std::string *game_; + std::string *username_; + std::string *platform_; + int buildnumbermajor_; + int buildnumberminor_; + std::string *buildstring_; + std::string *timestamp_; + std::string *launchcommand_; + std::string *vtfilepath_; + std::string *vtfilepathvmtroverride_; + std::string *mappath_; + idreports::Xbox360KitInfo *kitinfo_; + google::protobuf::RepeatedPtrField callstack_; + idreports::ExceptionInfo *exception_; + idreports::XenonRegisterInfo *registers_; + idreports::XenonMemoryInfo *consolememory_; + idreports::XenonMemoryInfo *titlememory_; + int _cached_size_; + unsigned int _has_bits_[1]; +}; + +// IDA Local Type ordinal 12598; PDB kind: class. +class idreports::StringIDReferenceReport : public google::protobuf::MessageLite +{ +public: + // Recovered virtual interface; IDA vtable ordinal 12599. + virtual ~StringIDReferenceReport(); + virtual std::string *GetTypeName(std::string *result); + virtual google::protobuf::MessageLite *New(); + virtual void Clear(); + virtual bool IsInitialized(); + virtual std::string *InitializationErrorString(std::string *result); + virtual void CheckTypeAndMergeFrom(const google::protobuf::MessageLite *); + virtual bool MergePartialFromCodedStream(google::protobuf::io::CodedInputStream *); + virtual int ByteSize(); + virtual void SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream *); + virtual unsigned __int8 *SerializeWithCachedSizesToArray(unsigned __int8 *); + virtual int GetCachedSize(); + + google::protobuf::RepeatedPtrField stringids_; + int _cached_size_; + unsigned int _has_bits_[1]; +}; + +// IDA Local Type ordinal 12600; PDB kind: class. +class idreports::CallstackLine : public google::protobuf::MessageLite +{ +public: + // Recovered virtual interface; IDA vtable ordinal 12601. + virtual ~CallstackLine(); + virtual std::string *GetTypeName(std::string *result); + virtual google::protobuf::MessageLite *New(); + virtual void Clear(); + virtual bool IsInitialized(); + virtual std::string *InitializationErrorString(std::string *result); + virtual void CheckTypeAndMergeFrom(const google::protobuf::MessageLite *); + virtual bool MergePartialFromCodedStream(google::protobuf::io::CodedInputStream *); + virtual int ByteSize(); + virtual void SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream *); + virtual unsigned __int8 *SerializeWithCachedSizesToArray(unsigned __int8 *); + virtual int GetCachedSize(); + + std::string *functioncall_; + int line_; + int bytepos_; + std::string *filename_; + std::string *address_; + int _cached_size_; + unsigned int _has_bits_[1]; +}; + +// IDA Local Type ordinal 12602; PDB kind: class. +class idreports::CPUInfo : public google::protobuf::MessageLite +{ +public: + // Recovered virtual interface; IDA vtable ordinal 12603. + virtual ~CPUInfo(); + virtual std::string *GetTypeName(std::string *result); + virtual google::protobuf::MessageLite *New(); + virtual void Clear(); + virtual bool IsInitialized(); + virtual std::string *InitializationErrorString(std::string *result); + virtual void CheckTypeAndMergeFrom(const google::protobuf::MessageLite *); + virtual bool MergePartialFromCodedStream(google::protobuf::io::CodedInputStream *); + virtual int ByteSize(); + virtual void SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream *); + virtual unsigned __int8 *SerializeWithCachedSizesToArray(unsigned __int8 *); + virtual int GetCachedSize(); + + std::string *cpuid_; + int packages_; + int cores_; + int logical_; + float frequency_; + int _cached_size_; + unsigned int _has_bits_[1]; +}; + +// IDA Local Type ordinal 12605; PDB kind: class. +class idreports::PS3MemoryInfo : public google::protobuf::MessageLite +{ +public: + // Recovered virtual interface; IDA vtable ordinal 12606. + virtual ~PS3MemoryInfo(); + virtual std::string *GetTypeName(std::string *result); + virtual google::protobuf::MessageLite *New(); + virtual void Clear(); + virtual bool IsInitialized(); + virtual std::string *InitializationErrorString(std::string *result); + virtual void CheckTypeAndMergeFrom(const google::protobuf::MessageLite *); + virtual bool MergePartialFromCodedStream(google::protobuf::io::CodedInputStream *); + virtual int ByteSize(); + virtual void SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream *); + virtual unsigned __int8 *SerializeWithCachedSizesToArray(unsigned __int8 *); + virtual int GetCachedSize(); + + unsigned int totalsystemmemory_; + unsigned int usedsystemmemory_; + unsigned int availablesystemmemory_; + unsigned int unaccountedfor_; + unsigned int pmem_total_; + unsigned int pmem_used_; + unsigned __int64 page_in_; + unsigned __int64 page_out_; + unsigned __int64 page_fault_ppu_; + unsigned __int64 page_fault_spu_; + google::protobuf::RepeatedPtrField regions_; + int _cached_size_; + unsigned int _has_bits_[1]; +}; + +// IDA Local Type ordinal 12607; PDB kind: class. +class idreports::AssertReport : public google::protobuf::MessageLite +{ +public: + // Recovered virtual interface; IDA vtable ordinal 12608. + virtual ~AssertReport(); + virtual std::string *GetTypeName(std::string *result); + virtual google::protobuf::MessageLite *New(); + virtual void Clear(); + virtual bool IsInitialized(); + virtual std::string *InitializationErrorString(std::string *result); + virtual void CheckTypeAndMergeFrom(const google::protobuf::MessageLite *); + virtual bool MergePartialFromCodedStream(google::protobuf::io::CodedInputStream *); + virtual int ByteSize(); + virtual void SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream *); + virtual unsigned __int8 *SerializeWithCachedSizesToArray(unsigned __int8 *); + virtual int GetCachedSize(); + + std::string *mapname_; + std::string *filename_; + std::string *expression_; + std::string *username_; + unsigned int line_; + int _cached_size_; + unsigned int _has_bits_[1]; +}; + +// IDA Local Type ordinal 12609; PDB kind: class. +class idreports::BigUInt : public google::protobuf::MessageLite +{ +public: + // Recovered virtual interface; IDA vtable ordinal 12610. + virtual ~BigUInt(); + virtual std::string *GetTypeName(std::string *result); + virtual google::protobuf::MessageLite *New(); + virtual void Clear(); + virtual bool IsInitialized(); + virtual std::string *InitializationErrorString(std::string *result); + virtual void CheckTypeAndMergeFrom(const google::protobuf::MessageLite *); + virtual bool MergePartialFromCodedStream(google::protobuf::io::CodedInputStream *); + virtual int ByteSize(); + virtual void SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream *); + virtual unsigned __int8 *SerializeWithCachedSizesToArray(unsigned __int8 *); + virtual int GetCachedSize(); + + unsigned __int64 lowpart_; + unsigned __int64 highpart_; + int _cached_size_; + unsigned int _has_bits_[1]; +}; + +// IDA Local Type ordinal 12611; PDB kind: class. +class __declspec(align(8)) idreports::PPURegisterInfo : public google::protobuf::MessageLite +{ +public: + // Recovered virtual interface; IDA vtable ordinal 12612. + virtual ~PPURegisterInfo(); + virtual std::string *GetTypeName(std::string *result); + virtual google::protobuf::MessageLite *New(); + virtual void Clear(); + virtual bool IsInitialized(); + virtual std::string *InitializationErrorString(std::string *result); + virtual void CheckTypeAndMergeFrom(const google::protobuf::MessageLite *); + virtual bool MergePartialFromCodedStream(google::protobuf::io::CodedInputStream *); + virtual int ByteSize(); + virtual void SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream *); + virtual unsigned __int8 *SerializeWithCachedSizesToArray(unsigned __int8 *); + virtual int GetCachedSize(); + + google::protobuf::RepeatedField gpr_; + unsigned __int64 xer_; + unsigned __int64 lr_; + unsigned __int64 ctr_; + unsigned int cr_; + unsigned int fpscr_; + unsigned __int64 pc_; + google::protobuf::RepeatedField fpr_; + google::protobuf::RepeatedPtrField vr_; + idreports::BigUInt *vscr_; + int _cached_size_; + unsigned int _has_bits_[1]; +}; + +// IDA Local Type ordinal 12614; PDB kind: class. +class __declspec(align(8)) idreports::PS3CrashReport : public google::protobuf::MessageLite +{ +public: + // Recovered virtual interface; IDA vtable ordinal 12615. + virtual ~PS3CrashReport(); + virtual std::string *GetTypeName(std::string *result); + virtual google::protobuf::MessageLite *New(); + virtual void Clear(); + virtual bool IsInitialized(); + virtual std::string *InitializationErrorString(std::string *result); + virtual void CheckTypeAndMergeFrom(const google::protobuf::MessageLite *); + virtual bool MergePartialFromCodedStream(google::protobuf::io::CodedInputStream *); + virtual int ByteSize(); + virtual void SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream *); + virtual unsigned __int8 *SerializeWithCachedSizesToArray(unsigned __int8 *); + virtual int GetCachedSize(); + + std::string *game_; + std::string *username_; + std::string *platform_; + int buildnumbermajor_; + int buildnumberminor_; + std::string *buildstring_; + std::string *timestamp_; + std::string *launchcommand_; + std::string *vtfilepath_; + std::string *vtfilepathvmtroverride_; + std::string *mappath_; + google::protobuf::RepeatedField callstack_; + idreports::PS3ExceptionInfo *exception_; + idreports::PPURegisterInfo *ppuregisters_; + google::protobuf::RepeatedPtrField spuregisters_; + idreports::PS3MemoryInfo *memoryinfo_; + int _cached_size_; + unsigned int _has_bits_[1]; +}; + +// IDA Local Type ordinal 12616; PDB kind: class. +class idreports::CrashReportResult : public google::protobuf::MessageLite +{ +public: + // Recovered virtual interface; IDA vtable ordinal 12617. + virtual ~CrashReportResult(); + virtual std::string *GetTypeName(std::string *result); + virtual google::protobuf::MessageLite *New(); + virtual void Clear(); + virtual bool IsInitialized(); + virtual std::string *InitializationErrorString(std::string *result); + virtual void CheckTypeAndMergeFrom(const google::protobuf::MessageLite *); + virtual bool MergePartialFromCodedStream(google::protobuf::io::CodedInputStream *); + virtual int ByteSize(); + virtual void SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream *); + virtual unsigned __int8 *SerializeWithCachedSizesToArray(unsigned __int8 *); + virtual int GetCachedSize(); + + __int64 bugid_; + int _cached_size_; + unsigned int _has_bits_[1]; +}; + +// IDA Local Type ordinal 12618; PDB kind: class. +class idreports::MapWarning : public google::protobuf::MessageLite +{ +public: + // Recovered virtual interface; IDA vtable ordinal 12619. + virtual ~MapWarning(); + virtual std::string *GetTypeName(std::string *result); + virtual google::protobuf::MessageLite *New(); + virtual void Clear(); + virtual bool IsInitialized(); + virtual std::string *InitializationErrorString(std::string *result); + virtual void CheckTypeAndMergeFrom(const google::protobuf::MessageLite *); + virtual bool MergePartialFromCodedStream(google::protobuf::io::CodedInputStream *); + virtual int ByteSize(); + virtual void SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream *); + virtual unsigned __int8 *SerializeWithCachedSizesToArray(unsigned __int8 *); + virtual int GetCachedSize(); + + std::string *message_; + google::protobuf::RepeatedField marks_; + unsigned int count_; + int _cached_size_; + unsigned int _has_bits_[1]; +}; + +// IDA Local Type ordinal 12620; PDB kind: class. +class idreports::RegisterInfo : public google::protobuf::MessageLite +{ +public: + // Recovered virtual interface; IDA vtable ordinal 12621. + virtual ~RegisterInfo(); + virtual std::string *GetTypeName(std::string *result); + virtual google::protobuf::MessageLite *New(); + virtual void Clear(); + virtual bool IsInitialized(); + virtual std::string *InitializationErrorString(std::string *result); + virtual void CheckTypeAndMergeFrom(const google::protobuf::MessageLite *); + virtual bool MergePartialFromCodedStream(google::protobuf::io::CodedInputStream *); + virtual int ByteSize(); + virtual void SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream *); + virtual unsigned __int8 *SerializeWithCachedSizesToArray(unsigned __int8 *); + virtual int GetCachedSize(); + + std::string *edi_; + std::string *esi_; + std::string *eax_; + std::string *ebx_; + std::string *ecx_; + std::string *edx_; + std::string *eip_; + std::string *ebp_; + std::string *esp_; + std::string *eflags_; + std::string *segcs_; + std::string *segss_; + int platform_; + int _cached_size_; + unsigned int _has_bits_[1]; +}; + +// IDA Local Type ordinal 12622; PDB kind: class. +class idreports::HeapCategoryUsage : public google::protobuf::MessageLite +{ +public: + // Recovered virtual interface; IDA vtable ordinal 12623. + virtual ~HeapCategoryUsage(); + virtual std::string *GetTypeName(std::string *result); + virtual google::protobuf::MessageLite *New(); + virtual void Clear(); + virtual bool IsInitialized(); + virtual std::string *InitializationErrorString(std::string *result); + virtual void CheckTypeAndMergeFrom(const google::protobuf::MessageLite *); + virtual bool MergePartialFromCodedStream(google::protobuf::io::CodedInputStream *); + virtual int ByteSize(); + virtual void SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream *); + virtual unsigned __int8 *SerializeWithCachedSizesToArray(unsigned __int8 *); + virtual int GetCachedSize(); + + std::string *categoryname_; + unsigned int totalever_; + unsigned int totalcurrent_; + unsigned int totalsize_; + unsigned int totalwaste_; + int _cached_size_; + unsigned int _has_bits_[1]; +}; + +// IDA Local Type ordinal 12625; PDB kind: class. +class idreports::MapReport : public google::protobuf::MessageLite +{ +public: + // Recovered virtual interface; IDA vtable ordinal 12626. + virtual ~MapReport(); + virtual std::string *GetTypeName(std::string *result); + virtual google::protobuf::MessageLite *New(); + virtual void Clear(); + virtual bool IsInitialized(); + virtual std::string *InitializationErrorString(std::string *result); + virtual void CheckTypeAndMergeFrom(const google::protobuf::MessageLite *); + virtual bool MergePartialFromCodedStream(google::protobuf::io::CodedInputStream *); + virtual int ByteSize(); + virtual void SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream *); + virtual unsigned __int8 *SerializeWithCachedSizesToArray(unsigned __int8 *); + virtual int GetCachedSize(); + + std::string *mapname_; + std::string *username_; + std::string *machinename_; + std::string *platform_; + std::string *game_; + std::string *buildversion_; + std::string *buildtimestamp_; + google::protobuf::RepeatedPtrField warnings_; + unsigned int loadtime_; + int _cached_size_; + unsigned int _has_bits_[1]; +}; + +// IDA Local Type ordinal 12628; PDB kind: class. +class idreports::HeapUsage : public google::protobuf::MessageLite +{ +public: + // Recovered virtual interface; IDA vtable ordinal 12629. + virtual ~HeapUsage(); + virtual std::string *GetTypeName(std::string *result); + virtual google::protobuf::MessageLite *New(); + virtual void Clear(); + virtual bool IsInitialized(); + virtual std::string *InitializationErrorString(std::string *result); + virtual void CheckTypeAndMergeFrom(const google::protobuf::MessageLite *); + virtual bool MergePartialFromCodedStream(google::protobuf::io::CodedInputStream *); + virtual int ByteSize(); + virtual void SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream *); + virtual unsigned __int8 *SerializeWithCachedSizesToArray(unsigned __int8 *); + virtual int GetCachedSize(); + + int heaptype_; + unsigned int totalever_; + unsigned int totalcurrent_; + unsigned int totalsize_; + google::protobuf::RepeatedPtrField categories_; + unsigned int totalwaste_; + int _cached_size_; + unsigned int _has_bits_[1]; +}; + +// IDA Local Type ordinal 12631; PDB kind: class. +class idreports::CrashReport : public google::protobuf::MessageLite +{ +public: + // Recovered virtual interface; IDA vtable ordinal 12632. + virtual ~CrashReport(); + virtual std::string *GetTypeName(std::string *result); + virtual google::protobuf::MessageLite *New(); + virtual void Clear(); + virtual bool IsInitialized(); + virtual std::string *InitializationErrorString(std::string *result); + virtual void CheckTypeAndMergeFrom(const google::protobuf::MessageLite *); + virtual bool MergePartialFromCodedStream(google::protobuf::io::CodedInputStream *); + virtual int ByteSize(); + virtual void SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream *); + virtual unsigned __int8 *SerializeWithCachedSizesToArray(unsigned __int8 *); + virtual int GetCachedSize(); + + std::string *game_; + std::string *username_; + std::string *platform_; + int buildnumbermajor_; + int buildnumberminor_; + std::string *buildstring_; + std::string *timestamp_; + std::string *launchcommand_; + std::string *vtfilepath_; + std::string *vtfilepathvmtroverride_; + std::string *bugtitle_; + std::string *reprosteps_; + std::string *details_; + std::string *severity_; + std::string *component_; + std::string *mappath_; + std::string *priority_; + std::string *localfilename_; + std::string *dmppath_; + google::protobuf::RepeatedPtrField consolehistory_; + google::protobuf::RepeatedPtrField callstack_; + idreports::ExceptionInfo *exception_; + idreports::RegisterInfo *registers_; + idreports::Attachment *attachment_; + idreports::CPUInfo *cpuinfo_; + idreports::MemoryInfo *meminfo_; + int _cached_size_; + unsigned int _has_bits_[1]; +}; + +// IDA Local Type ordinal 17425; PDB kind: class. +class idReport +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17426. + virtual ~idReport(); + virtual void WriteReport(); + + idFile *html; + idXMLWriter *xmlWriter; + idStr reportPath; + idStr pathSuffix; + idFolderReport *reportParent; + idList childResults; + testStatus_t finalResult; +}; + +// IDA Local Type ordinal 17432; PDB kind: class. +class idTestReport : public idReport +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17433. + virtual ~idTestReport(); + virtual void WriteReport(); + + idList types; + idList infos; + idList testReportFields; +}; + +// IDA Local Type ordinal 17678; PDB kind: class. +class idReportData +{ +public: + idStr userName; + idStr platform; + idStr buildMessage; + int buildNumberMajor; + int buildNumberMinor; + idStr cpuID; + int coreNum; + int logicalNum; + int packageNum; + float cpuFrequency; + idStr launchCommand; + idStr vtFilePathCvar; + idStr vtFilePathVmtrOverrideCvar; + idStr title; + idStr steps; + idStr details; + idStr severity; + idStr component; + idStr reproduced; + idStr style; + idStr mapPath; + idStr priority; + idStr systemInfo; + idStr localFilename; + idStr dmpPath; + idList originalCallstack; + idStr callstack; + idStr exception; + idStr registers; + idStr attachFilename; + idStr fullFunctionDetails; + idStr someFunctionDetails; +}; + +// IDA Local Type ordinal 32081; PDB kind: typedef. +typedef void *HREPORT; + +// IDA Local Type ordinal 34168; PDB kind: unknown. +struct idreports; diff --git a/source/libs/mgrd/include/rd/common.h b/source/libs/mgrd/include/rd/common.h new file mode 100644 index 0000000..76333ad --- /dev/null +++ b/source/libs/mgrd/include/rd/common.h @@ -0,0 +1,104 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\libs\mgrd\include\rd\common.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17417; PDB kind: class. +class idCommon +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17439. + virtual ~idCommon(); + virtual void Init(int, const char **, const char *); + virtual void Quit(int); + virtual void Shutdown(int); + virtual bool IsInitialized(); + virtual void BeginTerminationThread(); + virtual void EndTerminationThread(); + virtual void SyncAllBackgroundOperations(bool); + virtual void Frame(); + virtual void InitTool(const toolFlag_t); + virtual void UpdateTool(const toolFlag_t); + virtual void GetToolReferenceMap(const toolFlag_t, idStr *); + virtual void ActivateTool(bool); + virtual void RegisterMapChangeListener(idMapChangeListener *); + virtual void UnRegisterMapChangeListener(idMapChangeListener *); + virtual void WriteConfigToFile(const char *); + virtual void SetRefreshOnPrint(bool); + virtual void PrintWarnings(); + virtual void ClearWarnings(const char *); + virtual void UpdateConsoleDisplay(bool); + virtual void UpdateLevelLoadPacifier(float, pacifierState_t, bool, bool); + virtual int PlayLoadSound(); + virtual void SetLoadScreenInfo(const idStr *, const idStr *); + virtual idPlayerProfile *GetProfileFromMasterLocalUser(); + virtual int GetMasterLocalUserInputDevice(); + virtual int GetMasterLocalUserPlayerId(); + virtual idLocalUser *GetMasterLocalUser(); + virtual void ResetPlayerInput(int); + virtual void UpdateBotUserCmds(const int, const usercmd_t *); + virtual bool IsMainMenuActive(); + virtual bool IsGamePaused(); + virtual bool IsInGame(); + virtual snapshotState_t SnapshotState(); + virtual void PrepareSnapshot(idSnapShot *, gameReturn_t *, idSnapShot *); + virtual bool IsServer(); + virtual bool IsClient(); + virtual bool SnapshotsAreStalled(); + virtual bool IsMultiplayer(); + virtual bool IsToolActive(); + virtual bool AllowCheats(); + virtual void AddDialog(gameDialogMessages_t, dialogType_t, idSWFScriptFunction *, idSWFScriptFunction *, bool, const char *, int, bool, bool, bool); + virtual void AddDynamicDialog(gameDialogMessages_t, const idStaticList *, const idStaticList *, bool, idStrStatic<256>, bool, bool, bool); + virtual void AddDialogIntVal(const char *, int); + virtual void ClearDialogs(bool); + virtual bool HasDialogMsg(gameDialogMessages_t, bool *); + virtual void ClearDialog(gameDialogMessages_t, const char *, int); + virtual bool IsDialogActive(); + virtual bool IsDialogPausing(); + virtual int GetRecentInputDevice(); + virtual int GetFocusDeviceNum(); + virtual void SetFocusDeviceNum(int); + virtual int GetPauseMenuDeviceNum(); + virtual void SetPauseMenuDeviceNum(int); + virtual bool GetAutosaveEnabled(); + virtual void EnableAutosaves(bool); + virtual void ShowSaveIndicator(bool, bool); + virtual idGame *Game(); + virtual idRenderWorld *RW(); + virtual idSoundWorld *SW(); + virtual void ExecuteMapChange(const idGameSpawnInfo *, idFile *); + virtual void RecordPlayback(bool, const char *); + virtual recordState_t GetRecordState(); + virtual idRegression *GetRegression(); + virtual void RecordSnapshotFile(idFile *, unsigned int); + virtual void PlaySnapshotFile(idFile *, unsigned int); + virtual void QueueSnapshotMemFile(idFile_Memory *, unsigned int); + virtual void ClearQueuedSnapshotFile(); + virtual void PlayQueuedSnapshotFile(); + virtual void StopSnapshotFilePlayback(); + virtual void StopSnapshotFileRecord(); + virtual void CloseSnapshotFiles(); + virtual bool DemoPlaying(); + virtual bool DemoRecording(); + virtual bool TimeTrialPlaying(); + virtual bool TimeTrialRecording(); + virtual idFile *DetachActiveReadSnapshotFile(); + virtual idFile *DetachActiveWriteSnapshotFile(); + virtual idFile *GetActiveReadSnapshotFile(); + virtual idFile *GetActiveWriteSnapshotFile(); + virtual void NetReceiveReliable(int, idBitMsg *, int); + virtual void NetReceiveSnapshot(idSnapShot *); + virtual void NetReceiveUsercmds(idBitMsg *); + virtual int NetWriteResources(idLZWCompressor *, int, int, bool); + virtual void NetReadResources(idLZWCompressor *); + virtual int GetSnapRate(); + virtual bool IsLosingConnectionToHost(); + virtual idRenderVideoOverlay *VideoOverlay(); + virtual void PurgeOverlays(); + virtual idFile *GetLogfile(); + +}; diff --git a/source/libs/mgrd/shared/mgsocket/mgsocket.h b/source/libs/mgrd/shared/mgsocket/mgsocket.h new file mode 100644 index 0000000..a0ecb10 --- /dev/null +++ b/source/libs/mgrd/shared/mgsocket/mgsocket.h @@ -0,0 +1,13 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\libs\mgrd\shared\mgsocket\mgsocket.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 26826; PDB kind: typedef. +typedef int MGSOCKET; + +// IDA Local Type ordinal 31868; PDB kind: typedef. +typedef unsigned int SOCKET; diff --git a/source/libs/mgrd/shared/mgsys/mgringbuf.h b/source/libs/mgrd/shared/mgsys/mgringbuf.h new file mode 100644 index 0000000..fa00c5a --- /dev/null +++ b/source/libs/mgrd/shared/mgsys/mgringbuf.h @@ -0,0 +1,22 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\libs\mgrd\shared\mgsys\mgringbuf.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 24744; PDB kind: struct. +struct MGRINGBUF +{ + char *start; + char *end; + unsigned int size; + char cachelinepad0[116]; + char *volatile write; + char cachelinepad1[124]; + char *volatile put; + char cachelinepad2[124]; + char *volatile get; + char cachelinepad3[124]; +}; diff --git a/source/libs/navpower/include/bfxnavigator.h b/source/libs/navpower/include/bfxnavigator.h new file mode 100644 index 0000000..b7ec85b --- /dev/null +++ b/source/libs/navpower/include/bfxnavigator.h @@ -0,0 +1,63 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\libs\navpower\include\bfxnavigator.h +// Recovered logical types: 7 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2332; PDB kind: enum. +enum idNpNavigator::idAdvanceInfo::posType_t : __int32 +{ + POS_SURFACE = 0x0, + POS_LINK = 0x1, + POS_GOAL = 0x2, +}; + +// IDA Local Type ordinal 18243; PDB kind: struct. +struct __declspec(align(4)) idNpNavigator::idNextCornerParms +{ + float pathDistance; + bool addCornerAtEveryArea; +}; + +// IDA Local Type ordinal 18244; PDB kind: struct. +struct __declspec(align(4)) idNpNavigator::idNpAdvanceSpec +{ + float distAhead; + bool stopAtLink; +}; + +// IDA Local Type ordinal 18245; PDB kind: struct. +struct __declspec(align(4)) idNpNavigator::idAdvanceInfo +{ + idNpNavigator::idAdvanceInfo::posType_t advancePosType; + idVec3 advancePos; + float advanceDistance; + idNpAreaHandle advanceArea; + idNpLink advanceLink; + idNpMover::idLinkUseParms linkInfo; + bool linkBackWards; +}; + +// IDA Local Type ordinal 18246; PDB kind: struct. +struct __declspec(align(4)) idNpNavigator::idPosDirectionInfo +{ + idVec3 endPos; + idNpAreaHandle endArea; + bool endOnEdge; +}; + +// IDA Local Type ordinal 18247; PDB kind: struct. +struct idNpNavigator::idNavWedge +{ + float angleStart; + float angleEnd; +}; + +// IDA Local Type ordinal 18248; PDB kind: class. +class idNpNavigator +{ +public: + idNpNavigatorImpl *impl; +}; diff --git a/source/libs/navpower/include/bfxnavigatorspace.h b/source/libs/navpower/include/bfxnavigatorspace.h new file mode 100644 index 0000000..5e440c4 --- /dev/null +++ b/source/libs/navpower/include/bfxnavigatorspace.h @@ -0,0 +1,14 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\libs\navpower\include\bfxnavigatorspace.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17153; PDB kind: class. +class idNavigationSpace +{ +public: + idNavigationSpaceImpl *impl; +}; diff --git a/source/libs/navpower/src/bfxmover/bfxmoverimpl.h b/source/libs/navpower/src/bfxmover/bfxmoverimpl.h new file mode 100644 index 0000000..efaedbe --- /dev/null +++ b/source/libs/navpower/src/bfxmover/bfxmoverimpl.h @@ -0,0 +1,26 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\libs\navpower\src\bfxmover\bfxmoverimpl.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 18228; PDB kind: class. +class idNpMoverImpl +{ +public: + idNavigationSpace moverSpace; + bfx::Mover *mover; +}; + +// IDA Local Type ordinal 18230; PDB kind: struct. +struct __declspec(align(2)) idNpMoverImpl::idGotoParms +{ + float stopDistAllowed; + float stopDistDesired; + idVec3 orientAtGoalDir; + bool orientAtGoalEnabled; + bool stopAtGoal; + bool pushThroughCrowd; +}; diff --git a/source/libs/navpower/src/bfxmover3d/bfxrepulsor3d.h b/source/libs/navpower/src/bfxmover3d/bfxrepulsor3d.h new file mode 100644 index 0000000..c4997ca --- /dev/null +++ b/source/libs/navpower/src/bfxmover3d/bfxrepulsor3d.h @@ -0,0 +1,14 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\libs\navpower\src\bfxmover3d\bfxrepulsor3d.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22319; PDB kind: class. +class idNpRepulsor3D +{ +public: + idNpRepulsor3DImpl *impl; +}; diff --git a/source/libs/navpower/src/bfxnavigator/bfxnavigatorimpl.h b/source/libs/navpower/src/bfxnavigator/bfxnavigatorimpl.h new file mode 100644 index 0000000..25f34e2 --- /dev/null +++ b/source/libs/navpower/src/bfxnavigator/bfxnavigatorimpl.h @@ -0,0 +1,21 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\libs\navpower\src\bfxnavigator\bfxnavigatorimpl.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1400; PDB kind: unknown. +enum idNpNavigatorImpl::CalcCollisionFreeWedges::__l2:: : __int32 +{ + NumWedges = 0x20, +}; + +// IDA Local Type ordinal 18242; PDB kind: class. +class idNpNavigatorImpl +{ +public: + idNavigationSpace moverSpace; + bfx::Navigator *navigator; +}; diff --git a/source/libs/navpower/src/bfxplanner/bfxopenlist.h b/source/libs/navpower/src/bfxplanner/bfxopenlist.h new file mode 100644 index 0000000..0a47e62 --- /dev/null +++ b/source/libs/navpower/src/bfxplanner/bfxopenlist.h @@ -0,0 +1,10 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\libs\navpower\src\bfxplanner\bfxopenlist.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 28845; PDB kind: typedef. +typedef bfx::BinaryHeap OpenList; diff --git a/source/libs/navpower/src/bfxsystem/bfxcollider.h b/source/libs/navpower/src/bfxsystem/bfxcollider.h new file mode 100644 index 0000000..164ca4d --- /dev/null +++ b/source/libs/navpower/src/bfxsystem/bfxcollider.h @@ -0,0 +1,25 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\libs\navpower\src\bfxsystem\bfxcollider.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1035; PDB kind: enum. +enum collide_t : __int32 +{ + COLLIDE_CONTINUE_SIMULATION = 0x0, + COLLIDE_STOP_SIMULATION = 0x1, + COLLIDE_IGNORE_COLLISION = 0x2, +}; + +// IDA Local Type ordinal 18257; PDB kind: class. +class idCollider : public bfx::Collider +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18258. + virtual bool CollideLineSegmentAndWorld(const bfx::CollideData *, const bfx::Vector3 *, bfx::Vector3 *); + virtual ~idCollider(); + +}; diff --git a/source/libs/navpower/src/bfxsystem/bfxinstance.h b/source/libs/navpower/src/bfxsystem/bfxinstance.h new file mode 100644 index 0000000..5b7b925 --- /dev/null +++ b/source/libs/navpower/src/bfxsystem/bfxinstance.h @@ -0,0 +1,16 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\libs\navpower\src\bfxsystem\bfxinstance.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 4972; PDB kind: struct. +struct HINSTANCE__ +{ + int unused; +}; + +// IDA Local Type ordinal 31908; PDB kind: typedef. +typedef HINSTANCE__ *HINSTANCE; diff --git a/source/libs/protobuf-2.4.1/src/google/protobuf/extension_set.h b/source/libs/protobuf-2.4.1/src/google/protobuf/extension_set.h new file mode 100644 index 0000000..41cf269 --- /dev/null +++ b/source/libs/protobuf-2.4.1/src/google/protobuf/extension_set.h @@ -0,0 +1,10 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\libs\protobuf-2.4.1\src\google\protobuf\extension_set.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 33136; PDB kind: typedef. +typedef void (__fastcall *GLExtension_t)(); diff --git a/source/libs/zlib/deflate.h b/source/libs/zlib/deflate.h new file mode 100644 index 0000000..baaa11e --- /dev/null +++ b/source/libs/zlib/deflate.h @@ -0,0 +1,10 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\libs\zlib\deflate.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 32752; PDB kind: typedef. +typedef internal_state deflate_state; diff --git a/source/libs/zlib/inflate.h b/source/libs/zlib/inflate.h new file mode 100644 index 0000000..ceab865 --- /dev/null +++ b/source/libs/zlib/inflate.h @@ -0,0 +1,78 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\libs\zlib\inflate.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 3404; PDB kind: enum. +enum inflate_mode : __int32 +{ + HEAD = 0x0, + FLAGS = 0x1, + TIME = 0x2, + OS = 0x3, + EXLEN = 0x4, + EXTRA = 0x5, + NAME = 0x6, + COMMENT = 0x7, + HCRC = 0x8, + DICTID = 0x9, + DICT = 0xA, + TYPE = 0xB, + TYPEDO = 0xC, + STORED = 0xD, + COPY = 0xE, + TABLE = 0xF, + LENLENS = 0x10, + CODELENS = 0x11, + LEN = 0x12, + LENEXT = 0x13, + DIST = 0x14, + DISTEXT = 0x15, + MATCH = 0x16, + LIT = 0x17, + CHECK = 0x18, + LENGTH = 0x19, + DONE = 0x1A, + BAD = 0x1B, + MEM = 0x1C, + SYNC = 0x1D, +}; + +// IDA Local Type ordinal 24743; PDB kind: struct. +struct inflate_state +{ + inflate_mode mode; + int last; + int wrap; + int havedict; + int flags; + unsigned int dmax; + unsigned int check; + unsigned int total; + gz_header_s *head; + unsigned int wbits; + unsigned int wsize; + unsigned int whave; + unsigned int write; + unsigned __int8 *window; + unsigned int hold; + unsigned int bits; + unsigned int length; + unsigned int offset; + unsigned int extra; + const code *lencode; + const code *distcode; + unsigned int lenbits; + unsigned int distbits; + unsigned int ncode; + unsigned int nlen; + unsigned int ndist; + unsigned int have; + code *next; + unsigned __int16 lens[320]; + unsigned __int16 work[288]; + code codes[2048]; +}; diff --git a/source/libs/zlib/trees.h b/source/libs/zlib/trees.h new file mode 100644 index 0000000..5340503 --- /dev/null +++ b/source/libs/zlib/trees.h @@ -0,0 +1,19 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\libs\zlib\trees.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 23853; PDB kind: class. +class idSort_Trees : public idSort_Quick,idSort_Trees> +{ +public: + // Recovered virtual interface; IDA vtable ordinal 23854. + virtual ~idSort_Trees(); + virtual void Sort(idIndex *, unsigned int); + + const idAAS2File *file; + const idVec3 *normal; +}; diff --git a/source/tungsten/game/accolades.h b/source/tungsten/game/accolades.h new file mode 100644 index 0000000..f32a9f1 --- /dev/null +++ b/source/tungsten/game/accolades.h @@ -0,0 +1,21 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\accolades.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 18370; PDB kind: class. +class idAccolade +{ +public: + int count; + const idDeclAccolade *decl; +}; + +// IDA Local Type ordinal 18444; PDB kind: class. +class idAccolades +{ +public: +}; diff --git a/source/tungsten/game/ai/aasobstacle.h b/source/tungsten/game/ai/aasobstacle.h new file mode 100644 index 0000000..f6a48ab --- /dev/null +++ b/source/tungsten/game/ai/aasobstacle.h @@ -0,0 +1,200 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\aasobstacle.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 20462; PDB kind: struct. +struct vaiObstacle_t +{ + idEntity *ent; + int sideFlags; + float collisionDistance; + float speed; + float fwdDistance; + float rtDistance; + float radius; + float fwdRadius; + float rtRadius; +}; + +// IDA Local Type ordinal 21516; PDB kind: class. +class __declspec(align(8)) idAASObstacle : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21517. + virtual idTypeInfo *GetType(); + virtual ~idAASObstacle(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + bool startOn; + bool dynamicObstacle; + aas2TravelFlag_t travelFlags; + bool enabled; +}; + +// IDA Local Type ordinal 23521; PDB kind: struct. +const struct idAAS2Obstacle +{ + idBounds absBounds; + idBounds expAbsBounds; +}; + +// IDA Local Type ordinal 32576; PDB kind: typedef. +typedef unsigned __int8 aas2ObstaclePVS_t; diff --git a/source/tungsten/game/ai/aaspositionmgr.h b/source/tungsten/game/ai/aaspositionmgr.h new file mode 100644 index 0000000..2ca6d77 --- /dev/null +++ b/source/tungsten/game/ai/aaspositionmgr.h @@ -0,0 +1,27 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\aaspositionmgr.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15015; PDB kind: class. +class idAASPosition +{ +public: + bool valid; + unsigned __int16 areaNum; + idVec3 origin; + idVec3 validOrigin; + const idAAS2 *aas; +}; + +// IDA Local Type ordinal 15016; PDB kind: class. +class idAASPositionMgr +{ +public: + idAASPosition aasPosition[2]; + int lastUpdateFrame[2]; + int numAASPositions; +}; diff --git a/source/tungsten/game/ai/aasviscache.h b/source/tungsten/game/ai/aasviscache.h new file mode 100644 index 0000000..e57b5b0 --- /dev/null +++ b/source/tungsten/game/ai/aasviscache.h @@ -0,0 +1,28 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\aasviscache.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17271; PDB kind: class. +class idAASVisArea +{ +public: + int areaNum; + int xcells; + int ycells; + float visRatio; + idBitArray cellVis; +}; + +// IDA Local Type ordinal 17275; PDB kind: class. +class idAASVisCache +{ +public: + const idAAS2 *aas; + float eyeHeight; + int subDivisionSize; + idList visPoints; +}; diff --git a/source/tungsten/game/ai/ai2.h b/source/tungsten/game/ai/ai2.h new file mode 100644 index 0000000..d7dcff4 --- /dev/null +++ b/source/tungsten/game/ai/ai2.h @@ -0,0 +1,718 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\ai2.h +// Recovered logical types: 36 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1288; PDB kind: enum. +enum idAI2::aiCondition_t : __int32 +{ + CONDITION_NONE = 0x0, + CONDITION_UNAVAILABLE = 0x1, + CONDITION_PINNED = 0x2, + CONDITION_CANT_SEE = 0x4, + CONDITION_INJURED = 0x8, + CONDITION_INTIMIDATED = 0x10, + CONDITION_FIRING = 0x20, + CONDITION_RELOADING = 0x40, + CONDITION_MOVING = 0x80, + CONDITION_REQUEST_HOLD_FIRE = 0x100, + CONDITION_REQUEST_COVER_FIRE = 0x200, + CONDITION_REQUEST_GRENADE = 0x400, + CONDITION_FORCE_CHARGE = 0x800, + CONDITION_MUST_SEARCH = 0x1000, + CONDITION_GW_PERFECT_AIM = 0x2000, + CONDITION_GW_ALL_FIRE_FROM_COVER = 0x4000, + CONDITION_GW_MAX_HOLD_TRIGGER = 0x8000, + CONDITION_GW_INFINITE_AMMO = 0x10000, + CONDITION_GW_DAMAGE_SCALE = 0x20000, +}; + +// IDA Local Type ordinal 2253; PDB kind: enum. +enum idAI2::idVisibilityObscurity::obscurity_t : __int32 +{ + OBSCURITY_UNKNOWN = 0x0, + OBSCURITY_PATH_BLOCKED = 0x1, + OBSCURITY_PATH_OPEN_WITH_OBSCURITY = 0x2, + OBSCURITY_PATH_OPEN_WITH_COVER = 0x3, + OBSCURITY_PATH_OPEN_AND_ENEMY_VISIBLE = 0x4, + OBSCURITY_NUM = 0x5, +}; + +// IDA Local Type ordinal 2254; PDB kind: enum. +enum idAI2::idVisibilityObscurity::obscurityTest_t : __int32 +{ + OBSCURITYTEST_MUZZLE_POS = 0x0, + OBSCURITYTEST_HALF_HEIGHT_FAR_LEFT = 0x1, + OBSCURITYTEST_HALF_HEIGHT_FAR_RIGHT = 0x2, + OBSCURITYTEST_HALF_HEIGHT_NEAR_LEFT = 0x3, + OBSCURITYTEST_HALF_HEIGHT_NEAR_RIGHT = 0x4, + OBSCURITYTEST_FULL_HEIGHT_FORWARD = 0x5, + OBSCURITYTEST_FULL_HEIGHT_BACK = 0x6, + OBSCURITYTEST_NUM = 0x7, +}; + +// IDA Local Type ordinal 2333; PDB kind: enum. +enum idAI2::aiErrorFlags_t : __int32 +{ + AIERRORFLAG_NONE = 0x0, + AIERRORFLAG_NO_AAS = 0x1, + AIERRORFLAG_OUT_OF_AAS = 0x2, + AIERRORFLAG_MOVE_FAILED = 0x4, + AIERRORFLAG_STUCK = 0x8, + AIERRORFLAG_OBSTRUCTED = 0x10, + AIERRORFLAG_NO_ANIMWEB_PATH = 0x20, + AIERRORFLAG_MAX = 0x6, +}; + +// IDA Local Type ordinal 2386; PDB kind: enum. +enum idAI2::aiDebugLevel_t : __int32 +{ + AIDEBUGLEVEL_NONE = 0x0, + AIDEBUGLEVEL_ERROR = 0x1, + AIDEBUGLEVEL_ACTION = 0x2, +}; + +// IDA Local Type ordinal 2394; PDB kind: enum. +enum idAI2::idVisibilityObscurity::obscurityQuery_t : __int32 +{ + OBSCURITYQUERY_CROUCH_COVER = 0x0, + OBSCURITYQUERY_DODGE_LEFT = 0x1, + OBSCURITYQUERY_DIVE_LEFT = 0x2, + OBSCURITYQUERY_DODGE_RIGHT = 0x3, + OBSCURITYQUERY_DIVE_RIGHT = 0x4, + OBSCURITYQUERY_DIVE_FWD = 0x5, + OBSCURITYQUERY_DIVE_BACK = 0x6, + OBSCURITYQUERY_MAX = 0x7, +}; + +// IDA Local Type ordinal 2395; PDB kind: enum. +enum idAI2::coverApproach_t : __int32 +{ + COVER_APPROACH_FORWARD = 0x0, + COVER_APPROACH_LEFT = 0x1, + COVER_APPROACH_RIGHT = 0x2, + COVER_APPROACH_TURN_AROUND_LEFT = 0x3, + COVER_APPROACH_WRAP_AROUND_LEFT = 0x4, + COVER_APPROACH_TURN_AROUND_RIGHT = 0x5, + COVER_APPROACH_WRAP_AROUND_RIGHT = 0x6, + COVER_APPROACH_JUMPOVER = 0x7, + COVER_APPROACH_MAX = 0x8, +}; + +// IDA Local Type ordinal 16561; PDB kind: class. +class idAI2 : public idActor +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17261. + virtual idTypeInfo *GetType(); + virtual ~idAI2(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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 void RepairShield(const float); + virtual const idVec3 *GetEyeOffset(const idVec3 *result); + virtual void GetViewTransform(idVec3 *, idMat3 *); + virtual void GetLastEyePos(idVec3 *); + virtual void GetEyeAxis(idMat3 *); + virtual void SetEyeAxis(const idMat3 *); + virtual idAnimator_AF::testSolidResult_t StartRagdoll(const idRagdollInfo *); + virtual void StopRagdoll(); + virtual equipSlot_t GetWeaponSlot(); + virtual idWeapon *GetEquippedWeapon(); + virtual bool EquipItem(idInventoryItem *, equipSlot_t); + virtual bool UnequipItem(idInventoryItem *); + virtual bool HolsterItem(idInventoryItem *, bool); + virtual void ShowAttachment(idInventoryItem *); + virtual void HideAttachment(idInventoryItem *); + virtual void DropAttachment(const equipSlot_t); + virtual void DropAttachment_2(idInventoryItem *); + virtual idEntity *DropItem(idInventoryItem *, bool, bool, int, const idVec3 *, const idVec3 *); + virtual idInventoryItem *GetEquipped(const equipSlot_t); + virtual void ClearEquipped(idInventoryItem *); + virtual void ClearEquipped_2(const equipSlot_t); + virtual idFXManager *GetFXMgrForAttachment(idInventoryItem *); + virtual idStrId *GetCurrentNPC(idStrId *result); + virtual idAASPositionMgr *GetAASPositionMgr(); + virtual bool HasSyncedWalks(); + virtual void SetApplyBulletTime(float, float); + virtual void SetApplyInvulnerability(float); + virtual void SetApplyAuthorityForce(float, const idDeclInventory *); + virtual bool CanBeHealed(); + virtual posture_t GetPosture(); + virtual void SetPosture(const posture_t); + virtual leanState_t GetLeanState(); + virtual void SetLeanState(const leanState_t); + virtual walkState_t GetWalkState(); + virtual void SetWalkState(const walkState_t); + virtual weaponReadyState_t GetWeaponReadyState(); + virtual void SetWeaponReadyState(const weaponReadyState_t); + virtual float GetApplyDamageScale(); + virtual void SetApplyDamageScale(float, float); + virtual const idVehicle *GetVehicle(); + virtual idVehicle *GetVehicle_2(); + virtual bool IsDrivingVehicle(); + virtual usableState_t GetOnlineUsableState(); + virtual aiWalkModifier_t GetWalkModifier(); + virtual aiWalkModifier_t GetRunModifier(); + virtual int AddFiber(const idHandle); + virtual void RemoveFiber(const idHandle); + virtual void SetEventOverloadEnableFlags(const idAIEvent::aiEventClass_t); + virtual void SetEventOverloadDisableFlags(const idAIEvent::aiEventClass_t); + virtual int GetEventResponseFlags(); + virtual const idAINavPowerMoverParms *GetNavParms(); + virtual const idAINavPowerMover3DParms *GetNavParms3d(); + + idAI2::idAIConstant aiConstants; + idAIEditable aiEditable; + idAI2::idAIVolatile aiVolatile; + idAIHealth aiHealth; + idComponentActionScript actionScript; + idAIFSMCallback fsmCallback; + const idDeclInventory *inventoryDecl; + idFormationCoverMgr formationCover; + int takedownWindowClosed; + idAIScriptProxy scriptProxy; + idAI2Patch1 patch1; +}; + +// IDA Local Type ordinal 16587; PDB kind: class. +class idAI2::idAIConstant::idAIPhysics +{ +public: + idVec3 playerCollisionSize; + float heightCrouched; + float aiPathfindRadius; + idContents contents; + idContents clipMask; + idContents playerClipMask; +}; + +// IDA Local Type ordinal 16589; PDB kind: class. +class __declspec(align(4)) idAI2::idAIConstant::idAIMovement +{ +public: + idStr aasName; + idRange moveSpeed; + idRange bodyTurnRate; + idRange moveTurnRate; + float accelRate; + float decelRate; + idTypesafeNumber alignmentTolerance; + aiMovementMode_t defaultMovementMode; + idEntityInfluenceTrail influence; + bool useMoveFSM; + bool allowStrafing; +}; + +// IDA Local Type ordinal 16591; PDB kind: class. +class __declspec(align(4)) idAI2::idAnimWebDefaults +{ +public: + idAnimWebPath webPath; + idList activeLayers; + bool enabled; +}; + +// IDA Local Type ordinal 16592; PDB kind: class. +class __declspec(align(4)) idAI2::idAIConstant::idAIAnimation +{ +public: + const idDeclAnimWeb *animWebs[1]; + idAI2::idAnimWebDefaults animWebDefaults[1]; + idStr eyeInfoName; + idAtomicString viewTagName; + __int8 useFaceManager : 1; + __int8 useLidDeformation : 1; + __int8 useBlinking : 1; + __int8 useFaceSetupEyeTracking : 1; + __int8 useEyeTracking : 1; + __int8 useGestures : 1; + __int8 useLipsync : 1; + __int8 useMoods : 1; + unsigned __int8 : 2; + __int8 useFaceSetupEyeTrackingEnabled : 1; + __int8 useFacialAnimsEnabled : 1; + __int8 useGesturesEnabled : 1; + __int8 useLipsyncEnabled : 1; + __int8 useMoodsEnabled : 1; + __int8 useFacialAnims : 1; +}; + +// IDA Local Type ordinal 16593; PDB kind: class. +class idAI2::idAIConstant::idAIOnlineScoring +{ +public: + bool heavy; +}; + +// IDA Local Type ordinal 16594; PDB kind: class. +class __declspec(align(4)) idAI2::idAIConstant +{ +public: + idAI2::idAIConstant::idAIPhysics physics; + idAI2::idAIConstant::idAIMovement movement; + idAI2::idAIConstant::idAIAnimation animation; + idAI2::idAIConstant::idAIOnlineScoring onlineScoring; +}; + +// IDA Local Type ordinal 16717; PDB kind: class. +class idAI2::idAIVolatile::idAIPhysics +{ +public: + idPhysics_AI object; + aiExtendedClipModelStatus_t extendedClipModelStatus; + int extendedClipModelEndTime; + idClipModel *extendedClipModel; + idAIMoveState moveState; + int movePushEndTime; + int restoreSolidCollisionTime; +}; + +// IDA Local Type ordinal 16718; PDB kind: class. +class idAI2::idAIVolatile::idAIPerception +{ +public: + float fovDot; + int flags; +}; + +// IDA Local Type ordinal 16719; PDB kind: class. +class idAI2::idAIVolatile::idAIAAS +{ +public: + const idAAS2 *aas; + int travelFlags; +}; + +// IDA Local Type ordinal 16720; PDB kind: class. +class idAI2::idAIVolatile::idAIHeadTracking +{ +public: + idAngles targetKickOffset; + idAngles curKickOffset; + idAngles kickAccelRate; + idAngles kickDecelRate; +}; + +// IDA Local Type ordinal 16721; PDB kind: class. +class idAI2::idAIVolatile::idAIEyeTracking +{ +public: + idHandle eyeInfoHandle; +}; + +// IDA Local Type ordinal 16735; PDB kind: class. +class idAI2::idAIVolatile::idAIFocusInfo +{ +public: + idArray foci; + idAIOrientation bodyOrientation; + bool enableHeadTracking; + bool enableBodyRotation; + bool enableAutoFocus; + bool enableGreetings; + idCheckSurroundingsState checkSurroundingsState; +}; + +// IDA Local Type ordinal 16736; PDB kind: class. +class idAI2::idAIVolatile::idAIFacialInfo +{ +public: + idDeclFacialAnimationSet *currentFacialAnimSet; +}; + +// IDA Local Type ordinal 16737; PDB kind: class. +class __declspec(align(8)) idAI2::idAIVolatile::idAIWorldStateInfo +{ +public: + idAIWorldState worldState; + idEntityPtr fakeEnemy; +}; + +// IDA Local Type ordinal 16746; PDB kind: class. +class __declspec(align(8)) idAI2::idAIVolatile::idAIDeath +{ +public: + int nextPainTime; + int ragdollAtRestTime; + int deathTime; + int injuredCount; + int maxDeferDeathTime; + idGoreComponent goreComponent; + idAIDeathInfo deathInfo; + __int8 lootBoxEvent : 1; + __int8 noRagdoll : 1; + __int8 isRagdolling : 1; + __int8 retryDeath : 1; + __int8 droppedLootBox : 1; + __int8 oneShotted : 1; + __int8 isSmoking : 1; + __int8 disableDeathAnims : 1; + unsigned __int8 : 6; + __int8 forceAllowLooting : 1; + __int8 removeEventCalled : 1; +}; + +// IDA Local Type ordinal 16753; PDB kind: class. +class idAI2::idAIVolatile::idAIPain +{ +public: + idAIDamageInfo damageInfo; +}; + +// IDA Local Type ordinal 17117; PDB kind: class. +class __declspec(align(4)) idAI2::idAIVolatile::idAIFSMInfo +{ +public: + idAIFSMManager fsmManager; + __unaligned __declspec(align(1)) idAIActionManager actionManager; + alertCycle_t alertCycle; + alertCycle_t previousAlertCycle; + bool suspend; +}; + +// IDA Local Type ordinal 17121; PDB kind: class. +class idAI2::idAIVolatile::idAICoverInfo +{ +public: + coverAction_t coverAction; + coverAction_t coverActionToAvoid; + coverOrientation_t coverOrientation; +}; + +// IDA Local Type ordinal 17122; PDB kind: class. +class idAI2::idAIVolatile::idDodgeInfo +{ +public: + int nextDodgeTime; + aiMovementMode_t preDodgeMoveMode; +}; + +// IDA Local Type ordinal 17125; PDB kind: class. +class idAI2::idAIVolatile::idAIEventInfo +{ +public: + int flags; + int overloadEnableFlags; + int overloadDisableFlags; + int nextAIEventTime; + idStaticList,4> pendingAIEvents; +}; + +// IDA Local Type ordinal 17202; PDB kind: class. +class idAI2::idAIVolatile::idAIAnimationInfo +{ +public: + idArray animWebAnimator; + aiSubWeb_t subWeb; + idAnimWebCmdCtx awCmdCtx; + idAnimator_TurretNxN<3> turretAnimator; + idAnimator_Pain painAnimator; + idAnimator_RollBones rollBonesAnimator; + idAnimator_FaceTracks faceAnimator; + idAnimator_DragJoints dragJointsAnimator; + tagData_t viewTagData; + int meleeFlags; + int crouchMeleeFlags; + idAnimFSMHumanoid animFSM; +}; + +// IDA Local Type ordinal 17205; PDB kind: class. +class idAI2::idAIVolatile::idPlayerAIControl +{ +public: + idAICamera_Control camera; + idEntityPtr player; + float minHealth; + int endControlTime; + int startControlTime; + int nextBeatTime; + bool heartBeatLub; + bool popping; + idVec3 bodyHitNormal; + idHandle possessionEvent; + idAngles viewAngle; + idInterpolate introInterp; + idClipQuery attackQuery; +}; + +// IDA Local Type ordinal 17210; PDB kind: class. +class idAI2::idAIVolatile::idAIScriptInfo +{ +public: + int flags; + idThread *thread; + idStaticList,4> threads; + idStaticList,4> fibers; + const idAIEvent *currentAIEvent; + int lastAIEventClass; + idVec3 lastAIEventOrigin; + idEntityPtr lastAIEventOriginator; + idEntityPtr lastAIEventInstigator; +}; + +// IDA Local Type ordinal 17213; PDB kind: class. +class __declspec(align(4)) idAI2::idAIVolatile::idAIDebugging +{ +public: + idArray debugModels; + idArray debugSounds; + idAI2::aiDebugLevel_t modelLevel; + idAI2::aiDebugLevel_t soundLevel; + idStr debugText; + idAI2::aiDebugLevel_t textLevel; + int errorFlags; + char modelIndex; + char soundIndex; +}; + +// IDA Local Type ordinal 17214; PDB kind: class. +class idAI2::idAIVolatile::idAIGroupStatus +{ +public: + encounterGroupRole_t currentRole; + encounterGroupRole_t pendingRole; + idAI2::aiCondition_t condition; + bool roleChangeResponseRequired; + bool voChainAudible; + voChainState_t voChainCategory; + voChainState_t voChainState; + idAI2::aiCondition_t preventativeCondition; +}; + +// IDA Local Type ordinal 17237; PDB kind: class. +class __declspec(align(8)) idAI2::idVisibilityObscurity +{ +public: + idClipQuery clipQuery[7]; + idArray visibilityObscurity; + int lastSubmitFrame; + bool anyCover; + bool anyClearLanes; + bool valid; +}; + +// IDA Local Type ordinal 17240; PDB kind: class. +class idAI2::idAIVolatile +{ +public: + idAI2::idAIVolatile::idAIPhysics physics; + idAI2::idAIVolatile::idAIPerception perception; + idAI2::idAIVolatile::idAIAAS aas; + idAI2::idAIVolatile::idAIHeadTracking headTracking; + idAI2::idAIVolatile::idAIEyeTracking eyeTracking; + idAI2::idAIVolatile::idAIFocusInfo focus; + idAI2::idAIVolatile::idAIFacialInfo facialInfo; + idAI2::idAIVolatile::idAIWorldStateInfo world; + idAI2::idAIVolatile::idAIDeath death; + idAI2::idAIVolatile::idAIPain pain; + __unaligned __declspec(align(1)) idAI2::idAIVolatile::idAIFSMInfo fsms; + idAIFireControl *fireControl; + idAI2::idAIVolatile::idAICoverInfo cover; + idAI2::idAIVolatile::idDodgeInfo dodging; + idAI2::idAIVolatile::idAIEventInfo aiEvents; + idAI2::idAIVolatile::idAIAnimationInfo animation; + idAI2::idAIVolatile::idPlayerAIControl playerControl; + idAI2::idAIVolatile::idAIScriptInfo script; + idAI2::idAIVolatile::idAIDebugging debugging; + idAI2::idAIVolatile::idAIGroupStatus groupStatus; + idArray trajectories; + idAIMemory memory; + idAIVoiceController voiceController; + idHandle encounterGroupHandle; + idAICoverManager coverManager; + idFaceMgr faceMgr; + idAIPlayerInteraction aiPlayerInteraction; + playerInteractionState_t tempPlayerInteractionInfoState; + __int8 isInCombatForSubtitles : 1; + __int8 leftPlayerInteractionRadius : 1; + __int8 receivedPlayerInteractionEvent : 1; + __int8 activateWhenVisibleOverride : 1; + __int8 isIdleTracking : 1; + __int8 isInteracting : 1; + __int8 incapacitatedPlayer : 1; + __int8 firstThink : 1; + unsigned __int8 : 7; + __int8 isObstacleAvoiding_Player : 1; + __int16 dropState; + __int16 numActionNodes; + idAI2::idVisibilityObscurity visibilityObscurity; + idMeleeTrace meleeTrace; + idClipQuery dropToGroundQuery; + idArray playerDamageTaken; + idArray playerMeleeTime; +}; + +// IDA Local Type ordinal 21514; PDB kind: class. +class idAI2::FindClosestFocus::__l2::idLookDebug +{ +public: + idAI2 *ai; + const char *text; + int time; +}; diff --git a/source/tungsten/game/ai/aiactionscript.h b/source/tungsten/game/ai/aiactionscript.h new file mode 100644 index 0000000..9055639 --- /dev/null +++ b/source/tungsten/game/ai/aiactionscript.h @@ -0,0 +1,205 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\aiactionscript.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1792; PDB kind: enum. +enum aiActionScriptFlags_t : __int32 +{ + ACTIONSCRIPT_ABORT_FOR_COMBAT = 0x1, + ACTIONSCRIPT_ABORT_FOR_SEARCH = 0x2, + ACTIONSCRIPT_IGNORE_AI_EVENTS = 0x4, + ACTIONSCRIPT_NO_COMBAT_CHATTER = 0x8, + ACTIONSCRIPT_NO_TARGETS = 0x10, + ACTIONSCRIPT_IGNORE_PLAYER_APPROACH = 0x20, + ACTIONSCRIPT_NO_DAMAGE = 0x40, + ACTIONSCRIPT_NO_TWITCH_PAIN = 0x80, + ACTIONSCRIPT_ENABLE_STAGGER_PAIN = 0x100, + ACTIONSCRIPT_ENABLE_AUTOFOCUS = 0x200, +}; + +// IDA Local Type ordinal 19222; PDB kind: class. +class idTarget_ActionScript : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19223. + virtual idTypeInfo *GetType(); + virtual ~idTarget_ActionScript(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + idList actionScript; +}; + +// IDA Local Type ordinal 21187; PDB kind: class. +class AC_NoActionScript : public idAIStateTransitionStatic +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21188. + virtual idTypeInfo *GetType(); + virtual ~AC_NoActionScript(); + virtual int Evaluate(idFiniteStateMachine *, idState *, const int); + virtual void InternalSave(idFile_String *, const char *, const idList *); + virtual void Save(idFile_String *, const char *, const idList *); + virtual idAIStateTransition::aiTransCode_t Evaluate_2(idAI2 *, idAIFSM *, idAIState *, const int); + +}; + +// IDA Local Type ordinal 27640; PDB kind: typedef. +typedef idList aiActionScript_t; diff --git a/source/tungsten/game/ai/aibehaviors.h b/source/tungsten/game/ai/aibehaviors.h new file mode 100644 index 0000000..f6bc508 --- /dev/null +++ b/source/tungsten/game/ai/aibehaviors.h @@ -0,0 +1,24 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\aibehaviors.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16692; PDB kind: class. +class idAIBehaviors : public idClass +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16693. + virtual idTypeInfo *GetType(); + virtual ~idAIBehaviors(); + + const idDeclAIBehavior *decl; + const idDeclAIBehaviorVO *declBehaviorVo; + const idDeclAIBehaviorVOChains *declBehaviorVoChains; + const idDeclAIBehaviorEvents *declBehaviorEvents; + const idDeclTrackingParms *aimTrackingParms; + const idDeclTrackingParms *lookTrackingParms; + float avoidRadius; +}; diff --git a/source/tungsten/game/ai/aiblackboard.h b/source/tungsten/game/ai/aiblackboard.h new file mode 100644 index 0000000..d708c25 --- /dev/null +++ b/source/tungsten/game/ai/aiblackboard.h @@ -0,0 +1,33 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\aiblackboard.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2377; PDB kind: enum. +enum idAIBlackboard::varArray_t : __int32 +{ + VARRAY_NONE = 0x0, + VARRAY_STRING = 0x1, + VARRAY_INT = 0x2, + VARRAY_FLOAT = 0x3, +}; + +// IDA Local Type ordinal 17295; PDB kind: struct. +struct idAIBlackboard::idVarInfo +{ + idAIBlackboard::varArray_t varArray; + int index; +}; + +// IDA Local Type ordinal 17298; PDB kind: class. +class idAIBlackboard +{ +public: + idStaticList stringVars; + idStaticList floatVars; + idStaticList intVars; + idStaticList vars; +}; diff --git a/source/tungsten/game/ai/aicamera.h b/source/tungsten/game/ai/aicamera.h new file mode 100644 index 0000000..e6c0bd1 --- /dev/null +++ b/source/tungsten/game/ai/aicamera.h @@ -0,0 +1,737 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\aicamera.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14501; PDB kind: class. +class __declspec(align(8)) idCamera : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 33877. + virtual idTypeInfo *GetType(); + virtual ~idCamera(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 HandleUserCmds(const usercmd_t *, const usercmd_t *); + virtual int InhibitFlags(); + virtual int InhibitButtons(); + virtual bool CanShowCrosshair(); + virtual bool InternalActivate(idEntity *); + virtual bool InternalDeactivate(); + + idEntityPtr activator; +}; + +// IDA Local Type ordinal 18657; PDB kind: class. +class idAIDebugCamera : public idEntityCamera +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34161. + virtual idTypeInfo *GetType(); + virtual ~idAIDebugCamera(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 HandleUserCmds(const usercmd_t *, const usercmd_t *); + virtual int InhibitFlags(); + virtual int InhibitButtons(); + virtual bool CanShowCrosshair(); + virtual bool InternalActivate(idEntity *); + virtual bool InternalDeactivate(); + virtual idEntity *GetTargetEntity(); + virtual void SetTargetEntity(idEntity *); + virtual void GetTargetPos(idVec3 *); + virtual void SetTargetPos(const idVec3 *); + virtual float GetDistance(); + virtual void SetDistance(float); + virtual void GetOffset(idVec3 *); + virtual void SetOffset(const idVec3 *); + virtual const idAngles *GetAngles(); + virtual void SetAngles(const idAngles *); + virtual void CalculateViewParms(); + +}; + +// IDA Local Type ordinal 18922; PDB kind: class. +class __declspec(align(8)) idTrailerCamera : public idEntityCamera +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34134. + virtual idTypeInfo *GetType(); + virtual ~idTrailerCamera(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 HandleUserCmds(const usercmd_t *, const usercmd_t *); + virtual int InhibitFlags(); + virtual int InhibitButtons(); + virtual bool CanShowCrosshair(); + virtual bool InternalActivate(idEntity *); + virtual bool InternalDeactivate(); + virtual idEntity *GetTargetEntity(); + virtual void SetTargetEntity(idEntity *); + virtual void GetTargetPos(idVec3 *); + virtual void SetTargetPos(const idVec3 *); + virtual float GetDistance(); + virtual void SetDistance(float); + virtual void GetOffset(idVec3 *); + virtual void SetOffset(const idVec3 *); + virtual const idAngles *GetAngles(); + virtual void SetAngles(const idAngles *); + virtual void CalculateViewParms(); + + usercmd_t prevCmd; + float fov; + idVec4 dof; + float xyzSpeed; + float rotationSpeed; + float dutchAngle; +}; + +// IDA Local Type ordinal 18941; PDB kind: class. +class __declspec(align(8)) idRaceCamera : public idCameraView +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34124. + virtual idTypeInfo *GetType(); + virtual ~idRaceCamera(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 HandleUserCmds(const usercmd_t *, const usercmd_t *); + virtual int InhibitFlags(); + virtual int InhibitButtons(); + virtual bool CanShowCrosshair(); + virtual bool InternalActivate(idEntity *); + virtual bool InternalDeactivate(); + + idEntityPtr owner; + idEntityPtr vehicle; + float yaw; + idVec3 posPrev; + idAngles cameraBreath; + idAngles cameraBreathPrev; + idVec3 cameraPos; + idAngles cameraAngles; + idMat3 cameraAxis; + int cameraBreathNextUpdate; + int cameraNoObstructionTime; + int repositionTime; + int fadeInTime; + int fadeOutTime; + idNavSplinePosition navSplinePos; + idVec3 goalPos; + idSWF *gui; +}; diff --git a/source/tungsten/game/ai/aidamageinfo.h b/source/tungsten/game/ai/aidamageinfo.h new file mode 100644 index 0000000..ff982df --- /dev/null +++ b/source/tungsten/game/ai/aidamageinfo.h @@ -0,0 +1,98 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\aidamageinfo.h +// Recovered logical types: 7 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 3513; PDB kind: unknown. +typedef CCalAudioMetadata:: CCalImageInfo::; + +// IDA Local Type ordinal 14697; PDB kind: struct. +struct damageInfo_t +{ + idEntityPtr inflictor; + idEntityPtr attacker; + const idDeclDamage *damageDef; + float damage; + int time; + idEntityPtr actor; + int actorTime; +}; + +// IDA Local Type ordinal 16749; PDB kind: struct. +struct idAIDamageInfo::recentDamager_t +{ + idSpawnId spawnId; + float recentDamage; +}; + +// IDA Local Type ordinal 16752; PDB kind: class. +class idAIDamageInfo +{ +public: + idStaticList impulses; + idEntityPtr inflictor; + idEntityPtr attacker; + idStaticList recentDamagers; + idIndex jointIndex; + int deathImpulseIdx; + float frameDamage; + float frameArmorDamage; + float recentUnscaledDamage; + float recentBodyDamage; + int lastBloodSprayTime; + int mostDamagedIndex; + bool shouldPain; + idAtomicString injuryDamageGroup; + int injuryGoreLevelIndex; +}; + +// IDA Local Type ordinal 17154; PDB kind: struct. +struct idAIMoveInfo +{ + idEntityPtr destEntity; + idVec3 destPosition; + idMat3 destOrientation; + idVec3 destNormal; + bool useDestOrientation; + aiArrivalAction_t arrivalAction; + float arrivalRadius; + int moveFlags; +}; + +// IDA Local Type ordinal 18492; PDB kind: struct. +struct pageImageInfo_t +{ + void *bits; + int bytePitch; +}; + +// IDA Local Type ordinal 25815; PDB kind: class. +class CCalImageInfo : public CCalMediaInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 25816. + virtual ~CCalImageInfo(); + virtual unsigned int AddRef(); + virtual unsigned int Release(); + virtual HRESULT Lock(); + virtual HRESULT TryLock(); + virtual HRESULT Unlock(); + virtual CCalBase *Enqueue(CCalBase **); + virtual CCalBase *Dequeue(CCalBase **); + virtual HRESULT GetHResult(); + virtual void SetMediaType(CCalBase::MEDIA_TYPE); + virtual void SetCodecType(CCalBase::CODEC_TYPE); + virtual void SetCodecVersion(unsigned int); + virtual CCalBase::MEDIA_TYPE GetMediaType(); + virtual CCalBase::CODEC_TYPE GetCodecType(); + virtual unsigned int GetCodecVersion(); + virtual void InitializeMemberVariables(); + + unsigned int m_ulWidth; + unsigned int m_ulHeight; + CCalBase::IMAGE_FORMAT_TYPE m_format; + CCalBase::ORIENTATION_MODE m_OrientationMode; +}; diff --git a/source/tungsten/game/ai/aideathvolume.h b/source/tungsten/game/ai/aideathvolume.h new file mode 100644 index 0000000..88c35ed --- /dev/null +++ b/source/tungsten/game/ai/aideathvolume.h @@ -0,0 +1,182 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\aideathvolume.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 21498; PDB kind: class. +class __declspec(align(8)) idAIDeathVolume : public idVolume +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34104. + virtual idTypeInfo *GetType(); + virtual ~idAIDeathVolume(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + idVec3 referenceDir; + bool unidirectional; + bool makeRagdollTouchTriggers; + float killDuration; + const idDeclDamage *damageDecl; + idAnimWebPath animFacingRefFwd; + idAnimWebPath animFacingRefLeft; + idAnimWebPath animFacingRefRight; + idAnimWebPath animFacingRefBack; + idEntityPtr lastActivator; +}; diff --git a/source/tungsten/game/ai/aievents/aievent.h b/source/tungsten/game/ai/aievents/aievent.h new file mode 100644 index 0000000..0761c3b --- /dev/null +++ b/source/tungsten/game/ai/aievents/aievent.h @@ -0,0 +1,102 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\aievents\aievent.h +// Recovered logical types: 6 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1276; PDB kind: enum. +enum idAIEvent::aiEventClass_t : __int32 +{ + AIEVENT_NONE = 0x0, + AIEVENT_FOOTSTEP = 0x1, + AIEVENT_GUNFIRE = 0x2, + AIEVENT_EXPLOSION = 0x4, + AIEVENT_GRENADE = 0x8, + AIEVENT_BODY = 0x10, + AIEVENT_VEHICLE = 0x20, + AIEVENT_AIM = 0x40, + AIEVENT_VOICE = 0x200, + AIEVENT_INVESTIGATE = 0x800, + AIEVENT_PROJECTILE = 0x1000, + AIEVENT_POSSESSION = 0x2000, + AIEVENT_DOOR_MOTION = 0x10000, + AIEVENT_DEAD_BODY_LAND = 0x20000, + AIEVENT_DEPLOY_SOUND = 0x40000, + AIEVENT_VEHICLE_SOUND = 0x80000, + AIEVENT_PLAYER_GRENADE = 0x100000, + AIEVENT_PLAYER_INTERACTION = 0x200000, + AIEVENT_RELOAD = 0x1000000, + AIEVENT_PROJECTILE_IMPACT = 0x2000000, + AIEVENT_DELAYED_VO = 0x4000000, + AIEVENT_ALL_AI = 0xFFEFFFFF, + AIEVENT_ALL_PLAYER = 0x100000, + AIEVENT_ALL = 0xFFFFFFFF, +}; + +// IDA Local Type ordinal 2368; PDB kind: enum. +enum idAIEvent::aiEventUpdateResult_t : __int32 +{ + AIUPDATE_OK = 0x0, + AIUPDATE_REMOVE = 0x1, +}; + +// IDA Local Type ordinal 2372; PDB kind: enum. +enum idAIEvent::aiEventPriority_t : __int32 +{ + AIPRIORITY_VERY_LOW = 0x0, + AIPRIORITY_LOW = 0x19, + AIPRIORITY_MEDIUM = 0x32, + AIPRIORITY_HIGH = 0x4B, + AIPRIORITY_VERY_HIGH = 0x64, +}; + +// IDA Local Type ordinal 2758; PDB kind: enum. +enum idAIEvent::aiEventTrigger_t : __int32 +{ + TRIGGERS_NOTHING = 0x0, + TRIGGERS_COMBAT = 0x1, + TRIGGERS_SEARCH = 0x2, + TRIGGERS_RELAXED = 0x4, +}; + +// IDA Local Type ordinal 14193; PDB kind: class. +class idEvent : public idClass +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14194. + virtual idTypeInfo *GetType(); + virtual ~idEvent(); + + const idEventDef *eventdef; + idEventArg args[8]; + unsigned __int8 *data; + int time; + idEventReceiver *object; + idLinkList eventNode; +}; + +// IDA Local Type ordinal 15125; PDB kind: class. +class idAIEvent : public idClass +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15126. + virtual idTypeInfo *GetType(); + virtual ~idAIEvent(); + virtual void Clear(); + virtual idAIEvent::aiEventUpdateResult_t InternalUpdate(const int); + virtual idAIEvent::aiEventUpdateResult_t InternalUpdateAttached(const int); + virtual bool InternalIsTouching(const idEntity *, const int); + virtual void InternalDrawDebug(const int, const int, const int); + virtual float InternalGetIntensity(const idEntity *); + + const idDeclAiEvent *eventDecl; + bool enabled; + idEntityPtr originator; + idEntityPtr instigator; + idVec3 origin; + idVec3 stimulusOrigin; + int startTime; + idHandle handle; +}; diff --git a/source/tungsten/game/ai/aievents/aieventmanager.h b/source/tungsten/game/ai/aievents/aieventmanager.h new file mode 100644 index 0000000..4402604 --- /dev/null +++ b/source/tungsten/game/ai/aievents/aieventmanager.h @@ -0,0 +1,29 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\aievents\aieventmanager.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13916; PDB kind: class. +class idVoiceEventManager +{ +public: + idList eventsVisemeSimple; + idList eventsGame; + idList eventsText; + idList eventsPunc; + idList eventsAnim; + idList eventsMood; +}; + +// IDA Local Type ordinal 16535; PDB kind: class. +class idAIEventManager +{ +public: + idList eventList; + idHashIndex eventHash; + idList,5> receivers; + idList eventPools; +}; diff --git a/source/tungsten/game/ai/aievents/aieventpool.h b/source/tungsten/game/ai/aievents/aieventpool.h new file mode 100644 index 0000000..0e81920 --- /dev/null +++ b/source/tungsten/game/ai/aievents/aieventpool.h @@ -0,0 +1,34 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\aievents\aieventpool.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2301; PDB kind: enum. +enum animEventBool_t : __int32 +{ + B_FALSE = 0x0, + B_TRUE = 0x1, +}; + +// IDA Local Type ordinal 16532; PDB kind: class. +class idAIEventPool : public idClass +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16533. + virtual idTypeInfo *GetType(); + virtual ~idAIEventPool(); + + int initialPoolSize; + const idTypeInfo *eventType; + idList freeEvents; +}; + +// IDA Local Type ordinal 17639; PDB kind: class. +class eventBool +{ +public: + bool value; +}; diff --git a/source/tungsten/game/ai/aievents/aieventprojectile.h b/source/tungsten/game/ai/aievents/aieventprojectile.h new file mode 100644 index 0000000..8f2034d --- /dev/null +++ b/source/tungsten/game/ai/aievents/aieventprojectile.h @@ -0,0 +1,24 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\aievents\aieventprojectile.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 21490; PDB kind: class. +class idAIEventProjectile : public idAIEventTrace +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21491. + virtual idTypeInfo *GetType(); + virtual ~idAIEventProjectile(); + virtual void Clear(); + virtual idAIEvent::aiEventUpdateResult_t InternalUpdate(const int); + virtual idAIEvent::aiEventUpdateResult_t InternalUpdateAttached(const int); + virtual bool InternalIsTouching(const idEntity *, const int); + virtual void InternalDrawDebug(const int, const int, const int); + virtual float InternalGetIntensity(const idEntity *); + virtual float GetDistance(); + +}; diff --git a/source/tungsten/game/ai/aievents/aievents.h b/source/tungsten/game/ai/aievents/aievents.h new file mode 100644 index 0000000..5ec6ab1 --- /dev/null +++ b/source/tungsten/game/ai/aievents/aievents.h @@ -0,0 +1,25 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\aievents\aievents.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13382; PDB kind: class. +class idAnimEvents +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13383. + virtual ~idAnimEvents(); + + idList list; + idHashIndex hashIndex; +}; + +// IDA Local Type ordinal 13390; PDB kind: struct. +struct idAnimEvents::animEventInfo_t +{ + idAtomicStringT animRef; + idList events; +}; diff --git a/source/tungsten/game/ai/aievents/aieventsound.h b/source/tungsten/game/ai/aievents/aieventsound.h new file mode 100644 index 0000000..e2aae01 --- /dev/null +++ b/source/tungsten/game/ai/aievents/aieventsound.h @@ -0,0 +1,24 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\aievents\aieventsound.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 21476; PDB kind: class. +class idAIEventSound : public idAIEventSphere +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21477. + virtual idTypeInfo *GetType(); + virtual ~idAIEventSound(); + virtual void Clear(); + virtual idAIEvent::aiEventUpdateResult_t InternalUpdate(const int); + virtual idAIEvent::aiEventUpdateResult_t InternalUpdateAttached(const int); + virtual bool InternalIsTouching(const idEntity *, const int); + virtual void InternalDrawDebug(const int, const int, const int); + virtual float InternalGetIntensity(const idEntity *); + virtual const idColor *GetColor(); + +}; diff --git a/source/tungsten/game/ai/aievents/aieventsphere.h b/source/tungsten/game/ai/aievents/aieventsphere.h new file mode 100644 index 0000000..1bb43c2 --- /dev/null +++ b/source/tungsten/game/ai/aievents/aieventsphere.h @@ -0,0 +1,24 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\aievents\aieventsphere.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 21474; PDB kind: class. +class idAIEventSphere : public idAIEvent +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21475. + virtual idTypeInfo *GetType(); + virtual ~idAIEventSphere(); + virtual void Clear(); + virtual idAIEvent::aiEventUpdateResult_t InternalUpdate(const int); + virtual idAIEvent::aiEventUpdateResult_t InternalUpdateAttached(const int); + virtual bool InternalIsTouching(const idEntity *, const int); + virtual void InternalDrawDebug(const int, const int, const int); + virtual float InternalGetIntensity(const idEntity *); + virtual const idColor *GetColor(); + +}; diff --git a/source/tungsten/game/ai/aievents/aieventtrace.h b/source/tungsten/game/ai/aievents/aieventtrace.h new file mode 100644 index 0000000..43a60cb --- /dev/null +++ b/source/tungsten/game/ai/aievents/aieventtrace.h @@ -0,0 +1,55 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\aievents\aieventtrace.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16706; PDB kind: class. +class idAIMoveInterface +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16710. + virtual aiMoveStatus_t GetMoveStatus(); + virtual const idVec3 *GetFinalPoint(); + virtual bool RecentlyFailedMove(const aiMoveReason_t, const idTypesafeNumber); + virtual void MoveFailed(const aiMoveReason_t, const aiMoveStatus_t, const idTypesafeNumber); + virtual bool PointInMovementRange(const idVec3 *, const idVec3 *, float, float *); + virtual bool ReachedPoint(const idVec3 *, const float); + virtual bool WillReachPoint(const idVec3 *, float, bool); + virtual float GetReachedEntityDist(const idEntity *, const float); + virtual bool ReachedEntity(const idEntity *, const float); + virtual bool WillReachEntity(const idEntity *, const float, const float); + virtual bool IsPlayingTraversalAnim(); + virtual bool IsLineInNavGraph(const idVec3 *, const idVec3 *, idVec3 *); + virtual const idVec3 *GetNextPoint(); + virtual const idObstacleInfo *GetObstacleInfo(); + virtual idObstacleInfo *GetObstacleInfo_2(); + virtual int GetLastTravelTime(); + virtual const aas2Traversal_t *GetDestinationTraversal(); + virtual void SetTranslationDeltaScale(const idVec3 *); + virtual aiMoveStatus_t TestMove(const idAIMoveParms *, idVec3 *, idVec3 *, int *); + +}; + +// IDA Local Type ordinal 21482; PDB kind: class. +class __declspec(align(8)) idAIEventTrace : public idAIEvent +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21483. + virtual idTypeInfo *GetType(); + virtual ~idAIEventTrace(); + virtual void Clear(); + virtual idAIEvent::aiEventUpdateResult_t InternalUpdate(const int); + virtual idAIEvent::aiEventUpdateResult_t InternalUpdateAttached(const int); + virtual bool InternalIsTouching(const idEntity *, const int); + virtual void InternalDrawDebug(const int, const int, const int); + virtual float InternalGetIntensity(const idEntity *); + virtual float GetDistance(); + + idVec3 dir; + idClipQuery traceQuery; + int lastTraceFrame; + trace_t lastTraceResult; +}; diff --git a/source/tungsten/game/ai/aievents/aieventvoice.h b/source/tungsten/game/ai/aievents/aieventvoice.h new file mode 100644 index 0000000..6cf7292 --- /dev/null +++ b/source/tungsten/game/ai/aievents/aieventvoice.h @@ -0,0 +1,40 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\aievents\aieventvoice.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 21478; PDB kind: class. +class idAIEventVoice : public idAIEventSound +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21479. + virtual idTypeInfo *GetType(); + virtual ~idAIEventVoice(); + virtual void Clear(); + virtual idAIEvent::aiEventUpdateResult_t InternalUpdate(const int); + virtual idAIEvent::aiEventUpdateResult_t InternalUpdateAttached(const int); + virtual bool InternalIsTouching(const idEntity *, const int); + virtual void InternalDrawDebug(const int, const int, const int); + virtual float InternalGetIntensity(const idEntity *); + virtual const idColor *GetColor(); + +}; + +// IDA Local Type ordinal 21486; PDB kind: class. +class idAIEvent_Vehicle : public idAIEventWedge +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21487. + virtual idTypeInfo *GetType(); + virtual ~idAIEvent_Vehicle(); + virtual void Clear(); + virtual idAIEvent::aiEventUpdateResult_t InternalUpdate(const int); + virtual idAIEvent::aiEventUpdateResult_t InternalUpdateAttached(const int); + virtual bool InternalIsTouching(const idEntity *, const int); + virtual void InternalDrawDebug(const int, const int, const int); + virtual float InternalGetIntensity(const idEntity *); + +}; diff --git a/source/tungsten/game/ai/aievents/aieventwedge.h b/source/tungsten/game/ai/aievents/aieventwedge.h new file mode 100644 index 0000000..2ca8351 --- /dev/null +++ b/source/tungsten/game/ai/aievents/aieventwedge.h @@ -0,0 +1,38 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\aievents\aieventwedge.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2367; PDB kind: unknown. +enum idAIEventWedge:: : __int32 +{ + WEDGEPLANE_TOP = 0x0, + WEDGEPLANE_BOTTOM = 0x1, + WEDGEPLANE_LEFT = 0x2, + WEDGEPLANE_RIGHT = 0x3, + WEDGEPLANE_MAX = 0x4, +}; + +// IDA Local Type ordinal 21472; PDB kind: class. +class idAIEventWedge : public idAIEvent +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21473. + virtual idTypeInfo *GetType(); + virtual ~idAIEventWedge(); + virtual void Clear(); + virtual idAIEvent::aiEventUpdateResult_t InternalUpdate(const int); + virtual idAIEvent::aiEventUpdateResult_t InternalUpdateAttached(const int); + virtual bool InternalIsTouching(const idEntity *, const int); + virtual void InternalDrawDebug(const int, const int, const int); + virtual float InternalGetIntensity(const idEntity *); + + idVec3 dir; + float radius; + int lastRefresh; + idMat3 axis; + idArray planes; +}; diff --git a/source/tungsten/game/ai/aifirecontrol.h b/source/tungsten/game/ai/aifirecontrol.h new file mode 100644 index 0000000..c1c03e1 --- /dev/null +++ b/source/tungsten/game/ai/aifirecontrol.h @@ -0,0 +1,75 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\aifirecontrol.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17118; PDB kind: class. +class __declspec(align(4)) idAIFireControl : public idClass +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17120. + virtual idTypeInfo *GetType(); + virtual ~idAIFireControl(); + virtual void DormantEnd(const int); + virtual int GetNextPullTriggerTime(const idWeapon *); + virtual void ResetNextPullTriggerTime(idAI2 *); + virtual void Update_Weapon(idAI2 *, const int); + virtual void Update_HoldFire(idAI2 *, const int); + virtual void Update_FireWhenReady(idAI2 *, const int); + virtual void Update_SprayWhenReady(idAI2 *, const int); + virtual int NumWeaponInfos(); + virtual const idAIFireControl::weaponInfo_t *GetWeaponInfo(const int); + virtual bool CanFireWeapons(idAI2 *, const idAIEntityState *, const int); + virtual void SetNextPullTriggerTime(const idWeapon *, const int); + virtual void SetEndBurstTime(const idWeapon *, const int); + virtual int GetEndBurstTime(const idWeapon *); + virtual void SetFireAtLastKnownDuration(const idWeapon *, const int); + virtual int GetFireAtLastKnownDuration(const idWeapon *); + + aiFireMode_t fireMode; + bool freeAmmo; + bool allowReloads; +}; + +// IDA Local Type ordinal 17119; PDB kind: struct. +const struct idAIFireControl::weaponInfo_t +{ + equipSlot_t slot; +}; + +// IDA Local Type ordinal 21466; PDB kind: struct. +struct idAIFireControl_Human::fcWeaponState_t +{ + int nextPullTriggerTime; + int endBurstTime; + int fireAtLastKnownDuration; +}; + +// IDA Local Type ordinal 21467; PDB kind: class. +class idAIFireControl_Human : public idAIFireControl +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21468. + virtual idTypeInfo *GetType(); + virtual ~idAIFireControl_Human(); + virtual void DormantEnd(const int); + virtual int GetNextPullTriggerTime(const idWeapon *); + virtual void ResetNextPullTriggerTime(idAI2 *); + virtual void Update_Weapon(idAI2 *, const int); + virtual void Update_HoldFire(idAI2 *, const int); + virtual void Update_FireWhenReady(idAI2 *, const int); + virtual void Update_SprayWhenReady(idAI2 *, const int); + virtual int NumWeaponInfos(); + virtual const idAIFireControl::weaponInfo_t *GetWeaponInfo(const int); + virtual bool CanFireWeapons(idAI2 *, const idAIEntityState *, const int); + virtual void SetNextPullTriggerTime(const idWeapon *, const int); + virtual void SetEndBurstTime(const idWeapon *, const int); + virtual int GetEndBurstTime(const idWeapon *); + virtual void SetFireAtLastKnownDuration(const idWeapon *, const int); + virtual int GetFireAtLastKnownDuration(const idWeapon *); + + idAIFireControl_Human::fcWeaponState_t weaponStates[2]; +}; diff --git a/source/tungsten/game/ai/aigui.h b/source/tungsten/game/ai/aigui.h new file mode 100644 index 0000000..b083466 --- /dev/null +++ b/source/tungsten/game/ai/aigui.h @@ -0,0 +1,31 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\aigui.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2356; PDB kind: enum. +enum aiGuiInfo_t::aiState_t : __int32 +{ + STATE_ALIVE = 0x0, + STATE_HIDDEN = 0x2, +}; + +// IDA Local Type ordinal 17305; PDB kind: class. +class __declspec(align(4)) idAIGUI +{ +public: + idList pages; + idList debugPages; + idRenderModelGui *guiModel; + bool initialized; +}; + +// IDA Local Type ordinal 21448; PDB kind: struct. +struct aiGuiInfo_t +{ + idEntity *ai; + aiGuiInfo_t::aiState_t aiState; +}; diff --git a/source/tungsten/game/ai/aiinteraction.h b/source/tungsten/game/ai/aiinteraction.h new file mode 100644 index 0000000..d41d0e8 --- /dev/null +++ b/source/tungsten/game/ai/aiinteraction.h @@ -0,0 +1,343 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\aiinteraction.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19036; PDB kind: class. +class idTrigger_AIInteraction : public idTrigger +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19037. + virtual idTypeInfo *GetType(); + virtual ~idTrigger_AIInteraction(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 bool CanActivate(idEntity *); + + idList actionScript; +}; + +// IDA Local Type ordinal 21413; PDB kind: class. +class idAIInteraction : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21414. + virtual idTypeInfo *GetType(); + virtual ~idAIInteraction(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + const idDeclAIInteraction *interactionDecl; + int startTime; + int nextEvent; + idEntityPtr activator; +}; diff --git a/source/tungsten/game/ai/aimemory.h b/source/tungsten/game/ai/aimemory.h new file mode 100644 index 0000000..f2dbaf5 --- /dev/null +++ b/source/tungsten/game/ai/aimemory.h @@ -0,0 +1,240 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\aimemory.h +// Recovered logical types: 6 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2245; PDB kind: enum. +enum idAIMemory::aiMemoryFlags_t : __int32 +{ + AIMEMORY_FORCE_COVER = 0x1, +}; + +// IDA Local Type ordinal 2250; PDB kind: enum. +enum idAIMemory::aiSearchToStimulusMode : __int32 +{ + AISEARCH_TO_STIMULUS_NONE = 0x0, + AISEARCH_TO_STIMULUS_EYES = 0x1, + AISEARCH_TO_STIMULUS_ORIGIN = 0x2, +}; + +// IDA Local Type ordinal 2258; PDB kind: enum. +enum idAIMemory::aiMemoryAnimAfterOverride : __int32 +{ + AIMEMORY_ANIMAFTER_OVERRIDE_DEFAULT = 0x0, + AIMEMORY_ANIMAFTER_OVERRIDE_IDLE = 0x1, + AIMEMORY_ANIMAFTER_OVERRIDE_RUN = 0x2, +}; + +// IDA Local Type ordinal 12930; PDB kind: class. +class __declspec(align(4)) idFile_Memory : public idFile +{ +public: + // Recovered virtual interface; IDA vtable ordinal 12932. + virtual ~idFile_Memory(); + virtual const char *GetName(); + virtual const char *GetFullPath(); + virtual unsigned int Read(void *, unsigned int); + virtual unsigned int Write(const void *, unsigned int); + virtual unsigned int ReadOfs(__int64, void *, unsigned int); + virtual unsigned int WriteOfs(__int64, const void *, unsigned int); + virtual bool Lock(__int64, unsigned int, fsLock_t); + virtual bool Unlock(__int64, unsigned int); + virtual __int64 Length(); + virtual void SetLength(unsigned int); + virtual __int64 Tell(); + virtual int Seek(__int64, fsOrigin_t); + virtual unsigned int Printf(const char *, ...); + virtual unsigned int VPrintf(const char *, char *); + virtual unsigned int WriteFloatString(const char *, ...); + virtual unsigned int Timestamp(); + virtual void Flush(); + virtual void ForceFlush(); + virtual int GetSectorSize(); + virtual fsDevice_t GetDevice(); + virtual bool IsOSNative(); + virtual void Clear(bool); + + idStrStatic<260> name; + int mode; + unsigned int maxSize; + unsigned int fileSize; + unsigned int allocated; + unsigned int timestamp; + char *filePtr; + char *curPtr; + bool ownsData; +}; + +// IDA Local Type ordinal 17228; PDB kind: struct. +struct __declspec(align(4)) idAIMemory::idScenePointList +{ + idList,5> scenePointList; + bool hasSearchedForScenePoints; +}; + +// IDA Local Type ordinal 17232; PDB kind: class. +class __declspec(align(4)) idAIMemory +{ +public: + idAIStateTransition::aiTransCode_t transCode; + idEntityPtr currentEnemy; + idEntityPtr ambushTarget; + idEntityPtr currentAggroTarget; + idEntityPtr currentFriendly; + idEntityPtr currentNeutral; + idEntityPtr currentFriendlyBlocker; + int currentFriendlyBlockerTime; + idAIPos currentEnemySuspectedPos; + idAIPos lEnemyTrailPos[5]; + int nextEnemyTrailTime; + int enemyTrailUpdatePeriod; + int iEnemyTrailFinger; + idEntityPtr actionEntity; + idEntityPtr transitionEntity; + idEntityPtr spottedEnemyTrigger; + idEntityPtr detectedEnemyTrigger; + idEntityPtr usedProp; + idEntityPtr nearbyPossessed; + int endOpenCombatTime; + int openCombatCoverCheckTime; + idVec3 spawnPosition; + int spawnTime; + idAICover invalidCover; + idAICover currentCover; + idAICover lastCover; + idAICover lCoverHistory[5]; + int nextCoverActionTime; + int endCoverActionTime; + int endBurstTime; + int nextBurstTime; + int exitCoverTime; + int reachedCoverTime; + int coverExposedTime; + bool newCoverSet; + bool forceCharge; + idEntityPtr currentPath; + idEntityPtr nextPath; + int lastDamageTime; + int lastStunTime; + int lastFiredAtTime; + int lastAimedAtTime; + int lastHeavyAimedAtTime; + int endHeavyAimedAtTime; + int lastHeavyFiredAtTime; + int justAimedAtTime; + int lastSurprisedTime; + int lastFireTime; + int lastIntimidationTime; + int startIntimidationTime; + int armorPopOffAccumulation; + idEntityPtr lastAttacker; + idEntityPtr lastInflictor; + idEntityPtr lastToucher; + bool justTouched; + idEntityPtr entityToPush; + overrideAnim_t searchAction; + alertCycle_t highestAlertCycle; + bool enemyPathBlocked; + bool allowCombat; + bool allowSearch; + idAIMemory::aiSearchToStimulusMode searchToStimulusMode; + int enemyTravelTime; + idVec3 enemyApproachPoint; + idAIMemory::aiMemoryAnimAfterOverride animAfterOverride; + idAICover cachedCover; + idVec3 cachedDestination; + int currentSearchHintIndex; + int flags; + int nextCloseMeleeTime; + int nextMoveTime; + int lastMoveFailedTime; + int nextDodgeTime; + int movementStartTime; + int movementMaxDuration; + int movementFailedTime; + int lastChargeTime; + int nextChargeTime; + int retryCombatTime; + idEntityPtr ignoredProjectile; + idEntityPtr avoidEntity; + idVec3 avoidancePoint; + idVec3 avoidanceDir; + int lastAvoidTime; + int lastDiveTime; + idVec3 miscVec3; + int nextLeapAttackTime; + idVec3 leapTarget; + idAIProjectileInfo projectileInfo; + int nextThrowTime; + idAILoopAnimExitAtEnd loopAnimExitAtEnd; + int waitExpireTime; + aiConfidenceLevel_t confidenceLevel; + idEntityPtr fireBlocker; + __int16 numShotsThisPullBlockedConsecutive; + __int16 numShotsThisPullBlocked; + __int16 numShotsThisPull; + bool muzzleInSolid; + bool temporaryHoldFire; + bool shouldCrouch; + int wantAngryRageTime; + int wantTauntRageTime; + int soonestAngryRageTime; + int soonestTauntRageTime; + int coveringFireTime; + __int16 pathBlockedCounter; + equipSlot_t reloadSlot; + int lastActuallySeenEnemyTime; + bool painFailed; + bool killedHeavily; + idEntityPtr backstandHint; + idMat3 backstandAlignment; + idVec3 backstandRisePosition; + idEntityPtr currentActionNode; + int actionNodeNum; + int actionNodeAnimIndex; + bool reachedActionNode; + idAIGreetingParms greetingParms; + int currentPlayerInteraction; + idEntityPtr interactionEntity; + idEntityPtr interactionCamera; + idEntityPtr interactionPoint; + const idDeclJob *completeJobDecl; + const idDeclJob *acceptJobDecl; + idEntityPtr triggeredInteraction; + bool interactionIsUsable; + int actionNodeBlockedTime; + idEntityPtr controllingPlayer; + idEntityPtr currentInteraction; + float scriptedAggro; + int scriptedAggroEndTime; + idStr varName; + aiVarOp_t varOp; + idStr varValue; + idList scenePointVolumes; + idAIMemory::idScenePointList combatScenePoints; + idAIMemory::idScenePointList searchScenePoints; + idAIMemory::idScenePointList roamScenePoints; + idAIMemory::idScenePointList lookScenePoints; + idScenePoint *curScenePoint; + idScenePoint *curLookScenePoint; + idScenePoint *overrideScenePoint; + idScenePoint *keptOverrideScenePoint; + int lastScenePointSearchTime; + int lastLookScenePointSearchTime; + bool curScenePointDirty; + bool curLookScenePointDirty; + int curScenePointTakeTime; + int curScenePointActivateTime; + idEntityPtr scenePointUserGroup; + idScenePoint *scenePointHistory[5]; + idScenePoint *lookScenePointHistory[5]; + idEntityPtr restrictionVolume; + idAIPos restrictionPos; + bool restrictionVolumeActive; + bool restrictionStopOnEnter; + int gangstaTimeout; + bool enableGangstaPose; +}; diff --git a/source/tungsten/game/ai/aimoveparms.h b/source/tungsten/game/ai/aimoveparms.h new file mode 100644 index 0000000..8ec9bec --- /dev/null +++ b/source/tungsten/game/ai/aimoveparms.h @@ -0,0 +1,40 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\aimoveparms.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2256; PDB kind: enum. +enum idAIMoveParms::flags_t : __int32 +{ + FLAG_USE_GOAL_ORIENTATION = 0x1, + FLAG_ALLOW_START_TRANSITIONS = 0x2, + FLAG_ALLOW_STOP_TRANSITIONS = 0x4, + FLAG_ALLOW_SCRAMBLE_TRANSITIONS = 0x8, + FLAG_ALLOW_TRANSITION_OVERSHOOT = 0x10, + FLAG_PREVENT_STEP_AROUND_STARTS = 0x20, + FLAG_USE_SMOOTH_TRANSITIONS = 0x40, +}; + +// IDA Local Type ordinal 16709; PDB kind: class. +class idAIMoveParms +{ +public: + aiMoveReason_t moveReason; + idVec3 startOrigin; + idVec3 goalOrigin; + idEntityPtr goalEntity; + idQuat goalOrientation; + idEntityPtr goalScenePoint; + float goalTolerance; + float intermediateTolerance; + posture_t arrivalPosture; + aiArrivalAction_t arrivalAction; + int flags; + idIndex sourceSubWeb; + idIndex sourceState; + idIndex destSubWeb; + idIndex destState; +}; diff --git a/source/tungsten/game/ai/aimovestate.h b/source/tungsten/game/ai/aimovestate.h new file mode 100644 index 0000000..3c034bb --- /dev/null +++ b/source/tungsten/game/ai/aimovestate.h @@ -0,0 +1,160 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\aimovestate.h +// Recovered logical types: 7 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1587; PDB kind: enum. +enum aiMovePushStatus_t : __int32 +{ + AIMOVEPUSHSTATUS_PUSH_NONE = 0x0, + AIMOVEPUSHSTATUS_PUSH_OTHER_NPCS = 0x1, + AIMOVEPUSHSTATUS_PUSH_PLAYERS = 0x2, + AIMOVEPUSHSTATUS_PUSH_PLAYERS_AND_NPCS = 0x3, + AIMOVEPUSHSTATUS_MAX = 0x4, +}; + +// IDA Local Type ordinal 2246; PDB kind: enum. +enum aiMoveStatus_t : __int32 +{ + AIMOVESTATUS_DONE = 0x0, + AIMOVESTATUS_MOVING = 0x1, + AIMOVESTATUS_ERROR = 0x2, + AIMOVESTATUS_NO_AAS = 0x3, + AIMOVESTATUS_INVALID_ENTITY = 0x4, + AIMOVESTATUS_UNREACHABLE = 0x5, + AIMOVESTATUS_NOT_IN_AAS = 0x6, + AIMOVESTATUS_PATHING_FAILED = 0x7, + AIMOVESTATUS_OBSTRUCTED = 0x8, + AIMOVESTATUS_NO_PATH_GROUP = 0x9, + AIMOVESTATUS_NO_PATH_POINT = 0xA, + AIMOVESTATUS_STUCK = 0xB, + AIMOVESTATUS_MAX = 0xC, +}; + +// IDA Local Type ordinal 2347; PDB kind: enum. +enum idAIMoveState::smoothAnimType_t : __int32 +{ + SMOOTH_ANIM_INVALID = 0x0, + SMOOTH_ANIM_START = 0x1, + SMOOTH_ANIM_TURN = 0x2, + SMOOTH_ANIM_STOP = 0x3, +}; + +// IDA Local Type ordinal 2348; PDB kind: enum. +enum idAIMoveState::destinationSector_t : __int32 +{ + SECTOR_INVALID = 0x0, + SECTOR_FORWARD = 0x1, + SECTOR_BACKWARD = 0x2, + SECTOR_LEFT = 0x3, + SECTOR_RIGHT = 0x4, +}; + +// IDA Local Type ordinal 2350; PDB kind: enum. +enum idAIMoveState::lerpAxisFlags_t : __int32 +{ + LERPAXIS_X = 0x1, + LERPAXIS_Y = 0x2, + LERPAXIS_Z = 0x4, +}; + +// IDA Local Type ordinal 16711; PDB kind: class. +class idAIMoveState : public idAIMoveInterface +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16716. + virtual aiMoveStatus_t GetMoveStatus(); + virtual const idVec3 *GetFinalPoint(); + virtual bool RecentlyFailedMove(const aiMoveReason_t, const idTypesafeNumber); + virtual void MoveFailed(const aiMoveReason_t, const aiMoveStatus_t, const idTypesafeNumber); + virtual bool PointInMovementRange(const idVec3 *, const idVec3 *, float, float *); + virtual bool ReachedPoint(const idVec3 *, const float); + virtual bool WillReachPoint(const idVec3 *, float, bool); + virtual float GetReachedEntityDist(const idEntity *, const float); + virtual bool ReachedEntity(const idEntity *, const float); + virtual bool WillReachEntity(const idEntity *, const float, const float); + virtual bool IsPlayingTraversalAnim(); + virtual bool IsLineInNavGraph(const idVec3 *, const idVec3 *, idVec3 *); + virtual const idVec3 *GetNextPoint(); + virtual const idObstacleInfo *GetObstacleInfo(); + virtual idObstacleInfo *GetObstacleInfo_2(); + virtual int GetLastTravelTime(); + virtual const aas2Traversal_t *GetDestinationTraversal(); + virtual void SetTranslationDeltaScale(const idVec3 *); + virtual aiMoveStatus_t TestMove(const idAIMoveParms *, idVec3 *, idVec3 *, int *); + virtual ~idAIMoveState(); + + idAI2 *ai; + int lastUpdateMS; + idAIMoveParms moveParms; + aiMovementMode_t movementMode; + aiVelocityType_t velocityType; + aiMoveStatus_t moveStatus; + idAIMoveState::smoothAnimType_t curSmoothAnimType; + idVec3 nextPoint; + float maxMoveSpeed; + float accelRate; + float decelRate; + idObstacleInfo obstacleInfo; + idAIOrientation moveOrientation; + idVec3 finalPoint; + idVec3 lastFinalPoint; + idQuat traversalOrientation; + unsigned __int8 : 3; + __int8 startedMovementAnim : 1; + __int8 isPlayingTraversalAnim : 1; + __int8 aligningToGoal : 1; + __int8 inControl : 1; + __int8 alignToTraversalOrientation : 1; + idAAS2Path lastPath; + idVec3 stuckRefPoint; + int stuckTime; + float accumulatedDeltaLen; + int numZeroVelocityFrames; + int startMoveFrame; + int lastTravelTime; + int lastMoveTime; + int lastAreaNum; + float turnRateScale; + float actualTurnAngle; + float accumulatedTurnAngle; + int turnFramesRemaining; + int totalTurnFrames; + idObstacleAvoidance oa; + int lerpAxisFlags; + int endLerpTime; + idVec3 lerpDest; + idVec3 lerpDelta; + bool perfectGotInitial; + idQuat perfectInitialRotation; + idVec3 perfectInitialPosition; + idQuat perfectOriginRotation; + idVec3 perfectOriginPosition; + int perfectMovementDuration; + int startPerfectMovementTime; + idIndex perfectMovementSwi; + idIndex perfectMovementSi; + idVec3 traversalStartPoint; + idVec3 traversalEndPoint; + overrideAnim_t traversalAnimToPlay; + int remainingTransitionFrames; + idVec3 translationScale; + idStaticList moveFailures; +}; + +// IDA Local Type ordinal 23755; PDB kind: struct. +struct slideMoveState_t +{ + idVec3 velocity; + idVec3 endVelocity; + contactInfo_t firstContact; + float fractionRemaining; + float steppedUp; + idVec3 startNormal; + idVec3 planes[4]; + int numPlanes; + int pad; +}; diff --git a/source/tungsten/game/ai/aiorientation.h b/source/tungsten/game/ai/aiorientation.h new file mode 100644 index 0000000..d413db6 --- /dev/null +++ b/source/tungsten/game/ai/aiorientation.h @@ -0,0 +1,42 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\aiorientation.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2279; PDB kind: enum. +enum aiArrivalOrientation_t : __int32 +{ + AIARRIVAL_ORIENT_NONE = 0x0, + AIARRIVAL_ORIENT_ALIGN = 0x1, +}; + +// IDA Local Type ordinal 3067; PDB kind: enum. +enum hdpOrientation_t : __int32 +{ + O_NONE = 0x0, + O_FLIPV = 0x1, + O_FLIPH = 0x2, + O_FLIPVH = 0x3, + O_RCW = 0x4, + O_RCW_FLIPV = 0x5, + O_RCW_FLIPH = 0x6, + O_RCW_FLIPVH = 0x7, + O_MAX = 0x8, +}; + +// IDA Local Type ordinal 16712; PDB kind: class. +class idAIOrientation +{ +public: + idVec3 idealDir; + idMat3 axis; + float lastTurnDelta; + float lastTurnRate; + float tolerance; + unsigned __int8 currentTurnDir; + unsigned __int8 previousTurnDir; + float turnVelocity; +}; diff --git a/source/tungsten/game/ai/aiplayerinteraction.h b/source/tungsten/game/ai/aiplayerinteraction.h new file mode 100644 index 0000000..f735be5 --- /dev/null +++ b/source/tungsten/game/ai/aiplayerinteraction.h @@ -0,0 +1,407 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\aiplayerinteraction.h +// Recovered logical types: 14 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1316; PDB kind: enum. +enum aiPlayerInteraction_t::interactionTestConditionType_t : __int32 +{ + INTERACTIONCONDITION_NONE = 0x0, + INTERACTIONCONDITION_JOB = 0x1, + INTERACTIONCONDITION_ITEM = 0x2, + INTERACTIONCONDITION_GAMESTATEINT = 0x3, + INTERACTIONCONDITION_FORCEFALSE = 0x4, + INTERACTIONCONDITION_FORCETRUE = 0x5, +}; + +// IDA Local Type ordinal 1317; PDB kind: enum. +enum aiPlayerInteraction_t::interactionTestJobStatus_t : __int32 +{ + INTERACTIONTEST_JOBSTATUS_ACCEPTED = 0x0, + INTERACTIONTEST_JOBSTATUS_READYTOTURNIN = 0x1, + INTERACTIONTEST_JOBSTATUS_COMPLETED = 0x2, +}; + +// IDA Local Type ordinal 2251; PDB kind: enum. +enum playerInteractionState_t : __int32 +{ + PISTATE_INACTIVE = 0x0, + PISTATE_APPROACH_PLAYED = 0x1, + PISTATE_JOB_SETUP_PLAYED = 0x2, + PISTATE_JOB_END_PLAYED = 0x3, + PISTATE_JOB_IN_PROGRESS = 0x4, +}; + +// IDA Local Type ordinal 14442; PDB kind: class. +class idAIPlayerInteractionMemory : public idClass +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14443. + virtual idTypeInfo *GetType(); + virtual ~idAIPlayerInteractionMemory(); + + idStr declName; + idList approachPlayedList; + idList jobOfferPlayedList; +}; + +// IDA Local Type ordinal 16613; PDB kind: class. +class aiPlayerInteraction_t::interactionJobVO_t +{ +public: + const idDeclVoiceOver *jobOfferVO; + const idDeclVoiceOver *jobEndVO; + const idDeclVoiceOver *jobByeVO; + const idDeclVoiceOver *jobInProgressVO; + const idDeclVoiceOver *jobCompleteVO; + const idDeclVoiceOver *jobFailVO; +}; + +// IDA Local Type ordinal 16614; PDB kind: class. +class aiPlayerInteraction_t::interactionTestCondition_t +{ +public: + aiPlayerInteraction_t::interactionTestConditionType_t condition; + idDeclJobRef jobDecl; + aiPlayerInteraction_t::interactionTestJobStatus_t jobStatus; + const idDeclInventory *inventoryDecl; + const idDeclGameStateInt *gameStateIntDecl; + int count; +}; + +// IDA Local Type ordinal 16618; PDB kind: class. +class aiPlayerInteraction_t::oneOffClothesData_t +{ +public: + const idDeclPlayerArmor *clothing; + const idDeclVoiceOver *responseVO; +}; + +// IDA Local Type ordinal 16620; PDB kind: class. +class aiPlayerInteraction_t::oneOffClothesInteraction_t +{ +public: + idList clothingData; + const idDeclJob *jobToSetReady; +}; + +// IDA Local Type ordinal 16621; PDB kind: class. +class aiPlayerInteraction_t +{ +public: + idStr interactName; + int interactIndex; + bool activateWhenVisible; + float interactionFoV; + bool allowBodyRotation; + bool allowAutoFocus; + bool waitTillInteractIdle; + bool allowHeadTracking; + bool forceDoNotStopOnPlayerDepature; + bool countPlayerControlledAsDeparture; + const idDeclVoiceOver *approachVO; + const idDeclVoiceOver *secondaryApproachVO; + bool lowerWorldSoundVolumeForApproachVO; + idStr idleAnim; + const idDeclVoiceOver *messageVO; + bool messageExpiresInteraction; + idStr messageTriggerEnt; + bool messageTriggerPostMessage; + const idDeclGameStateInt *interactionGameStateIntDecl; + const idDeclVoiceOver *finishedVO; + const idDeclVoiceOver *abortedVO; + idStr actionNodeGroupName; + posture_t posture; + sitState_t sitState; + standState_t standState; + const idDeclJob *interactionJob; + aiPlayerInteraction_t::interactionJobVO_t interactionJobVO; + idList isAvailableCondition; + idList hasExpiredCondition; + bool expiredOnAny; + idList canBeClosedCondition; + bool forceNoMerchant; + aiPlayerInteraction_t::oneOffClothesInteraction_t oneOffClothesInteraction; +}; + +// IDA Local Type ordinal 16625; PDB kind: struct. +struct demoAIPlayerInteractionPair_t +{ + gameDemoType_t demoType; + const idDeclAIPlayerInteraction *playerInteraction; +}; + +// IDA Local Type ordinal 17049; PDB kind: class. +class idAction_WaitForPlayerInteraction : public idAIAction +{ +public: + // Recovered virtual interface; IDA vtable ordinal 33823. + virtual idTypeInfo *GetType(); + virtual ~idAction_WaitForPlayerInteraction(); + 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 Save(const idFiniteStateMachine *, idFile_String *, const char *); + virtual void InternalInitState(const idFiniteStateMachine *); + virtual bool InternalCanUse(idFiniteStateMachine *, const int); + virtual void InternalEnterState(idFiniteStateMachine *, const int); + virtual void InternalExitState(idFiniteStateMachine *, const int); + virtual void InternalWork(idFiniteStateMachine *, const int); + virtual void InternalReenterState(idFiniteStateMachine *, const int, const int); + virtual bool InternalIsStateWaiting(idFiniteStateMachine *, const int); + virtual void InternalGetDebugString(idStr *); + virtual bool AIState_CanUse(idAI2 *, idAIFSM *, const int); + virtual void AIState_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIState_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIState_Work(idAI2 *, idAIFSM *, const int); + virtual void AIState_ReenterState(idAI2 *, idAIFSM *, const int, const int); + virtual bool AIState_IsWaiting(idAI2 *, idAIFSM *, const int); + virtual const idEventDef *GetActionEventDef(); + virtual int GetActionFlags(); + virtual void AIAction_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIAction_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIAction_Work(idAI2 *, idAIFSM *, const int); + virtual void AIAction_ReenterState(idAI2 *, idAIFSM *, const int); + virtual bool AIAction_IsWaiting(idAI2 *, idAIFSM *, const int); + + float maxDist; +}; + +// IDA Local Type ordinal 17078; PDB kind: class. +class __unaligned __declspec(align(4)) idAction_ForcePlayerInteraction : public idAIAction +{ +public: + // Recovered virtual interface; IDA vtable ordinal 33754. + virtual idTypeInfo *GetType(); + virtual ~idAction_ForcePlayerInteraction(); + 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 Save(const idFiniteStateMachine *, idFile_String *, const char *); + virtual void InternalInitState(const idFiniteStateMachine *); + virtual bool InternalCanUse(idFiniteStateMachine *, const int); + virtual void InternalEnterState(idFiniteStateMachine *, const int); + virtual void InternalExitState(idFiniteStateMachine *, const int); + virtual void InternalWork(idFiniteStateMachine *, const int); + virtual void InternalReenterState(idFiniteStateMachine *, const int, const int); + virtual bool InternalIsStateWaiting(idFiniteStateMachine *, const int); + virtual void InternalGetDebugString(idStr *); + virtual bool AIState_CanUse(idAI2 *, idAIFSM *, const int); + virtual void AIState_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIState_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIState_Work(idAI2 *, idAIFSM *, const int); + virtual void AIState_ReenterState(idAI2 *, idAIFSM *, const int, const int); + virtual bool AIState_IsWaiting(idAI2 *, idAIFSM *, const int); + virtual const idEventDef *GetActionEventDef(); + virtual int GetActionFlags(); + virtual void AIAction_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIAction_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIAction_Work(idAI2 *, idAIFSM *, const int); + virtual void AIAction_ReenterState(idAI2 *, idAIFSM *, const int); + virtual bool AIAction_IsWaiting(idAI2 *, idAIFSM *, const int); + +}; + +// IDA Local Type ordinal 17234; PDB kind: class. +class idAIPlayerInteraction : public idClass +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17235. + virtual idTypeInfo *GetType(); + virtual ~idAIPlayerInteraction(); + + const idDeclAIPlayerInteraction *decl; + const idAnimatedEntity *owner; +}; + +// IDA Local Type ordinal 19557; PDB kind: class. +class idProp_PlayerInteraction : public idProp_Usable +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19558. + virtual idTypeInfo *GetType(); + virtual ~idProp_PlayerInteraction(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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 void GetUseLocation(const idActor *, idVec3 *); + virtual usableState_t GetOnlineUsableState(); + + idAnimator_Channel channelAnimator; + int nextIdleTime; + idHandle idleAnimAlias; + idHandle useOnAnimAlias; + idHandle useOffAnimAlias; + idEntityPtr useVolume; + bool shouldLockCamera; + idVec3 playerPos; + idVec3 playerLookAtPos; + idDeclInventory *itemToPickUp; +}; diff --git a/source/tungsten/game/ai/aiscriptedanimweb.h b/source/tungsten/game/ai/aiscriptedanimweb.h new file mode 100644 index 0000000..74a1f6e --- /dev/null +++ b/source/tungsten/game/ai/aiscriptedanimweb.h @@ -0,0 +1,288 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\aiscriptedanimweb.h +// Recovered logical types: 7 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1771; PDB kind: enum. +enum idAIScriptedAnimWeb::stateMarker_t : __int32 +{ + STATE_EXIT = 0xFFFFFFFD, +}; + +// IDA Local Type ordinal 2273; PDB kind: enum. +enum idAIScriptedAnimWeb::loopTriggerType_t : __int32 +{ + TRIGGERTYPE_ONCOUNT = 0x0, + TRIGGERTYPE_EVERYCOUNT = 0x1, +}; + +// IDA Local Type ordinal 17095; PDB kind: struct. +struct __declspec(align(4)) idAIScriptedAnimWeb::animWebState_t +{ + idAnimWebPath destAnimRef; + idAnimWebPath viaAnimRef; + idAnimWebPath exitFastRef; + idEntityPtr perfectOriginRef; + idList,5> triggerEnter; + idList,5> triggerLeave; + idList,5> triggerLoopCount; + int jumpToState; + int loopCountToTrigger; + idAIScriptedAnimWeb::loopTriggerType_t loopTriggerType; + __int8 setPerceptionFlagsOnExit : 1; + __int8 clearPerceptionFlagsOnExit : 1; + __int8 releaseAI : 1; + __int8 perfectOrigin : 1; + __int8 loop : 1; + __int8 disableSolid : 1; + __int8 disableWorldCollsion : 1; + __int8 disableIK : 1; + unsigned __int8 : 4; + __int8 useAnimationOrigin : 1; + __int8 forceTransition : 1; + __int8 enableHeadTracking : 1; + __int8 keepIKState : 1; +}; + +// IDA Local Type ordinal 17097; PDB kind: struct. +struct idAIScriptedAnimWeb::animState_t +{ + idList *animWebStates; + int currentState; +}; + +// IDA Local Type ordinal 17098; PDB kind: class. +class __declspec(align(2)) idAction_ScriptedAnimWeb : public idAIAction +{ +public: + // Recovered virtual interface; IDA vtable ordinal 33786. + virtual idTypeInfo *GetType(); + virtual ~idAction_ScriptedAnimWeb(); + 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 Save(const idFiniteStateMachine *, idFile_String *, const char *); + virtual void InternalInitState(const idFiniteStateMachine *); + virtual bool InternalCanUse(idFiniteStateMachine *, const int); + virtual void InternalEnterState(idFiniteStateMachine *, const int); + virtual void InternalExitState(idFiniteStateMachine *, const int); + virtual void InternalWork(idFiniteStateMachine *, const int); + virtual void InternalReenterState(idFiniteStateMachine *, const int, const int); + virtual bool InternalIsStateWaiting(idFiniteStateMachine *, const int); + virtual void InternalGetDebugString(idStr *); + virtual bool AIState_CanUse(idAI2 *, idAIFSM *, const int); + virtual void AIState_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIState_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIState_Work(idAI2 *, idAIFSM *, const int); + virtual void AIState_ReenterState(idAI2 *, idAIFSM *, const int, const int); + virtual bool AIState_IsWaiting(idAI2 *, idAIFSM *, const int); + virtual const idEventDef *GetActionEventDef(); + virtual int GetActionFlags(); + virtual void AIAction_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIAction_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIAction_Work(idAI2 *, idAIFSM *, const int); + virtual void AIAction_ReenterState(idAI2 *, idAIFSM *, const int); + virtual bool AIAction_IsWaiting(idAI2 *, idAIFSM *, const int); + + idAIScriptedAnimWeb::animState_t *stateInfo; + int currentScriptState; + int currentLoopCount; + int loopInterval; + int stateStartTime; + idIndex currentSubWebTarget; + idIndex currentStateTarget; + idVec3 nextTargetPosition; + idQuat nextTargetRotation; + aiMovementMode_t movementMode; + unsigned __int8 : 5; + __int8 keepIKState : 1; + __int8 wasIKEnabled : 1; + __int8 isDone : 1; + bool wasHeadTrackingEnabled; + bool wasSolid; +}; + +// IDA Local Type ordinal 21355; PDB kind: class. +class ScriptedAnimWebDone : public idAIStateTransitionStatic +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21356. + virtual idTypeInfo *GetType(); + virtual ~ScriptedAnimWebDone(); + virtual int Evaluate(idFiniteStateMachine *, idState *, const int); + virtual void InternalSave(idFile_String *, const char *, const idList *); + virtual void Save(idFile_String *, const char *, const idList *); + virtual idAIStateTransition::aiTransCode_t Evaluate_2(idAI2 *, idAIFSM *, idAIState *, const int); + +}; + +// IDA Local Type ordinal 21411; PDB kind: class. +class idAIScriptedAnimWeb : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21412. + virtual idTypeInfo *GetType(); + virtual ~idAIScriptedAnimWeb(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + idList animWebStates; + idAIScriptedAnimWeb::animState_t stateInfo; +}; diff --git a/source/tungsten/game/ai/aitest.h b/source/tungsten/game/ai/aitest.h new file mode 100644 index 0000000..f1cef9a --- /dev/null +++ b/source/tungsten/game/ai/aitest.h @@ -0,0 +1,172 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\aitest.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 21407; PDB kind: class. +class idAITest : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21408. + virtual idTypeInfo *GetType(); + virtual ~idAITest(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + +}; diff --git a/source/tungsten/game/ai/aiutils.h b/source/tungsten/game/ai/aiutils.h new file mode 100644 index 0000000..0782ab4 --- /dev/null +++ b/source/tungsten/game/ai/aiutils.h @@ -0,0 +1,43 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\aiutils.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 8439; PDB kind: unknown. +struct WAIT_UNTIL:: +{ + unsigned __int32 WAIT_CRTC_PFLIP : 1; + unsigned __int32 WAIT_RE_CRTC_VLINE : 1; + unsigned __int32 WAIT_FE_CRTC_VLINE : 1; + unsigned __int32 WAIT_CRTC_VLINE : 1; + unsigned __int32 : 4; + unsigned __int32 WAIT_CP_DMA_IDLE : 1; + unsigned __int32 : 1; + unsigned __int32 WAIT_CMDFIFO : 1; + unsigned __int32 WAIT_OV_FLIP : 1; + unsigned __int32 : 3; + unsigned __int32 WAIT_IDLE : 1; + unsigned __int32 : 1; + unsigned __int32 WAIT_IDLECLEAN : 1; + unsigned __int32 : 2; + unsigned __int32 CMDFIFO_ENTRIES : 4; +}; + +// IDA Local Type ordinal 8440; PDB kind: union. +union WAIT_UNTIL +{ + WAIT_UNTIL:: bitfields; + WAIT_UNTIL:: bits; + unsigned int u32All; + int i32All; + float f32All; +}; + +// IDA Local Type ordinal 20489; PDB kind: class. +class idAIUtils +{ +public: +}; diff --git a/source/tungsten/game/ai/aivisibility.h b/source/tungsten/game/ai/aivisibility.h new file mode 100644 index 0000000..c0944cc --- /dev/null +++ b/source/tungsten/game/ai/aivisibility.h @@ -0,0 +1,13 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\aivisibility.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 21406; PDB kind: class. +class idAIVisibility +{ +public: +}; diff --git a/source/tungsten/game/ai/aivoicecontroller.h b/source/tungsten/game/ai/aivoicecontroller.h new file mode 100644 index 0000000..8a6018f --- /dev/null +++ b/source/tungsten/game/ai/aivoicecontroller.h @@ -0,0 +1,35 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\aivoicecontroller.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1561; PDB kind: enum. +enum voiceController_t : __int32 +{ + VC_SELF = 0x0, + VC_GROUP = 0x1, + VC_GLOBAL = 0x2, + VC_MAX = 0x3, +}; + +// IDA Local Type ordinal 14481; PDB kind: class. +class idAIVoiceController +{ +public: + idTypesafeNumber nextVoiceTime; + idTypesafeNumber lastVoiceTime; + aiVoicePriority_t lastVoicePriority; + int nextPlayTime[10]; + voiceController_t controllerType; +}; + +// IDA Local Type ordinal 21405; PDB kind: struct. +struct idAIVoiceController::logEntry_t +{ + int entityNum; + int time; + voiceMsg_t msg; +}; diff --git a/source/tungsten/game/ai/animfsm/aianimwebstate.h b/source/tungsten/game/ai/animfsm/aianimwebstate.h new file mode 100644 index 0000000..16ae488 --- /dev/null +++ b/source/tungsten/game/ai/animfsm/aianimwebstate.h @@ -0,0 +1,157 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\animfsm\aianimwebstate.h +// Recovered logical types: 14 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1590; PDB kind: enum. +enum aiAnimWeb_t : __int32 +{ + AIANIMWEB_BODY = 0x0, + AIANIMWEB_MAX = 0x1, +}; + +// IDA Local Type ordinal 21323; PDB kind: class. +class idAIAnimWebState : public idAnimWebState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21324. + virtual ~idAIAnimWebState(); + virtual void GetMoveStateString(const idAI2 *, idStr *, posture_t); + virtual void GetTurnStateString(const idAI2 *, idStr *); + +}; + +// IDA Local Type ordinal 21325; PDB kind: class. +class idAIAnimWebState_Current : public idAIAnimWebState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21326. + virtual ~idAIAnimWebState_Current(); + virtual void GetMoveStateString(const idAI2 *, idStr *, posture_t); + virtual void GetTurnStateString(const idAI2 *, idStr *); + +}; + +// IDA Local Type ordinal 21386; PDB kind: class. +class idAIAnimWebState_Idle : public idAIAnimWebState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21387. + virtual ~idAIAnimWebState_Idle(); + virtual void GetMoveStateString(const idAI2 *, idStr *, posture_t); + virtual void GetTurnStateString(const idAI2 *, idStr *); + +}; + +// IDA Local Type ordinal 21388; PDB kind: class. +class idAIAnimWebState_Movement : public idAIAnimWebState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21389. + virtual ~idAIAnimWebState_Movement(); + virtual void GetMoveStateString(const idAI2 *, idStr *, posture_t); + virtual void GetTurnStateString(const idAI2 *, idStr *); + +}; + +// IDA Local Type ordinal 21393; PDB kind: class. +class idAIAnimWebState_Target : public idAIAnimWebState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21394. + virtual ~idAIAnimWebState_Target(); + virtual void GetMoveStateString(const idAI2 *, idStr *, posture_t); + virtual void GetTurnStateString(const idAI2 *, idStr *); + +}; + +// IDA Local Type ordinal 21830; PDB kind: class. +class idAIAnimWebState_FallTraversal : public idAIAnimWebState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21831. + virtual ~idAIAnimWebState_FallTraversal(); + virtual void GetMoveStateString(const idAI2 *, idStr *, posture_t); + virtual void GetTurnStateString(const idAI2 *, idStr *); + +}; + +// IDA Local Type ordinal 21853; PDB kind: class. +class idAIAnimWebState_BrakingTurn : public idAIAnimWebState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21854. + virtual ~idAIAnimWebState_BrakingTurn(); + virtual void GetMoveStateString(const idAI2 *, idStr *, posture_t); + virtual void GetTurnStateString(const idAI2 *, idStr *); + +}; + +// IDA Local Type ordinal 21898; PDB kind: class. +class idAIAnimWebState_Pain : public idAIAnimWebState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21899. + virtual ~idAIAnimWebState_Pain(); + virtual void GetMoveStateString(const idAI2 *, idStr *, posture_t); + virtual void GetTurnStateString(const idAI2 *, idStr *); + +}; + +// IDA Local Type ordinal 21947; PDB kind: class. +class idAIAnimWebState_Reload : public idAIAnimWebState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21948. + virtual ~idAIAnimWebState_Reload(); + virtual void GetMoveStateString(const idAI2 *, idStr *, posture_t); + virtual void GetTurnStateString(const idAI2 *, idStr *); + +}; + +// IDA Local Type ordinal 21951; PDB kind: class. +class idAIAnimWebState_Action : public idAIAnimWebState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21952. + virtual ~idAIAnimWebState_Action(); + virtual void GetMoveStateString(const idAI2 *, idStr *, posture_t); + virtual void GetTurnStateString(const idAI2 *, idStr *); + +}; + +// IDA Local Type ordinal 22002; PDB kind: class. +class idAIAnimWebState_Timeout : public idAIAnimWebState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22003. + virtual ~idAIAnimWebState_Timeout(); + virtual void GetMoveStateString(const idAI2 *, idStr *, posture_t); + virtual void GetTurnStateString(const idAI2 *, idStr *); + +}; + +// IDA Local Type ordinal 22289; PDB kind: class. +class idAIAnimWebState_Dest : public idAIAnimWebState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22290. + virtual ~idAIAnimWebState_Dest(); + virtual void GetMoveStateString(const idAI2 *, idStr *, posture_t); + virtual void GetTurnStateString(const idAI2 *, idStr *); + +}; + +// IDA Local Type ordinal 22369; PDB kind: class. +class idAIAnimWebState_Turn : public idAIAnimWebState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22370. + virtual ~idAIAnimWebState_Turn(); + virtual void GetMoveStateString(const idAI2 *, idStr *, posture_t); + virtual void GetTurnStateString(const idAI2 *, idStr *); + +}; diff --git a/source/tungsten/game/ai/animfsm/aianimwebtransitions.h b/source/tungsten/game/ai/animfsm/aianimwebtransitions.h new file mode 100644 index 0000000..e46acb1 --- /dev/null +++ b/source/tungsten/game/ai/animfsm/aianimwebtransitions.h @@ -0,0 +1,216 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\animfsm\aianimwebtransitions.h +// Recovered logical types: 20 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1443; PDB kind: enum. +enum mainMenuTransition_t : __int32 +{ + MENU_TRANSITION_INVALID = 0xFFFFFFFF, + MENU_TRANSITION_ADVANCE = 0x0, + MENU_TRANSITION_BACK = 0x1, + MENU_TRANSITION_FORCE = 0x2, +}; + +// IDA Local Type ordinal 2319; PDB kind: enum. +enum idAnimWebTransitions::transitionQueryValidation_t::selectionType_t : __int32 +{ + CHOOSE_ANGLE_DISTANCE_ERROR = 0x0, + CHOOSE_CLOSEST_TO_DESTINATION = 0x1, + CHOOSE_CLOSEST_TO_SEGMENT = 0x2, + CHOOSE_CLOSEST_ANGLE_START = 0x3, + CHOOSE_CLOSEST_TO_PATH_RELATIVE = 0x4, +}; + +// IDA Local Type ordinal 2342; PDB kind: enum. +enum idAnimWebTransitions::navTraceResult_t : __int32 +{ + TRACE_CLEAR = 0x0, + TRACE_BLOCKED = 0x1, + TRACE_WAITING = 0x2, +}; + +// IDA Local Type ordinal 17173; PDB kind: struct. +struct idAnimWebTransitions::navTraceData_t +{ + idVec3 start; + idVec3 stop; + float fraction; + int num[2]; + int numIndex; +}; + +// IDA Local Type ordinal 17175; PDB kind: struct. +struct idAnimWebTransitions::transitionData_t +{ + idVec3 deltaOrigin; + idMat3 deltaAxis; + float deltaCorrectEndDistanceSqr; + idVec3 apex; + idVec3 deltaCorrectEndTranslation; + idMat3 deltaCorrectEndAxis; + idVec3 deltaCorrectGoalTranslation; + idMat3 deltaCorrectGoalAxis; + bool hasApex; + int flags; + float approximatePathDistance; + idAnimWebState src; + idAnimWebState via; + idAnimWebState dst; + const idMD6Anim *anim; + idArray navTraces; + int selectionIndex; +}; + +// IDA Local Type ordinal 17177; PDB kind: struct. +struct __declspec(align(4)) idAnimWebTransitions::transitionCache_t +{ + idAnimWebState srcState; + idAnimWebState dstState; + int lastCheckFlags; + idList transitions; + float maximumDeltaOriginDistanceSqr; + float maximumPathDistance; + float minimumDeltaOriginDistanceSqr; + idIndex nodeIndex; +}; + +// IDA Local Type ordinal 17178; PDB kind: struct. +struct idAnimWebTransitions::transitionQueryResult_t +{ + idAnimWebState dst; + idAnimWebState via; + idVec3 startOrigin; + idVec3 destOrigin; + int selectionIndex; + float approximatePathDistance; + const idMD6Anim *anim; +}; + +// IDA Local Type ordinal 20672; PDB kind: class. +class PCI_IsAnimWebTransitioning : public idAIStateTransitionStatic +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20673. + virtual idTypeInfo *GetType(); + virtual ~PCI_IsAnimWebTransitioning(); + virtual int Evaluate(idFiniteStateMachine *, idState *, const int); + virtual void InternalSave(idFile_String *, const char *, const idList *); + virtual void Save(idFile_String *, const char *, const idList *); + virtual idAIStateTransition::aiTransCode_t Evaluate_2(idAI2 *, idAIFSM *, idAIState *, const int); + +}; + +// IDA Local Type ordinal 21391; PDB kind: struct. +struct idAnimWebTransitions::transitionQueryParms_t +{ + idVec3 sourceOrigin1; + idVec3 sourceOrigin2; + idMat3 sourceAxis; + idVec3 destinationOrigin; + idMat3 destinationAxis; + idVec3 turnPoint; + float totalPathDistance; + float pathDistanceAlongAxis; + int debugDrawTime; + idStaticList cachedCorners; +}; + +// IDA Local Type ordinal 21392; PDB kind: struct. +struct __declspec(align(4)) idAnimWebTransitions::transitionQueryValidation_t +{ + idAnimWebTransitions::transitionQueryValidation_t::selectionType_t selectType; + float requiredSourceAlignAngleDot; + float requiredMoveAlignAngleDot; + float movementDistanceFudge; + bool usePathDirectionForMoveAlign; + bool usePathDirectionForSourceAlign; + float maxMoveDistanceMultiplier; + int allowedFlags; + int requiredFlags; + int suggestedFlags; + bool checkMaxMovementDistance; + float requiredApexAlignAngleDot; + bool usePathDirectionForApexAlign; + bool checkAnimTooShort; + bool navProbeAnimTranslation; + bool navProbeAnimApex; + bool navProbeToPathPosition; + bool allowRejections; +}; + +// IDA Local Type ordinal 21401; PDB kind: class. +class idAIAnimWebState_Transition : public idAIAnimWebState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21402. + virtual ~idAIAnimWebState_Transition(); + virtual void GetMoveStateString(const idAI2 *, idStr *, posture_t); + virtual void GetTurnStateString(const idAI2 *, idStr *); + +}; + +// IDA Local Type ordinal 21404; PDB kind: class. +class idAnimWebTransitions +{ +public: +}; + +// IDA Local Type ordinal 21962; PDB kind: class. +class idAIAnimWebState_IdleToMoveTransition : public idAIAnimWebState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21963. + virtual ~idAIAnimWebState_IdleToMoveTransition(); + virtual void GetMoveStateString(const idAI2 *, idStr *, posture_t); + virtual void GetTurnStateString(const idAI2 *, idStr *); + +}; + +// IDA Local Type ordinal 21976; PDB kind: class. +class idAIAnimWebState_MoveToIdleTransition : public idAIAnimWebState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21977. + virtual ~idAIAnimWebState_MoveToIdleTransition(); + virtual void GetMoveStateString(const idAI2 *, idStr *, posture_t); + virtual void GetTurnStateString(const idAI2 *, idStr *); + + float stopDistance; +}; + +// IDA Local Type ordinal 22371; PDB kind: struct. +struct idAnimWebTransitions::transition_t +{ + idIndex src; + idIndex via; + idIndex dst; +}; + +// IDA Local Type ordinal 22372; PDB kind: struct. +struct idAnimWebTransitions::defaultArrivalTransitionValidation_t : idAnimWebTransitions::transitionQueryValidation_t +{ +}; + +// IDA Local Type ordinal 22373; PDB kind: struct. +struct idAnimWebTransitions::defaultStepTransitionValidation_t : idAnimWebTransitions::transitionQueryValidation_t +{ +}; + +// IDA Local Type ordinal 22374; PDB kind: struct. +struct idAnimWebTransitions::defaultFlightTransitionValidation_t : idAnimWebTransitions::transitionQueryValidation_t +{ +}; + +// IDA Local Type ordinal 22375; PDB kind: struct. +struct idAnimWebTransitions::defaultSoftStopTransitionValidation_t : idAnimWebTransitions::transitionQueryValidation_t +{ +}; + +// IDA Local Type ordinal 22376; PDB kind: struct. +struct idAnimWebTransitions::defaultDepartureTransitionValidation_t : idAnimWebTransitions::transitionQueryValidation_t +{ +}; diff --git a/source/tungsten/game/ai/animfsm/aimovecmd.h b/source/tungsten/game/ai/animfsm/aimovecmd.h new file mode 100644 index 0000000..9a1e7a4 --- /dev/null +++ b/source/tungsten/game/ai/animfsm/aimovecmd.h @@ -0,0 +1,55 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\animfsm\aimovecmd.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2284; PDB kind: enum. +enum idAIMoveCmd::destEntityType_t : __int32 +{ + DEST_ENT_NONE = 0x0, + DEST_ENT_ENEMY = 0x1, + DEST_POS_GOAL = 0x2, + DEST_POS_ENEMY_CLOSEST_POSITION = 0x3, +}; + +// IDA Local Type ordinal 2286; PDB kind: enum. +enum idAIMoveCmd::DestinationType : __int32 +{ + MOVE_NONE = 0x0, + MOVE_ENTITY = 0x1, + MOVE_POSITION = 0x2, +}; + +// IDA Local Type ordinal 17001; PDB kind: class. +class idAIMoveCmd : public idFSMCmd<44> +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17002. + virtual ~idAIMoveCmd(); + + idAIMoveCmd::DestinationType destType; + idEntityPtr destEnt; + idVec3 destPos; + idVec3 destNormal; + float destAnimUpdateDistanceMinSqr; + idAnimWebState destAnim; + bool useDestAnimAsIdle; + idAIMoveCmd::destEntityType_t destEntityType; + aiArrivalAction_t arrivalAction; + float arrivalRadius; + float arrivalHeight; + float arrivalBuffer; + float planeArrivalRadius; + bool attemptArrivalAlign; + aiArrivalOrientation_t arriveOrient; + idMat3 arriveAxis; + float arriveOrientAngleTolerance; + int moveFlags; + const idEventDef *startMoveEvent; + aiMoveReason_t moveReason; + bool allowStrafing; + const char *userString; +}; diff --git a/source/tungsten/game/ai/animfsm/animfsm.h b/source/tungsten/game/ai/animfsm/animfsm.h new file mode 100644 index 0000000..b8c389e --- /dev/null +++ b/source/tungsten/game/ai/animfsm/animfsm.h @@ -0,0 +1,215 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\animfsm\animfsm.h +// Recovered logical types: 8 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2318; PDB kind: enum. +enum idAnimFSM::idMoveStateId : __int32 +{ + STATE_MOVE = 0x1, + STATE_LAST = 0x3, +}; + +// IDA Local Type ordinal 2328; PDB kind: enum. +enum idAnimFSM::cornerClipInfo_t::cornerQueryStatus_t : __int32 +{ + CORNER_UNUSED = 0x0, + CORNER_DIRTY = 0x1, + CORNER_VALID = 0x2, +}; + +// IDA Local Type ordinal 2336; PDB kind: unknown. +enum idAnimFSM_NP::UpdateAvoidance::__l5:: : __int32 +{ + MaxWedges = 0x10, +}; + +// IDA Local Type ordinal 2337; PDB kind: enum. +enum idAnimFSM_NP::UpdateAvoidance::__l13::avoidStatus_t : __int32 +{ + WEDGE_AVOID_UNKNOWN = 0x0, + WEDGE_AVOID_NONE = 0x1, + WEDGE_AVOID = 0x2, +}; + +// IDA Local Type ordinal 17185; PDB kind: struct. +struct __declspec(align(4)) idAnimFSM::cornerClipInfo_t +{ + idClipQuery query; + idVec3 navPos; + idVec3 groundPos; + idAnimFSM::cornerClipInfo_t::cornerQueryStatus_t status; + bool stopToUseCorner; +}; + +// IDA Local Type ordinal 17187; PDB kind: class. +class idAnimFSM : public idAnimBaseFSM +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17188. + virtual idTypeInfo *GetType(); + virtual ~idAnimFSM(); + 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 PrintDebugInfo(idGuiListBox *); + virtual int GetNumStates(); + virtual idAIStateLite *GetState(const int); + virtual int GetDefaultStateId(); + virtual void InternalInit(); + virtual void InternalUpdate(); + virtual void AnimStartBlend(const idDeclAnimWebNode *, const idDeclAnimWebNode *); + virtual void AnimFinishBlend(const idDeclAnimWebNode *, const idDeclAnimWebNode *); + virtual awCheckPathResult_t AnimCheckNextNode(idAnimWebAI *, const idDeclAnimWebNode *, const idDeclAnimWebNode *); + virtual void EnterHiddenMode(bool); + virtual void InitTransform(const idVec3 *, const idMat3 *); + virtual void TeleportToSpace(const idNavigationSpace *, const idVec3 *, const idMat3 *); + virtual void Reset(); + virtual const idVec3 *GetNavUpAxis(const idVec3 *result); + virtual int GetMoveInfo(const idAIMoveCmd *, idAIMoveInfo *); + virtual bool ReachedDestination(const int); + virtual bool ReachedDestination_2(); + virtual bool HasDestination(); + virtual idAnimBaseFSM::reachDestFlags_t HasReachedDestination(const idAIMoveCmd *, const idAIMoveInfo *); + virtual bool IsMoveDone(); + virtual void JobSync(); + virtual bool SetOnLink(bool); + virtual int GetPathPositionAndDirection(const idAnimBaseFSM::pathPositionAndDirectionParms_t *, idVec3 *, idVec3 *); + virtual int GetClosestReachableAreas(const idVec3 *, float, int, idNpAreaHandle *); + virtual void RegisterBlendVariables(idAnimator_AnimWeb *); + virtual void PrintMoveDebugInfo(idGuiListBox *); + virtual void CallbackFinishLinkTraversal(); + virtual bool CallbackCanUseLink(idInfoLinkSegment *); + virtual bool AlignToNextPoint(); + virtual void UpdateCachedCorners(); + virtual void UpdateBlendVariables(); + virtual void UpdateAvoidance(const float, idVec3 *); + virtual bool ShouldStartAASTraversal(idVec3 *, idVec3 *, idMat3 *, aas2Traversal_t *); + virtual idVec3 *GetTraversalEndpoint(idVec3 *result); + virtual void SubmitNavTraces(); + virtual void RecordNavTraceResults(); + virtual void InitNavTraceSystem(); + virtual idVec3 *GetPathDelta(idVec3 *result, const idVec3 *, float, bool); + virtual bool AddCornerAtEveryArea(); + virtual void InternalUpdateBodyRotation(); + + __declspec(align(8)) idArray cornerGroundInfo; +}; + +// IDA Local Type ordinal 17190; PDB kind: class. +class idAnimFSM_AAS : public idAnimFSM +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17191. + virtual idTypeInfo *GetType(); + virtual ~idAnimFSM_AAS(); + 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 PrintDebugInfo(idGuiListBox *); + virtual int GetNumStates(); + virtual idAIStateLite *GetState(const int); + virtual int GetDefaultStateId(); + virtual void InternalInit(); + virtual void InternalUpdate(); + virtual void AnimStartBlend(const idDeclAnimWebNode *, const idDeclAnimWebNode *); + virtual void AnimFinishBlend(const idDeclAnimWebNode *, const idDeclAnimWebNode *); + virtual awCheckPathResult_t AnimCheckNextNode(idAnimWebAI *, const idDeclAnimWebNode *, const idDeclAnimWebNode *); + virtual void EnterHiddenMode(bool); + virtual void InitTransform(const idVec3 *, const idMat3 *); + virtual void TeleportToSpace(const idNavigationSpace *, const idVec3 *, const idMat3 *); + virtual void Reset(); + virtual const idVec3 *GetNavUpAxis(const idVec3 *result); + virtual int GetMoveInfo(const idAIMoveCmd *, idAIMoveInfo *); + virtual bool ReachedDestination(const int); + virtual bool ReachedDestination_2(); + virtual bool HasDestination(); + virtual idAnimBaseFSM::reachDestFlags_t HasReachedDestination(const idAIMoveCmd *, const idAIMoveInfo *); + virtual bool IsMoveDone(); + virtual void JobSync(); + virtual bool SetOnLink(bool); + virtual int GetPathPositionAndDirection(const idAnimBaseFSM::pathPositionAndDirectionParms_t *, idVec3 *, idVec3 *); + virtual int GetClosestReachableAreas(const idVec3 *, float, int, idNpAreaHandle *); + virtual void RegisterBlendVariables(idAnimator_AnimWeb *); + virtual void PrintMoveDebugInfo(idGuiListBox *); + virtual void CallbackFinishLinkTraversal(); + virtual bool CallbackCanUseLink(idInfoLinkSegment *); + virtual bool AlignToNextPoint(); + virtual void UpdateCachedCorners(); + virtual void UpdateBlendVariables(); + virtual void UpdateAvoidance(const float, idVec3 *); + virtual bool ShouldStartAASTraversal(idVec3 *, idVec3 *, idMat3 *, aas2Traversal_t *); + virtual idVec3 *GetTraversalEndpoint(idVec3 *result); + virtual void SubmitNavTraces(); + virtual void RecordNavTraceResults(); + virtual void InitNavTraceSystem(); + virtual idVec3 *GetPathDelta(idVec3 *result, const idVec3 *, float, bool); + virtual bool AddCornerAtEveryArea(); + virtual void InternalUpdateBodyRotation(); + + idObstacleAvoidance oa; + idAAS2Path lastPath; + obstacleTraceSet_t obstacleTraces; +}; + +// IDA Local Type ordinal 21399; PDB kind: class. +class idAnimFSM_NP : public idAnimFSM +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21400. + virtual idTypeInfo *GetType(); + virtual ~idAnimFSM_NP(); + 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 PrintDebugInfo(idGuiListBox *); + virtual int GetNumStates(); + virtual idAIStateLite *GetState(const int); + virtual int GetDefaultStateId(); + virtual void InternalInit(); + virtual void InternalUpdate(); + virtual void AnimStartBlend(const idDeclAnimWebNode *, const idDeclAnimWebNode *); + virtual void AnimFinishBlend(const idDeclAnimWebNode *, const idDeclAnimWebNode *); + virtual awCheckPathResult_t AnimCheckNextNode(idAnimWebAI *, const idDeclAnimWebNode *, const idDeclAnimWebNode *); + virtual void EnterHiddenMode(bool); + virtual void InitTransform(const idVec3 *, const idMat3 *); + virtual void TeleportToSpace(const idNavigationSpace *, const idVec3 *, const idMat3 *); + virtual void Reset(); + virtual const idVec3 *GetNavUpAxis(const idVec3 *result); + virtual int GetMoveInfo(const idAIMoveCmd *, idAIMoveInfo *); + virtual bool ReachedDestination(const int); + virtual bool ReachedDestination_2(); + virtual bool HasDestination(); + virtual idAnimBaseFSM::reachDestFlags_t HasReachedDestination(const idAIMoveCmd *, const idAIMoveInfo *); + virtual bool IsMoveDone(); + virtual void JobSync(); + virtual bool SetOnLink(bool); + virtual int GetPathPositionAndDirection(const idAnimBaseFSM::pathPositionAndDirectionParms_t *, idVec3 *, idVec3 *); + virtual int GetClosestReachableAreas(const idVec3 *, float, int, idNpAreaHandle *); + virtual void RegisterBlendVariables(idAnimator_AnimWeb *); + virtual void PrintMoveDebugInfo(idGuiListBox *); + virtual void CallbackFinishLinkTraversal(); + virtual bool CallbackCanUseLink(idInfoLinkSegment *); + virtual bool AlignToNextPoint(); + virtual void UpdateCachedCorners(); + virtual void UpdateBlendVariables(); + virtual void UpdateAvoidance(const float, idVec3 *); + virtual bool ShouldStartAASTraversal(idVec3 *, idVec3 *, idMat3 *, aas2Traversal_t *); + virtual idVec3 *GetTraversalEndpoint(idVec3 *result); + virtual void SubmitNavTraces(); + virtual void RecordNavTraceResults(); + virtual void InitNavTraceSystem(); + virtual idVec3 *GetPathDelta(idVec3 *result, const idVec3 *, float, bool); + virtual bool AddCornerAtEveryArea(); + virtual void InternalUpdateBodyRotation(); + + idNpNavigator *groundNavigator; + idNpLink linkTraversing; + idNpCornerInfo linkEndCorner; +}; diff --git a/source/tungsten/game/ai/animfsm/animfsm_humanoid.h b/source/tungsten/game/ai/animfsm/animfsm_humanoid.h new file mode 100644 index 0000000..1689e01 --- /dev/null +++ b/source/tungsten/game/ai/animfsm/animfsm_humanoid.h @@ -0,0 +1,64 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\animfsm\animfsm_humanoid.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17200; PDB kind: class. +class idAnimFSMHumanoid : public idAnimFSM_AAS +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17201. + virtual idTypeInfo *GetType(); + virtual ~idAnimFSMHumanoid(); + 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 PrintDebugInfo(idGuiListBox *); + virtual int GetNumStates(); + virtual idAIStateLite *GetState(const int); + virtual int GetDefaultStateId(); + virtual void InternalInit(); + virtual void InternalUpdate(); + virtual void AnimStartBlend(const idDeclAnimWebNode *, const idDeclAnimWebNode *); + virtual void AnimFinishBlend(const idDeclAnimWebNode *, const idDeclAnimWebNode *); + virtual awCheckPathResult_t AnimCheckNextNode(idAnimWebAI *, const idDeclAnimWebNode *, const idDeclAnimWebNode *); + virtual void EnterHiddenMode(bool); + virtual void InitTransform(const idVec3 *, const idMat3 *); + virtual void TeleportToSpace(const idNavigationSpace *, const idVec3 *, const idMat3 *); + virtual void Reset(); + virtual const idVec3 *GetNavUpAxis(const idVec3 *result); + virtual int GetMoveInfo(const idAIMoveCmd *, idAIMoveInfo *); + virtual bool ReachedDestination(const int); + virtual bool ReachedDestination_2(); + virtual bool HasDestination(); + virtual idAnimBaseFSM::reachDestFlags_t HasReachedDestination(const idAIMoveCmd *, const idAIMoveInfo *); + virtual bool IsMoveDone(); + virtual void JobSync(); + virtual bool SetOnLink(bool); + virtual int GetPathPositionAndDirection(const idAnimBaseFSM::pathPositionAndDirectionParms_t *, idVec3 *, idVec3 *); + virtual int GetClosestReachableAreas(const idVec3 *, float, int, idNpAreaHandle *); + virtual void RegisterBlendVariables(idAnimator_AnimWeb *); + virtual void PrintMoveDebugInfo(idGuiListBox *); + virtual void CallbackFinishLinkTraversal(); + virtual bool CallbackCanUseLink(idInfoLinkSegment *); + virtual bool AlignToNextPoint(); + virtual void UpdateCachedCorners(); + virtual void UpdateBlendVariables(); + virtual void UpdateAvoidance(const float, idVec3 *); + virtual bool ShouldStartAASTraversal(idVec3 *, idVec3 *, idMat3 *, aas2Traversal_t *); + virtual idVec3 *GetTraversalEndpoint(idVec3 *result); + virtual void SubmitNavTraces(); + virtual void RecordNavTraceResults(); + virtual void InitNavTraceSystem(); + virtual idVec3 *GetPathDelta(idVec3 *result, const idVec3 *, float, bool); + virtual bool AddCornerAtEveryArea(); + virtual void InternalUpdateBodyRotation(); + + idAnimStateIdleGround stateIdle; + idAnimStateMoveGround stateMove; + idAnimStateDead stateDead; +}; diff --git a/source/tungsten/game/ai/animfsm/animwebcommand.h b/source/tungsten/game/ai/animfsm/animwebcommand.h new file mode 100644 index 0000000..d70bef8 --- /dev/null +++ b/source/tungsten/game/ai/animfsm/animwebcommand.h @@ -0,0 +1,82 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\animfsm\animwebcommand.h +// Recovered logical types: 5 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2311; PDB kind: unknown. +enum idAnimWebCmd:: : __int32 +{ + FLAGS_NONE = 0x1, + FLAGS_CHANGESTATE = 0x2, + FLAGS_VIA = 0x4, + FLAGS_FORCED = 0x8, + FLAGS_DELTA_CORRECT = 0x10, + FLAGS_VIA_SUBWEB = 0x20, + FLAGS_FORCED_FALLBACK_ONLY = 0x40, + FLAGS_SKIP_INTERRUPT_PATH_CHECK = 0x80, + FLAGS_FORCE_RESET_NODE = 0x100, + FLAGS_REPORT_FAILURE = 0x200, + FLAGS_REPORT_IGNORE = 0x400, + FLAGS_FORCE_VIA_IF_ALREADY_THERE = 0x800, +}; + +// IDA Local Type ordinal 2648; PDB kind: unknown. +enum md6AnimCommand_t:: : __int32 +{ + OP_NO = 0x0, + OP_END = 0x1, + OP_DECODE_AND_PUSH = 0x2, + OP_DECODE_FACECOMPOSITE_AND_BLEND = 0x3, + OP_POP_AND_BLEND = 0x4, +}; + +// IDA Local Type ordinal 14051; PDB kind: struct. +struct md6AnimCommand_t +{ + md6AnimCommand_t:: op; + md6FrameInfo_t frameInfo; + md6BlendInfo_t blendInfo; + int debugCommand; + const char *animName; +}; + +// IDA Local Type ordinal 15101; PDB kind: class. +class idAnimWebCmdCtx +{ +public: + idEntity *entity; + idAnimator_AnimWeb *animWeb; + awCmdPriority_t priority; + unsigned int groupFilter; + unsigned int defaultAnimWebCmdGroupFilter; + unsigned __int8 lockedFlags; + idAnimWebCmdWaitHandle *activeWaitHandle; + idAnimWebCmdWaitHandle defaultWaitHandle; +}; + +// IDA Local Type ordinal 21385; PDB kind: class. +class idAnimWebCmd +{ +public: + idAnimWebCmdCtx *owner; + unsigned int groups; + unsigned int groupFilter; + idAnimWebState via; + idAnimWebState dst; + idIndex viaWeb; + __declspec(align(4)) blendParms_t blendParms; + interruptPath_t intrPath; + interruptBlend_t intrBlend; + awPathResult_t pathResult; + const idEventDef *doneEvent; + awCmdDeltaCorrect_t deltaCorrectParms; + int flags; + unsigned __int8 lockMask; + int forceFallbackPathSize; + int blendEventMask; + const char *userString; + bool alreadyThere; +}; diff --git a/source/tungsten/game/ai/animfsm/animwebstate.h b/source/tungsten/game/ai/animfsm/animwebstate.h new file mode 100644 index 0000000..fae663a --- /dev/null +++ b/source/tungsten/game/ai/animfsm/animwebstate.h @@ -0,0 +1,26 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\animfsm\animwebstate.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15099; PDB kind: class. +class idAnimWebState +{ +public: + const idDeclAnimWeb *owner; + idIndex subweb; + idIndex state; + idIndex node; + bool pathConstructed; + idAtomicString debugSubweb; + idAtomicString debugState; +}; + +// IDA Local Type ordinal 21384; PDB kind: class. +class idAnimWebState_Current : public idAnimWebState +{ +public: +}; diff --git a/source/tungsten/game/ai/animwebai.h b/source/tungsten/game/ai/animwebai.h new file mode 100644 index 0000000..c19937d --- /dev/null +++ b/source/tungsten/game/ai/animwebai.h @@ -0,0 +1,95 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\animwebai.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17126; PDB kind: class. +class idAnimWebAI : public idAnimator_AnimWeb +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17127. + virtual ~idAnimWebAI(); + virtual idAnimator_Base::priority_t GetStackPriority(); + virtual serializeType_t GetSerializeType(); + virtual void SerializeSnapshot(idSerializer *); + virtual void PreBlendSnapshot(idAnimStack *, int, const int, float); + virtual void PreSerializeInit(idAnimStack *, idClip *, idGameTimeManager *); + virtual bool InternalInit(const idAnimatorParms_Base *); + virtual bool InternalPostInit(const idAnimatorParms_Base *); + virtual void InternalShutdown(idAnimStack *); + virtual void InternalPreBlendTree(const idAnimStack *, const int, const int); + virtual void InternalPostBlendTree(const idAnimStack *, const int); + virtual void InternalStart(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalEnd(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalBlend(const idAnimStack *, const int, const float, const idTypesafeNumber); + virtual bool InternalIsContributing(); + virtual const idMD6Branch *InternalGetMergeBranch(); + virtual idMD6Branch *InternalGetMergeBranch_2(); + virtual void InternalPause(const idAnimStack *, const idTypesafeNumber); + virtual void InternalUnpause(const idAnimStack *, const idTypesafeNumber); + virtual const idMD6Branch *InternalGetEndBranch(); + virtual idMD6Branch *InternalGetEndBranch_2(); + virtual const idHandle *GetHandle(); + virtual void InternalInitWeb(); + virtual void InternalUpdate(const int); + virtual idDeclAnimWebNode::animDelta_t InternalGetCurrentAnimDeltaMode(); + virtual void InternalSetAnimDelta(const idIndex, const idDeclAnimWebNode *); + virtual int InternalGetEdgeCost(const idIndex, const idIndex); + virtual void InternalStartPath(); + virtual void InternalUpdateScalars(const int); + virtual void InternalStartBlend(const idDeclAnimWebNode *, const idDeclAnimWebNode *, const int); + virtual void InternalFinishBlend(const idDeclAnimWebNode *, const idDeclAnimWebNode *, const int); + virtual awCheckPathResult_t CheckNextNode(const idDeclAnimWebNode *, const idDeclAnimWebNode *); + virtual bool InternalShouldStartNextNode(const idIndex, const idIndex, const int, const int, const blendParms_t *, idIndex, const bool, animWebEvent_t *); + virtual void InternalTriggerEvent(const idDeclAnimWebNode *, const animWebEvent_t, const idHandle *, const int, const int); + virtual void InternalTriggerBlendEvent(int, idIndex, idIndex, idIndex, const int); + virtual bool InternalRemapNames(idStr *, idStr *); + virtual void InternalUpdateBlendEvents(const idAnimStack *, const int, const int); + + idAI2 *ai; + float bodyTurnDot; + turnDirection_t bodyTurnDir; + float movementTurnDot; + turnDirection_t movementTurnDir; + float forwardRunIndex; + float leftRunIndex; + float rightRunIndex; + float backRunIndex; + float injuredRunOffset; + float previousRunIndex; + float forwardRunBlend; + float forwardRunBlendLinear; + float deathAnimIndex; + float startTransitionIndex; + float stopTransitionIndex; + float aimAlpha; + float nextRunIndex; + float idleIndex; + float nextIdleIndex; + float previousIdleIndex; + runIndexType_t runIndexType; + runIndexType_t nextRunIndexType; + int runIndexChangeFrame; + float blendBack; + float blendRight; + float blendAngle; + float walkRate; + float runRate; + float deathScale; + float desiredTurn; + float sync8index1; + float sync8index2; + float sync8blendAngle; + float select01; + float traversalAttack; + float diveIndex; + float transitionSelect; + float toCombatTurn; + float toSearchTurn; + float turnLeanDirection; + float turnLeanAmount; + float gangstaAlpha; +}; diff --git a/source/tungsten/game/ai/cover/aicover.h b/source/tungsten/game/ai/cover/aicover.h new file mode 100644 index 0000000..49eefec --- /dev/null +++ b/source/tungsten/game/ai/cover/aicover.h @@ -0,0 +1,28 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\cover\aicover.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2391; PDB kind: enum. +enum aiCoverFlags_t : __int32 +{ + COVER_NONE = 0x0, + COVER_POPIN_HURT = 0x1, + COVER_POPIN_AIM = 0x2, + COVER_POPIN_RELOAD = 0x4, + COVER_POPOUT_NO_AIM = 0x8, + COVER_POPOUT_HURT = 0x10, + COVER_STAYOUT_SAFE = 0x20, +}; + +// IDA Local Type ordinal 14722; PDB kind: class. +class __declspec(align(4)) idAICover +{ +public: + const idAAS2 *aas; + idSpawnId spawnId; + __int16 coverIndex; +}; diff --git a/source/tungsten/game/ai/cover/aicovermanager.h b/source/tungsten/game/ai/cover/aicovermanager.h new file mode 100644 index 0000000..1166f3f --- /dev/null +++ b/source/tungsten/game/ai/cover/aicovermanager.h @@ -0,0 +1,18 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\cover\aicovermanager.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17233; PDB kind: class. +class __declspec(align(4)) idAICoverManager +{ +public: + idList knownCover; + int lastUpdateTime; + int lastTravelFlags; + idVec3 lastUpdatePos; + bool forceUpdate; +}; diff --git a/source/tungsten/game/ai/cover/coveractions.h b/source/tungsten/game/ai/cover/coveractions.h new file mode 100644 index 0000000..577b07b --- /dev/null +++ b/source/tungsten/game/ai/cover/coveractions.h @@ -0,0 +1,68 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\cover\coveractions.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1578; PDB kind: enum. +enum coverAction_t : __int32 +{ + COVERACTION_NONE = 0x0, + COVERACTION_FIRE_OVER = 0x1, + COVERACTION_FIRE_LEAN_LEFT = 0x2, + COVERACTION_FIRE_LEAN_RIGHT = 0x3, + COVERACTION_FIRE_STEP_LEFT = 0x4, + COVERACTION_FIRE_STEP_RIGHT = 0x5, + COVERACTION_BLINDFIRE_OVER = 0x6, + COVERACTION_BLINDFIRE_LEFT = 0x7, + COVERACTION_BLINDFIRE_RIGHT = 0x8, + COVERACTION_PEEK_OVER = 0x9, + COVERACTION_PEEK_LEFT = 0xA, + COVERACTION_PEEK_RIGHT = 0xB, + COVERACTION_HIDE = 0xC, + COVERACTION_RAIL_DOWN = 0xD, + COVERACTION_RAIL_UP = 0xE, + COVERACTION_RAIL_LEFT = 0xF, + COVERACTION_RAIL_RIGHT = 0x10, + COVERACTION_MAX = 0x11, +}; + +// IDA Local Type ordinal 16658; PDB kind: class. +class __declspec(align(4)) idCoverActions +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16659. + virtual ~idCoverActions(); + virtual void Clear(); + + unsigned __int8 : 3; + __int8 fireStepRight : 1; + __int8 fireLeanRight : 1; + __int8 fireStepLeft : 1; + __int8 fireLeanLeft : 1; + __int8 fireOver : 1; +}; + +// IDA Local Type ordinal 19842; PDB kind: class. +class idCoverTransitions +{ +public: + __int8 jumpover : 1; + __int8 wrapAroundRight : 1; + __int8 turnAroundRight : 1; + __int8 right : 1; + __int8 wrapAroundLeft : 1; + __int8 turnAroundLeft : 1; + __int8 left : 1; + __int8 forward : 1; +}; + +// IDA Local Type ordinal 20868; PDB kind: struct. +struct __declspec(align(4)) coverOptions_t +{ + coverAction_t coverAction; + bool sameSide; + bool avoid; +}; diff --git a/source/tungsten/game/ai/cover/covercapabilities.h b/source/tungsten/game/ai/cover/covercapabilities.h new file mode 100644 index 0000000..eb81a46 --- /dev/null +++ b/source/tungsten/game/ai/cover/covercapabilities.h @@ -0,0 +1,35 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\cover\covercapabilities.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16660; PDB kind: class. +class __declspec(align(4)) idCoverCapabilities : public idCoverActions +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16661. + virtual ~idCoverCapabilities(); + virtual void Clear(); + virtual bool HasCapability(const idCoverCapabilities *); + virtual bool HasCapability_2(const idCoverActions *); + + unsigned __int8 : 1; + __int8 hide : 1; + __int8 peekOver : 1; + __int8 peekRight : 1; + __int8 peekLeft : 1; + __int8 blindfireOver : 1; + __int8 blindfireRight : 1; + __int8 blindfireLeft : 1; +}; + +// IDA Local Type ordinal 16662; PDB kind: class. +class idAICoverCapabilities +{ +public: + idCoverCapabilities crouchCaps; + idCoverCapabilities fullCaps; +}; diff --git a/source/tungsten/game/ai/cover/coverquery.h b/source/tungsten/game/ai/cover/coverquery.h new file mode 100644 index 0000000..cdbfcdd --- /dev/null +++ b/source/tungsten/game/ai/cover/coverquery.h @@ -0,0 +1,56 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\cover\coverquery.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 20503; PDB kind: class. +class idCoverQuery +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20506. + virtual ~idCoverQuery(); + virtual void InternalPreScore(); + virtual void InternalSetupTarget(const idCoverQuery::coverTarget_t *); + virtual float InternalScoreCover(const idCoverQuery::coverCache_t *); + + idAI2 *ai; + idCoverQuery::coverTarget_t target; + idAICover excludeCover; + int debugLevel; + int queryFlags; + int minTravelTimeIndex; + float minTravelTime; + int maxTravelTimeIndex; + float maxTravelTime; + float travelTimeRange; + idAASPosition aiaiPos; + idAASPosition aivcPos; + idList relevantCover; +}; + +// IDA Local Type ordinal 20504; PDB kind: struct. +const struct idCoverQuery::coverTarget_t +{ + idSpawnId spawnId; + idVec3 origin; + idVec3 eyePoint; + idAASPosition aiPos; + idAASPosition vcPos; + int confirmedTime; +}; + +// IDA Local Type ordinal 20505; PDB kind: struct. +const struct idCoverQuery::coverCache_t +{ + int index; + idAASPosition aiPos; + idAASPosition vcPos; + int vcAreaNum; + idVec3 delta; + float linearDistance; + float travelTime; + float score; +}; diff --git a/source/tungsten/game/ai/cover/coverqueryavoid.h b/source/tungsten/game/ai/cover/coverqueryavoid.h new file mode 100644 index 0000000..1007334 --- /dev/null +++ b/source/tungsten/game/ai/cover/coverqueryavoid.h @@ -0,0 +1,23 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\cover\coverqueryavoid.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 21111; PDB kind: class. +class idCoverQueryAvoid : public idCoverQuery +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21112. + virtual ~idCoverQueryAvoid(); + virtual void InternalPreScore(); + virtual void InternalSetupTarget(const idCoverQuery::coverTarget_t *); + virtual float InternalScoreCover(const idCoverQuery::coverCache_t *); + + float maxAvoidTime; + const idEntity *avoidEnt; + idAASPosition avoidvcPos; + idVec3 avoidOrigin; +}; diff --git a/source/tungsten/game/ai/cover/coverqueryclosest.h b/source/tungsten/game/ai/cover/coverqueryclosest.h new file mode 100644 index 0000000..5d233c9 --- /dev/null +++ b/source/tungsten/game/ai/cover/coverqueryclosest.h @@ -0,0 +1,20 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\cover\coverqueryclosest.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 21380; PDB kind: class. +class idCoverQueryClosest : public idCoverQuery +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21381. + virtual ~idCoverQueryClosest(); + virtual void InternalPreScore(); + virtual void InternalSetupTarget(const idCoverQuery::coverTarget_t *); + virtual float InternalScoreCover(const idCoverQuery::coverCache_t *); + + idVec3 desiredCoverPosition; +}; diff --git a/source/tungsten/game/ai/cover/coverqueryreload.h b/source/tungsten/game/ai/cover/coverqueryreload.h new file mode 100644 index 0000000..a4ef127 --- /dev/null +++ b/source/tungsten/game/ai/cover/coverqueryreload.h @@ -0,0 +1,48 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\cover\coverqueryreload.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16900; PDB kind: class. +class __unaligned __declspec(align(4)) idInCover_Reload : public idAIState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 33940. + virtual idTypeInfo *GetType(); + virtual ~idInCover_Reload(); + 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 Save(const idFiniteStateMachine *, idFile_String *, const char *); + virtual void InternalInitState(const idFiniteStateMachine *); + virtual bool InternalCanUse(idFiniteStateMachine *, const int); + virtual void InternalEnterState(idFiniteStateMachine *, const int); + virtual void InternalExitState(idFiniteStateMachine *, const int); + virtual void InternalWork(idFiniteStateMachine *, const int); + virtual void InternalReenterState(idFiniteStateMachine *, const int, const int); + virtual bool InternalIsStateWaiting(idFiniteStateMachine *, const int); + virtual void InternalGetDebugString(idStr *); + virtual bool AIState_CanUse(idAI2 *, idAIFSM *, const int); + virtual void AIState_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIState_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIState_Work(idAI2 *, idAIFSM *, const int); + virtual void AIState_ReenterState(idAI2 *, idAIFSM *, const int, const int); + virtual bool AIState_IsWaiting(idAI2 *, idAIFSM *, const int); + +}; + +// IDA Local Type ordinal 20714; PDB kind: class. +class idCoverQueryReload : public idCoverQuery +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20715. + virtual ~idCoverQueryReload(); + virtual void InternalPreScore(); + virtual void InternalSetupTarget(const idCoverQuery::coverTarget_t *); + virtual float InternalScoreCover(const idCoverQuery::coverCache_t *); + +}; diff --git a/source/tungsten/game/ai/cover/coverquerytakecover.h b/source/tungsten/game/ai/cover/coverquerytakecover.h new file mode 100644 index 0000000..1489b0b --- /dev/null +++ b/source/tungsten/game/ai/cover/coverquerytakecover.h @@ -0,0 +1,19 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\cover\coverquerytakecover.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 20508; PDB kind: class. +class idCoverQueryTakeCover : public idCoverQuery +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20509. + virtual ~idCoverQueryTakeCover(); + virtual void InternalPreScore(); + virtual void InternalSetupTarget(const idCoverQuery::coverTarget_t *); + virtual float InternalScoreCover(const idCoverQuery::coverCache_t *); + +}; diff --git a/source/tungsten/game/ai/cover/dynamiccover.h b/source/tungsten/game/ai/cover/dynamiccover.h new file mode 100644 index 0000000..f1bcded --- /dev/null +++ b/source/tungsten/game/ai/cover/dynamiccover.h @@ -0,0 +1,41 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\cover\dynamiccover.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14721; PDB kind: class. +class idDynamicCover : public idClass +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14726. + virtual idTypeInfo *GetType(); + virtual ~idDynamicCover(); + virtual void UpdateUsable(const idEntity *, const idAAS2 *, const int); + virtual void InternalUpdateCurrent(const idEntity *, const idAAS2 *, const int); + virtual void InternalUpdateUsable(const idEntity *, const idAAS2 *, const int); + virtual int InternalAppendUsableCover(const idEntity *, const idAAS2 *, idList *); + virtual void MarkAllUnusable(); + virtual void MarkAllUsable(); + + int numCover; + bool updated; + idList coverInfo; +}; + +// IDA Local Type ordinal 14724; PDB kind: struct. +struct idDynamicCover::coverInfo_t +{ + aas2Cover_t cover; + idClipQuery contentsQuery; + idClipQuery translationQuery; +}; + +// IDA Local Type ordinal 21379; PDB kind: struct. +struct idDynamicCover::GetPropNameForAAS::__l2::aasProperties_t +{ + const char *propName; + idBounds bounds; +}; diff --git a/source/tungsten/game/ai/cover/dynamiccovermgr.h b/source/tungsten/game/ai/cover/dynamiccovermgr.h new file mode 100644 index 0000000..ff2404f --- /dev/null +++ b/source/tungsten/game/ai/cover/dynamiccovermgr.h @@ -0,0 +1,29 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\cover\dynamiccovermgr.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14720; PDB kind: class. +class idDynamicCoverMgr : public idClass +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14728. + virtual idTypeInfo *GetType(); + virtual ~idDynamicCoverMgr(); + virtual int NumCoverPoints(const idAAS2 *); + virtual aas2Cover_t *GetCoverPoint(const idAAS2 *, const int); + virtual const aas2Cover_t *GetCoverPoint_2(const idAAS2 *, const int); + virtual const idEntity *GetReserver(const idAAS2 *, const int); + virtual void Reserve(const idAAS2 *, const int, const idEntity *); + virtual void Unreserve(const idAAS2 *, const int); + virtual int GetUsableTime(const idAAS2 *, const int); + virtual void SetUsableTime(const idAAS2 *, const int, const int); + virtual idDynamicCover *AllocCover(const idAAS2 *); + virtual void FreeCover(idDynamicCover *); + + bool isInitializedFlag; + idList list; +}; diff --git a/source/tungsten/game/ai/cover/formationcover.h b/source/tungsten/game/ai/cover/formationcover.h new file mode 100644 index 0000000..ce30209 --- /dev/null +++ b/source/tungsten/game/ai/cover/formationcover.h @@ -0,0 +1,43 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\cover\formationcover.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17255; PDB kind: class. +class idFormationCoverMgr : public idDynamicCoverMgr +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17256. + virtual idTypeInfo *GetType(); + virtual ~idFormationCoverMgr(); + virtual int NumCoverPoints(const idAAS2 *); + virtual aas2Cover_t *GetCoverPoint(const idAAS2 *, const int); + virtual const aas2Cover_t *GetCoverPoint_2(const idAAS2 *, const int); + virtual const idEntity *GetReserver(const idAAS2 *, const int); + virtual void Reserve(const idAAS2 *, const int, const idEntity *); + virtual void Unreserve(const idAAS2 *, const int); + virtual int GetUsableTime(const idAAS2 *, const int); + virtual void SetUsableTime(const idAAS2 *, const int, const int); + virtual idDynamicCover *AllocCover(const idAAS2 *); + virtual void FreeCover(idDynamicCover *); + +}; + +// IDA Local Type ordinal 21376; PDB kind: class. +class idFormationCover : public idDynamicCover +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21377. + virtual idTypeInfo *GetType(); + virtual ~idFormationCover(); + virtual void UpdateUsable(const idEntity *, const idAAS2 *, const int); + virtual void InternalUpdateCurrent(const idEntity *, const idAAS2 *, const int); + virtual void InternalUpdateUsable(const idEntity *, const idAAS2 *, const int); + virtual int InternalAppendUsableCover(const idEntity *, const idAAS2 *, idList *); + virtual void MarkAllUnusable(); + virtual void MarkAllUsable(); + +}; diff --git a/source/tungsten/game/ai/cover/vehiclecover.h b/source/tungsten/game/ai/cover/vehiclecover.h new file mode 100644 index 0000000..4b3fa97 --- /dev/null +++ b/source/tungsten/game/ai/cover/vehiclecover.h @@ -0,0 +1,51 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\cover\vehiclecover.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1289; PDB kind: enum. +enum vehicleDriver_t : __int32 +{ + VEHICLE_DRIVER_ATV = 0x0, + VEHICLE_DRIVER_CAR = 0x1, + VEHICLE_DRIVER_MAX = 0x2, +}; + +// IDA Local Type ordinal 14729; PDB kind: class. +class idVehicleCoverMgr : public idDynamicCoverMgr +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14730. + virtual idTypeInfo *GetType(); + virtual ~idVehicleCoverMgr(); + virtual int NumCoverPoints(const idAAS2 *); + virtual aas2Cover_t *GetCoverPoint(const idAAS2 *, const int); + virtual const aas2Cover_t *GetCoverPoint_2(const idAAS2 *, const int); + virtual const idEntity *GetReserver(const idAAS2 *, const int); + virtual void Reserve(const idAAS2 *, const int, const idEntity *); + virtual void Unreserve(const idAAS2 *, const int); + virtual int GetUsableTime(const idAAS2 *, const int); + virtual void SetUsableTime(const idAAS2 *, const int, const int); + virtual idDynamicCover *AllocCover(const idAAS2 *); + virtual void FreeCover(idDynamicCover *); + +}; + +// IDA Local Type ordinal 21374; PDB kind: class. +class idVehicleCover : public idDynamicCover +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21375. + virtual idTypeInfo *GetType(); + virtual ~idVehicleCover(); + virtual void UpdateUsable(const idEntity *, const idAAS2 *, const int); + virtual void InternalUpdateCurrent(const idEntity *, const idAAS2 *, const int); + virtual void InternalUpdateUsable(const idEntity *, const idAAS2 *, const int); + virtual int InternalAppendUsableCover(const idEntity *, const idAAS2 *, idList *); + virtual void MarkAllUnusable(); + virtual void MarkAllUsable(); + +}; diff --git a/source/tungsten/game/ai/encountergroupmanager.h b/source/tungsten/game/ai/encountergroupmanager.h new file mode 100644 index 0000000..e208bac --- /dev/null +++ b/source/tungsten/game/ai/encountergroupmanager.h @@ -0,0 +1,187 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\encountergroupmanager.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17269; PDB kind: class. +class __declspec(align(4)) idEncounterGroupManager : public idClass +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17270. + virtual idTypeInfo *GetType(); + virtual ~idEncounterGroupManager(); + + idList groups; + int nextThinkTime; + idHashIndex hashIndex; + __int16 curHandle; +}; + +// IDA Local Type ordinal 21371; PDB kind: class. +class idEncounterGroupMgr : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21372. + virtual idTypeInfo *GetType(); + virtual ~idEncounterGroupMgr(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + idList groups; +}; diff --git a/source/tungsten/game/ai/encountergroups.h b/source/tungsten/game/ai/encountergroups.h new file mode 100644 index 0000000..e18b3c7 --- /dev/null +++ b/source/tungsten/game/ai/encountergroups.h @@ -0,0 +1,86 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\encountergroups.h +// Recovered logical types: 5 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14471; PDB kind: class. +class idEncounterGroup +{ +public: + idStr groupName; + idList childGroups; + idList childGroupNames; + idEncounterState spawnState; + idEncounterState ownGroupAlertState; + idEncounterState otherGroupAlertState; + bool enabled; + idEntityPtr leader; + int maxSimultaneousFirers; + int noRageMemberCount; + int nonGroupRushUnits; + int groupRushTime; + int minGrenadeRethrowTime; + idList triggers; + int maxMembers; + idList,5> members; + int numLivingMembers; + int numDeadMembers; + float recentHeavilyKilledMembers; + float recentlyKilledMembers; + float recentlyKilledHeavies; + idFaction faction; + aiConfidenceLevel_t confidenceLevel; + alertCycle_t highestMemberAlertCycle; + bool anyMemberHasSeenDeadBody; + bool shouldAmbush; + bool shouldGroupRush; + bool groupGoodWill; + idEncounterGroup::idGoodWillSettings goodWillSettings; + int nextGroupMemberRoleUpdateTime; + int nextGrenadeTime; + idHandle handle; + bool active; + idAIVoiceController voiceController; + idList searchPointList; + int curCombatStage; + int pendingCombatStage; + int pendingCombatStageTime; + int stageChangeTime; + idList combatStages; + int initialCombatStage; + idList,5> searchHintGroups; + idStaticList targetList; +}; + +// IDA Local Type ordinal 14479; PDB kind: struct. +struct idEncounterGroup::idGoodWillSettings +{ + unsigned __int8 : 3; + __int8 maxHoldTrigger : 1; + __int8 allFireFromCover : 1; + __int8 infiniteAmmo : 1; + __int8 perfectAim : 1; + __int8 surroundTrigger : 1; + float damageScale; +}; + +// IDA Local Type ordinal 14482; PDB kind: struct. +struct __declspec(align(4)) idEncounterGroup::searchPoint_t +{ + int hintNodeIndex; + float searchDist; + bool visited; +}; + +// IDA Local Type ordinal 14491; PDB kind: struct. +struct idEncounterGroup::target_t +{ + idEntityPtr target; + int frame; +}; + +// IDA Local Type ordinal 28836; PDB kind: typedef. +typedef idList encounterGroupList_t; diff --git a/source/tungsten/game/ai/focusinfo.h b/source/tungsten/game/ai/focusinfo.h new file mode 100644 index 0000000..1a08d6f --- /dev/null +++ b/source/tungsten/game/ai/focusinfo.h @@ -0,0 +1,36 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\focusinfo.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16729; PDB kind: class. +class __declspec(align(4)) idFocusInfo +{ +public: + idWanderingAim wanderingAim; + idEntityPtr focusEntity; + aimPoint_t aimPoint; + const idDeclTrackingParms *declTrackingParms; + int trackingParmsIndex; + int focusTimeout; + idVec3 idealFocusPoint; + idVec3 curFocusPoint; + idVec3 offset; + idVec3 explicitOffset; + idAngles explicitOffsetAngles; + idAimTracker aimTracker; + aiFoci_t fociType; + aiFocus_t focusType; + int defaultHeadTrackGroup; + idAnimator_TrackerBase *animators[2]; + int curAnimatorIndex; + idMat3 wsReferenceAxis; + bool enableTracking; + bool suppressTracking; + bool keepFocusInView; + bool hasExplicitFocusPoint; + bool lockTracking; +}; diff --git a/source/tungsten/game/ai/fsm/aiaction.h b/source/tungsten/game/ai/fsm/aiaction.h new file mode 100644 index 0000000..8311467 --- /dev/null +++ b/source/tungsten/game/ai/fsm/aiaction.h @@ -0,0 +1,406 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\fsm\aiaction.h +// Recovered logical types: 26 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1549; PDB kind: enum. +enum idAIAction::flag_t : __int32 +{ + FLAG_NONE = 0x0, + FLAG_BLOCKS_SCRIPT = 0x1, + FLAG_STOPS_MOVEMENT = 0x2, +}; + +// IDA Local Type ordinal 1603; PDB kind: enum. +enum idAIActionParm::parm_t : __int32 +{ + P_NONE = 0x0, + P_DISCRETE = 0x1, + P_FLOAT = 0x2, + P_STRING = 0x3, + P_DECL = 0x4, + P_MAX = 0x5, +}; + +// IDA Local Type ordinal 1605; PDB kind: enum. +enum idAIActionParm::subParm_t : __int32 +{ + SP_INTEGER = 0x0, + SP_BOOL = 0x1, + SP_ARRIVALACTION = 0x2, + SP_POSTURE = 0x3, + SP_COVERACTION = 0x4, + SP_EQUIPSLOT = 0x5, + SP_ALERTCYCLE = 0x6, + SP_FIREMODE = 0x7, + SP_AIMPOINT = 0x8, + SP_WALKSTATE = 0x9, + SP_AIPLAYER = 0xA, + SP_OVERRIDEANIM = 0xB, + SP_PAIN = 0xC, + SP_AIDIRECTION = 0xD, + SP_DODGEDIR = 0xE, + SP_SUBWEB = 0xF, + SP_ACTIONBOOL = 0x10, + SP_FLOAT = 0x11, + SP_VEC3 = 0x12, + SP_ANGLES = 0x13, + SP_STRING = 0x14, + SP_ANIM_ALIAS = 0x15, + SP_ANIM_WEB_NODE = 0x16, + SP_ENTITY_NAME = 0x17, + SP_DECL_VOICEOVER = 0x18, + SP_DECL_SOUND = 0x19, + SP_DECL_AMMO = 0x1A, + SP_DECL_WEAPON = 0x1B, + SP_AIVAROP = 0x1C, + SP_AIVARTYPE = 0x1D, + SP_DECL_INVENTORY = 0x1E, + SP_AIANIMWEB = 0x1F, + SP_AIACTIONSCRIPTFLAG = 0x20, + SP_AIPERCEPTIONFLAG = 0x21, + SP_SITSTATE = 0x22, + SP_STANDSTATE = 0x23, + SP_IDLESTATE = 0x24, + SP_SETMOVEPUSHSTATUS = 0x25, + SP_AIMOVEMENTMODE = 0x26, + SP_AIANIMWAIT = 0x27, + SP_AIIDLETURN = 0x28, + SP_ACCURACY = 0x29, + SP_AIMOVEREASON = 0x2A, + SP_MOVE_TO_SCENEPOINT_FLAGS = 0x2B, + SP_COMMAND_MOVE = 0x2C, + SP_MAX = 0x2D, +}; + +// IDA Local Type ordinal 2380; PDB kind: enum. +enum aiActionBool_t : __int32 +{ + AIACTION_FALSE = 0x0, + AIACTION_TRUE = 0x1, +}; + +// IDA Local Type ordinal 15691; PDB kind: struct. +struct vaiAction_t::fireAtEnemy_t +{ + idEntityPtr enemy; + float time; +}; + +// IDA Local Type ordinal 15692; PDB kind: struct. +struct vaiAction_t::aiGoIdle_t +{ + bool activate; + bool goIdle; +}; + +// IDA Local Type ordinal 15693; PDB kind: struct. +struct vaiAction_t::damageEntity_t +{ + idList,5> entityList; + idEntityPtr attacker; + float damage; +}; + +// IDA Local Type ordinal 15694; PDB kind: struct. +struct vaiAction_t::throwAttachedItem_t::item_t +{ + idStr name; + float force; + idEntityPtr atEntity; +}; + +// IDA Local Type ordinal 15696; PDB kind: struct. +struct vaiAction_t::throwAttachedItem_t +{ + idList itemList; +}; + +// IDA Local Type ordinal 15697; PDB kind: struct. +struct vaiAction_t::trigger_t +{ + idList,5> targetList; +}; + +// IDA Local Type ordinal 15698; PDB kind: struct. +struct vaiAction_t::occupantLookAt_t +{ + bool driver; + bool passenger; + idEntityPtr target; + float time; +}; + +// IDA Local Type ordinal 15699; PDB kind: struct. +struct vaiAction_t::forceSteering_t +{ + float time; + float angle; + float speed; +}; + +// IDA Local Type ordinal 15700; PDB kind: struct. +struct vaiAction_t::boostFx_t +{ + float time; +}; + +// IDA Local Type ordinal 15701; PDB kind: struct. +struct vaiAction_t::vehicleCam_t +{ + bool activate; + idStr tagName; + float fwdOfs; + float rtOfs; + float upOfs; +}; + +// IDA Local Type ordinal 15702; PDB kind: struct. +struct vaiAction_t::removeEntity_t +{ + idList,5> entityList; +}; + +// IDA Local Type ordinal 15703; PDB kind: struct. +struct vaiAction_t::allowWeaponChange_t +{ + bool activate; + bool allowChange; +}; + +// IDA Local Type ordinal 15704; PDB kind: struct. +struct vaiAction_t::nextWeapon_t +{ + bool activate; +}; + +// IDA Local Type ordinal 15705; PDB kind: struct. +struct vaiAction_t::vehicleDamageScale_t +{ + idList,5> entityList; + float damageScale; +}; + +// IDA Local Type ordinal 15706; PDB kind: struct. +struct vaiAction_t::vehicleCollisionDamage_t +{ + idList,5> entityList; + const idDeclDamage *declDamage; +}; + +// IDA Local Type ordinal 15707; PDB kind: struct. +struct vaiAction_t::vehicleCollisionImpulse_t +{ + idList,5> entityList; + float impulse; + float verticalImpulse; +}; + +// IDA Local Type ordinal 15708; PDB kind: struct. +struct vaiAction_t::tireFriction_t +{ + float frontFriction; + float rearFriction; + float frictionTime; +}; + +// IDA Local Type ordinal 15709; PDB kind: struct. +struct vaiAction_t +{ + vaiAction_t::fireAtEnemy_t fireAtEnemy; + vaiAction_t::aiGoIdle_t aiGoIdle; + vaiAction_t::damageEntity_t damageEntity; + vaiAction_t::throwAttachedItem_t throwAttachedItem; + vaiAction_t::trigger_t trigger; + vaiAction_t::occupantLookAt_t occupantLookAt; + vaiAction_t::forceSteering_t forceSteering; + vaiAction_t::boostFx_t boostFx; + vaiAction_t::vehicleCam_t vehicleCam; + vaiAction_t::removeEntity_t removeEntity; + vaiAction_t::allowWeaponChange_t allowWeaponChange; + vaiAction_t::nextWeapon_t nextWeapon; + vaiAction_t::vehicleDamageScale_t vehicleDamageScale; + vaiAction_t::vehicleCollisionDamage_t vehicleCollisionDamage; + vaiAction_t::vehicleCollisionImpulse_t vehicleCollisionImpulse; + vaiAction_t::tireFriction_t tireFriction; +}; + +// IDA Local Type ordinal 16639; PDB kind: class. +class idAIActionParm +{ +public: + unsigned __int16 type; + unsigned __int16 subType; + int intVal; + idVec3 floatVal; + const idDecl *declVal; + idStr strVal; +}; + +// IDA Local Type ordinal 16998; PDB kind: class. +class idAIAction : public idAIState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17263. + virtual idTypeInfo *GetType(); + virtual ~idAIAction(); + 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 Save(const idFiniteStateMachine *, idFile_String *, const char *); + virtual void InternalInitState(const idFiniteStateMachine *); + virtual bool InternalCanUse(idFiniteStateMachine *, const int); + virtual void InternalEnterState(idFiniteStateMachine *, const int); + virtual void InternalExitState(idFiniteStateMachine *, const int); + virtual void InternalWork(idFiniteStateMachine *, const int); + virtual void InternalReenterState(idFiniteStateMachine *, const int, const int); + virtual bool InternalIsStateWaiting(idFiniteStateMachine *, const int); + virtual void InternalGetDebugString(idStr *); + virtual bool AIState_CanUse(idAI2 *, idAIFSM *, const int); + virtual void AIState_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIState_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIState_Work(idAI2 *, idAIFSM *, const int); + virtual void AIState_ReenterState(idAI2 *, idAIFSM *, const int, const int); + virtual bool AIState_IsWaiting(idAI2 *, idAIFSM *, const int); + virtual const idEventDef *GetActionEventDef(); + virtual int GetActionFlags(); + virtual void AIAction_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIAction_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIAction_Work(idAI2 *, idAIFSM *, const int); + virtual void AIAction_ReenterState(idAI2 *, idAIFSM *, const int); + virtual bool AIAction_IsWaiting(idAI2 *, idAIFSM *, const int); + +}; + +// IDA Local Type ordinal 17115; PDB kind: class. +class idAIActionManager : public idFSMManager +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17116. + virtual idTypeInfo *GetType(); + virtual ~idAIActionManager(); + 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 idFiniteStateMachine *AllocFSM(const idTypeInfo *, const idFiniteStateMachineParams *); + virtual const idFiniteStateMachine *FindFSM(const idTypeInfo *); + virtual const idFiniteStateMachine *FindFSM_2(const char *); + virtual idFiniteStateMachine *FindFSM_3(const idTypeInfo *); + virtual idFiniteStateMachine *FindFSM_4(const char *); + virtual void FreeFSM(const idTypeInfo *); + virtual void FreeFSM_2(const char *); + + idAction_MoveToPoint actionMoveToPoint; + idAction_MoveToPointNoFail actionMoveToPointNoFail; + __unaligned __declspec(align(1)) idAction_MoveToEntity actionMoveToEntity; + __unaligned __declspec(align(1)) idAction_MoveToEntityNoFail actionMoveToEntityNoFail; + idAction_MoveToPathPoint actionMoveToPathPoint; + __unaligned __declspec(align(1)) idAction_MoveToPathPointNoFail actionMoveToPathPointNoFail; + idAction_MoveToCover actionMoveToCover; + __unaligned __declspec(align(1)) idAction_UseZipline actionUseZipline; + idAction_SetMovePushStatus actionSetMovePushStatus; + __unaligned __declspec(align(1)) idAction_Idle actionIdle; + __unaligned __declspec(align(1)) idAction_Pain actionPain; + idAction_StandToCrouch actionStandToCrouch; + idAction_CrouchToStand actionCrouchToStand; + idAction_PullTriggerRight actionPullTriggerRight; + __unaligned __declspec(align(1)) idAction_ReleaseTriggerRight actionReleaseTriggerRight; + idAction_PullTriggerLeft actionPullTriggerLeft; + __unaligned __declspec(align(1)) idAction_ReleaseTriggerLeft actionReleaseTriggerLeft; + idAction_ReloadWeapon actionReloadWeapon; + __unaligned __declspec(align(1)) idAction_ReloadWeaponTorso actionReloadWeaponTorso; + idAction_WaitForAnim actionWaitForAnim; + __unaligned __declspec(align(1)) idAction_WaitForAnimVia actionWaitForAnimVia; + idAction_LoopAnim actionLoopAnim; + __unaligned __declspec(align(1)) idAction_LoopAnimExitAtEnd actionLoopAnimExitAtEnd; + idAction_StartAnim actionStartAnim; + __unaligned __declspec(align(1)) idAction_WaitForTraversalAnim actionWaitForTraversalAnim; + idAction_ChangeAnimState actionChangeAnimState; + __unaligned __declspec(align(1)) idAction_ChangeAnimStateVia actionChangeAnimStateVia; + idAction_ForceAnimState actionForceAnimState; + __unaligned __declspec(align(1)) idAction_Dodge actionDodge; + __unaligned __declspec(align(1)) idAction_Wait actionWait; + idAction_Melee actionMelee; + __unaligned __declspec(align(1)) idAction_TurnToPoint actionTurnToPoint; + __unaligned __declspec(align(1)) idAction_TurnToEntity actionTurnToEntity; + __unaligned __declspec(align(1)) idAction_TurnToEntityWithOffset actionTurnToEntityWithOffset; + __unaligned __declspec(align(1)) idAction_Dive actionDive; + idAction_LeapAttack actionLeapAttack; + __unaligned __declspec(align(1)) idAction_WaitForEntity actionWaitForEntity; + idAction_EnterVehicle actionEnterVehicle; + __unaligned __declspec(align(1)) idAction_PlayVoiceOver actionPlayVoiceOver; + __unaligned __declspec(align(1)) idAction_StopVoiceOver actionStopVoiceOver; + idAction_PlayInteractionVoiceOver actionPlayInteractionVoiceOver; + idAction_PlayOverrideAnim actionPlayOverrideAnim; + __unaligned __declspec(align(1)) idAction_PlayOverrideAnimInterrupt actionPlayOverrideAnimInterrupt; + idAction_DrawWeapon actionDrawWeapon; + __unaligned __declspec(align(1)) idAction_HolsterWeapon actionHolsterWeapon; + idAction_PerformCoverAction actionPerformCoverAction; + __unaligned __declspec(align(1)) idAction_WaitForPlayerInteraction actionWaitForPlayerInteraction; + __unaligned __declspec(align(1)) idAction_WaitForAIVar actionWaitForAIVar; + idAction_PerfectMovement actionPerfectMovement; + idAction_SetAlertCycle actionSetAlertCycle; + __unaligned __declspec(align(1)) idAction_SetFocus actionSetFocus; + idAction_ClearLookFocus actionClearLookFocus; + __unaligned __declspec(align(1)) idAction_ClearAimFocus actionClearAimFocus; + idAction_SetAimPoint actionSetAimPoint; + __unaligned __declspec(align(1)) idAction_SetFireMode actionSetFireMode; + idAction_SetScriptAbort actionSetScriptAbort; + __unaligned __declspec(align(1)) idAction_SetPosture actionSetPosture; + idAction_SetWalkState actionSetWalkState; + __unaligned __declspec(align(1)) idAction_SetSitState actionSetSitState; + idAction_SetStandState actionSetStandState; + __unaligned __declspec(align(1)) idAction_SetIdleState actionSetIdleState; + idAction_SetPlayerEnemy actionSetPlayerEnemy; + __unaligned __declspec(align(1)) idAction_SetEnemy actionSetEnemy; + idAction_SearchToTarget actionSearchToTarget; + __unaligned __declspec(align(1)) idAction_SetPlayerFocus actionSetPlayerFocus; + idAction_SetActionNodeGroup actionSetActionNodeGroup; + __unaligned __declspec(align(1)) idAction_Trigger actionTrigger; + idAction_EnableDamage actionEnableDamage; + __unaligned __declspec(align(1)) idAction_EnablePain actionEnablePain; + idAction_EnableAutoFocus actionEnableAutoFocus; + __unaligned __declspec(align(1)) idAction_EnableBodyRotation actionEnableBodyRotation; + idAction_EnableWalkIK actionEnableWalkIK; + __unaligned __declspec(align(1)) idAction_EnableHeadTracking actionEnableHeadTracking; + idAction_ForceOpenCombat actionForceOpenCombat; + __unaligned __declspec(align(1)) idAction_ForceAwarenessByDistance actionForceAwarenessByDistance; + idAction_ForcePlayerInteraction actionForcePlayerInteraction; + __unaligned __declspec(align(1)) idAction_SetAIVar actionSetAIVar; + idAction_SetScriptFlag actionSetScriptFlag; + __unaligned __declspec(align(1)) idAction_ClearScriptFlag actionClearScriptFlag; + idAction_SetPerceptionFlag actionSetPerceptionFlag; + __unaligned __declspec(align(1)) idAction_ClearPerceptionFlag actionClearPerceptionFlag; + idAction_IgnorePlayerApproach actionIgnorePlayerApproach; + __unaligned __declspec(align(1)) idAction_NoticePlayerApproach actionNoticePlayerApproach; + idAction_SetSubWeb actionSetSubWeb; + __unaligned __declspec(align(1)) idAction_GiveItem actionGiveItem; + idAction_TakeItem actionTakeItem; + __unaligned __declspec(align(1)) idAction_ClearWorldState actionClearWorldState; + idAction_ShowAttachment actionShowAttachment; + __unaligned __declspec(align(1)) idAction_HideAttachment actionHideAttachment; + idAction_DropAttachment actionDropAttachment; + __unaligned __declspec(align(1)) idAction_SetMoveMode actionSetMoveMode; + idAction_SetAccuracy actionSetAccuracy; + __unaligned __declspec(align(1)) idAction_ScriptedAnimWeb actionScriptedAnimWeb; + __unaligned __declspec(align(1)) idAction_MoveToScenePoint actionMoveToScenePoint; + idLegsFSM legsFSM; + idList actionStates; + idHashTableT actionsHash; + int actionEventTransCode; +}; + +// IDA Local Type ordinal 21499; PDB kind: class. +class __declspec(align(4)) idAIActionParm::idSubParmInfo +{ +public: + const char *typeName; + const char *mediaFilter; + idAIActionParm::parm_t parmType; + bool isEnum; +}; diff --git a/source/tungsten/game/ai/fsm/aiactions.h b/source/tungsten/game/ai/fsm/aiactions.h new file mode 100644 index 0000000..5062a54 --- /dev/null +++ b/source/tungsten/game/ai/fsm/aiactions.h @@ -0,0 +1,31 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\fsm\aiactions.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17106; PDB kind: class. +class idAIActionsQueue : public idEventReceiver +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17107. + virtual idTypeInfo *GetType(); + virtual ~idAIActionsQueue(); + 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 *); + + idList actionEvents; + idList actionArgs; +}; + +// IDA Local Type ordinal 22360; PDB kind: class. +class idAIActionStatement +{ +public: + const idEventDef *eventDef; + idEventArgs args; +}; diff --git a/source/tungsten/game/ai/fsm/aifsm.h b/source/tungsten/game/ai/fsm/aifsm.h new file mode 100644 index 0000000..63ce2a4 --- /dev/null +++ b/source/tungsten/game/ai/fsm/aifsm.h @@ -0,0 +1,109 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\fsm\aifsm.h +// Recovered logical types: 6 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2338; PDB kind: unknown. +enum idAIFSMLite::InternalUpdate::__l2:: : __int32 +{ + MaxStateChanges = 0x4, +}; + +// IDA Local Type ordinal 16755; PDB kind: class. +class idAIFSM : public idFiniteStateMachine +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16756. + virtual idTypeInfo *GetType(); + virtual ~idAIFSM(); + 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 bool CanUse(idFiniteStateMachine *, const int); + virtual idState *GetErrorState(); + virtual idState *GetDoneState(); + virtual void Save(idFile_String *, const char *); + virtual void Restart(idFiniteStateMachine *, const int); + virtual void AddState(idState *); + virtual int GetUpdateInterval(); + virtual void InitStates(const idFiniteStateMachineParams *); + virtual void AppendDefaultTransitions(idState *); + virtual void SetNextState(const idStateData::transResult_t *, const int); + virtual void SetState(const idStateData::transResult_t *, const int, const bool); + +}; + +// IDA Local Type ordinal 16837; PDB kind: class. +class __unaligned __declspec(align(4)) idAvoidFSM : public idAIFSM +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16838. + virtual idTypeInfo *GetType(); + virtual ~idAvoidFSM(); + 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 bool CanUse(idFiniteStateMachine *, const int); + virtual idState *GetErrorState(); + virtual idState *GetDoneState(); + virtual void Save(idFile_String *, const char *); + virtual void Restart(idFiniteStateMachine *, const int); + virtual void AddState(idState *); + virtual int GetUpdateInterval(); + virtual void InitStates(const idFiniteStateMachineParams *); + virtual void AppendDefaultTransitions(idState *); + virtual void SetNextState(const idStateData::transResult_t *, const int); + virtual void SetState(const idStateData::transResult_t *, const int, const bool); + + idAvoid_Default stateDefault; + idAvoid_Dive stateDive; + idAvoid_RunAway stateRunAway; + idAvoid_MoveToCover stateMoveToCover; + idAvoid_WaitInCover stateWaitInCover; + idAvoid_MoveToGrenade stateMoveToGrenade; + idAvoid_KickGrenade stateKickGrenade; + idAvoid_Cower stateCower; +}; + +// IDA Local Type ordinal 17142; PDB kind: class. +class __declspec(align(4)) idAIFSMLite : public idEventReceiver +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17145. + virtual idTypeInfo *GetType(); + virtual ~idAIFSMLite(); + 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 PrintDebugInfo(idGuiListBox *); + virtual int GetNumStates(); + virtual idAIStateLite *GetState(const int); + virtual int GetDefaultStateId(); + virtual void InternalInit(); + virtual void InternalUpdate(); + + idAI2 *ai; + idAIStateLite *defaultState; + idAIStateLite *currentState; + int stateStartTime; + bool currentlyUpdating; +}; + +// IDA Local Type ordinal 20459; PDB kind: class. +class idAIFSM::idAIFSMParams : public idFiniteStateMachineParams +{ +public: +}; + +// IDA Local Type ordinal 21403; PDB kind: struct. +struct idAIFSMLite::InternalUpdate::__l2::changeHistory_t +{ + idAIStateLite *state; + int workCode; +}; diff --git a/source/tungsten/game/ai/fsm/aifsmmanager.h b/source/tungsten/game/ai/fsm/aifsmmanager.h new file mode 100644 index 0000000..e0be6e9 --- /dev/null +++ b/source/tungsten/game/ai/fsm/aifsmmanager.h @@ -0,0 +1,78 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\fsm\aifsmmanager.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15762; PDB kind: class. +class idFSMManager : public idEventReceiver +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15769. + virtual idTypeInfo *GetType(); + virtual ~idFSMManager(); + 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 idFiniteStateMachine *AllocFSM(const idTypeInfo *, const idFiniteStateMachineParams *); + virtual const idFiniteStateMachine *FindFSM(const idTypeInfo *); + virtual const idFiniteStateMachine *FindFSM_2(const char *); + virtual idFiniteStateMachine *FindFSM_3(const idTypeInfo *); + virtual idFiniteStateMachine *FindFSM_4(const char *); + virtual void FreeFSM(const idTypeInfo *); + virtual void FreeFSM_2(const char *); + + idEntityPtr owner; +}; + +// IDA Local Type ordinal 16754; PDB kind: class. +class __unaligned __declspec(align(4)) idAIFSMManager : public idFSMManager +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16997. + virtual idTypeInfo *GetType(); + virtual ~idAIFSMManager(); + 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 idFiniteStateMachine *AllocFSM(const idTypeInfo *, const idFiniteStateMachineParams *); + virtual const idFiniteStateMachine *FindFSM(const idTypeInfo *); + virtual const idFiniteStateMachine *FindFSM_2(const char *); + virtual idFiniteStateMachine *FindFSM_3(const idTypeInfo *); + virtual idFiniteStateMachine *FindFSM_4(const char *); + virtual void FreeFSM(const idTypeInfo *); + virtual void FreeFSM_2(const char *); + virtual const idFiniteStateMachine *GetControllingFSM(); + virtual idFiniteStateMachine *GetControllingFSM_2(); + + idList fsms; + idAlertCycleFSM alertCycle; + idRelaxedFSM relaxed; + idCombatFSM combat; + idSearchFSM search; + idAvoidFSM avoid; + idTakeCoverFSM takeCover; + idOpenCombatFSM openCombat; + idMeleeFSM melee; + idAdvanceFSM advance; + idInCoverFSM inCover; + idBackStandFSM backStand; + idCombatScenePointFSM combatScenePointFSM; + idSearchScenePointFSM searchScenePointFSM; + idRoamScenePointFSM roamScenePointFSM; + idFollowFriendlyFSM followFriendly; + idPlayerInteractFSM playerInteract; + idIdleTrackFriendlyFSM idleTrackFriendly; +}; + +// IDA Local Type ordinal 21278; PDB kind: class. +class idFSMManager::idFSMStack +{ +public: + idList fsms; + idList states; +}; diff --git a/source/tungsten/game/ai/fsm/aistate.h b/source/tungsten/game/ai/fsm/aistate.h new file mode 100644 index 0000000..8d4f06c --- /dev/null +++ b/source/tungsten/game/ai/fsm/aistate.h @@ -0,0 +1,159 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\fsm\aistate.h +// Recovered logical types: 7 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2316; PDB kind: unknown. +enum idAIStateLite:: : __int32 +{ + SF_PHYSICS_CONTROL = 0x1, + SF_IGNORE_DELTA_CORRECTION = 0x2, + SF_DELTA_MOVE_ONLY = 0x4, + SF_CLIPDELTA_TO_VOLUMES = 0x8, + SF_FLYING = 0x10, +}; + +// IDA Local Type ordinal 16684; PDB kind: class. +class idVOChainState +{ +public: + voChainState_t state; + idList responses; +}; + +// IDA Local Type ordinal 16703; PDB kind: struct. +struct aiPState_t +{ + __int16 atRest; + bool onGround; + char pad; + idVec3 localOrigin; + idVec3 worldOrigin; + idVec3 velocity; + idVec3 pushVelocity; +}; + +// IDA Local Type ordinal 16758; PDB kind: class. +class idAIState : public idState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17262. + virtual idTypeInfo *GetType(); + virtual ~idAIState(); + 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 Save(const idFiniteStateMachine *, idFile_String *, const char *); + virtual void InternalInitState(const idFiniteStateMachine *); + virtual bool InternalCanUse(idFiniteStateMachine *, const int); + virtual void InternalEnterState(idFiniteStateMachine *, const int); + virtual void InternalExitState(idFiniteStateMachine *, const int); + virtual void InternalWork(idFiniteStateMachine *, const int); + virtual void InternalReenterState(idFiniteStateMachine *, const int, const int); + virtual bool InternalIsStateWaiting(idFiniteStateMachine *, const int); + virtual void InternalGetDebugString(idStr *); + virtual bool AIState_CanUse(idAI2 *, idAIFSM *, const int); + virtual void AIState_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIState_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIState_Work(idAI2 *, idAIFSM *, const int); + virtual void AIState_ReenterState(idAI2 *, idAIFSM *, const int, const int); + virtual bool AIState_IsWaiting(idAI2 *, idAIFSM *, const int); + +}; + +// IDA Local Type ordinal 17143; PDB kind: class. +class idAIStateLite : public idEventReceiver +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17144. + virtual idTypeInfo *GetType(); + virtual ~idAIStateLite(); + 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 int GetStateFlags(); + virtual void PrintDebugInfo(idGuiListBox *); + virtual void InternalEnter(idAI2 *, idAIFSMLite *); + virtual void InternalReEnter(idAI2 *, idAIFSMLite *); + virtual void InternalExit(idAI2 *, idAIFSMLite *); + virtual int InternalWork(idAI2 *, idAIFSMLite *); + + int subState; +}; + +// IDA Local Type ordinal 17264; PDB kind: class. +class idAIStateError : public idAIAction +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17265. + virtual idTypeInfo *GetType(); + virtual ~idAIStateError(); + 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 Save(const idFiniteStateMachine *, idFile_String *, const char *); + virtual void InternalInitState(const idFiniteStateMachine *); + virtual bool InternalCanUse(idFiniteStateMachine *, const int); + virtual void InternalEnterState(idFiniteStateMachine *, const int); + virtual void InternalExitState(idFiniteStateMachine *, const int); + virtual void InternalWork(idFiniteStateMachine *, const int); + virtual void InternalReenterState(idFiniteStateMachine *, const int, const int); + virtual bool InternalIsStateWaiting(idFiniteStateMachine *, const int); + virtual void InternalGetDebugString(idStr *); + virtual bool AIState_CanUse(idAI2 *, idAIFSM *, const int); + virtual void AIState_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIState_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIState_Work(idAI2 *, idAIFSM *, const int); + virtual void AIState_ReenterState(idAI2 *, idAIFSM *, const int, const int); + virtual bool AIState_IsWaiting(idAI2 *, idAIFSM *, const int); + virtual const idEventDef *GetActionEventDef(); + virtual int GetActionFlags(); + virtual void AIAction_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIAction_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIAction_Work(idAI2 *, idAIFSM *, const int); + virtual void AIAction_ReenterState(idAI2 *, idAIFSM *, const int); + virtual bool AIAction_IsWaiting(idAI2 *, idAIFSM *, const int); + +}; + +// IDA Local Type ordinal 17266; PDB kind: class. +class idAIStateDone : public idAIAction +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17267. + virtual idTypeInfo *GetType(); + virtual ~idAIStateDone(); + 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 Save(const idFiniteStateMachine *, idFile_String *, const char *); + virtual void InternalInitState(const idFiniteStateMachine *); + virtual bool InternalCanUse(idFiniteStateMachine *, const int); + virtual void InternalEnterState(idFiniteStateMachine *, const int); + virtual void InternalExitState(idFiniteStateMachine *, const int); + virtual void InternalWork(idFiniteStateMachine *, const int); + virtual void InternalReenterState(idFiniteStateMachine *, const int, const int); + virtual bool InternalIsStateWaiting(idFiniteStateMachine *, const int); + virtual void InternalGetDebugString(idStr *); + virtual bool AIState_CanUse(idAI2 *, idAIFSM *, const int); + virtual void AIState_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIState_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIState_Work(idAI2 *, idAIFSM *, const int); + virtual void AIState_ReenterState(idAI2 *, idAIFSM *, const int, const int); + virtual bool AIState_IsWaiting(idAI2 *, idAIFSM *, const int); + virtual const idEventDef *GetActionEventDef(); + virtual int GetActionFlags(); + virtual void AIAction_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIAction_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIAction_Work(idAI2 *, idAIFSM *, const int); + virtual void AIAction_ReenterState(idAI2 *, idAIFSM *, const int); + virtual bool AIAction_IsWaiting(idAI2 *, idAIFSM *, const int); + +}; diff --git a/source/tungsten/game/ai/fsm/finitestatemachine.h b/source/tungsten/game/ai/fsm/finitestatemachine.h new file mode 100644 index 0000000..3dba8ec --- /dev/null +++ b/source/tungsten/game/ai/fsm/finitestatemachine.h @@ -0,0 +1,68 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\fsm\finitestatemachine.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2114; PDB kind: enum. +enum idFiniteStateMachine::fsmStatus_t : __int32 +{ + FSMSTATUS_DONE = 0x0, + FSMSTATUS_WORKING = 0x1, + FSMSTATUS_ERROR = 0x2, +}; + +// IDA Local Type ordinal 15750; PDB kind: class. +class idFiniteStateMachine : public idEventReceiver +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15768. + virtual idTypeInfo *GetType(); + virtual ~idFiniteStateMachine(); + 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 bool CanUse(idFiniteStateMachine *, const int); + virtual idState *GetErrorState(); + virtual idState *GetDoneState(); + virtual void Save(idFile_String *, const char *); + virtual void Restart(idFiniteStateMachine *, const int); + virtual void AddState(idState *); + virtual int GetUpdateInterval(); + virtual void InitStates(const idFiniteStateMachineParams *); + virtual void AppendDefaultTransitions(idState *); + virtual void SetNextState(const idStateData::transResult_t *, const int); + virtual void SetState(const idStateData::transResult_t *, const int, const bool); + + idFSMManager *manager; + idList states; + idState *actionCallerState; + idAtomicString name; + idState *curState; + const idState *errorState; + const idTypeInfo *errorStateTransType; + int errorTransCode; + const idTypeInfo *defaultStateType; + int lastTransitionCode; + const idTypeInfo *lastTransType; + const idState *prevState; + int lastWorkTransCode; + int lastTransitionTime; + int lastUpdateTime; + int nextUpdateTime; + int stateFrame; + idFSMCallback *callback; + int eventId; + const idAIEvent *eventData; + int lastFSMEventTransCode; +}; + +// IDA Local Type ordinal 15763; PDB kind: class. +class idFiniteStateMachineParams +{ +public: + idFSMManager *manager; +}; diff --git a/source/tungsten/game/ai/fsm/fsm_alertcycle.h b/source/tungsten/game/ai/fsm/fsm_alertcycle.h new file mode 100644 index 0000000..436d522 --- /dev/null +++ b/source/tungsten/game/ai/fsm/fsm_alertcycle.h @@ -0,0 +1,98 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\fsm\fsm_alertcycle.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1026; PDB kind: enum. +enum alertCycle_t : __int32 +{ + ALERTCYCLE_RELAXED = 0x1, + ALERTCYCLE_SEARCH = 0x2, + ALERTCYCLE_COMBAT = 0x3, + ALERTCYCLE_PAIN = 0x4, + ALERTCYCLE_DYING = 0x5, + ALERTCYCLE_DEAD = 0x6, + ALERTCYCLE_ANIMATE = 0x7, + ALERTCYCLE_AVOID = 0x8, + ALERTCYCLE_CONTROLLED = 0x9, + ALERTCYCLE_ERROR = 0xA, + ALERTCYCLE_MAX = 0xB, +}; + +// IDA Local Type ordinal 16771; PDB kind: class. +class __unaligned __declspec(align(4)) idAlertCycle_Pain : public idAIState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 33851. + virtual idTypeInfo *GetType(); + virtual ~idAlertCycle_Pain(); + 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 Save(const idFiniteStateMachine *, idFile_String *, const char *); + virtual void InternalInitState(const idFiniteStateMachine *); + virtual bool InternalCanUse(idFiniteStateMachine *, const int); + virtual void InternalEnterState(idFiniteStateMachine *, const int); + virtual void InternalExitState(idFiniteStateMachine *, const int); + virtual void InternalWork(idFiniteStateMachine *, const int); + virtual void InternalReenterState(idFiniteStateMachine *, const int, const int); + virtual bool InternalIsStateWaiting(idFiniteStateMachine *, const int); + virtual void InternalGetDebugString(idStr *); + virtual bool AIState_CanUse(idAI2 *, idAIFSM *, const int); + virtual void AIState_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIState_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIState_Work(idAI2 *, idAIFSM *, const int); + virtual void AIState_ReenterState(idAI2 *, idAIFSM *, const int, const int); + virtual bool AIState_IsWaiting(idAI2 *, idAIFSM *, const int); + +}; + +// IDA Local Type ordinal 16780; PDB kind: class. +class idAlertCycleFSM : public idAIFSM +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16781. + virtual idTypeInfo *GetType(); + virtual ~idAlertCycleFSM(); + 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 bool CanUse(idFiniteStateMachine *, const int); + virtual idState *GetErrorState(); + virtual idState *GetDoneState(); + virtual void Save(idFile_String *, const char *); + virtual void Restart(idFiniteStateMachine *, const int); + virtual void AddState(idState *); + virtual int GetUpdateInterval(); + virtual void InitStates(const idFiniteStateMachineParams *); + virtual void AppendDefaultTransitions(idState *); + virtual void SetNextState(const idStateData::transResult_t *, const int); + virtual void SetState(const idStateData::transResult_t *, const int, const bool); + + __unaligned __declspec(align(1)) idAlertCycle_Default stateDefault; + idAlertCycle_ExecuteDoomscript stateExecuteDoomscript; + __unaligned __declspec(align(1)) idAlertCycle_ExecuteCodeMoveAction stateExecuteCodeMoveAction; + idAlertCycle_ActionScript stateActionScript; + __unaligned __declspec(align(1)) idAlertCycle_DropFromShip stateDropFromShip; + idAlertCycle_PerformDropLanding statePerformDropLanding; + __unaligned __declspec(align(1)) idAlertCycle_Relaxed stateRelaxed; + idAlertCycle_Combat stateCombat; + __unaligned __declspec(align(1)) idAlertCycle_CombatScenePoint stateCombatSP; + idAlertCycle_SearchScenePoint stateSearchSP; + __unaligned __declspec(align(1)) idAlertCycle_RoamScenePoint stateRoamSP; + idAlertCycle_Search stateSearch; + __unaligned __declspec(align(1)) idAlertCycle_Pain statePain; + idAlertCycle_Dying stateDying; + __unaligned __declspec(align(1)) idAlertCycle_Dead stateDead; + idAlertCycle_Avoid stateAvoid; + __unaligned __declspec(align(1)) idAlertCycle_Melee stateMelee; + idAlertCycle_WatchPossessedGuy stateWatchPossession; + __unaligned __declspec(align(1)) idAlertCycle_UnhandledError stateUnhandledError; + idAlertCycle_Passified statePassified; + __unaligned __declspec(align(1)) idAlertCycle_OnElevator stateOnElevator; +}; diff --git a/source/tungsten/game/ai/fsm/fsm_avoid.h b/source/tungsten/game/ai/fsm/fsm_avoid.h new file mode 100644 index 0000000..61c28dc --- /dev/null +++ b/source/tungsten/game/ai/fsm/fsm_avoid.h @@ -0,0 +1,13 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\fsm\fsm_avoid.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 27663; PDB kind: typedef. +typedef void SSM_VOID; + +// IDA Local Type ordinal 31778; PDB kind: typedef. +typedef void WMA_VOID; diff --git a/source/tungsten/game/ai/fsm/fsm_combat_scenepoints.h b/source/tungsten/game/ai/fsm/fsm_combat_scenepoints.h new file mode 100644 index 0000000..25bf41d --- /dev/null +++ b/source/tungsten/game/ai/fsm/fsm_combat_scenepoints.h @@ -0,0 +1,281 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\fsm\fsm_combat_scenepoints.h +// Recovered logical types: 9 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16922; PDB kind: class. +class __unaligned __declspec(align(4)) idCombatScenePoint_Find : public idAIState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 33882. + virtual idTypeInfo *GetType(); + virtual ~idCombatScenePoint_Find(); + 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 Save(const idFiniteStateMachine *, idFile_String *, const char *); + virtual void InternalInitState(const idFiniteStateMachine *); + virtual bool InternalCanUse(idFiniteStateMachine *, const int); + virtual void InternalEnterState(idFiniteStateMachine *, const int); + virtual void InternalExitState(idFiniteStateMachine *, const int); + virtual void InternalWork(idFiniteStateMachine *, const int); + virtual void InternalReenterState(idFiniteStateMachine *, const int, const int); + virtual bool InternalIsStateWaiting(idFiniteStateMachine *, const int); + virtual void InternalGetDebugString(idStr *); + virtual bool AIState_CanUse(idAI2 *, idAIFSM *, const int); + virtual void AIState_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIState_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIState_Work(idAI2 *, idAIFSM *, const int); + virtual void AIState_ReenterState(idAI2 *, idAIFSM *, const int, const int); + virtual bool AIState_IsWaiting(idAI2 *, idAIFSM *, const int); + +}; + +// IDA Local Type ordinal 16923; PDB kind: class. +class __unaligned __declspec(align(4)) idCombatScenePoint_MoveTo : public idAIState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 33885. + virtual idTypeInfo *GetType(); + virtual ~idCombatScenePoint_MoveTo(); + 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 Save(const idFiniteStateMachine *, idFile_String *, const char *); + virtual void InternalInitState(const idFiniteStateMachine *); + virtual bool InternalCanUse(idFiniteStateMachine *, const int); + virtual void InternalEnterState(idFiniteStateMachine *, const int); + virtual void InternalExitState(idFiniteStateMachine *, const int); + virtual void InternalWork(idFiniteStateMachine *, const int); + virtual void InternalReenterState(idFiniteStateMachine *, const int, const int); + virtual bool InternalIsStateWaiting(idFiniteStateMachine *, const int); + virtual void InternalGetDebugString(idStr *); + virtual bool AIState_CanUse(idAI2 *, idAIFSM *, const int); + virtual void AIState_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIState_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIState_Work(idAI2 *, idAIFSM *, const int); + virtual void AIState_ReenterState(idAI2 *, idAIFSM *, const int, const int); + virtual bool AIState_IsWaiting(idAI2 *, idAIFSM *, const int); + +}; + +// IDA Local Type ordinal 16924; PDB kind: class. +class __unaligned __declspec(align(4)) idCombatScenePoint_StayAt : public idAIState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 33889. + virtual idTypeInfo *GetType(); + virtual ~idCombatScenePoint_StayAt(); + 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 Save(const idFiniteStateMachine *, idFile_String *, const char *); + virtual void InternalInitState(const idFiniteStateMachine *); + virtual bool InternalCanUse(idFiniteStateMachine *, const int); + virtual void InternalEnterState(idFiniteStateMachine *, const int); + virtual void InternalExitState(idFiniteStateMachine *, const int); + virtual void InternalWork(idFiniteStateMachine *, const int); + virtual void InternalReenterState(idFiniteStateMachine *, const int, const int); + virtual bool InternalIsStateWaiting(idFiniteStateMachine *, const int); + virtual void InternalGetDebugString(idStr *); + virtual bool AIState_CanUse(idAI2 *, idAIFSM *, const int); + virtual void AIState_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIState_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIState_Work(idAI2 *, idAIFSM *, const int); + virtual void AIState_ReenterState(idAI2 *, idAIFSM *, const int, const int); + virtual bool AIState_IsWaiting(idAI2 *, idAIFSM *, const int); + +}; + +// IDA Local Type ordinal 16929; PDB kind: class. +class __unaligned __declspec(align(4)) idCombatScenePoint_Close : public idAIState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 33879. + virtual idTypeInfo *GetType(); + virtual ~idCombatScenePoint_Close(); + 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 Save(const idFiniteStateMachine *, idFile_String *, const char *); + virtual void InternalInitState(const idFiniteStateMachine *); + virtual bool InternalCanUse(idFiniteStateMachine *, const int); + virtual void InternalEnterState(idFiniteStateMachine *, const int); + virtual void InternalExitState(idFiniteStateMachine *, const int); + virtual void InternalWork(idFiniteStateMachine *, const int); + virtual void InternalReenterState(idFiniteStateMachine *, const int, const int); + virtual bool InternalIsStateWaiting(idFiniteStateMachine *, const int); + virtual void InternalGetDebugString(idStr *); + virtual bool AIState_CanUse(idAI2 *, idAIFSM *, const int); + virtual void AIState_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIState_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIState_Work(idAI2 *, idAIFSM *, const int); + virtual void AIState_ReenterState(idAI2 *, idAIFSM *, const int, const int); + virtual bool AIState_IsWaiting(idAI2 *, idAIFSM *, const int); + +}; + +// IDA Local Type ordinal 16930; PDB kind: class. +class __unaligned __declspec(align(4)) idCombatScenePoint_Idle : public idAIState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 33883. + virtual idTypeInfo *GetType(); + virtual ~idCombatScenePoint_Idle(); + 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 Save(const idFiniteStateMachine *, idFile_String *, const char *); + virtual void InternalInitState(const idFiniteStateMachine *); + virtual bool InternalCanUse(idFiniteStateMachine *, const int); + virtual void InternalEnterState(idFiniteStateMachine *, const int); + virtual void InternalExitState(idFiniteStateMachine *, const int); + virtual void InternalWork(idFiniteStateMachine *, const int); + virtual void InternalReenterState(idFiniteStateMachine *, const int, const int); + virtual bool InternalIsStateWaiting(idFiniteStateMachine *, const int); + virtual void InternalGetDebugString(idStr *); + virtual bool AIState_CanUse(idAI2 *, idAIFSM *, const int); + virtual void AIState_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIState_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIState_Work(idAI2 *, idAIFSM *, const int); + virtual void AIState_ReenterState(idAI2 *, idAIFSM *, const int, const int); + virtual bool AIState_IsWaiting(idAI2 *, idAIFSM *, const int); + +}; + +// IDA Local Type ordinal 16932; PDB kind: class. +class __unaligned __declspec(align(4)) idCombatScenePoint_Reload : public idAIState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 33886. + virtual idTypeInfo *GetType(); + virtual ~idCombatScenePoint_Reload(); + 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 Save(const idFiniteStateMachine *, idFile_String *, const char *); + virtual void InternalInitState(const idFiniteStateMachine *); + virtual bool InternalCanUse(idFiniteStateMachine *, const int); + virtual void InternalEnterState(idFiniteStateMachine *, const int); + virtual void InternalExitState(idFiniteStateMachine *, const int); + virtual void InternalWork(idFiniteStateMachine *, const int); + virtual void InternalReenterState(idFiniteStateMachine *, const int, const int); + virtual bool InternalIsStateWaiting(idFiniteStateMachine *, const int); + virtual void InternalGetDebugString(idStr *); + virtual bool AIState_CanUse(idAI2 *, idAIFSM *, const int); + virtual void AIState_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIState_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIState_Work(idAI2 *, idAIFSM *, const int); + virtual void AIState_ReenterState(idAI2 *, idAIFSM *, const int, const int); + virtual bool AIState_IsWaiting(idAI2 *, idAIFSM *, const int); + +}; + +// IDA Local Type ordinal 16933; PDB kind: class. +class __unaligned __declspec(align(4)) idCombatScenePoint_Melee : public idAIState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 33884. + virtual idTypeInfo *GetType(); + virtual ~idCombatScenePoint_Melee(); + 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 Save(const idFiniteStateMachine *, idFile_String *, const char *); + virtual void InternalInitState(const idFiniteStateMachine *); + virtual bool InternalCanUse(idFiniteStateMachine *, const int); + virtual void InternalEnterState(idFiniteStateMachine *, const int); + virtual void InternalExitState(idFiniteStateMachine *, const int); + virtual void InternalWork(idFiniteStateMachine *, const int); + virtual void InternalReenterState(idFiniteStateMachine *, const int, const int); + virtual bool InternalIsStateWaiting(idFiniteStateMachine *, const int); + virtual void InternalGetDebugString(idStr *); + virtual bool AIState_CanUse(idAI2 *, idAIFSM *, const int); + virtual void AIState_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIState_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIState_Work(idAI2 *, idAIFSM *, const int); + virtual void AIState_ReenterState(idAI2 *, idAIFSM *, const int, const int); + virtual bool AIState_IsWaiting(idAI2 *, idAIFSM *, const int); + +}; + +// IDA Local Type ordinal 16934; PDB kind: class. +class __unaligned __declspec(align(4)) idCombatScenePoint_Dodge : public idAIState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 33880. + virtual idTypeInfo *GetType(); + virtual ~idCombatScenePoint_Dodge(); + 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 Save(const idFiniteStateMachine *, idFile_String *, const char *); + virtual void InternalInitState(const idFiniteStateMachine *); + virtual bool InternalCanUse(idFiniteStateMachine *, const int); + virtual void InternalEnterState(idFiniteStateMachine *, const int); + virtual void InternalExitState(idFiniteStateMachine *, const int); + virtual void InternalWork(idFiniteStateMachine *, const int); + virtual void InternalReenterState(idFiniteStateMachine *, const int, const int); + virtual bool InternalIsStateWaiting(idFiniteStateMachine *, const int); + virtual void InternalGetDebugString(idStr *); + virtual bool AIState_CanUse(idAI2 *, idAIFSM *, const int); + virtual void AIState_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIState_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIState_Work(idAI2 *, idAIFSM *, const int); + virtual void AIState_ReenterState(idAI2 *, idAIFSM *, const int, const int); + virtual bool AIState_IsWaiting(idAI2 *, idAIFSM *, const int); + +}; + +// IDA Local Type ordinal 16937; PDB kind: class. +class __declspec(align(4)) idCombatScenePointFSM : public idAIFSM +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16938. + virtual idTypeInfo *GetType(); + virtual ~idCombatScenePointFSM(); + 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 bool CanUse(idFiniteStateMachine *, const int); + virtual idState *GetErrorState(); + virtual idState *GetDoneState(); + virtual void Save(idFile_String *, const char *); + virtual void Restart(idFiniteStateMachine *, const int); + virtual void AddState(idState *); + virtual int GetUpdateInterval(); + virtual void InitStates(const idFiniteStateMachineParams *); + virtual void AppendDefaultTransitions(idState *); + virtual void SetNextState(const idStateData::transResult_t *, const int); + virtual void SetState(const idStateData::transResult_t *, const int, const bool); + + __unaligned __declspec(align(1)) idCombatScenePoint_Find stateCombatSPFind; + idCombatScenePoint_MoveTo stateCombatSPMoveTo; + __unaligned __declspec(align(1)) idCombatScenePoint_StayAt stateCombatSPStayAt; + idCombatScenePoint_EnterScenePoint stateCombatSPEnter; + __unaligned __declspec(align(1)) idCombatScenePoint_TacticalAttack stateCombatSPTacticalAttack; + __unaligned __declspec(align(1)) idCombatScenePoint_TacticalCover stateCombatSPTacticalCover; + __unaligned __declspec(align(1)) idCombatScenePoint_UseTurret stateCombatSPUseTurret; + idCombatScenePoint_Close stateCombatSPClose; + __unaligned __declspec(align(1)) idCombatScenePoint_Idle stateCombatSPIdle; + idCombatScenePoint_ApplyRestriction stateCombatSPApplyRestriction; + __unaligned __declspec(align(1)) idCombatScenePoint_Reload stateCombatSPReload; + idCombatScenePoint_Melee stateCombatSPMelee; + __unaligned __declspec(align(1)) idCombatScenePoint_Dodge stateCombatSPDodge; + idCombatScenePoint_SharedWaitForAnimation stateCombatSPSharedWaitForAnimation; + __unaligned __declspec(align(1)) idCombatScenePoint_SharedFinished stateCombatSPSharedFinished; + int stayTime; + bool enterValid; +}; diff --git a/source/tungsten/game/ai/fsm/fsm_followfriendly.h b/source/tungsten/game/ai/fsm/fsm_followfriendly.h new file mode 100644 index 0000000..c5eeb38 --- /dev/null +++ b/source/tungsten/game/ai/fsm/fsm_followfriendly.h @@ -0,0 +1,40 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\fsm\fsm_followfriendly.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16961; PDB kind: class. +class __unaligned __declspec(align(4)) idFollowFriendlyFSM : public idAIFSM +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16962. + virtual idTypeInfo *GetType(); + virtual ~idFollowFriendlyFSM(); + 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 bool CanUse(idFiniteStateMachine *, const int); + virtual idState *GetErrorState(); + virtual idState *GetDoneState(); + virtual void Save(idFile_String *, const char *); + virtual void Restart(idFiniteStateMachine *, const int); + virtual void AddState(idState *); + virtual int GetUpdateInterval(); + virtual void InitStates(const idFiniteStateMachineParams *); + virtual void AppendDefaultTransitions(idState *); + virtual void SetNextState(const idStateData::transResult_t *, const int); + virtual void SetState(const idStateData::transResult_t *, const int, const bool); + + idFollowFriendly_Default stateDefault; + idFollowFriendly_ReachedTarget stateReachedTarget; + idFollowFriendly_PathBlocked statePathBlocked; + idFollowFriendly_MoveToTarget stateMoveToTarget; + idFollowFriendly_BackAway stateBackAway; + idFollowFriendly_BackAwayWait stateBackAwayWait; + idFollowFriendly_BackAwayBlocked stateBackAwayBlocked; + idFollowFriendly_ChaseProjectile stateChaseProjectile; +}; diff --git a/source/tungsten/game/ai/fsm/fsm_idletrackfriendly.h b/source/tungsten/game/ai/fsm/fsm_idletrackfriendly.h new file mode 100644 index 0000000..cc171d8 --- /dev/null +++ b/source/tungsten/game/ai/fsm/fsm_idletrackfriendly.h @@ -0,0 +1,127 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\fsm\fsm_idletrackfriendly.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16789; PDB kind: class. +class __unaligned __declspec(align(4)) idRelaxed_IdleTrackFriendly : public idAIState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34025. + virtual idTypeInfo *GetType(); + virtual ~idRelaxed_IdleTrackFriendly(); + 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 Save(const idFiniteStateMachine *, idFile_String *, const char *); + virtual void InternalInitState(const idFiniteStateMachine *); + virtual bool InternalCanUse(idFiniteStateMachine *, const int); + virtual void InternalEnterState(idFiniteStateMachine *, const int); + virtual void InternalExitState(idFiniteStateMachine *, const int); + virtual void InternalWork(idFiniteStateMachine *, const int); + virtual void InternalReenterState(idFiniteStateMachine *, const int, const int); + virtual bool InternalIsStateWaiting(idFiniteStateMachine *, const int); + virtual void InternalGetDebugString(idStr *); + virtual bool AIState_CanUse(idAI2 *, idAIFSM *, const int); + virtual void AIState_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIState_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIState_Work(idAI2 *, idAIFSM *, const int); + virtual void AIState_ReenterState(idAI2 *, idAIFSM *, const int, const int); + virtual bool AIState_IsWaiting(idAI2 *, idAIFSM *, const int); + +}; + +// IDA Local Type ordinal 16992; PDB kind: class. +class __unaligned __declspec(align(4)) idIdleTrackFriendly_Default : public idAIState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 33926. + virtual idTypeInfo *GetType(); + virtual ~idIdleTrackFriendly_Default(); + 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 Save(const idFiniteStateMachine *, idFile_String *, const char *); + virtual void InternalInitState(const idFiniteStateMachine *); + virtual bool InternalCanUse(idFiniteStateMachine *, const int); + virtual void InternalEnterState(idFiniteStateMachine *, const int); + virtual void InternalExitState(idFiniteStateMachine *, const int); + virtual void InternalWork(idFiniteStateMachine *, const int); + virtual void InternalReenterState(idFiniteStateMachine *, const int, const int); + virtual bool InternalIsStateWaiting(idFiniteStateMachine *, const int); + virtual void InternalGetDebugString(idStr *); + virtual bool AIState_CanUse(idAI2 *, idAIFSM *, const int); + virtual void AIState_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIState_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIState_Work(idAI2 *, idAIFSM *, const int); + virtual void AIState_ReenterState(idAI2 *, idAIFSM *, const int, const int); + virtual bool AIState_IsWaiting(idAI2 *, idAIFSM *, const int); + +}; + +// IDA Local Type ordinal 16993; PDB kind: class. +class __unaligned __declspec(align(4)) idIdleTrackFriendly_Track : public idAIState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 33928. + virtual idTypeInfo *GetType(); + virtual ~idIdleTrackFriendly_Track(); + 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 Save(const idFiniteStateMachine *, idFile_String *, const char *); + virtual void InternalInitState(const idFiniteStateMachine *); + virtual bool InternalCanUse(idFiniteStateMachine *, const int); + virtual void InternalEnterState(idFiniteStateMachine *, const int); + virtual void InternalExitState(idFiniteStateMachine *, const int); + virtual void InternalWork(idFiniteStateMachine *, const int); + virtual void InternalReenterState(idFiniteStateMachine *, const int, const int); + virtual bool InternalIsStateWaiting(idFiniteStateMachine *, const int); + virtual void InternalGetDebugString(idStr *); + virtual bool AIState_CanUse(idAI2 *, idAIFSM *, const int); + virtual void AIState_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIState_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIState_Work(idAI2 *, idAIFSM *, const int); + virtual void AIState_ReenterState(idAI2 *, idAIFSM *, const int, const int); + virtual bool AIState_IsWaiting(idAI2 *, idAIFSM *, const int); + +}; + +// IDA Local Type ordinal 16995; PDB kind: class. +class __unaligned __declspec(align(4)) idIdleTrackFriendlyFSM : public idAIFSM +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16996. + virtual idTypeInfo *GetType(); + virtual ~idIdleTrackFriendlyFSM(); + 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 bool CanUse(idFiniteStateMachine *, const int); + virtual idState *GetErrorState(); + virtual idState *GetDoneState(); + virtual void Save(idFile_String *, const char *); + virtual void Restart(idFiniteStateMachine *, const int); + virtual void AddState(idState *); + virtual int GetUpdateInterval(); + virtual void InitStates(const idFiniteStateMachineParams *); + virtual void AppendDefaultTransitions(idState *); + virtual void SetNextState(const idStateData::transResult_t *, const int); + virtual void SetState(const idStateData::transResult_t *, const int, const bool); + + idIdleTrackFriendly_Default stateDefault; + idIdleTrackFriendly_Track stateTrack; + idIdleTrackFriendly_EndTrack stateEndTrack; + idEntityPtr target; + idIndex idleStateIndex; + idIndex startStateIndex; + bool oldEnableHeadTracking; + bool oldEnableAutoFocus; +}; diff --git a/source/tungsten/game/ai/fsm/fsm_opencombat.h b/source/tungsten/game/ai/fsm/fsm_opencombat.h new file mode 100644 index 0000000..930ce10 --- /dev/null +++ b/source/tungsten/game/ai/fsm/fsm_opencombat.h @@ -0,0 +1,59 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\fsm\fsm_opencombat.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16874; PDB kind: class. +class idOpenCombatFSM : public idAIFSM +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16875. + virtual idTypeInfo *GetType(); + virtual ~idOpenCombatFSM(); + 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 bool CanUse(idFiniteStateMachine *, const int); + virtual idState *GetErrorState(); + virtual idState *GetDoneState(); + virtual void Save(idFile_String *, const char *); + virtual void Restart(idFiniteStateMachine *, const int); + virtual void AddState(idState *); + virtual int GetUpdateInterval(); + virtual void InitStates(const idFiniteStateMachineParams *); + virtual void AppendDefaultTransitions(idState *); + virtual void SetNextState(const idStateData::transResult_t *, const int); + virtual void SetState(const idStateData::transResult_t *, const int, const bool); + + __unaligned __declspec(align(1)) idOpenCombat_Default stateDefault; + idOpenCombat_MoveTowardEnemy stateMoveTowardEnemy; + __unaligned __declspec(align(1)) idOpenCombat_MoveToSightEnemy stateMoveToSightEnemy; + idOpenCombat_AttackIdle stateAttackIdle; + __unaligned __declspec(align(1)) idOpenCombat_StartThrowProjectile stateStartThrowProjectile; + idOpenCombat_ThrowProjectile stateThrowProjectile; + __unaligned __declspec(align(1)) idOpenCombat_Shoot stateShoot; + idOpenCombat_AttackMove stateAttackMove; + __unaligned __declspec(align(1)) idOpenCombat_ReachedEnemyPos stateReachedEnemyPos; + idOpenCombat_AttackMelee stateAttackMelee; + __unaligned __declspec(align(1)) idOpenCombat_ChargeMelee stateChargeMelee; + idOpenCombat_LeapAttack stateLeapAttack; + __unaligned __declspec(align(1)) idOpenCombat_MoveToCoverAndReload stateMoveToCoverAndReload; + idOpenCombat_MoveOutOfSightAndReload stateMoveOutOfSightAndReload; + __unaligned __declspec(align(1)) idOpenCombat_ReloadWeapon stateReloadWeapon; + idOpenCombat_Stand stateStand; + __unaligned __declspec(align(1)) idOpenCombat_Crouch stateCrouch; + idOpenCombat_EnemyNotVisible stateEnemyNotVisible; + __unaligned __declspec(align(1)) idOpenCombat_Sidestep stateSidestep; + idOpenCombat_ChargeSidestep stateChargeSidestep; + __unaligned __declspec(align(1)) idOpenCombat_MoveTowardEnemyFailed stateMoveTowardEnemyFailed; + idOpenCombat_MoveFailed stateMoveFailed; + __unaligned __declspec(align(1)) idOpenCombat_Rage stateRage; + idOpenCombat_MoveToRecharge stateMoveToRecharge; + __unaligned __declspec(align(1)) idOpenCombat_Recharging stateRecharging; + idOpenCombat_MoveToRoleHintNode stateMoveToRoleHintNode; + __unaligned __declspec(align(1)) idOpenCombat_PlayOverrideAnim statePlayOverrideAnim; +}; diff --git a/source/tungsten/game/ai/fsm/fsm_roam_scenepoints.h b/source/tungsten/game/ai/fsm/fsm_roam_scenepoints.h new file mode 100644 index 0000000..328c722 --- /dev/null +++ b/source/tungsten/game/ai/fsm/fsm_roam_scenepoints.h @@ -0,0 +1,69 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\fsm\fsm_roam_scenepoints.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16948; PDB kind: class. +class __unaligned __declspec(align(4)) idRoamScenePoint_StayAt : public idAIState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34042. + virtual idTypeInfo *GetType(); + virtual ~idRoamScenePoint_StayAt(); + 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 Save(const idFiniteStateMachine *, idFile_String *, const char *); + virtual void InternalInitState(const idFiniteStateMachine *); + virtual bool InternalCanUse(idFiniteStateMachine *, const int); + virtual void InternalEnterState(idFiniteStateMachine *, const int); + virtual void InternalExitState(idFiniteStateMachine *, const int); + virtual void InternalWork(idFiniteStateMachine *, const int); + virtual void InternalReenterState(idFiniteStateMachine *, const int, const int); + virtual bool InternalIsStateWaiting(idFiniteStateMachine *, const int); + virtual void InternalGetDebugString(idStr *); + virtual bool AIState_CanUse(idAI2 *, idAIFSM *, const int); + virtual void AIState_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIState_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIState_Work(idAI2 *, idAIFSM *, const int); + virtual void AIState_ReenterState(idAI2 *, idAIFSM *, const int, const int); + virtual bool AIState_IsWaiting(idAI2 *, idAIFSM *, const int); + +}; + +// IDA Local Type ordinal 16951; PDB kind: class. +class __unaligned __declspec(align(4)) idRoamScenePointFSM : public idAIFSM +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16952. + virtual idTypeInfo *GetType(); + virtual ~idRoamScenePointFSM(); + 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 bool CanUse(idFiniteStateMachine *, const int); + virtual idState *GetErrorState(); + virtual idState *GetDoneState(); + virtual void Save(idFile_String *, const char *); + virtual void Restart(idFiniteStateMachine *, const int); + virtual void AddState(idState *); + virtual int GetUpdateInterval(); + virtual void InitStates(const idFiniteStateMachineParams *); + virtual void AppendDefaultTransitions(idState *); + virtual void SetNextState(const idStateData::transResult_t *, const int); + virtual void SetState(const idStateData::transResult_t *, const int, const bool); + + idRoamScenePoint_Idle stateRoamSPIdle; + idRoamScenePoint_Find stateRoamSPFind; + idRoamScenePoint_MoveTo stateRoamSPMoveTo; + idRoamScenePoint_StayAt stateRoamSPStayAt; + idRoamScenePoint_SharedWaitForAnimation stateRoamSPSharedWaitForAnimation; + idRoamScenePoint_SharedFinished stateRoamSPSharedFinished; + int stayTime; + int lookTime; +}; diff --git a/source/tungsten/game/ai/fsm/fsm_search_scenepoints.h b/source/tungsten/game/ai/fsm/fsm_search_scenepoints.h new file mode 100644 index 0000000..2fbe5f0 --- /dev/null +++ b/source/tungsten/game/ai/fsm/fsm_search_scenepoints.h @@ -0,0 +1,125 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\fsm\fsm_search_scenepoints.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16939; PDB kind: class. +class __unaligned __declspec(align(4)) idSearchScenePoint_Find : public idAIState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34043. + virtual idTypeInfo *GetType(); + virtual ~idSearchScenePoint_Find(); + 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 Save(const idFiniteStateMachine *, idFile_String *, const char *); + virtual void InternalInitState(const idFiniteStateMachine *); + virtual bool InternalCanUse(idFiniteStateMachine *, const int); + virtual void InternalEnterState(idFiniteStateMachine *, const int); + virtual void InternalExitState(idFiniteStateMachine *, const int); + virtual void InternalWork(idFiniteStateMachine *, const int); + virtual void InternalReenterState(idFiniteStateMachine *, const int, const int); + virtual bool InternalIsStateWaiting(idFiniteStateMachine *, const int); + virtual void InternalGetDebugString(idStr *); + virtual bool AIState_CanUse(idAI2 *, idAIFSM *, const int); + virtual void AIState_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIState_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIState_Work(idAI2 *, idAIFSM *, const int); + virtual void AIState_ReenterState(idAI2 *, idAIFSM *, const int, const int); + virtual bool AIState_IsWaiting(idAI2 *, idAIFSM *, const int); + +}; + +// IDA Local Type ordinal 16940; PDB kind: class. +class __unaligned __declspec(align(4)) idSearchScenePoint_MoveTo : public idAIState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34045. + virtual idTypeInfo *GetType(); + virtual ~idSearchScenePoint_MoveTo(); + 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 Save(const idFiniteStateMachine *, idFile_String *, const char *); + virtual void InternalInitState(const idFiniteStateMachine *); + virtual bool InternalCanUse(idFiniteStateMachine *, const int); + virtual void InternalEnterState(idFiniteStateMachine *, const int); + virtual void InternalExitState(idFiniteStateMachine *, const int); + virtual void InternalWork(idFiniteStateMachine *, const int); + virtual void InternalReenterState(idFiniteStateMachine *, const int, const int); + virtual bool InternalIsStateWaiting(idFiniteStateMachine *, const int); + virtual void InternalGetDebugString(idStr *); + virtual bool AIState_CanUse(idAI2 *, idAIFSM *, const int); + virtual void AIState_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIState_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIState_Work(idAI2 *, idAIFSM *, const int); + virtual void AIState_ReenterState(idAI2 *, idAIFSM *, const int, const int); + virtual bool AIState_IsWaiting(idAI2 *, idAIFSM *, const int); + +}; + +// IDA Local Type ordinal 16941; PDB kind: class. +class __unaligned __declspec(align(4)) idSearchScenePoint_StayAt : public idAIState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34046. + virtual idTypeInfo *GetType(); + virtual ~idSearchScenePoint_StayAt(); + 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 Save(const idFiniteStateMachine *, idFile_String *, const char *); + virtual void InternalInitState(const idFiniteStateMachine *); + virtual bool InternalCanUse(idFiniteStateMachine *, const int); + virtual void InternalEnterState(idFiniteStateMachine *, const int); + virtual void InternalExitState(idFiniteStateMachine *, const int); + virtual void InternalWork(idFiniteStateMachine *, const int); + virtual void InternalReenterState(idFiniteStateMachine *, const int, const int); + virtual bool InternalIsStateWaiting(idFiniteStateMachine *, const int); + virtual void InternalGetDebugString(idStr *); + virtual bool AIState_CanUse(idAI2 *, idAIFSM *, const int); + virtual void AIState_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIState_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIState_Work(idAI2 *, idAIFSM *, const int); + virtual void AIState_ReenterState(idAI2 *, idAIFSM *, const int, const int); + virtual bool AIState_IsWaiting(idAI2 *, idAIFSM *, const int); + +}; + +// IDA Local Type ordinal 16943; PDB kind: class. +class __unaligned __declspec(align(4)) idSearchScenePointFSM : public idAIFSM +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16944. + virtual idTypeInfo *GetType(); + virtual ~idSearchScenePointFSM(); + 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 bool CanUse(idFiniteStateMachine *, const int); + virtual idState *GetErrorState(); + virtual idState *GetDoneState(); + virtual void Save(idFile_String *, const char *); + virtual void Restart(idFiniteStateMachine *, const int); + virtual void AddState(idState *); + virtual int GetUpdateInterval(); + virtual void InitStates(const idFiniteStateMachineParams *); + virtual void AppendDefaultTransitions(idState *); + virtual void SetNextState(const idStateData::transResult_t *, const int); + virtual void SetState(const idStateData::transResult_t *, const int, const bool); + + idSearchScenePoint_Find stateSearchSPFind; + idSearchScenePoint_MoveTo stateSearchSPMoveTo; + idSearchScenePoint_StayAt stateSearchSPStayAt; + idSearchScenePoint_MoveToPos stateSearchSPMoveToPos; + int stayTime; + int lookTime; +}; diff --git a/source/tungsten/game/ai/fsm/fsmlog.h b/source/tungsten/game/ai/fsm/fsmlog.h new file mode 100644 index 0000000..f0bb7ba --- /dev/null +++ b/source/tungsten/game/ai/fsm/fsmlog.h @@ -0,0 +1,16 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\fsm\fsmlog.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17252; PDB kind: class. +class idFSMLog +{ +public: + idList list; + int first; + int maxSize; +}; diff --git a/source/tungsten/game/ai/fsm/state.h b/source/tungsten/game/ai/fsm/state.h new file mode 100644 index 0000000..45620cc --- /dev/null +++ b/source/tungsten/game/ai/fsm/state.h @@ -0,0 +1,116 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\fsm\state.h +// Recovered logical types: 10 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1468; PDB kind: enum. +enum qosState_t : __int32 +{ + QOS_STATE_CRAPPY = 0x1, + QOS_STATE_WEAK = 0x2, + QOS_STATE_GOOD = 0x3, + QOS_STATE_GREAT = 0x4, + QOS_STATE_MAX = 0x5, +}; + +// IDA Local Type ordinal 3469; PDB kind: enum. +enum STATE : __int32 +{ + ST_NORMAL = 0x0, + ST_PERCENT = 0x1, + ST_FLAG = 0x2, + ST_WIDTH = 0x3, + ST_DOT = 0x4, + ST_PRECIS = 0x5, + ST_SIZE = 0x6, + ST_TYPE = 0x7, + ST_INVALID = 0x8, +}; + +// IDA Local Type ordinal 3490; PDB kind: enum,struct. +enum state_t : __int32 +{ + S_INIT = 0x0, + S_EAT0L = 0x1, + S_SIGNM = 0x2, + S_GETL = 0x3, + S_GETR = 0x4, + S_POINT = 0x5, + S_E = 0x6, + S_SIGNE = 0x7, + S_EAT0E = 0x8, + S_GETE = 0x9, + S_END = 0xA, + S_E_IMPLICIT = 0xB, +}; + +// IDA Local Type ordinal 3553; PDB kind: enum. +enum XMP_STATE : __int32 +{ +}; + +// IDA Local Type ordinal 15751; PDB kind: class. +class __declspec(align(4)) idState : public idEventReceiver +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15761. + virtual idTypeInfo *GetType(); + virtual ~idState(); + 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 Save(const idFiniteStateMachine *, idFile_String *, const char *); + virtual void InternalInitState(const idFiniteStateMachine *); + virtual bool InternalCanUse(idFiniteStateMachine *, const int); + virtual void InternalEnterState(idFiniteStateMachine *, const int); + virtual void InternalExitState(idFiniteStateMachine *, const int); + virtual void InternalWork(idFiniteStateMachine *, const int); + virtual void InternalReenterState(idFiniteStateMachine *, const int, const int); + virtual bool InternalIsStateWaiting(idFiniteStateMachine *, const int); + virtual void InternalGetDebugString(idStr *); + + idStateData *stateData; + const idTypeInfo *childFSMType; + idFiniteStateMachine *childFSM; + bool enterFailed; + bool tempUninterruptible; +}; + +// IDA Local Type ordinal 21275; PDB kind: struct. +struct idState::transitionInfo_t +{ + const idFiniteStateMachine *fsm; + const idState *prevState; + const idState *curState; + const idFiniteStateMachine *prevChildFSM; + const idFiniteStateMachine *curChildFSM; + int prevTransitionCode; + int transitionCode; +}; + +// IDA Local Type ordinal 24749; PDB kind: struct. +struct RD_STATE +{ + volatile int clients; + volatile int options[5]; + MGRINGBUF outbound; + MGRINGBUF inbound; + RD_DECODER decoder; + MGTHREAD thread; + int socket; + volatile int thread_quit; + volatile int thread_running; +}; + +// IDA Local Type ordinal 30750; PDB kind: typedef. +typedef malloc_state *mstate; + +// IDA Local Type ordinal 31567; PDB kind: typedef. +typedef int mbstate_t; + +// IDA Local Type ordinal 31990; PDB kind: typedef. +typedef int _Mbstatet; diff --git a/source/tungsten/game/ai/fsm/statetransition.h b/source/tungsten/game/ai/fsm/statetransition.h new file mode 100644 index 0000000..6b121aa --- /dev/null +++ b/source/tungsten/game/ai/fsm/statetransition.h @@ -0,0 +1,541 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\fsm\statetransition.h +// Recovered logical types: 8 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1594; PDB kind: enum. +enum idAIStateTransition::aiTransCode_t : __int32 +{ + TRANSCODE_SCRIPT = 0x6, + TRANSCODE_START_ACTION = 0x7, + TRANSCODE_ACTION_FINISHED = 0x8, + TRANSCODE_MOVE_FAILED = 0x9, + TRANSCODE_MOVE_OBSTRUCTED = 0xA, + TRANSCODE_MOVE_ERROR = 0xB, + TRANSCODE_MOVE_NO_AAS = 0xC, + TRANSCODE_MOVE_INVALID_ENTITY = 0xD, + TRANSCODE_MOVE_UNREACHABLE = 0xE, + TRANSCODE_MOVE_NOT_IN_AAS = 0xF, + TRANSCODE_MOVE_PATHING_FAILED = 0x10, + TRANSCODE_MOVE_NO_PATH_GROUP = 0x11, + TRANSCODE_MOVE_NO_PATH_POINT = 0x12, + TRANSCODE_MOVE_TIMED_OUT = 0x13, + TRANSCODE_MOVE_STUCK = 0x14, + TRANSCODE_ACTION_ENTITY_DELETED = 0x15, + TRANSCODE_NO_ENEMIES = 0x16, + TRANSCODE_FORCE_STAY_IN_COMBAT = 0x17, + TRANSCODE_FORCE_IDLE_DONE = 0x18, + TRANSCODE_TURN_FINISHED = 0x19, + TRANSCODE_REACHED_POINT = 0x1A, + TRANSCODE_ABORT_MOVE_TO_COVER = 0x1B, + TRANSCODE_SHOULD_RETREAT = 0x1C, + TRANSCODE_SHOULD_FALL_BACK = 0x1D, + TRANSCODE_SHOULD_TAKE_COVER = 0x1E, + TRANSCODE_SHOULD_MELEE = 0x1F, + TRANSCODE_SHOULD_BACKSTAND = 0x20, + TRANSCODE_SHOULD_ADVANCE = 0x21, + TRANSCODE_SHOULD_CHARGE = 0x22, + TRANSCODE_SHOULD_OPEN_COMBAT = 0x23, + TRANSCODE_SIGHTED_ENEMY = 0x24, + TRANSCODE_FINISHED_SIGHT = 0x25, + TRANSCODE_ROLE_CHANGED = 0x26, + TRANSCODE_SHOULD_SEARCH = 0x27, + TRANSCODE_COVER_DONE = 0x28, + TRANSCODE_COVER_FAILED = 0x29, + TRANSCODE_MELEE_DONE = 0x2A, + TRANSCODE_MELEE_FAILED = 0x2B, + TRANSCODE_OPEN_COMBAT_DONE = 0x2C, + TRANSCODE_ABORT_COVER_FIRE = 0x2D, + TRANSCODE_COVER_FIRE_FINISHED = 0x2E, + TRANSCODE_FINISHED_STANDING = 0x2F, + TRANSCODE_FINISHED_CROUCHING = 0x30, + TRANSCODE_CROUCHING_TIMED_OUT = 0x31, + TRANSCODE_STANDING_TIMED_OUT = 0x32, + TRANSCODE_RELOAD_DONE = 0x33, + TRANSCODE_RELOAD_TORSO_DONE = 0x34, + TRANSCODE_RETRY_COMBAT = 0x35, + TRANSCODE_ACTION_WAIT_TIME_EXPIRED = 0x36, + TRANSCODE_NO_VALID_COMBAT_STATE = 0x37, + TRANSCODE_DIVE_FINISHED = 0x38, + TRANSCODE_SHOULD_USE_TURRET = 0x39, + TRANSCODE_AT_TURRET = 0x3A, + TRANSCODE_MOVE_TO_TURRET_FAILED = 0x3B, + TRANSCODE_SHOULD_LEAVE_TURRET = 0x3C, + TRANSCODE_LEAVE_TURRET_DONE = 0x3D, + TRANSCODE_WAIT_FOR_ENTITY_FINISHED = 0x3E, + TRANSCODE_PLAY_VOICEOVER_FINISHED = 0x3F, + TRANSCODE_PLAY_INTERACTION_VOICEOVER_FINISHED = 0x40, + TRANSCODE_TARGET_LEFT_INTERACTION = 0x41, + TRANSCODE_ACTION_DRAW_WEAPON_FINISHED = 0x42, + TRANSCODE_ACTION_HOLSTER_WEAPON_FINISHED = 0x43, + TRANSCODE_COVER_ACTION_FINISHED = 0x44, + TRANSCODE_SHOULD_BECOME_PASSIFIED = 0x45, + TRANSCODE_PASSIFIED_DONE = 0x46, + TRANSCODE_FORCE_MOVE_TO_ENTITY_DONE = 0x47, + TRANSCODE_PLAY_TRAVERSAL = 0x48, + TRANSCODE_PLAY_TRAVERSAL_DONE = 0x49, + TRANSCODE_PLAY_TRAVERSAL_FAILED = 0x4A, + TRANSCODE_ANIM_STARTED = 0x4B, + TRANSCODE_ZIPLINE = 0x4C, + TRANSCODE_PLUGANIM = 0x4D, + TRANSCODE_RELAXED_REACHED_POINT = 0x4E, + TRANSCODE_RELAXED_HAS_PATH = 0x4F, + TRANSCODE_RELAXED_RUNNING_ACTION_SCRIPT = 0x50, + TRANSCODE_RELAXED_RUNNING_PLUGANIM = 0x51, + TRANSCODE_RELAXED_NEXT_PATH = 0x52, + TRANSCODE_RELAXED_CAN_WANDER = 0x53, + TRANSCODE_RELAXED_WANDER_DONE = 0x54, + TRANSCODE_RELAXED_WANDER_ERROR = 0x55, + TRANSCODE_RELAXED_NO_PATH = 0x56, + TRANSCODE_RELAXED_END_OF_PATH = 0x57, + TRANSCODE_RELAXED_PATH_BLOCKED = 0x58, + TRANSCODE_RELAXED_FRUSTRATED = 0x59, + TRANSCODE_RELAXED_PATH_CLEAR = 0x5A, + TRANSCODE_RELAXED_SHOULD_FOLLOW_FRIENDLY = 0x5B, + TRANSCODE_RELAXED_FOLLOW_FRIENDLY_DONE = 0x5C, + TRANSCODE_RELAXED_FOLLOW_FRIENDLY_ERROR = 0x5D, + TRANSCODE_RELAXED_PLAYER_APPROACHING = 0x5E, + TRANSCODE_RELAXED_PC_INTERACT_DONE = 0x5F, + TRANSCODE_RELAXED_IDLE_TRACK_FRIENDLY = 0x60, + TRANSCODE_RELAXED_IDLE_TRACK_FRIENDLY_DONE = 0x61, + TRANSCODE_RELAXED_RETRY_PATH = 0x62, + TRANSCODE_RELAXED_SHOULD_INVESTIGATE_BODY = 0x63, + TRANSCODE_RELAXED_INVESTIGATE_BODY_DONE = 0x64, + TRANSCODE_RELAXED_SHOULD_RETURN_TO_SPAWN_POS = 0x65, + TRANSCODE_RELAXED_RETURN_TO_SPAWN_POS_DONE = 0x66, + TRANSCODE_RELAXED_SHOULD_RC_CONTROL = 0x67, + TRANSCODE_RELAXED_FRUSTRATED_FINISHED = 0x68, + TRANSCODE_WANDER_REACHED_POINT = 0x69, + TRANSCODE_WANDER_HAS_PATH = 0x6A, + TRANSCODE_WANDER_RUNNING_ACTION_SCRIPT = 0x6B, + TRANSCODE_WANDER_NEXT_PATH = 0x6C, + TRANSCODE_WANDER_NO_PATH = 0x6D, + TRANSCODE_WANDER_END_OF_PATH = 0x6E, + TRANSCODE_WANDER_PATH_BLOCKED = 0x6F, + TRANSCODE_WANDER_PATH_CLEAR = 0x70, + TRANSCODE_WANDER_AT_ACTION_NODE = 0x71, + TRANSCODE_WANDER_ALIGN_TO_ACTION_NODE = 0x72, + TRANSCODE_WANDER_INTERACT_WITH_ACTION_NODE = 0x73, + TRANSCODE_WANDER_MOVE_TO_ACTION_NODE = 0x74, + TRANSCODE_WANDER_WAITING_IN_LINE = 0x75, + TRANSCODE_WANDER_MOVE_FORWARD_IN_LINE = 0x76, + TRANSCODE_WANDER_GOAL_CHANGED = 0x77, + TRANSCODE_WANDER_LOOK_FOR_ACTION_NODE = 0x78, + TRANSCODE_WANDER_PLAYER_APPROACHING = 0x79, + TRANSCODE_WANDER_PC_INTERACT_DONE = 0x7A, + TRANSCODE_WANDER_IDLE_TRACK_FRIENDLY = 0x7B, + TRANSCODE_WANDER_IDLE_TRACK_FRIENDLY_DONE = 0x7C, + TRANSCODE_WANDER_PLAYER_IMPEDING = 0x7D, + TRANSCODE_WANDER_GREET_PLAYER = 0x7E, + TRANSCODE_WANDER_GREET_PLAYER_DONE = 0x7F, + TRANSCODE_WANDER_RESTART = 0x80, + TRANSCODE_WANDER_ACTION_NODE_BLOCKED = 0x81, + TRANSCODE_WANDER_ACTION_NODE_NOT_BLOCKED = 0x82, + TRANSCODE_WANDER_ACTION_NODE_BLOCKED_TIMEOUT = 0x83, + TRANSCODE_WANDER_INTERACT_WITH_ACTION_NODE_ERROR = 0x84, + TRANSCODE_WANDER_BUMPED_FROM_BEHIND = 0x85, + TRANSCODE_WANDER_BUMPED_REACTION = 0x86, + TRANSCODE_WANDER_BUMPED_REACTION_DONE = 0x87, + TRANSCODE_WANDER_FRUSTRATED = 0x88, + TRANSCODE_WANDER_FRUSTRATED_FINISHED = 0x89, + TRANSCODE_WANDER_PLAYER_OUT_OF_RANGE = 0x8A, + TRANSCODE_WANDER_NO_ACTION_NODE = 0x8B, + TRANSCODE_PCI_VO_FINISHED = 0x8C, + TRANSCODE_PCI_MOVE_TO_INTERACTION_POINT = 0x8D, + TRANSCODE_PCI_WAIT_FOR_INTERACTION = 0x8E, + TRANSCODE_PCI_MOVE_FAILED = 0x8F, + TRANSCODE_PCI_REACHED_INTERACTION_POINT = 0x90, + TRANSCODE_PCI_DELIVER_JOB_OFFER_VO = 0x91, + TRANSCODE_PCI_DELIVER_JOB_END_VO = 0x92, + TRANSCODE_PCI_DELIVER_JOB_COMPLETE_VO = 0x93, + TRANSCODE_PCI_COMPLETE_EMPTY_JOB = 0x94, + TRANSCODE_PCI_DELIVER_JOB_IN_PROGRESS_VO = 0x95, + TRANSCODE_PCI_DELIVER_JOB_SETUP_VO = 0x96, + TRANSCODE_PCI_DELIVER_NON_JOB_VO = 0x97, + TRANSCODE_PCI_PLAYER_LEFT = 0x98, + TRANSCODE_PCI_PLAYERINTERACTION_DISAPPEARED = 0x99, + TRANSCODE_PCI_ACCEPTED_JOB = 0x9A, + TRANSCODE_PCI_DECLINED_JOB = 0x9B, + TRANSCODE_PCI_WAIT_FINISHED = 0x9C, + TRANSCODE_PCI_HAS_MORE_INTERACTIONS = 0x9D, + TRANSCODE_PCI_AT_INTERACTION_POINT = 0x9E, + TRANSCODE_PCI_ANIM_WEB_TRANSITIONING = 0x9F, + TRANSCODE_PCI_START_INTERACTION = 0xA0, + TRANSCODE_PCI_TRANSITION_FINISHED = 0xA1, + TRANSCODE_PCI_IS_MERCHANT = 0xA2, + TRANSCODE_PCI_IS_RACE_MANAGER = 0xA3, + TRANSCODE_PCI_IS_SETTLERCLOTHES_INTERACTION = 0xA4, + TRANSCODE_PCI_PLAYER_ACCEPTED_JOB = 0xA5, + TRANSCODE_PCI_PLAYER_PURCHASED_ITEM = 0xA6, + TRANSCODE_PCI_PLAYER_CLOSED_MERCHANT_MENU = 0xA7, + TRANSCODE_PCI_PLAYER_ACCEPTED_RACE = 0xA8, + TRANSCODE_PCI_PLAYER_DECLINED_RACE = 0xA9, + TRANSCODE_PCI_PLAYER_ACCEPTED_CLOTHES = 0xAA, + TRANSCODE_TC_NO_COVER = 0xAB, + TRANSCODE_TC_HAS_COVER = 0xAC, + TRANSCODE_TC_REACHED_COVER = 0xAD, + TRANSCODE_TC_COVER_BLOCKED = 0xAE, + TRANSCODE_TC_DESTINATION_COVER_COMPROMISED = 0xAF, + TRANSCODE_TC_COVER_EXPIRED = 0xB0, + TRANSCODE_TC_OFF_COVER_POINT = 0xB1, + TRANSCODE_TC_ENEMY_NOT_ON_LEAN_SIDE = 0xB2, + TRANSCODE_TC_REACHED_COVER_DONE = 0xB3, + TRANSCODE_TC_ENEMY_CLOSE_TO_COVER = 0xB4, + TRANSCODE_TC_COVER_COMPROMISED = 0xB5, + TRANSCODE_TC_RELOAD_IN_COVER = 0xB6, + TRANSCODE_TC_ALREADY_AT_COVER = 0xB7, + TRANSCODE_TC_FIRE_OVER = 0xB8, + TRANSCODE_TC_FIRE_LEAN_LEFT = 0xB9, + TRANSCODE_TC_FIRE_LEAN_RIGHT = 0xBA, + TRANSCODE_TC_FIRE_STEP_LEFT = 0xBB, + TRANSCODE_TC_FIRE_STEP_RIGHT = 0xBC, + TRANSCODE_TC_TOOK_DAMAGE_IN_COVER = 0xBD, + TRANSCODE_TC_NO_CONTACT = 0xBE, + TRANSCODE_TC_BREAK_COVER = 0xBF, + TRANSCODE_TC_FIRE_FROM_COVER = 0xC0, + TRANSCODE_TC_FIRE_FROM_COVER_DONE = 0xC1, + TRANSCODE_TC_START_OPEN_COMBAT = 0xC2, + TRANSCODE_TC_TAKE_COVER_DONE = 0xC3, + TRANSCODE_TC_REEVALUATE_COVER = 0xC4, + TRANSCODE_TC_ROLE_CHANGED = 0xC5, + TRANSCODE_DODGE_LEFT = 0xC6, + TRANSCODE_DODGE_RIGHT = 0xC7, + TRANSCODE_DODGE_FORWARD = 0xC8, + TRANSCODE_DODGE_BACK = 0xC9, + TRANSCODE_DODGE_FINISHED = 0xCA, + TRANSCODE_ACTION_OVERRIDE_ANIM_FAILED = 0xCB, + TRANSCODE_ACTION_OVERRIDE_ANIM_FINISHED = 0xCC, + TRANSCODE_ACTION_MELEE_FINISHED = 0xCD, + TRANSCODE_ACTION_LEAP_ATTACK_FINISHED = 0xCE, + TRANSCODE_AC_RESTART = 0xCF, + TRANSCODE_AC_CAN_USE_PANIC = 0xD0, + TRANSCODE_AC_CAN_USE_COMBAT = 0xD1, + TRANSCODE_AC_CAN_USE_SEARCH = 0xD2, + TRANSCODE_AC_IN_PAIN = 0xD3, + TRANSCODE_AC_PAIN_FINISHED = 0xD4, + TRANSCODE_AC_PAIN_FINISHED_MELEE = 0xD5, + TRANSCODE_AC_START_ANIMATE = 0xD6, + TRANSCODE_AC_ANIMATE_FINISHED = 0xD7, + TRANSCODE_AC_IS_DYING = 0xD8, + TRANSCODE_AC_DYING_FINISHED = 0xD9, + TRANSCODE_AC_START_DROP_DYING = 0xDA, + TRANSCODE_AC_IS_RELAXED = 0xDB, + TRANSCODE_AC_COMBAT_FINISHED = 0xDC, + TRANSCODE_AC_SEARCH_FINISHED = 0xDD, + TRANSCODE_AC_UNHANDLED_CHILD_ERROR = 0xDE, + TRANSCODE_AC_RUNNING_ACTION_SCRIPT = 0xDF, + TRANSCODE_AC_NO_ACTION_SCRIPT = 0xE0, + TRANSCODE_AC_SCRIPT_CAN_USE_COMBAT = 0xE1, + TRANSCODE_AC_SCRIPT_CAN_USE_SEARCH = 0xE2, + TRANSCODE_AC_SHOULD_AVOID = 0xE3, + TRANSCODE_AC_AVOID_DONE = 0xE4, + TRANSCODE_AC_AVOID_FAILED = 0xE5, + TRANSCODE_AC_NO_ENEMY = 0xE6, + TRANSCODE_AC_MELEE_FINISHED = 0xE7, + TRANSCODE_AC_POSSESSION = 0xE8, + TRANSCODE_AC_ACTION_NODE_CHANGED = 0xE9, + TRANSCODE_AC_PLAYER_APPROACHING = 0xEA, + TRANSCODE_AC_EXECUTING_SCRIPT = 0xEB, + TRANSCODE_AC_DOOMSCRIPT_DONE = 0xEC, + TRANSCODE_AC_SHOULD_BECOME_PASSIFIED = 0xED, + TRANSCODE_AC_PASSIFIED_DONE = 0xEE, + TRANSCODE_AC_SHOULD_DROP_FROM_SHIP = 0xEF, + TRANSCODE_AC_PERFORM_DROP_LANDING = 0xF0, + TRANSCODE_AC_DROP_LANDING_DONE = 0xF1, + TRANSCODE_AC_MIND_CONTROLLED = 0xF2, + TRANSCODE_AC_NOT_MIND_CONTROLLED = 0xF3, + TRANSCODE_AC_ON_ELEVATOR = 0xF4, + TRANSCODE_AC_NOT_ON_ELEVATOR = 0xF5, + TRANSCODE_AC_TAKEDOWNDONE = 0xF6, + TRANSCODE_AC_PANIC_DONE = 0xF7, + TRANSCODE_AC_PANIC_FAILED = 0xF8, + TRANSCODE_SEARCH_REACHED_POINT = 0xF9, + TRANSCODE_SEARCH_GIVE_UP = 0xFA, + TRANSCODE_SEARCH_INTRO = 0xFB, + TRANSCODE_SEARCH_MOVE_TO_POINT = 0xFC, + TRANSCODE_SEARCH_INTRO_FINISHED = 0xFD, + TRANSCODE_SEARCH_PERFORM_ACTION = 0xFE, + TRANSCODE_SEARCH_NEW_STIMULUS = 0xFF, + TRANSCODE_SEARCH_PERFORM_ACTION_FINISHED = 0x100, + TRANSCODE_SEARCH_GIVE_UP_FINISHED = 0x101, + TRANSCODE_SEARCH_REACHABLE = 0x102, + TRANSCODE_SEARCH_RETRY = 0x103, + TRANSCODE_SEARCH_SHOULD_WAIT = 0x104, + TRANSCODE_SEARCH_WAITED_LONG_ENOUGH = 0x105, + TRANSCODE_OC_ENEMY_VISIBLE = 0x106, + TRANSCODE_OC_ENEMY_NOT_VISIBLE = 0x107, + TRANSCODE_OC_REACHED_ENEMY = 0x108, + TRANSCODE_OC_SHOULD_SEARCH = 0x109, + TRANSCODE_OC_NO_ENEMY = 0x10A, + TRANSCODE_OC_SHOULD_MOVE_TOWARD_ENEMY = 0x10B, + TRANSCODE_OC_SHOULD_MOVE_TO_SIGHT_ENEMY = 0x10C, + TRANSCODE_OC_ATTACK_IDLE = 0x10D, + TRANSCODE_OC_ATTACK_MOVE = 0x10E, + TRANSCODE_OC_REACHED_ATTACK_POS = 0x10F, + TRANSCODE_OC_END_OPEN_COMBAT = 0x110, + TRANSCODE_OC_MELEE_FINISHED = 0x111, + TRANSCODE_OC_CLOSE_MELEE = 0x112, + TRANSCODE_OC_ENEMY_DEAD = 0x113, + TRANSCODE_OC_CHARGE_MELEE = 0x114, + TRANSCODE_OC_CHARGE_TURRET = 0x115, + TRANSCODE_OC_CHARGE_FINISHED = 0x116, + TRANSCODE_OC_CHARGE_TIMED_OUT = 0x117, + TRANSCODE_OC_TARGET_MOVED = 0x118, + TRANSCODE_OC_RELOAD_IN_COVER = 0x119, + TRANSCODE_OC_RELOAD_OUT_OF_ENEMY_SIGHT = 0x11A, + TRANSCODE_OC_RELOAD_IN_OPEN = 0x11B, + TRANSCODE_OC_SHOULD_THROW_PROJECTILE = 0x11C, + TRANSCODE_OC_THROW_PROJECTILE = 0x11D, + TRANSCODE_OC_ABORT_THROW_PROJECTILE = 0x11E, + TRANSCODE_OC_THROW_PROJECTILE_FINISHED = 0x11F, + TRANSCODE_OC_THROW_PROJECTILE_FAILED = 0x120, + TRANSCODE_OC_SHOULD_SHOOT = 0x121, + TRANSCODE_OC_STOP_SHOOTING = 0x122, + TRANSCODE_OC_RELOAD_CROUCHED = 0x123, + TRANSCODE_OC_REACHED_COVER = 0x124, + TRANSCODE_OC_REACHED_COVER_EXPOSED = 0x125, + TRANSCODE_OC_RELOAD_FINISHED = 0x126, + TRANSCODE_OC_IS_CROUCHED = 0x127, + TRANSCODE_OC_STOP_CROUCHING = 0x128, + TRANSCODE_OC_ENEMY_CLOSE = 0x129, + TRANSCODE_OC_FIRE_BLOCKED = 0x12A, + TRANSCODE_OC_STAND_FINISHED = 0x12B, + TRANSCODE_OC_DODGE_LEFT = 0x12C, + TRANSCODE_OC_DODGE_RIGHT = 0x12D, + TRANSCODE_OC_DIVE_LEFT = 0x12E, + TRANSCODE_OC_DIVE_RIGHT = 0x12F, + TRANSCODE_OC_DIVE_FORWARD = 0x130, + TRANSCODE_OC_DIVE_BACKWARD = 0x131, + TRANSCODE_OC_FLINCH_LEFT = 0x132, + TRANSCODE_OC_FLINCH_RIGHT = 0x133, + TRANSCODE_OC_CROUCH = 0x134, + TRANSCODE_OC_SIDESTEP_DONE = 0x135, + TRANSCODE_OC_SHOULD_ANGRY_RAGE = 0x136, + TRANSCODE_OC_SHOULD_TAUNT_RAGE = 0x137, + TRANSCODE_OC_RAGE_DONE = 0x138, + TRANSCODE_OC_ENEMY_CLOSER_THAN_OPTIMAL_RANGE = 0x139, + TRANSCODE_OC_ENEMY_FARTHER_THAN_OPTIMAL_RANGE = 0x13A, + TRANSCODE_OC_SHOULD_MOVE_TO_ROLE_HINT_NODE = 0x13B, + TRANSCODE_OC_MOVE_TO_ROLE_HINT_NODE_DONE = 0x13C, + TRANSCODE_OC_SHOULD_MOVE_TO_RECHARGE = 0x13D, + TRANSCODE_IS_IN_RECHARGE_ZONE = 0x13E, + TRANSCODE_OC_RECHARGE_DONE = 0x13F, + TRANSCODE_OC_PLAY_OVERRIDE_ANIM_DONE = 0x140, + TRANSCODE_AVOID_SHOULD_DIVE = 0x141, + TRANSCODE_AVOID_SHOULD_RUN_AWAY = 0x142, + TRANSCODE_AVOID_SHOULD_TAKE_COVER = 0x143, + TRANSCODE_AVOID_SHOULD_MOVE_TO_GRENADE = 0x144, + TRANSCODE_AVOID_SHOULD_COWER = 0x145, + TRANSCODE_AVOID_ERROR = 0x146, + TRANSCODE_AVOID_DIVE_DONE = 0x147, + TRANSCODE_AVOID_DIVE_DONE_STILL_IN_DANGER = 0x148, + TRANSCODE_AVOID_RUN_AWAY_DONE = 0x149, + TRANSCODE_AVOID_REACHED_COVER = 0x14A, + TRANSCODE_AVOID_MOVE_FAILED = 0x14B, + TRANSCODE_AVOID_COVER_INVALID = 0x14C, + TRANSCODE_AVOID_COVER_VULNERABLE = 0x14D, + TRANSCODE_AVOID_WAIT_IN_COVER_DONE = 0x14E, + TRANSCODE_AVOID_STOP_COWERING = 0x14F, + TRANSCODE_AVOID_SHOULD_KICK_GRENADE = 0x150, + TRANSCODE_AVOID_REACHED_GRENADE = 0x151, + TRANSCODE_AVOID_MOVE_TO_GRENADE_DONE = 0x152, + TRANSCODE_AVOID_AVOID_ENTITY_INVALID = 0x153, + TRANSCODE_AVOID_KICKED_GRENADE = 0x154, + TRANSCODE_AVOID_DONE = 0x155, + TRANSCODE_PANIC_SHOULD_RUN_AWAY = 0x156, + TRANSCODE_PANIC_SHOULD_COWER = 0x157, + TRANSCODE_PANIC_STOP_COWERING = 0x158, + TRANSCODE_PANIC_RUN_AWAY_DONE = 0x159, + TRANSCODE_PANIC_CONTINUE_TO_RUN_AWAY = 0x15A, + TRANSCODE_PANIC_FEARED_ENTITY_INVALID = 0x15B, + TRANSCODE_PANIC_MOVE_FAILED = 0x15C, + TRANSCODE_PANIC_ERROR = 0x15D, + TRANSCODE_MELEE_ATTACK = 0x15E, + TRANSCODE_MELEE_REPOSITION = 0x15F, + TRANSCODE_MELEE_ATTACK_DONE = 0x160, + TRANSCODE_MELEE_TARGET_OUT_OF_RANGE = 0x161, + TRANSCODE_MELEE_REPOSITION_DONE = 0x162, + TRANSCODE_MELEE_REPOSITION_FAILED = 0x163, + TRANSCODE_MELEE_NO_TARGET = 0x164, + TRANSCODE_MELEE_NO_RESTART = 0x165, + TRANSCODE_ADVANCE_DONE = 0x166, + TRANSCODE_ADVANCE_SHOULD_CHARGE = 0x167, + TRANSCODE_ADVANCE_SHOULD_MOVE_TO_COVER = 0x168, + TRANSCODE_ADVANCE_SHOULD_MOVE_TOWARDS_ENEMY = 0x169, + TRANSCODE_ADVANCE_SHOULD_MOVE_TOWARDS_VALID_ENEMY_POS = 0x16A, + TRANSCODE_ADVANCE_CHARGE_DONE = 0x16B, + TRANSCODE_ADVANCE_MOVE_TO_COVER_DONE = 0x16C, + TRANSCODE_ADVANCE_MOVE_TOWARDS_ENEMY_DONE = 0x16D, + TRANSCODE_ADVANCE_WAIT_IN_COVER = 0x16E, + TRANSCODE_ADVANCE_WAIT_IN_COVER_DONE = 0x16F, + TRANSCODE_ADVANCE_SHOULD_LEAP_ATTACK = 0x170, + TRANSCODE_ADVANCE_SHOULD_SIDESTEP = 0x171, + TRANSCODE_ADVANCE_SIDESTEP_FAILED = 0x172, + TRANSCODE_ADVANCE_SIDESTEP_DONE = 0x173, + TRANSCODE_ADVANCE_LEAP_ATTACK_FAILED = 0x174, + TRANSCODE_ADVANCE_LEAP_ATTACK_DONE = 0x175, + TRANSCODE_ADVANCE_SHOULD_SURROUND_ENEMY = 0x176, + TRANSCODE_ADVANCE_SURROUND_ENEMY_DONE = 0x177, + TRANSCODE_ADVANCE_SURROUND_ENEMY_CLOSE_AND_SEEN = 0x178, + TRANSCODE_ADVANCE_SURROUND_ENEMY_FAILED = 0x179, + TRANSCODE_ADVANCE_SHOULD_SNEAK_UP_ON_ENEMY = 0x17A, + TRANSCODE_ADVANCE_SNEAK_UP_ON_ENEMY_DONE = 0x17B, + TRANSCODE_ADVANCE_SNEAK_UP_ON_ENEMY_SEEN = 0x17C, + TRANSCODE_ADVANCE_SNEAK_UP_ON_ENEMY_CLOSE_ENOUGH = 0x17D, + TRANSCODE_ADVANCE_SNEAK_UP_ON_ENEMY_TOO_FAR = 0x17E, + TRANSCODE_ADVANCE_SNEAK_UP_ON_ENEMY_FAILED = 0x17F, + TRANSCODE_ADVANCE_SHOULD_THROW_PROJECTILE = 0x180, + TRANSCODE_ADVANCE_THROW_PROJECTILE_DONE = 0x181, + TRANSCODE_ADVANCE_THROW_PROJECTILE_FAILED = 0x182, + TRANSCODE_ADVANCE_SHOULD_MELEE = 0x183, + TRANSCODE_ADVANCE_MELEE_FINISHED = 0x184, + TRANSCODE_ADVANCE_SHOULD_ANGRY_RAGE = 0x185, + TRANSCODE_ADVANCE_SHOULD_TAUNT_RAGE = 0x186, + TRANSCODE_ADVANCE_RAGE_DONE = 0x187, + TRANSCODE_ADVANCE_PLAY_OVERRIDE_ANIM_DONE = 0x188, + TRANSCODE_ADVANCE_SHOULD_WAIT = 0x189, + TRANSCODE_ADVANCE_SHOULD_SEARCH = 0x18A, + TRANSCODE_ADVANCE_MOVE_FAILED_STOP_DONE = 0x18B, + TRANSCODE_FOLLOWFRIENDLY_NO_TARGET = 0x18C, + TRANSCODE_FOLLOWFRIENDLY_SHOULD_WAIT = 0x18D, + TRANSCODE_FOLLOWFRIENDLY_SHOULD_MOVE = 0x18E, + TRANSCODE_FOLLOW_FRIENDLY_PATH_CLEAR = 0x18F, + TRANSCODE_FOLLOW_FRIENDLY_PATH_BLOCKED = 0x190, + TRANSCODE_FOLLOW_FRIENDLY_MOVE_DONE = 0x191, + TRANSCODE_FOLLOW_FRIENDLY_SHOULD_CHASE_PROJECTILE = 0x192, + TRANSCODE_FOLLOW_FRIENDLY_CHASE_PROJECTILE_DONE = 0x193, + TRANSCODE_IC_WAIT = 0x194, + TRANSCODE_IC_LEAN_OUT = 0x195, + TRANSCODE_IC_COVER_EXPIRED = 0x196, + TRANSCODE_IC_LEAN_OUT_FINISHED = 0x197, + TRANSCODE_IC_RELOAD_WEAPON = 0x198, + TRANSCODE_IC_FINISHED_FIRING = 0x199, + TRANSCODE_IC_SHOT_AT = 0x19A, + TRANSCODE_IC_AIMED_AT = 0x19B, + TRANSCODE_IC_AIMED_AT_HEAVY = 0x19C, + TRANSCODE_IC_LEAN_IN_FINISHED = 0x19D, + TRANSCODE_IC_TOOK_DAMAGE = 0x19E, + TRANSCODE_IC_SHOULD_HIDE = 0x19F, + TRANSCODE_IC_SHOULD_PEEK = 0x1A0, + TRANSCODE_IC_SHOULD_BLINDFIRE = 0x1A1, + TRANSCODE_IC_ENEMY_CLOSE_TO_COVER = 0x1A2, + TRANSCODE_IC_COVER_COMPROMISED = 0x1A3, + TRANSCODE_IC_OFF_COVER_POINT = 0x1A4, + TRANSCODE_IC_NO_CONTACT = 0x1A5, + TRANSCODE_IC_RELOAD = 0x1A6, + TRANSCODE_IC_RELOAD_FINISHED = 0x1A7, + TRANSCODE_IC_OUT_OF_AMMO = 0x1A8, + TRANSCODE_IC_COVER_EXPIRED_FINISHED = 0x1A9, + TRANSCODE_IC_COMPROMISED_FINISHED = 0x1AA, + TRANSCODE_IC_ENEMY_CLOSE_FINISHED = 0x1AB, + TRANSCODE_IC_TOOK_DAMAGE_FINISHED = 0x1AC, + TRANSCODE_IC_NO_CONTACT_FINISHED = 0x1AD, + TRANSCODE_IC_OFF_COVER_POINT_FINISHED = 0x1AE, + TRANSCODE_IC_THROW_GRENADE = 0x1AF, + TRANSCODE_IC_THROW_FINISHED = 0x1B0, + TRANSCODE_IC_HIDE_FINISHED = 0x1B1, + TRANSCODE_IC_PEEK_FINISHED = 0x1B2, + TRANSCODE_IC_BLINDFIRE_FINISHED = 0x1B3, + TRANSCODE_IC_ROLE_CHANGED = 0x1B4, + TRANSCODE_INTERACT_DELIVER_VO = 0x1B5, + TRANSCODE_INTERACT_PLAY_ANIM = 0x1B6, + TRANSCODE_INTERACT_IDLE = 0x1B7, + TRANSCODE_INTERACT_WAIT_EXPIRED = 0x1B8, + TRANSCODE_INTERACT_FINISHED_VO = 0x1B9, + TRANSCODE_INTERACT_FINISHED_ANIM = 0x1BA, + TRANSCODE_INTERACT_END_INTERACTION = 0x1BB, + TRANSCODE_ITF_TRACK = 0x1BC, + TRANSCODE_ITF_NO_TARGET = 0x1BD, + TRANSCODE_ITF_ENDTRACK = 0x1BE, + TRANSCODE_ITF_FINISHED = 0x1BF, + TRANSCODE_ITF_PLAYER_APPROACHING = 0x1C0, + TRANSCODE_AC_STUCK = 0x1C1, + TRANSCODE_AC_UNSTUCK = 0x1C2, + TRANSCODE_DEFAULT_USE = 0x1C3, + TRANSCODE_CAN_USE = 0x1C4, + TRANSCODE_ALTERNATIVE_1 = 0x1C5, + TRANSCODE_ALTERNATIVE_2 = 0x1C6, + TRANSCODE_ALTERNATIVE_3 = 0x1C7, + TRANSCODE_MAX = 0x1C8, +}; + +// IDA Local Type ordinal 1612; PDB kind: unknown. +enum idStateTransition:: : __int32 +{ + TRANSCODE_NONE = 0x0, + TRANSCODE_RESTART = 0x1, + TRANSCODE_PARENT_RESTART = 0x2, + TRANSCODE_UNHANDLED_CHILD_ERROR = 0x3, + TRANSCODE_ERROR_SIGNALED = 0x4, + TRANSCODE_SET_STACK = 0x5, + TRANSCODE_START = 0x6, +}; + +// IDA Local Type ordinal 15752; PDB kind: class. +class idStateTransition : public idClass +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15755. + virtual idTypeInfo *GetType(); + virtual ~idStateTransition(); + virtual int Evaluate(idFiniteStateMachine *, idState *, const int); + virtual void InternalSave(idFile_String *, const char *, const idList *); + virtual void Save(idFile_String *, const char *, const idList *); + + int flags; +}; + +// IDA Local Type ordinal 15753; PDB kind: struct. +struct idStateTransition::transDest_t +{ + const idTypeInfo *nextStateType; + int transCode; +}; + +// IDA Local Type ordinal 20511; PDB kind: class. +class idAIStateTransition : public idStateTransition +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20512. + virtual idTypeInfo *GetType(); + virtual ~idAIStateTransition(); + virtual int Evaluate(idFiniteStateMachine *, idState *, const int); + virtual void InternalSave(idFile_String *, const char *, const idList *); + virtual void Save(idFile_String *, const char *, const idList *); + virtual idAIStateTransition::aiTransCode_t Evaluate_2(idAI2 *, idAIFSM *, idAIState *, const int); + +}; + +// IDA Local Type ordinal 20513; PDB kind: class. +class idAIStateTransitionStatic : public idAIStateTransition +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20514. + virtual idTypeInfo *GetType(); + virtual ~idAIStateTransitionStatic(); + virtual int Evaluate(idFiniteStateMachine *, idState *, const int); + virtual void InternalSave(idFile_String *, const char *, const idList *); + virtual void Save(idFile_String *, const char *, const idList *); + virtual idAIStateTransition::aiTransCode_t Evaluate_2(idAI2 *, idAIFSM *, idAIState *, const int); + +}; + +// IDA Local Type ordinal 21281; PDB kind: class. +class idStateTransition_StateError : public idAIStateTransitionStatic +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21282. + virtual idTypeInfo *GetType(); + virtual ~idStateTransition_StateError(); + virtual int Evaluate(idFiniteStateMachine *, idState *, const int); + virtual void InternalSave(idFile_String *, const char *, const idList *); + virtual void Save(idFile_String *, const char *, const idList *); + virtual idAIStateTransition::aiTransCode_t Evaluate_2(idAI2 *, idAIFSM *, idAIState *, const int); + +}; + +// IDA Local Type ordinal 32710; PDB kind: typedef. +typedef idClassFactory stateTransitionFactory_t; diff --git a/source/tungsten/game/ai/gamestate/aientitystate.h b/source/tungsten/game/ai/gamestate/aientitystate.h new file mode 100644 index 0000000..36ac082 --- /dev/null +++ b/source/tungsten/game/ai/gamestate/aientitystate.h @@ -0,0 +1,60 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\gamestate\aientitystate.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2654; PDB kind: enum. +enum idAIEntityState::aiEntityStateFlags_t : __int32 +{ + AIESFL_VALID = 0x1, + AIESFL_NEWLY_AWARE = 0x2, +}; + +// IDA Local Type ordinal 15965; PDB kind: class. +class idAIEntityState : public idClass +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15966. + virtual idTypeInfo *GetType(); + virtual ~idAIEntityState(); + + idAISenseState_Hearing hearingSense; + idAISenseState_Sight sightSense; + idArray senses; + idSpawnId spawnId; + int initTime; + int visChangeTime; + float lastVisualStimulus; + unsigned __int8 highestAwareness; + unsigned __int8 curAwareness; + unsigned __int8 lastSense; + unsigned __int8 lastVisible; + unsigned __int8 entityType; + unsigned __int8 : 6; + __int8 newlyAware : 1; + __int8 valid : 1; + idAASPosition aasPosition; +}; + +// IDA Local Type ordinal 15967; PDB kind: struct. +struct idAIEntityState::aiDefVisInfo_t +{ + idClipQuery eyeQuery; + idClipQuery boundsQuery; + idVec3 delta; + float fovWeight; + int entityNum; + bool closeEnough; + idClipQuery lastSeenPosQuery; +}; + +// IDA Local Type ordinal 20495; PDB kind: struct. +struct __declspec(align(4)) idAIEntityState::stimulusToSense_t +{ + aiSense_t sense; + aiAwareness_t awareness; + bool trigger; +}; diff --git a/source/tungsten/game/ai/gamestate/aigamestate.h b/source/tungsten/game/ai/gamestate/aigamestate.h new file mode 100644 index 0000000..28204a8 --- /dev/null +++ b/source/tungsten/game/ai/gamestate/aigamestate.h @@ -0,0 +1,22 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\gamestate\aigamestate.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16546; PDB kind: class. +class idAIGameState +{ +public: + idArray entStates; + idArray events; + idList forcedLatches; + idBlockAlloc stateAllocator; + idBlockAlloc eventAllocator; + int gameTime; + int gameFrame; + int numEvents; + int garbageIndex; +}; diff --git a/source/tungsten/game/ai/gamestate/aiworldstate.h b/source/tungsten/game/ai/gamestate/aiworldstate.h new file mode 100644 index 0000000..f3bd600 --- /dev/null +++ b/source/tungsten/game/ai/gamestate/aiworldstate.h @@ -0,0 +1,53 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\gamestate\aiworldstate.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1695; PDB kind: enum. +enum idAIWorldState::visibilityEffectsMask_t : __int32 +{ + VBE_DISTANCE = 0x1, + VBE_FACING = 0x2, + VBE_CROUCHING = 0x4, + VBE_COVER = 0x8, + VBE_DISPLACEMENT = 0x10, + VBE_SPEED = 0x20, + VBE_LIGHT = 0x40, + VBE_MAP = 0x80, + VBE_CAMOUFLAGE = 0x100, + VBE_AWARENESS = 0x200, + VBE_SIZE = 0x400, + VBE_ALL = 0xFFFFFFFF, +}; + +// IDA Local Type ordinal 15973; PDB kind: class. +class __declspec(align(8)) idAIWorldState : public idClass +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15974. + virtual idTypeInfo *GetType(); + virtual ~idAIWorldState(); + + idIndex ents[8]; + idIndex freeEnts[8]; + __int16 numEnts; + __int16 numFreeEnts; + idAIEntityState entityStates[8]; + idList aiDeferredVisInfo; + idList aiDeferredRefreshInfo; + idGatherQuery gatherQuery; + idTargetCache targetCache; + int lastUpdateFrameNum; + idVec3 lastUpdatePos; + float radius; + float visibleSightTime; + int friendlyVisibilityEffectsMask; + int enemyVisibilityEffectsMask; + int initialUpdateCount; + bool updateFriendly; + bool refreshFriendly; + bool bOwnerAiInCover; +}; diff --git a/source/tungsten/game/ai/leakyintegrator.h b/source/tungsten/game/ai/leakyintegrator.h new file mode 100644 index 0000000..f69733a --- /dev/null +++ b/source/tungsten/game/ai/leakyintegrator.h @@ -0,0 +1,21 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\leakyintegrator.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14956; PDB kind: class. +class __declspec(align(4)) idLeakyIntegrator<0,1> +{ +public: + float value; + float decayRate; + int lastUpdateMS; + unsigned __int8 : 7; + __int8 wasTriggered : 1; +}; + +// IDA Local Type ordinal 26288; PDB kind: typedef. +typedef idLeakyIntegrator<0,1> leakyIntegrator_t; diff --git a/source/tungsten/game/ai/range.h b/source/tungsten/game/ai/range.h new file mode 100644 index 0000000..e413edb --- /dev/null +++ b/source/tungsten/game/ai/range.h @@ -0,0 +1,60 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\range.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1530; PDB kind: enum. +enum rangeId_t : __int32 +{ + RANGE_MAIN = 0x0, + RANGE_RENDER = 0x1, + RANGE_GPU = 0x2, + RANGE_JBL_COLL = 0x3, + RANGE_JBL_GAME = 0x4, + RANGE_JBL_RMDL = 0x5, + RANGE_JBL_TRNS = 0x6, + RANGE_JBL_VDEO = 0x7, + RANGE_JBL_ANLZ = 0x8, + RANGE_JBL_VIRT = 0x9, + RANGE_JBL_SNDO = 0xA, + RANGE_JBL_SNAP = 0xB, + RANGE_STREAM_CT = 0xC, + RANGE_STREAM_HD = 0xD, + RANGE_STREAM_OD = 0xE, + RANGE_JPU0 = 0xF, + RANGE_JPU1 = 0x10, + RANGE_JPU2 = 0x11, + RANGE_JPU3 = 0x12, + RANGE_JPU4 = 0x13, + RANGE_JPU5 = 0x14, + RANGE_JPU6 = 0x15, + RANGE_JPU7 = 0x16, + RANGE_JPU8 = 0x17, + RANGE_JPU9 = 0x18, + RANGE_JPU10 = 0x19, + RANGE_JPU11 = 0x1A, + RANGE_JPU12 = 0x1B, + RANGE_JPU13 = 0x1C, + RANGE_JPU14 = 0x1D, + RANGE_JPU15 = 0x1E, + RANGE_JPU16 = 0x1F, + RANGE_JPU17 = 0x20, + RANGE_JPU18 = 0x21, + RANGE_JPU19 = 0x22, + RANGE_JPU20 = 0x23, + RANGE_JPU21 = 0x24, + RANGE_JPU22 = 0x25, + RANGE_JPU23 = 0x26, + RANGE_MAX = 0x27, +}; + +// IDA Local Type ordinal 16588; PDB kind: class. +class idRange +{ +public: + float minRange; + float maxRange; +}; diff --git a/source/tungsten/game/ai/rotationtracker.h b/source/tungsten/game/ai/rotationtracker.h new file mode 100644 index 0000000..373bbdd --- /dev/null +++ b/source/tungsten/game/ai/rotationtracker.h @@ -0,0 +1,207 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\rotationtracker.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16723; PDB kind: class. +class __declspec(align(2)) idRotationTracker +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16724. + virtual ~idRotationTracker(); + virtual void Update(const idVec3 *, const idMat3 *, const idVec3 *, const float, const bool, const int); + + idQuat rot; + idTypesafeNumber maxPitch; + idTypesafeNumber maxYaw; + float maxPitchDot; + float maxYawDot; + float halfMaxPitchDot; + float halfMaxYawDot; + idTypesafeNumber maxVelocity; + idTypesafeNumber velocity; + idTypesafeNumber acceleration; + idTypesafeNumber deceleration; + bool projectWhenBehind; + bool clampedYaw; + bool clampedPitch; +}; + +// IDA Local Type ordinal 19158; PDB kind: class. +class idTest_RotationTracker : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19159. + virtual idTypeInfo *GetType(); + virtual ~idTest_RotationTracker(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + idRotationTracker tracker; +}; + +// IDA Local Type ordinal 20494; PDB kind: class. +class idRotationTrackerRange +{ +public: + float minYaw; + float maxYaw; + float minPitch; + float maxPitch; +}; diff --git a/source/tungsten/game/ai/skillsetting.h b/source/tungsten/game/ai/skillsetting.h new file mode 100644 index 0000000..0c94787 --- /dev/null +++ b/source/tungsten/game/ai/skillsetting.h @@ -0,0 +1,45 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\skillsetting.h +// Recovered logical types: 7 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16645; PDB kind: class. +class idSkillSetting +{ +public: + float setting[5]; +}; + +// IDA Local Type ordinal 16648; PDB kind: class. +class idSkillSetting +{ +public: + int setting[5]; +}; + +// IDA Local Type ordinal 16649; PDB kind: class. +class idSkillSetting +{ +public: + bool setting[5]; +}; + +// IDA Local Type ordinal 21503; PDB kind: struct. +struct aiSkillSettings_t +{ + aiAccuracy_t aimAccuracy; + int minFireAtLastKnownDuration; + int maxFireAtLastKnownDuration; +}; + +// IDA Local Type ordinal 26700; PDB kind: typedef. +typedef idSkillSetting idSkillSetting_Bool; + +// IDA Local Type ordinal 26828; PDB kind: typedef. +typedef idSkillSetting idSkillSetting_Int; + +// IDA Local Type ordinal 30709; PDB kind: typedef. +typedef idSkillSetting idSkillSetting_Float; diff --git a/source/tungsten/game/ai/targetting/filters/authorityrepairbottargetfilters.h b/source/tungsten/game/ai/targetting/filters/authorityrepairbottargetfilters.h new file mode 100644 index 0000000..41335ff --- /dev/null +++ b/source/tungsten/game/ai/targetting/filters/authorityrepairbottargetfilters.h @@ -0,0 +1,27 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\targetting\filters\authorityrepairbottargetfilters.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 21690; PDB kind: class. +class idAuthorityRepairBotEnemyTargetFilter : public idTargetFilter +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21691. + virtual ~idAuthorityRepairBotEnemyTargetFilter(); + virtual bool InternalFilter(const idEntity *, const idTargetInfo *); + +}; + +// IDA Local Type ordinal 21789; PDB kind: class. +class idAuthorityRepairBotFriendlyTargetFilter : public idTargetFilter +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21790. + virtual ~idAuthorityRepairBotFriendlyTargetFilter(); + virtual bool InternalFilter(const idEntity *, const idTargetInfo *); + +}; diff --git a/source/tungsten/game/ai/targetting/filters/enemytargetfilter.h b/source/tungsten/game/ai/targetting/filters/enemytargetfilter.h new file mode 100644 index 0000000..1741c7a --- /dev/null +++ b/source/tungsten/game/ai/targetting/filters/enemytargetfilter.h @@ -0,0 +1,17 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\targetting\filters\enemytargetfilter.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 18992; PDB kind: class. +class idEnemyTargetFilter : public idTargetFilter +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18993. + virtual ~idEnemyTargetFilter(); + virtual bool InternalFilter(const idEntity *, const idTargetInfo *); + +}; diff --git a/source/tungsten/game/ai/targetting/filters/followtargetfilter.h b/source/tungsten/game/ai/targetting/filters/followtargetfilter.h new file mode 100644 index 0000000..258c051 --- /dev/null +++ b/source/tungsten/game/ai/targetting/filters/followtargetfilter.h @@ -0,0 +1,17 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\targetting\filters\followtargetfilter.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22064; PDB kind: class. +class idFollowTargetFilter : public idTargetFilter +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22065. + virtual ~idFollowTargetFilter(); + virtual bool InternalFilter(const idEntity *, const idTargetInfo *); + +}; diff --git a/source/tungsten/game/ai/targetting/filters/friendlytargetfilter.h b/source/tungsten/game/ai/targetting/filters/friendlytargetfilter.h new file mode 100644 index 0000000..2f1e098 --- /dev/null +++ b/source/tungsten/game/ai/targetting/filters/friendlytargetfilter.h @@ -0,0 +1,27 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\targetting\filters\friendlytargetfilter.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 20483; PDB kind: class. +class idFriendlyTargetFilter : public idTargetFilter +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20484. + virtual ~idFriendlyTargetFilter(); + virtual bool InternalFilter(const idEntity *, const idTargetInfo *); + +}; + +// IDA Local Type ordinal 20485; PDB kind: class. +class idFriendlyDeadTargetFilter : public idTargetFilter +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20486. + virtual ~idFriendlyDeadTargetFilter(); + virtual bool InternalFilter(const idEntity *, const idTargetInfo *); + +}; diff --git a/source/tungsten/game/ai/targetting/filters/nonenemytargetfilter.h b/source/tungsten/game/ai/targetting/filters/nonenemytargetfilter.h new file mode 100644 index 0000000..e14fa73 --- /dev/null +++ b/source/tungsten/game/ai/targetting/filters/nonenemytargetfilter.h @@ -0,0 +1,17 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\targetting\filters\nonenemytargetfilter.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19950; PDB kind: class. +class idNonEnemyTargetFilter : public idTargetFilter +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19951. + virtual ~idNonEnemyTargetFilter(); + virtual bool InternalFilter(const idEntity *, const idTargetInfo *); + +}; diff --git a/source/tungsten/game/ai/targetting/filters/turretfilter.h b/source/tungsten/game/ai/targetting/filters/turretfilter.h new file mode 100644 index 0000000..810d4a0 --- /dev/null +++ b/source/tungsten/game/ai/targetting/filters/turretfilter.h @@ -0,0 +1,17 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\targetting\filters\turretfilter.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 20481; PDB kind: class. +class idTurretFilter : public idTargetFilter +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20482. + virtual ~idTurretFilter(); + virtual bool InternalFilter(const idEntity *, const idTargetInfo *); + +}; diff --git a/source/tungsten/game/ai/targetting/filters/turrettargetfilter.h b/source/tungsten/game/ai/targetting/filters/turrettargetfilter.h new file mode 100644 index 0000000..ce6ab1a --- /dev/null +++ b/source/tungsten/game/ai/targetting/filters/turrettargetfilter.h @@ -0,0 +1,17 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\targetting\filters\turrettargetfilter.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19018; PDB kind: class. +class idTurretTargetFilter : public idTargetFilter +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19019. + virtual ~idTurretTargetFilter(); + virtual bool InternalFilter(const idEntity *, const idTargetInfo *); + +}; diff --git a/source/tungsten/game/ai/targetting/selectors/authorityrepairbottargetselectors.h b/source/tungsten/game/ai/targetting/selectors/authorityrepairbottargetselectors.h new file mode 100644 index 0000000..f9d1e7a --- /dev/null +++ b/source/tungsten/game/ai/targetting/selectors/authorityrepairbottargetselectors.h @@ -0,0 +1,30 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\targetting\selectors\authorityrepairbottargetselectors.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22010; PDB kind: class. +class idAuthorityRepairBotFriendlyTargetSelector : public idTargetSelector +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22011. + virtual ~idAuthorityRepairBotFriendlyTargetSelector(); + virtual float GetWeight(const idEntity *, const idTargetInfo *); + +}; + +// IDA Local Type ordinal 22356; PDB kind: class. +class idAuthorityRepairBotEnemyTargetSelector : public idTargetSelector +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22357. + virtual ~idAuthorityRepairBotEnemyTargetSelector(); + virtual float GetWeight(const idEntity *, const idTargetInfo *); + + idEntityPtr lastTarget; + idEntityPtr lastAttacker; + float maxTargetDistance; +}; diff --git a/source/tungsten/game/ai/targetting/selectors/enemytargetselector.h b/source/tungsten/game/ai/targetting/selectors/enemytargetselector.h new file mode 100644 index 0000000..6bd3666 --- /dev/null +++ b/source/tungsten/game/ai/targetting/selectors/enemytargetselector.h @@ -0,0 +1,17 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\targetting\selectors\enemytargetselector.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 18996; PDB kind: class. +class idEnemyTargetSelector : public idTargetSelector +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18997. + virtual ~idEnemyTargetSelector(); + virtual float GetWeight(const idEntity *, const idTargetInfo *); + +}; diff --git a/source/tungsten/game/ai/targetting/selectors/friendlytargetselector.h b/source/tungsten/game/ai/targetting/selectors/friendlytargetselector.h new file mode 100644 index 0000000..2a63e97 --- /dev/null +++ b/source/tungsten/game/ai/targetting/selectors/friendlytargetselector.h @@ -0,0 +1,17 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\targetting\selectors\friendlytargetselector.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 20479; PDB kind: class. +class idFriendlyTargetSelector : public idTargetSelector +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20480. + virtual ~idFriendlyTargetSelector(); + virtual float GetWeight(const idEntity *, const idTargetInfo *); + +}; diff --git a/source/tungsten/game/ai/targetting/selectors/neutraltargetselector.h b/source/tungsten/game/ai/targetting/selectors/neutraltargetselector.h new file mode 100644 index 0000000..38cd226 --- /dev/null +++ b/source/tungsten/game/ai/targetting/selectors/neutraltargetselector.h @@ -0,0 +1,17 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\targetting\selectors\neutraltargetselector.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 20477; PDB kind: class. +class idNeutralTargetSelector : public idTargetSelector +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20478. + virtual ~idNeutralTargetSelector(); + virtual float GetWeight(const idEntity *, const idTargetInfo *); + +}; diff --git a/source/tungsten/game/ai/targetting/selectors/turrettargetselector.h b/source/tungsten/game/ai/targetting/selectors/turrettargetselector.h new file mode 100644 index 0000000..764b622 --- /dev/null +++ b/source/tungsten/game/ai/targetting/selectors/turrettargetselector.h @@ -0,0 +1,24 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\targetting\selectors\turrettargetselector.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19009; PDB kind: class. +class __declspec(align(4)) idTurretTargetSelector : public idTargetSelector +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19010. + virtual ~idTurretTargetSelector(); + virtual float GetWeight(const idEntity *, const idTargetInfo *); + + idEntityPtr lastTarget; + idEntityPtr lastAttacker; + float maxTargetDistance; + float minTargetDistance; + idVec3 forwardSearchDir; + float maxSearchAngle; + bool trackOnlyPlayer; +}; diff --git a/source/tungsten/game/ai/targetting/targetcache.h b/source/tungsten/game/ai/targetting/targetcache.h new file mode 100644 index 0000000..b3ebad1 --- /dev/null +++ b/source/tungsten/game/ai/targetting/targetcache.h @@ -0,0 +1,15 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\targetting\targetcache.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15972; PDB kind: class. +class idTargetCache +{ +public: + idStaticList targets; + int curFrame; +}; diff --git a/source/tungsten/game/ai/targetting/targetfilter.h b/source/tungsten/game/ai/targetting/targetfilter.h new file mode 100644 index 0000000..3cfb6e2 --- /dev/null +++ b/source/tungsten/game/ai/targetting/targetfilter.h @@ -0,0 +1,44 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\targetting\targetfilter.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14955; PDB kind: class. +class idBotTargetFilter +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14959. + virtual ~idBotTargetFilter(); + virtual const char *GetDebugName(); + virtual void PreCheckTargets(const int); + virtual void CheckTarget(const int, idBotTargetRecord *); + virtual void SortTargets(); + virtual void Reset(); + + int bestTargetIndex; + idEntityPtr bestTarget; +}; + +// IDA Local Type ordinal 18990; PDB kind: class. +class idTargetFilter +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18991. + virtual ~idTargetFilter(); + virtual bool InternalFilter(const idEntity *, const idTargetInfo *); + + aiAwareness_t minAwareness; +}; + +// IDA Local Type ordinal 20487; PDB kind: class. +class idAvoidTargetFilter : public idTargetFilter +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20488. + virtual ~idAvoidTargetFilter(); + virtual bool InternalFilter(const idEntity *, const idTargetInfo *); + +}; diff --git a/source/tungsten/game/ai/targetting/targetinfo.h b/source/tungsten/game/ai/targetting/targetinfo.h new file mode 100644 index 0000000..37495d2 --- /dev/null +++ b/source/tungsten/game/ai/targetting/targetinfo.h @@ -0,0 +1,21 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\targetting\targetinfo.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15969; PDB kind: class. +class __declspec(align(4)) idTargetInfo +{ +public: + const idAIEntityState *es; + float distSqr; + float distTo; + idVec3 delta; + idVec3 faceDir; + idVec3 dirTo; + char attitude; + unsigned __int8 healthRatio; +}; diff --git a/source/tungsten/game/ai/targetting/targetlist.h b/source/tungsten/game/ai/targetting/targetlist.h new file mode 100644 index 0000000..6a240af --- /dev/null +++ b/source/tungsten/game/ai/targetting/targetlist.h @@ -0,0 +1,38 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\targetting\targetlist.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1069; PDB kind: enum. +enum garageList_t : __int32 +{ + GARAGE_NONE = 0x0, + GARAGE_HAGER = 0x1, + GARAGE_WELLSPRING = 0x2, + GARAGE_SUBWAYTOWN = 0x3, + GARAGE_MAX = 0x4, +}; + +// IDA Local Type ordinal 1829; PDB kind: enum. +enum targetListType_t : __int32 +{ + TARGETTYPE_ENTER = 0x0, + TARGETTYPE_EXIT = 0x1, + TARGETTYPE_PRIMARYFIRE = 0x2, + TARGETTYPE_SECONDARYFIRE = 0x3, +}; + +// IDA Local Type ordinal 19000; PDB kind: class. +class idTargetList +{ +public: + const idTargetCache *targetCache; + idStaticList viableTargets; + int bestTargetIndex; +}; + +// IDA Local Type ordinal 31826; PDB kind: typedef. +typedef idStaticList,4> threatList_t; diff --git a/source/tungsten/game/ai/targetting/targetselector.h b/source/tungsten/game/ai/targetting/targetselector.h new file mode 100644 index 0000000..38a75d3 --- /dev/null +++ b/source/tungsten/game/ai/targetting/targetselector.h @@ -0,0 +1,204 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\targetting\targetselector.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1068; PDB kind: unknown. +enum idItemSelector:: : __int32 +{ + DISCARD = 0xFFFFFFFF, +}; + +// IDA Local Type ordinal 17312; PDB kind: class. +class idItemSelector : public idClass +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17313. + virtual idTypeInfo *GetType(); + virtual ~idItemSelector(); + virtual void InternalPreSelectItem(); + virtual float InternalGetWeight(const idInventoryItem *); + virtual void InternalPostSelectItem(); + + const idEntity *owner; +}; + +// IDA Local Type ordinal 18994; PDB kind: class. +class idTargetSelector +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18995. + virtual ~idTargetSelector(); + virtual float GetWeight(const idEntity *, const idTargetInfo *); + + idVec3 ownerDir; +}; + +// IDA Local Type ordinal 19419; PDB kind: class. +class __declspec(align(8)) idTarget_Teleport : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19420. + virtual idTypeInfo *GetType(); + virtual ~idTarget_Teleport(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + bool targetActivator; +}; diff --git a/source/tungsten/game/ai/traversalchain.h b/source/tungsten/game/ai/traversalchain.h new file mode 100644 index 0000000..e4ecabf --- /dev/null +++ b/source/tungsten/game/ai/traversalchain.h @@ -0,0 +1,278 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\traversalchain.h +// Recovered logical types: 10 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1781; PDB kind: enum. +enum __bitmask traversalInfo_t::traversalFlags_t : __int32 +{ + TRAVERSAL_FLAG_ENABLED = 0x1, + TRAVERSAL_FLAG_EVASION = 0x2, + TRAVERSAL_FLAG_EMERGENCY = 0x4, + TRAVERSAL_FLAG_RUNWHENDONE = 0x8, + TRAVERSAL_FLAG_BIDIRECTIONAL = 0x10, + TRAVERSAL_FLAG_FALL = 0x20, + TRAVERSAL_FLAG_ALIGNTOOBJECT = 0x40, + TRAVERSAL_FLAG_ENT_INTERACT = 0x80, + TRAVERSAL_FLAG_LONG = 0x100, + TRAVERSAL_FLAG_TELEPORT = 0x200, + TRAVERSAL_FLAG_COMBAT = 0x400, + TRAVERSAL_FLAG_DELTA_CORRECT = 0x800, + TRAVERSAL_FLAG_CLASS_A = 0x2000000, + TRAVERSAL_FLAG_CLASS_B = 0x4000000, + TRAVERSAL_FLAG_CLASS_C = 0x8000000, + TRAVERSAL_FLAG_CLASS_D = 0x10000000, + TRAVERSAL_FLAG_CLASS_E = 0x20000000, +}; + +// IDA Local Type ordinal 20017; PDB kind: class. +class idVerletChain +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20018. + virtual ~idVerletChain(); + + idList constraints; + idList points; + idList orientations; + idList forces; + idStaticList sphereCollisions; + idStaticList planeCollisions; + idVec3 refForward; + idVec3 refLeft; + idVec3 refDown; + float maxHealth; + int brokenPointIndex; + idLookupTable cooldownTable; +}; + +// IDA Local Type ordinal 20019; PDB kind: struct. +struct idVerletChain::constraint_t +{ + float length; + float lengthSquared; + float ratio1; + float ratio2; + int index1; + int index2; +}; + +// IDA Local Type ordinal 20021; PDB kind: struct. +struct __declspec(align(4)) idVerletChain::particle_t +{ + idVec3 oldPos; + idVec3 currentPos; + float health; + float healthStamp; + int timeStamp; + bool anchor; +}; + +// IDA Local Type ordinal 20023; PDB kind: struct. +struct idVerletChain::orientation_t +{ + unsigned __int16 index1; + unsigned __int16 index2; +}; + +// IDA Local Type ordinal 20025; PDB kind: struct. +struct idVerletChain::force_t +{ + idVec3 force; + int numSteps; + int pointId; +}; + +// IDA Local Type ordinal 20029; PDB kind: struct. +struct idVerletChain::plane_t +{ + idPlane plane; + int startIndex[2]; + int numPoints[2]; +}; + +// IDA Local Type ordinal 20469; PDB kind: class. +class idInfo_TraversalChain::idLink +{ +public: + idEntityPtr mTarget; + idAnimWebPath mAnim; +}; + +// IDA Local Type ordinal 20471; PDB kind: class. +class __declspec(align(8)) idInfo_TraversalChain : public idInfo_TraversalPoint +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20472. + virtual idTypeInfo *GetType(); + virtual ~idInfo_TraversalChain(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + idAASTraversalChainData mData; + idList mLinks; +}; + +// IDA Local Type ordinal 22348; PDB kind: struct. +struct traversalInfo_t +{ + idAnimWebPath anim; + traversalInfo_t::traversalFlags_t flags; + aasType_t aasLayer; +}; diff --git a/source/tungsten/game/ai/vehicleai/splinepathmgr.h b/source/tungsten/game/ai/vehicleai/splinepathmgr.h new file mode 100644 index 0000000..3d1e9f4 --- /dev/null +++ b/source/tungsten/game/ai/vehicleai/splinepathmgr.h @@ -0,0 +1,220 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\vehicleai\splinepathmgr.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15683; PDB kind: class. +class idAISplinePathMgr : public idNavSplinePathMgr +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15684. + virtual ~idAISplinePathMgr(); + virtual void Update(); + virtual void SpecialSetup(); + virtual idNavSplinePosition *GetClosestPathPosition(idNavSplinePosition *result, idVec3, idNavSpline *, float, float, idVec3, bool); + virtual float GetNextRecalcTime(); + + bool trackPickups; + int numVehiclePickups; + idNavPathPosTracker null_splineTracker; + idList,5> dormancyList; +}; + +// IDA Local Type ordinal 19697; PDB kind: struct. +struct idSplinePathMM::idSplineGeometry +{ + bool generateGeometry; + float radius; + int splineSubdivisions; + int sweptSubdivisions; +}; + +// IDA Local Type ordinal 19699; PDB kind: class. +class __declspec(align(8)) idSplinePathMM : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19701. + virtual idTypeInfo *GetType(); + virtual ~idSplinePathMM(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + splinePathType_t type; + idList controlPoints; + idList weightPoints; + idSplinePathMM::idSplineGeometry splineGeometry; + idLinkList controlNode; + idList moverModifiers; + idList,5> moverModifierEntities; + idSplinePathMM::moverModifierModels_t moverModifierModels; + const idDeclEntityDef *graphDef; + idEntityPtr anchorStart; + idEntityPtr anchorEnd; + float cachedSplineLength; + idCurve_Spline *allocedSpline; + idList,5> splineChildEntities; +}; + +// IDA Local Type ordinal 19700; PDB kind: struct. +struct idSplinePathMM::moverModifierModels_t +{ + idStrRenderModel orientationModModel; + idStrRenderModel defaultModModel; + float moverScale; +}; diff --git a/source/tungsten/game/ai/vehicleai/vehicleaidef.h b/source/tungsten/game/ai/vehicleai/vehicleaidef.h new file mode 100644 index 0000000..6c36b57 --- /dev/null +++ b/source/tungsten/game/ai/vehicleai/vehicleaidef.h @@ -0,0 +1,424 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\vehicleai\vehicleaidef.h +// Recovered logical types: 37 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2202; PDB kind: enum. +enum vehicleAiSetup_t::difficultyLevel_t::difficulty_t : __int32 +{ + DIFFICULTY_LOW = 0x0, + DIFFICULTY_MED = 0x1, + DIFFICULTY_HIGH = 0x2, +}; + +// IDA Local Type ordinal 2203; PDB kind: enum. +enum vehicleAiSetup_t::patrol_t::patrolPath_t : __int32 +{ + PATROL_CYCLICAL = 0x0, + PATROL_REBOUND = 0x1, + PATROL_RANDOM = 0x2, + PATROL_ONCE = 0x3, +}; + +// IDA Local Type ordinal 2204; PDB kind: enum. +enum vehicleAiSetup_t::cmdName_t : __int32 +{ + CMD_NONE = 0x0, + CMD_OCCUPANTS = 0x1, + CMD_TRAVEL = 0x2, + CMD_WAIT_FOR_TRIGGER = 0x3, + CMD_TO_TRIGGER = 0x4, + CMD_PAUSE_STATE = 0x5, + CMD_CHANGE_STATE = 0x6, + CMD_ENTER_VEHICLE = 0x7, + CMD_EXIT_VEHICLE = 0x8, + CMD_UNLOCK_OCCUPANTS = 0x9, + CMD_WAIT = 0xA, + CMD_WAIT_FOR_SOUND = 0xB, + CMD_WAIT_FOR_VOICEOVER = 0xC, + CMD_POWER_SLIDE = 0xD, + CMD_WAIT_TIL_DEAD = 0xE, + CMD_WAIT_FOR_PLAYER = 0xF, + CMD_TRAVEL_TIL_DEAD = 0x10, + CMD_TRIGGER_ACTION = 0x11, +}; + +// IDA Local Type ordinal 2224; PDB kind: enum. +enum vehicleAiSetup_t::death_t::respawnType_t : __int32 +{ + NO_RESPAWN = 0x0, + DO_NOTHING = 0x1, + RESPAWN_AT_SPAWN_POINT = 0x2, + RESPAWN_NEAR_DEATHSPOT = 0x3, +}; + +// IDA Local Type ordinal 2225; PDB kind: enum. +enum vehicleAiSetup_t::triggerAction_t : __int32 +{ + TA_CONTINUE_EVALUATING_COMMANDS = 0x0, + TA_TOGGLE_ACTIVE_STATE = 0x1, +}; + +// IDA Local Type ordinal 14517; PDB kind: class. +class idVehicleBodyDef +{ +public: + const idCollisionModel *model; + float density; + float linearFriction; + float angularFriction; + float contactFriction; + float bouncyness; +}; + +// IDA Local Type ordinal 15689; PDB kind: struct. +struct __declspec(align(4)) vehicleAiSetup_t::vehicle_t +{ + const idDeclEntityDef *vehicleDef; + idEntityPtr vehicleEnt; + bool useAiOriginAxis; +}; + +// IDA Local Type ordinal 15690; PDB kind: struct. +struct __declspec(align(2)) vehicleAiSetup_t::dormancy_t +{ + float distance; + idList,5> group; + bool isDormant; + bool isAttacking; + bool isNearPlayer; +}; + +// IDA Local Type ordinal 15713; PDB kind: struct. +struct vehicleAiSetup_t::patrol_t +{ + const idDeclEntityDef *waypointDef; + idEntityPtr waypoint; + vehicleAiSetup_t::patrol_t::patrolPath_t pathType; + float speed; + bool fleeNearEnemy; + int iterations; + float maxRightDistance; + float nextWaypointDist; + int curPatrolPoint; + int curPatrolDir; + int delayTime; + int iterationCount; + bool pathComplete; + idList waypoints; + idNavSplinePosition goalPosition; +}; + +// IDA Local Type ordinal 15715; PDB kind: struct. +struct vehicleAiSetup_t::encounter_t +{ + idList,5> waypoints; + idList,5> team; +}; + +// IDA Local Type ordinal 15716; PDB kind: struct. +struct vehicleAiSetup_t::engage_t::guardEntity_t +{ + idEntityPtr entity; + float engageDist; + float disengageDist; +}; + +// IDA Local Type ordinal 15718; PDB kind: struct. +struct vehicleAiSetup_t::engage_t::extension_t +{ + idEntityPtr entity; + float engageDist; +}; + +// IDA Local Type ordinal 15720; PDB kind: struct. +struct vehicleAiSetup_t::engage_t +{ + idList guard; + idList extension; + float delay; + idEntityPtr trigger; + float alertDistance; + const idSoundShader *alertSound; + int alertSoundTime; +}; + +// IDA Local Type ordinal 15721; PDB kind: struct. +struct vehicleAiSetup_t::attack_t +{ + const idDeclVehicleAttack *decl; + vehicleAttackParams_t params; +}; + +// IDA Local Type ordinal 15723; PDB kind: struct. +struct vehicleAiSetup_t::attackInfo_t +{ + bool freeForm; + idList types; +}; + +// IDA Local Type ordinal 15724; PDB kind: struct. +struct vehicleAiSetup_t::difficultyLevel_t +{ + vehicleAiSetup_t::difficultyLevel_t::difficulty_t level; + float attackScale; + float damageScale; + float speedRate; + float accuracy; + float damageTakenScale; +}; + +// IDA Local Type ordinal 15725; PDB kind: struct. +struct vehicleAiSetup_t::death_t +{ + vehicleAiSetup_t::death_t::respawnType_t respawnType; + bool killWhenStuck; + bool respawnInBackground; + float minBackgroundDistance; + float minBackgroundViewDistance; + bool clearEnemyTracker; + float minRespawnTime; + float maxRespawnTime; + int numRespawns; + float waveMinDelayTime; + float waveMaxDelayTime; + int numWaves; + idEntityPtr trigger; + int triggerMilliSec; + idEntityPtr triggerAfterWave; + int triggerAfterWaveMilliSec; + int respawns; +}; + +// IDA Local Type ordinal 15726; PDB kind: struct. +struct vehicleAiSetup_t::commands_t::occupants_t +{ + idEntityPtr entity; + bool waitForPlayer; + bool lockInSeat; + const idDeclVoiceOver *voiceOver; + float delayTime; + float repeatDelayTime; +}; + +// IDA Local Type ordinal 15728; PDB kind: struct. +struct vehicleAiSetup_t::commands_t::travel_t +{ + idEntityPtr waypoint; + float normalSpeed; + float attackSpeed; + int iterations; + float nextWaypointDist; + float maxRightFrac; + bool shootAtEnemy; + float goalSpeed; +}; + +// IDA Local Type ordinal 15729; PDB kind: struct. +struct vehicleAiSetup_t::commands_t::trigger_t +{ + idEntityPtr triggerEntity; + int triggerTime; +}; + +// IDA Local Type ordinal 15730; PDB kind: struct. +struct vehicleAiSetup_t::commands_t::toTrigger_t +{ + idEntityPtr toTriggerEntity; + int occupantToActivate; +}; + +// IDA Local Type ordinal 15731; PDB kind: struct. +struct vehicleAiSetup_t::commands_t::pauseState_t +{ + bool decision; + bool attack; + bool movement; +}; + +// IDA Local Type ordinal 15732; PDB kind: struct. +struct vehicleAiSetup_t::commands_t::setState_t +{ + vehicleDecision_t decision; + vehicleAttack_t attack; +}; + +// IDA Local Type ordinal 15733; PDB kind: struct. +struct vehicleAiSetup_t::commands_t::enterVehicle_t +{ + idEntityPtr entitysVehicle; + idEntityPtr vehicle; + vehicleSeat_t seat; +}; + +// IDA Local Type ordinal 15734; PDB kind: struct. +struct vehicleAiSetup_t::commands_t::wait_t +{ + float time; +}; + +// IDA Local Type ordinal 15735; PDB kind: struct. +struct vehicleAiSetup_t::commands_t::waitForSound_t +{ + const idSoundShader *sound; +}; + +// IDA Local Type ordinal 15736; PDB kind: struct. +struct __declspec(align(4)) vehicleAiSetup_t::commands_t::waitForVoiceOver_t +{ + const idDeclVoiceOver *voiceOver; + bool waitOnVoiceOver; +}; + +// IDA Local Type ordinal 15738; PDB kind: struct. +struct __declspec(align(4)) vehicleAiSetup_t::commands_t::exitVehicle_t +{ + bool unlockOccupants; + idEntityPtr infoPath; + idEntityPtr triggerEntityExit; + bool removeVehicleWhenEmpty; +}; + +// IDA Local Type ordinal 15739; PDB kind: struct. +struct vehicleAiSetup_t::commands_t::powerSlide_t +{ + int wheelDir; + float impulse; +}; + +// IDA Local Type ordinal 15740; PDB kind: struct. +struct vehicleAiSetup_t::commands_t::waitTilDead_t +{ + idList,5> deadList; +}; + +// IDA Local Type ordinal 15741; PDB kind: struct. +struct vehicleAiSetup_t::commands_t::waitForPlayer_t +{ + float distance; +}; + +// IDA Local Type ordinal 15742; PDB kind: struct. +struct vehicleAiSetup_t::commands_t::travelTilDead_t +{ + idEntityPtr waypoint; + float normalSpeed; + float attackSpeed; + idList,5> deadList; + float goalSpeed; +}; + +// IDA Local Type ordinal 15743; PDB kind: struct. +struct vehicleAiSetup_t::commands_t +{ + vehicleAiSetup_t::cmdName_t type; + idList occupants; + vehicleAiSetup_t::commands_t::travel_t travel; + vehicleAiSetup_t::commands_t::trigger_t trigger; + vehicleAiSetup_t::commands_t::toTrigger_t toTrigger; + vehicleAiSetup_t::commands_t::pauseState_t pauseState; + vehicleAiSetup_t::commands_t::setState_t changeState; + vehicleAiSetup_t::commands_t::enterVehicle_t enterVehicle; + vehicleAiSetup_t::commands_t::wait_t wait; + vehicleAiSetup_t::commands_t::waitForSound_t waitForSound; + vehicleAiSetup_t::commands_t::waitForVoiceOver_t waitForVoiceOver; + vehicleAiSetup_t::commands_t::exitVehicle_t exitVehicle; + vehicleAiSetup_t::commands_t::powerSlide_t powerSlide; + vehicleAiSetup_t::commands_t::waitTilDead_t waitTilDead; + vehicleAiSetup_t::commands_t::waitForPlayer_t waitForPlayer; + vehicleAiSetup_t::commands_t::travelTilDead_t travelTilDead; + vehicleAiSetup_t::triggerAction_t triggerAction; +}; + +// IDA Local Type ordinal 15745; PDB kind: struct. +struct vehicleAiSetup_t::aiAudio_t +{ + idList sounds; + float minDelay; + float maxDelay; + int nextPlayTime; +}; + +// IDA Local Type ordinal 15746; PDB kind: struct. +struct vehicleAiSetup_t::conditionalAudio_t +{ + vehicleAiSetup_t::aiAudio_t afterKills; + int lastKillCount; + vehicleAiSetup_t::aiAudio_t duringFireFight; + vehicleAiSetup_t::aiAudio_t takingDamage; + vehicleAiSetup_t::aiAudio_t lowHealth; +}; + +// IDA Local Type ordinal 15747; PDB kind: struct. +struct vehicleAiSetup_t +{ + bool takesDamage; + vehicleDecision_t decisionState; + idEntityPtr secondaryAmbushPos; + idStr debugState; + vaiControl_t control; + vehicleAiSetup_t::vehicle_t controlVehicle; + float health; + bool infiniteAmmo; + bool infiniteQuickUse; + idEntityPtr initialPath; + bool guardInitialPath; + bool allowSplineJumping; + bool allowSlideTurn; + bool boostAltersVelocity; + bool ghostCollision; + bool canRunAway; + bool turnaroundTowardsMiddle; + int vehicleRating; + float narrowPathDistance; + int predatorHealthRegen; + float passThroughGoalDist; + vehicleAiSetup_t::dormancy_t dormancy; + vehicleAiSetup_t::patrol_t patrol; + vehicleAiSetup_t::encounter_t encounter; + vehicleAiSetup_t::engage_t engage; + int groupNumber; + vehicleAiSetup_t::attackInfo_t attack; + idList,5> specificEnemyList; + bool forcePlayerEnemy; + vehicleAiSetup_t::difficultyLevel_t difficultyLevel; + vehicleAiSetup_t::death_t death; + idFaction faction; + idList commands; + vehicleAiSetup_t::conditionalAudio_t conditionalAudio; +}; + +// IDA Local Type ordinal 17514; PDB kind: class. +class idVehicleUpgrade : public idInventoryItem +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17515. + virtual idTypeInfo *GetType(); + virtual ~idVehicleUpgrade(); + 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 Init(const idDeclInventory *); + virtual void Merge(idPresentable *, idInventoryCollection *, const idDeclInventory *); + virtual void Hide(); + virtual void Show(); + virtual void OnEquip(const idPresentable *, idFXManager *); + virtual void OnUnequip(const idPresentable *, idFXManager *); + virtual void OnClone(const idInventoryItem *); + virtual int GetCount(); + virtual bool CanUse(idActor *); + virtual bool Use(idActor *); + virtual bool CanUseInVehicle(idActor *); + virtual bool ClientUse(idPresentablePlayer *); + virtual void Serialize(idSerializer *, idInventoryCollection *); + virtual void SerializeNonPrediction(idSerializer *, idInventoryCollection *); + virtual void ClientUpdate(); + virtual void GetPickupHudInfo(const idEntity *, idPickupHudInfo *); + + bool newUpgrade; + float damage; +}; diff --git a/source/tungsten/game/ai/vehicleai/vehiclecontrol.h b/source/tungsten/game/ai/vehicleai/vehiclecontrol.h new file mode 100644 index 0000000..d2e8550 --- /dev/null +++ b/source/tungsten/game/ai/vehicleai/vehiclecontrol.h @@ -0,0 +1,14 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\vehicleai\vehiclecontrol.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14630; PDB kind: struct. +struct vehicleStickControl_t +{ + float angularScale[2]; + float velocityScale[2]; +}; diff --git a/source/tungsten/game/ai/vehicleai/vehiclefsm.h b/source/tungsten/game/ai/vehicleai/vehiclefsm.h new file mode 100644 index 0000000..3b6e5b2 --- /dev/null +++ b/source/tungsten/game/ai/vehicleai/vehiclefsm.h @@ -0,0 +1,93 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\vehicleai\vehiclefsm.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15770; PDB kind: class. +class idVehicleBaseFSM : public idFiniteStateMachine +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15779. + virtual idTypeInfo *GetType(); + virtual ~idVehicleBaseFSM(); + 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 bool CanUse(idFiniteStateMachine *, const int); + virtual idState *GetErrorState(); + virtual idState *GetDoneState(); + virtual void Save(idFile_String *, const char *); + virtual void Restart(idFiniteStateMachine *, const int); + virtual void AddState(idState *); + virtual int GetUpdateInterval(); + virtual void InitStates(const idFiniteStateMachineParams *); + virtual void AppendDefaultTransitions(idState *); + virtual void SetNextState(const idStateData::transResult_t *, const int); + virtual void SetState(const idStateData::transResult_t *, const int, const bool); + virtual void SetState_2(idState *, int, bool); + virtual void SetState_3(const idTypeInfo *, int, bool); + + idStaticList stateStack; + idState *dataState; + idVS_Idle s_Idle; + idVS_Wait s_Wait; +}; + +// IDA Local Type ordinal 15780; PDB kind: class. +class idVehicleFSM : public idVehicleBaseFSM +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15781. + virtual idTypeInfo *GetType(); + virtual ~idVehicleFSM(); + 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 bool CanUse(idFiniteStateMachine *, const int); + virtual idState *GetErrorState(); + virtual idState *GetDoneState(); + virtual void Save(idFile_String *, const char *); + virtual void Restart(idFiniteStateMachine *, const int); + virtual void AddState(idState *); + virtual int GetUpdateInterval(); + virtual void InitStates(const idFiniteStateMachineParams *); + virtual void AppendDefaultTransitions(idState *); + virtual void SetNextState(const idStateData::transResult_t *, const int); + virtual void SetState(const idStateData::transResult_t *, const int, const bool); + virtual void SetState_2(idState *, int, bool); + virtual void SetState_3(const idTypeInfo *, int, bool); + +}; + +// IDA Local Type ordinal 15783; PDB kind: class. +class idVehicleFSMManager : public idFSMManager +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15784. + virtual idTypeInfo *GetType(); + virtual ~idVehicleFSMManager(); + 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 idFiniteStateMachine *AllocFSM(const idTypeInfo *, const idFiniteStateMachineParams *); + virtual const idFiniteStateMachine *FindFSM(const idTypeInfo *); + virtual const idFiniteStateMachine *FindFSM_2(const char *); + virtual idFiniteStateMachine *FindFSM_3(const idTypeInfo *); + virtual idFiniteStateMachine *FindFSM_4(const char *); + virtual void FreeFSM(const idTypeInfo *); + virtual void FreeFSM_2(const char *); + + idList fsms; +}; + +// IDA Local Type ordinal 21734; PDB kind: class. +class idVehicleBaseFSM::idVehicleFSMParams : public idFiniteStateMachineParams +{ +public: +}; diff --git a/source/tungsten/game/ai/vehicleai/waypoint.h b/source/tungsten/game/ai/vehicleai/waypoint.h new file mode 100644 index 0000000..a5bc4b4 --- /dev/null +++ b/source/tungsten/game/ai/vehicleai/waypoint.h @@ -0,0 +1,373 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\vehicleai\waypoint.h +// Recovered logical types: 5 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1038; PDB kind: enum. +enum aimPoint_t : __int32 +{ + AIMPOINT_ORIGIN = 0x0, + AIMPOINT_HEAD = 0x1, + AIMPOINT_TORSO = 0x2, + AIMPOINT_CENTER = 0x3, + AIMPOINT_LEGS = 0x4, + AIMPOINT_FEET = 0x5, + AIMPOINT_BEST = 0x6, + AIMPOINT_EYELEVEL = 0x7, + AIMPOINT_LOOKAHEAD = 0x8, + AIMPOINT_MAX = 0x9, +}; + +// IDA Local Type ordinal 15632; PDB kind: class. +class idWaypoint : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15633. + virtual idTypeInfo *GetType(); + virtual ~idWaypoint(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + idLinkList waypointNode; +}; + +// IDA Local Type ordinal 15710; PDB kind: class. +class idSplineWaypoint : public idWaypoint +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15711. + virtual idTypeInfo *GetType(); + virtual ~idSplineWaypoint(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + idNavSplinePosition splinePathPosition; + float delay; + const idDeclVoiceOver *voiceOver; + vehicleSeat_t voSeat; + const idDeclVoiceOver *voiceOver2; + vehicleSeat_t voSeat2; + const idSoundShader *sound; + bool passThroughWaypoint; + vaiControl_t control; + vaiAction_t action; + float speedLimit; + float adaptToTargetSpeed; + float radius; + idList,5> users; +}; + +// IDA Local Type ordinal 29935; PDB kind: typedef. +typedef st_lwPoint lwPoint; + +// IDA Local Type ordinal 31949; PDB kind: typedef. +typedef tagPOINT POINT; diff --git a/source/tungsten/game/ai/wanderingaim.h b/source/tungsten/game/ai/wanderingaim.h new file mode 100644 index 0000000..a7d6888 --- /dev/null +++ b/source/tungsten/game/ai/wanderingaim.h @@ -0,0 +1,16 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ai\wanderingaim.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16722; PDB kind: class. +class idWanderingAim +{ +public: + idVec3 error; + int lastTime; + int convergeTime; +}; diff --git a/source/tungsten/game/animation/animationgui.h b/source/tungsten/game/animation/animationgui.h new file mode 100644 index 0000000..65a3cb3 --- /dev/null +++ b/source/tungsten/game/animation/animationgui.h @@ -0,0 +1,15 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\animation\animationgui.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17306; PDB kind: class. +class idAnimationGUI +{ +public: + idRenderModelGui *guiModel; + const idFont *font; +}; diff --git a/source/tungsten/game/animation/declfacialanimationset.h b/source/tungsten/game/animation/declfacialanimationset.h new file mode 100644 index 0000000..995b87a --- /dev/null +++ b/source/tungsten/game/animation/declfacialanimationset.h @@ -0,0 +1,37 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\animation\declfacialanimationset.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15189; PDB kind: class. +class idDeclFacialAnimationSet : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15190. + virtual ~idDeclFacialAnimationSet(); + 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(); + + idList,5> normalGlances; + idList,5> squintGlances; + idList,5> ambientCycles; + idList,5> ambientFidgets; + idList,5> focusCycles; + idList,5> focusFidgets; +}; diff --git a/source/tungsten/game/animation/facemgr.h b/source/tungsten/game/animation/facemgr.h new file mode 100644 index 0000000..d9cb049 --- /dev/null +++ b/source/tungsten/game/animation/facemgr.h @@ -0,0 +1,123 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\animation\facemgr.h +// Recovered logical types: 6 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2182; PDB kind: enum. +enum idFaceMgr::facialAnimFlags_t : __int32 +{ + FACEFLAG_ANIMATE_MOODS = 0x1, + FACEFLAG_ANIMATE_LIPSYNC = 0x2, + FACEFLAG_ANIMATE_GESTURES = 0x4, + FACEFLAG_EYE_TRACK = 0x8, + FACEFLAG_ANIMATE_BLINK = 0x10, + FACEFLAG_LID_DEFORMATION = 0x20, + FACEFLAG_DOUBLE_BLINK = 0x40, + FACEFLAG_SUPPRESS_BLINK = 0x80, + FACEFLAG_SUPPRESS_LID_DEFORM = 0x100, + FACEFLAG_ENABLE = 0x200, + FACEFLAG_ANIMATE_GLANCE = 0x400, + FACEFLAG_SUPPRESS_GLANCE = 0x800, + FACEFLAG_ANIMATE_CYCLE = 0x1000, + FACEFLAG_SUPPRESS_CYCLE = 0x2000, + FACEFLAG_ANIMATE_FIDGET = 0x4000, + FACEFLAG_SUPPRESS_FIDGET = 0x8000, +}; + +// IDA Local Type ordinal 2183; PDB kind: enum. +enum idFaceMgr::lidDeformation_t : __int32 +{ + LID_DEFORM_NONE = 0x0, + LID_DEFORM_FIRST = 0x1, + LID_DEFORM_UP = 0x1, + LID_DEFORM_DOWN = 0x2, + LID_DEFORM_RIGHT = 0x3, + LID_DEFORM_LEFT = 0x4, + LID_DEFORM_MAX = 0x5, +}; + +// IDA Local Type ordinal 2184; PDB kind: enum. +enum idFaceMgr::eyeFaceChannels_t : __int32 +{ + EYEFACECHANNEL_LEFT = 0x0, + EYEFACECHANNEL_RIGHT = 0x1, + EYEFACECHANNEL_UP = 0x2, + EYEFACECHANNEL_DOWN = 0x3, + EYEFACECHANNEL_NUM = 0x4, +}; + +// IDA Local Type ordinal 2185; PDB kind: enum. +enum idFaceMgr::attentionLevel_t : __int32 +{ + ATTENTION_LOW = 0x0, + ATTENTION_MODERATE = 0x1, + ATTENTION_HIGH = 0x2, + ATTENTION_MAX = 0x3, +}; + +// IDA Local Type ordinal 2591; PDB kind: enum. +enum idFaceMgr::soundSampleState_t : __int32 +{ + SOUNDSAMPLE_LEAD_IN = 0x0, + SOUNDSAMPLE_PLAYING = 0x1, + SOUNDSAMPLE_DONE = 0x2, + SOUNDSAMPLE_MAX = 0x3, +}; + +// IDA Local Type ordinal 14647; PDB kind: class. +class idFaceMgr : public idClass +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14648. + virtual idTypeInfo *GetType(); + virtual ~idFaceMgr(); + + mood_t mood; + mood_t lastMood; + mood_t defaultMood; + soundChannel_t voiceChannel; + faceChannel_t clearChannel; + unsigned __int16 flags; + unsigned __int16 lastFlags; + idHandle moodTable[9]; + idList,5> visemeTable; + idHandle blinkAlias; + idHandle lidDeformationAliases[5]; + __int16 eyeFaceChannels[4]; + idIndex eyeLidUserChannels[2]; + const idDeclVoiceOver *voiceOver; + int voiceTrackIndex; + const idSoundShader *lastSoundShader; + const idDeclVisemeSet *curVisemeSet; + idTypesafeNumber vtrackDuration; + idTypesafeNumber realStartTime; + idTypesafeNumber realEndTime; + idTypesafeNumber vtrackStartTime; + idTypesafeNumber startSoundTime; + idTypesafeNumber lastSampleTime; + idTypesafeNumber endLipsyncTime; + idFaceAnimator faceAnimator; + idIndex eyeJointIndex[2]; + idIndex headJointIndex; + int nextBlinkTime; + int nextJitterTime; + idVec3 eyeJitterOffset; + idAngles eyeAngles[2]; + float eyeWander[2]; + bool initEyeTracking; + bool useFaceSetupEyeTracking; + bool useFaceSetupBlinking; + bool startedVO; + idFaceMgr::attentionLevel_t focusAttentionLevel; + int lastGlanceTime; + int currentGlanceInterval; + bool glancingPreviousFrame; + int lastFidgetTime; + int currentFidgetInterval; + bool fidgetingPreviousFrame; + int nextCycleSelectTime; + int currentFluffInterval; +}; diff --git a/source/tungsten/game/animation/gameanimtools.h b/source/tungsten/game/animation/gameanimtools.h new file mode 100644 index 0000000..cdcda1a --- /dev/null +++ b/source/tungsten/game/animation/gameanimtools.h @@ -0,0 +1,62 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\animation\gameanimtools.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2181; PDB kind: enum. +enum idGameAnimToolsLocal::textLines_t : __int32 +{ + TL_NAME = 0x0, + TL_BLEND_OP = 0x1, + TL_ORIGIN_BLEND = 0x2, + TL_FRAME = 0x3, + TL_ALPHA = 0x4, + TL_WRAP = 0x5, + TL_RATE = 0x6, + TL_WEIGHTGROUP = 0x7, + TL_MAX = 0x8, +}; + +// IDA Local Type ordinal 18091; PDB kind: class. +class idGameAnimTools +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18092. + virtual ~idGameAnimTools(); + virtual void AnimDebugHud(idClass *, const idTreeAnimator *, const idMD6Node *); + virtual idRenderModelGui *DrawBlendTree(const char *, const idMD6Node *); + virtual int TreeDepth(const idMD6Node *); + virtual int GetAnimFrameRate(const idTreeAnimator *, const char *); + virtual int GetAnimNumFrames(const idTreeAnimator *, const idMD6Anim *); + virtual int GetAnimNumFrames_2(const idTreeAnimator *, const char *); + virtual bool VerifyStrongAliasRefs(const idTreeAnimator *, const idHandle *, const char *); + +}; + +// IDA Local Type ordinal 20442; PDB kind: class. +class idGameAnimToolsLocal : public idGameAnimTools +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20443. + virtual ~idGameAnimToolsLocal(); + virtual void AnimDebugHud(idClass *, const idTreeAnimator *, const idMD6Node *); + virtual idRenderModelGui *DrawBlendTree(const char *, const idMD6Node *); + virtual int TreeDepth(const idMD6Node *); + virtual int GetAnimFrameRate(const idTreeAnimator *, const char *); + virtual int GetAnimNumFrames(const idTreeAnimator *, const idMD6Anim *); + virtual int GetAnimNumFrames_2(const idTreeAnimator *, const char *); + virtual bool VerifyStrongAliasRefs(const idTreeAnimator *, const idHandle *, const char *); + + idRenderModelGui *guiModel; + float nodeWidth; + float nodeHeight; + const idMaterial *whiteMaterial; + idColor branchColor; + idColor leafColor; + idColor outlineColor; + idColor textColor; + idColor linkColor; +}; diff --git a/source/tungsten/game/animation/managedchannelanimator.h b/source/tungsten/game/animation/managedchannelanimator.h new file mode 100644 index 0000000..9eaab6d --- /dev/null +++ b/source/tungsten/game/animation/managedchannelanimator.h @@ -0,0 +1,52 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\animation\managedchannelanimator.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 21923; PDB kind: struct. +struct idManagedChannelAnimator::queuedAnim_t +{ + idHandle animAlias; + bool loop; + float targetAlpha; + float alphaRate; + int durationMS; + blendParms_t blendParms; +}; + +// IDA Local Type ordinal 21925; PDB kind: class. +class idManagedChannelAnimator : public idAnimator_Channel +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21926. + virtual ~idManagedChannelAnimator(); + virtual idAnimator_Base::priority_t GetStackPriority(); + virtual serializeType_t GetSerializeType(); + virtual void SerializeSnapshot(idSerializer *); + virtual void PreBlendSnapshot(idAnimStack *, int, const int, float); + virtual void PreSerializeInit(idAnimStack *, idClip *, idGameTimeManager *); + virtual bool InternalInit(const idAnimatorParms_Base *); + virtual bool InternalPostInit(const idAnimatorParms_Base *); + virtual void InternalShutdown(idAnimStack *); + virtual void InternalPreBlendTree(const idAnimStack *, const int, const int); + virtual void InternalPostBlendTree(const idAnimStack *, const int); + virtual void InternalStart(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalEnd(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalBlend(const idAnimStack *, const int, const float, const idTypesafeNumber); + virtual bool InternalIsContributing(); + virtual const idMD6Branch *InternalGetMergeBranch(); + virtual idMD6Branch *InternalGetMergeBranch_2(); + virtual void InternalPause(const idAnimStack *, const idTypesafeNumber); + virtual void InternalUnpause(const idAnimStack *, const idTypesafeNumber); + virtual const idMD6Branch *InternalGetEndBranch(); + virtual idMD6Branch *InternalGetEndBranch_2(); + + idHandle curAliasHandle; + int animEndTimeMS; + idList queuedAnims; + bool startBlendOut; + int startTime; +}; diff --git a/source/tungsten/game/animation/motioncontroller.h b/source/tungsten/game/animation/motioncontroller.h new file mode 100644 index 0000000..920d454 --- /dev/null +++ b/source/tungsten/game/animation/motioncontroller.h @@ -0,0 +1,76 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\animation\motioncontroller.h +// Recovered logical types: 6 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2177; PDB kind: enum. +enum idMotionController::channel_t : __int32 +{ + CHANNEL_X = 0x0, + CHANNEL_Y = 0x1, + CHANNEL_Z = 0x2, + CHANNEL_PITCH = 0x3, + CHANNEL_YAW = 0x4, + CHANNEL_ROLL = 0x5, + CHANNEL_MAXNUM = 0x6, +}; + +// IDA Local Type ordinal 2178; PDB kind: enum. +enum idMotionController::flag_t : __int32 +{ + FLAG_PARTIAL_LAST_FRAME_EXTRAPOLATE = 0x1, +}; + +// IDA Local Type ordinal 21807; PDB kind: struct. +struct idMotionController::tableArray_t +{ + const idDeclTable *tables[6]; +}; + +// IDA Local Type ordinal 21808; PDB kind: struct. +struct idMotionController::channelData_t +{ + float prev; + float cur; + float delta; + float duration; + float scale; + int flags; +}; + +// IDA Local Type ordinal 21809; PDB kind: class. +class idMotionController +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21810. + virtual ~idMotionController(); + virtual void Init(); + virtual void Update(); + + idMotionController::tableArray_t motionTables; + idMotionController::channelData_t channelData[6]; + bool isPlaying; + int startTime; + int prevTime; + int duration; + idVec3 prevPos; + idAngles prevAngles; + idVec3 curPos; + idAngles curAngles; + idVec3 deltaPos; + idAngles deltaAngles; +}; + +// IDA Local Type ordinal 24731; PDB kind: struct. +struct my_post_controller +{ + jpeg_d_post_controller pub; + jvirt_sarray_control *whole_image; + unsigned __int8 **buffer; + unsigned int strip_height; + unsigned int starting_row; + unsigned int next_row; +}; diff --git a/source/tungsten/game/animation/ponytail.h b/source/tungsten/game/animation/ponytail.h new file mode 100644 index 0000000..421ef4b --- /dev/null +++ b/source/tungsten/game/animation/ponytail.h @@ -0,0 +1,20 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\animation\ponytail.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16489; PDB kind: class. +class __declspec(align(4)) idPonytail +{ +public: + const idDeclPonytail *declPonytail; + idEntityPtr parent; + idAnimStack animStack; + idHandle attachmentHandle; + idAnimator_Ponytail ponytailAnimator; + bool usingParentAnimStack; + bool initialized; +}; diff --git a/source/tungsten/game/bot/behaviortree/behaviors/bot_bt_combat.h b/source/tungsten/game/bot/behaviortree/behaviors/bot_bt_combat.h new file mode 100644 index 0000000..8e4145d --- /dev/null +++ b/source/tungsten/game/bot/behaviortree/behaviors/bot_bt_combat.h @@ -0,0 +1,40 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\bot\behaviortree\behaviors\bot_bt_combat.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 20378; PDB kind: class. +class idBotBehaviorCombat : public idBehaviorSelectorLooping +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20379. + virtual idTypeInfo *GetType(); + virtual ~idBotBehaviorCombat(); + 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 Init(idBot *, const int); + virtual behaviorPriority_t GetPriority(idBot *, const int); + virtual void Enter(idBot *, const int); + virtual void Exit(idBot *, const int); + virtual behaviorStatus_t Think(idBot *, const int); + virtual void ProcessEvent(idBot *, const int, const idBehaviorStateEvent *); + virtual void DebugRenderGui(const idBot *, idGuiListBox *, int); + virtual void GetDebugString(idStr *); + virtual idBehaviorState *CheckForDuplicateState(const idBehaviorState **); + virtual idBehaviorState *FindState(const idTypeInfo *); + virtual int GetStateIndex(const idBehaviorState *); + virtual bool IsInterruptable(); + virtual void InternalInit(idBot *, const int); + virtual void InternalEnter(idBot *, const int); + virtual void InternalExit(idBot *, const int); + virtual behaviorStatus_t InternalThink(idBot *, const int); + virtual void InternalProcessEvent(idBot *, const int, const idBehaviorStateEvent *); + virtual behaviorPriority_t InternalGetPriority(idBot *, const int); + virtual int GetStateIndex_2(const idBehaviorState *); + +}; diff --git a/source/tungsten/game/bot/behaviortree/behaviors/bot_bt_escort.h b/source/tungsten/game/bot/behaviortree/behaviors/bot_bt_escort.h new file mode 100644 index 0000000..d394743 --- /dev/null +++ b/source/tungsten/game/bot/behaviortree/behaviors/bot_bt_escort.h @@ -0,0 +1,51 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\bot\behaviortree\behaviors\bot_bt_escort.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 20421; PDB kind: class. +class idBotBehaviorEscort : public idBehaviorAction +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20422. + virtual idTypeInfo *GetType(); + virtual ~idBotBehaviorEscort(); + 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 Init(idBot *, const int); + virtual behaviorPriority_t GetPriority(idBot *, const int); + virtual void Enter(idBot *, const int); + virtual void Exit(idBot *, const int); + virtual behaviorStatus_t Think(idBot *, const int); + virtual void ProcessEvent(idBot *, const int, const idBehaviorStateEvent *); + virtual void DebugRenderGui(const idBot *, idGuiListBox *, int); + virtual void GetDebugString(idStr *); + virtual idBehaviorState *CheckForDuplicateState(const idBehaviorState **); + virtual idBehaviorState *FindState(const idTypeInfo *); + virtual int GetStateIndex(const idBehaviorState *); + virtual bool IsInterruptable(); + virtual void InternalInit(idBot *, const int); + virtual void InternalEnter(idBot *, const int); + virtual void InternalExit(idBot *, const int); + virtual behaviorStatus_t InternalThink(idBot *, const int); + virtual void InternalProcessEvent(idBot *, const int, const idBehaviorStateEvent *); + virtual behaviorPriority_t InternalGetPriority(idBot *, const int); + virtual void MoveGoal_Started_CallBack(idBot *, const int); + virtual void MoveGoal_Reached_CallBack(idBot *, const int); + virtual void MoveGoal_Errored_CallBack(idBot *, const int, const botMoveStatus_t); + virtual void MoveSubGoal_Started_CallBack(idBot *, const int); + virtual void MoveSubGoal_Reached_CallBack(idBot *, const int); + virtual void MoveSubGoal_Errored_CallBack(idBot *, const int, const botMoveStatus_t); + + bool reachedMate; + bool avoidingMate; + int timeReachedMate; + int timeInMatesCrossHair; + int timeMateHasBeenCrouched; + float currentMoveTolerance; +}; diff --git a/source/tungsten/game/bot/behaviortree/behaviortree.h b/source/tungsten/game/bot/behaviortree/behaviortree.h new file mode 100644 index 0000000..4d16c05 --- /dev/null +++ b/source/tungsten/game/bot/behaviortree/behaviortree.h @@ -0,0 +1,161 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\bot\behaviortree\behaviortree.h +// Recovered logical types: 5 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14949; PDB kind: class. +class idBehaviorTree : public idBehaviorParallel +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14950. + virtual idTypeInfo *GetType(); + virtual ~idBehaviorTree(); + 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 Init(idBot *, const int); + virtual behaviorPriority_t GetPriority(idBot *, const int); + virtual void Enter(idBot *, const int); + virtual void Exit(idBot *, const int); + virtual behaviorStatus_t Think(idBot *, const int); + virtual void ProcessEvent(idBot *, const int, const idBehaviorStateEvent *); + virtual void DebugRenderGui(const idBot *, idGuiListBox *, int); + virtual void GetDebugString(idStr *); + virtual idBehaviorState *CheckForDuplicateState(const idBehaviorState **); + virtual idBehaviorState *FindState(const idTypeInfo *); + virtual int GetStateIndex(const idBehaviorState *); + virtual bool IsInterruptable(); + virtual void InternalInit(idBot *, const int); + virtual void InternalEnter(idBot *, const int); + virtual void InternalExit(idBot *, const int); + virtual behaviorStatus_t InternalThink(idBot *, const int); + virtual void InternalProcessEvent(idBot *, const int, const idBehaviorStateEvent *); + virtual behaviorPriority_t InternalGetPriority(idBot *, const int); + virtual int GetStateIndex_2(const idBehaviorState *); + + int numFramesWithNoActiveChildren; +}; + +// IDA Local Type ordinal 14951; PDB kind: class. +class idBotBehaviorTree : public idBehaviorTree +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14952. + virtual idTypeInfo *GetType(); + virtual ~idBotBehaviorTree(); + 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 Init(idBot *, const int); + virtual behaviorPriority_t GetPriority(idBot *, const int); + virtual void Enter(idBot *, const int); + virtual void Exit(idBot *, const int); + virtual behaviorStatus_t Think(idBot *, const int); + virtual void ProcessEvent(idBot *, const int, const idBehaviorStateEvent *); + virtual void DebugRenderGui(const idBot *, idGuiListBox *, int); + virtual void GetDebugString(idStr *); + virtual idBehaviorState *CheckForDuplicateState(const idBehaviorState **); + virtual idBehaviorState *FindState(const idTypeInfo *); + virtual int GetStateIndex(const idBehaviorState *); + virtual bool IsInterruptable(); + virtual void InternalInit(idBot *, const int); + virtual void InternalEnter(idBot *, const int); + virtual void InternalExit(idBot *, const int); + virtual behaviorStatus_t InternalThink(idBot *, const int); + virtual void InternalProcessEvent(idBot *, const int, const idBehaviorStateEvent *); + virtual behaviorPriority_t InternalGetPriority(idBot *, const int); + virtual int GetStateIndex_2(const idBehaviorState *); + +}; + +// IDA Local Type ordinal 20359; PDB kind: class. +class idBotBehaviorTreeDebugGui : public idGuiPage +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20360. + virtual ~idBotBehaviorTreeDebugGui(); + virtual bool IsEnabled(); + virtual void SetIsActive(const bool); + virtual void Update(); + virtual void SetupChildRowLink(const int, const idStr *); + virtual void InternalRender(idDeviceContext *, const float, const float); + virtual void InternalRender_2(idEntity *, idDeviceContext *); + virtual bool InternalHandleEvent(const sysEvent_t *); + +}; + +// IDA Local Type ordinal 20384; PDB kind: class. +class idBotBehaviorReact : public idBehaviorSelectorLooping +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20385. + virtual idTypeInfo *GetType(); + virtual ~idBotBehaviorReact(); + 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 Init(idBot *, const int); + virtual behaviorPriority_t GetPriority(idBot *, const int); + virtual void Enter(idBot *, const int); + virtual void Exit(idBot *, const int); + virtual behaviorStatus_t Think(idBot *, const int); + virtual void ProcessEvent(idBot *, const int, const idBehaviorStateEvent *); + virtual void DebugRenderGui(const idBot *, idGuiListBox *, int); + virtual void GetDebugString(idStr *); + virtual idBehaviorState *CheckForDuplicateState(const idBehaviorState **); + virtual idBehaviorState *FindState(const idTypeInfo *); + virtual int GetStateIndex(const idBehaviorState *); + virtual bool IsInterruptable(); + virtual void InternalInit(idBot *, const int); + virtual void InternalEnter(idBot *, const int); + virtual void InternalExit(idBot *, const int); + virtual behaviorStatus_t InternalThink(idBot *, const int); + virtual void InternalProcessEvent(idBot *, const int, const idBehaviorStateEvent *); + virtual behaviorPriority_t InternalGetPriority(idBot *, const int); + virtual int GetStateIndex_2(const idBehaviorState *); + +}; + +// IDA Local Type ordinal 22046; PDB kind: class. +class idBehaviorTemp : public idBehaviorAction +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22047. + virtual idTypeInfo *GetType(); + virtual ~idBehaviorTemp(); + 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 Init(idBot *, const int); + virtual behaviorPriority_t GetPriority(idBot *, const int); + virtual void Enter(idBot *, const int); + virtual void Exit(idBot *, const int); + virtual behaviorStatus_t Think(idBot *, const int); + virtual void ProcessEvent(idBot *, const int, const idBehaviorStateEvent *); + virtual void DebugRenderGui(const idBot *, idGuiListBox *, int); + virtual void GetDebugString(idStr *); + virtual idBehaviorState *CheckForDuplicateState(const idBehaviorState **); + virtual idBehaviorState *FindState(const idTypeInfo *); + virtual int GetStateIndex(const idBehaviorState *); + virtual bool IsInterruptable(); + virtual void InternalInit(idBot *, const int); + virtual void InternalEnter(idBot *, const int); + virtual void InternalExit(idBot *, const int); + virtual behaviorStatus_t InternalThink(idBot *, const int); + virtual void InternalProcessEvent(idBot *, const int, const idBehaviorStateEvent *); + virtual behaviorPriority_t InternalGetPriority(idBot *, const int); + virtual void MoveGoal_Started_CallBack(idBot *, const int); + virtual void MoveGoal_Reached_CallBack(idBot *, const int); + virtual void MoveGoal_Errored_CallBack(idBot *, const int, const botMoveStatus_t); + virtual void MoveSubGoal_Started_CallBack(idBot *, const int); + virtual void MoveSubGoal_Reached_CallBack(idBot *, const int); + virtual void MoveSubGoal_Errored_CallBack(idBot *, const int, const botMoveStatus_t); + +}; diff --git a/source/tungsten/game/bot/behaviortree/bot_bt_highlevel.h b/source/tungsten/game/bot/behaviortree/bot_bt_highlevel.h new file mode 100644 index 0000000..c21b958 --- /dev/null +++ b/source/tungsten/game/bot/behaviortree/bot_bt_highlevel.h @@ -0,0 +1,40 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\bot\behaviortree\bot_bt_highlevel.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 20368; PDB kind: class. +class idBotBehaviorHighLevel : public idBehaviorSelectorLooping +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20369. + virtual idTypeInfo *GetType(); + virtual ~idBotBehaviorHighLevel(); + 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 Init(idBot *, const int); + virtual behaviorPriority_t GetPriority(idBot *, const int); + virtual void Enter(idBot *, const int); + virtual void Exit(idBot *, const int); + virtual behaviorStatus_t Think(idBot *, const int); + virtual void ProcessEvent(idBot *, const int, const idBehaviorStateEvent *); + virtual void DebugRenderGui(const idBot *, idGuiListBox *, int); + virtual void GetDebugString(idStr *); + virtual idBehaviorState *CheckForDuplicateState(const idBehaviorState **); + virtual idBehaviorState *FindState(const idTypeInfo *); + virtual int GetStateIndex(const idBehaviorState *); + virtual bool IsInterruptable(); + virtual void InternalInit(idBot *, const int); + virtual void InternalEnter(idBot *, const int); + virtual void InternalExit(idBot *, const int); + virtual behaviorStatus_t InternalThink(idBot *, const int); + virtual void InternalProcessEvent(idBot *, const int, const idBehaviorStateEvent *); + virtual behaviorPriority_t InternalGetPriority(idBot *, const int); + virtual int GetStateIndex_2(const idBehaviorState *); + +}; diff --git a/source/tungsten/game/bot/bot.h b/source/tungsten/game/bot/bot.h new file mode 100644 index 0000000..f7ebdd1 --- /dev/null +++ b/source/tungsten/game/bot/bot.h @@ -0,0 +1,27 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\bot\bot.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14926; PDB kind: class. +class idBot +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14927. + virtual ~idBot(); + + bool isControllingAFKPlayer; + const char *debugName; + idBotBehaviorTree *behaviorTree; + idBotAimState *aimState; + idBotWorldState *worldState; + idBotMoveState *moveState; + idBotWeaponState *weaponState; + const idDeclBot *behaviorDef; + idPlayer *owner; + idBotGoal goalTask; + usercmd_t usercmd; +}; diff --git a/source/tungsten/game/bot/bot_aimstate.h b/source/tungsten/game/bot/bot_aimstate.h new file mode 100644 index 0000000..7feefa9 --- /dev/null +++ b/source/tungsten/game/bot/bot_aimstate.h @@ -0,0 +1,39 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\bot\bot_aimstate.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1280; PDB kind: enum. +enum botAimType_t : __int32 +{ + AIM_TYPE_NONE = 0x0, + AIM_TYPE_ENTITY = 0x1, + AIM_TYPE_POSITION = 0x2, + AIM_TYPE_DIRECTION = 0x3, +}; + +// IDA Local Type ordinal 14953; PDB kind: struct. +struct idBotAimState::BotAimRequest_t +{ + botAimPriority_t aimPriority; + botAimType_t aimType; + aimPoint_t aimPoint; + int aimStartTimeInMS; + int aimValidTimeInMS; + idVec3 aimVector; + idStr aimUserName; + idEntityPtr aimEntity; +}; + +// IDA Local Type ordinal 14954; PDB kind: class. +class idBotAimState +{ +public: + idVec3 currentAimPoint; + idBot *owner; + idAngles desiredViewAngles; + idBotAimState::BotAimRequest_t aimRequests[4]; +}; diff --git a/source/tungsten/game/bot/bot_goals.h b/source/tungsten/game/bot/bot_goals.h new file mode 100644 index 0000000..3e502a2 --- /dev/null +++ b/source/tungsten/game/bot/bot_goals.h @@ -0,0 +1,27 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\bot\bot_goals.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14985; PDB kind: struct. +struct idBotGoal::goalCombatSettings_t +{ + float combatMaxRange; +}; + +// IDA Local Type ordinal 14986; PDB kind: class. +class idBotGoal +{ +public: + bool goalEnemyLocked; + idBotGoal::goalCombatSettings_t goalCombatSettings; + int goalEnemyTargetRecordIndex; + idBitFlag32 goalType; + idEntityPtr goalEnemy; + idEntityPtr goalEntity; + float goalRadius; + idVec3 goalPosition; +}; diff --git a/source/tungsten/game/bot/bot_movestate.h b/source/tungsten/game/bot/bot_movestate.h new file mode 100644 index 0000000..2bdb273 --- /dev/null +++ b/source/tungsten/game/bot/bot_movestate.h @@ -0,0 +1,82 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\bot\bot_movestate.h +// Recovered logical types: 6 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2161; PDB kind: enum. +enum botMoveStance_t : __int32 +{ + MOVE_STANCE_NONE = 0x0, + MOVE_STANCE_CROUCH = 0x1, + MOVE_STANCE_WALK = 0x2, + MOVE_STANCE_RUN = 0x3, + MOVE_STANCE_SPRINT = 0x4, +}; + +// IDA Local Type ordinal 2164; PDB kind: enum. +enum botMoveGoalType_t : __int32 +{ + MOVE_GOAL_TYPE_NONE = 0x0, + MOVE_GOAL_TYPE_ENTITY = 0x1, + MOVE_GOAL_TYPE_POSITION = 0x2, +}; + +// IDA Local Type ordinal 2167; PDB kind: enum. +enum idBotMoveState::botMoveStates_t : __int32 +{ + MOVE_STATE_NONE = 0x0, + MOVE_STATE_NORMAL = 0x1, + MOVE_STATE_MAX = 0x2, +}; + +// IDA Local Type ordinal 2169; PDB kind: enum. +enum botMoveStatus_t : __int32 +{ + MOVE_STATUS_NONE = 0x0, + MOVE_STATUS_DONE = 0x1, + MOVE_STATUS_CANCELLED = 0x2, + MOVE_STATUS_PENDING = 0x3, + MOVE_STATUS_MOVING = 0x4, + MOVE_STATUS_START_ERROR_CODES = 0x5, + MOVE_STATUS_GOAL_UNREACHABLE = 0x6, + MOVE_STATUS_GOAL_UNREACHABLE_OUTSIDE_TOLERANCE = 0x7, + MOVE_STATUS_INVALID_GOAL = 0x8, + MOVE_STATUS_OWNER_OFF_MESH = 0x9, + MOVE_STATUS_GOAL_OFF_MESH = 0xA, + MOVE_STATUS_NO_CLEAR_PATH = 0xB, + MOVE_STATUS_INVALID_HANDLE = 0xC, +}; + +// IDA Local Type ordinal 14962; PDB kind: class. +class idBotMoveState +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14963. + virtual ~idBotMoveState(); + + idBot *owner; + idBotMoveCommand currentMoveCmd; + idBitFlag32 currentMoveFlags; + botMoveStance_t idleStance; + botMoveStance_t currentMoveStance; + botMoveStatus_t currentMoveStatus; + idBotMoveState::botMoveStates_t currentMoveState; + idBotMoveState::botPathInfo_t pathInfo; +}; + +// IDA Local Type ordinal 14979; PDB kind: struct. +struct idBotMoveState::botPathInfo_t +{ + bool hasPath; + bool hasClearPath; + bool nextMovePointIsGoal; + bool radarValid; + idVec3 nextMovePoint; + const idAAS2 *aas; + idAAS2Path path; + obstaclePath_t obstacleAvoidanceInfo; + idObstacleAvoidance obstacleAvoidance; +}; diff --git a/source/tungsten/game/bot/bot_utils.h b/source/tungsten/game/bot/bot_utils.h new file mode 100644 index 0000000..ba9751c --- /dev/null +++ b/source/tungsten/game/bot/bot_utils.h @@ -0,0 +1,13 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\bot\bot_utils.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 20363; PDB kind: class. +class idBotUtils +{ +public: +}; diff --git a/source/tungsten/game/bot/bot_weaponstate.h b/source/tungsten/game/bot/bot_weaponstate.h new file mode 100644 index 0000000..e54261b --- /dev/null +++ b/source/tungsten/game/bot/bot_weaponstate.h @@ -0,0 +1,48 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\bot\bot_weaponstate.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1262; PDB kind: enum. +enum botWeaponSlots_t : __int32 +{ + WEAPON_SLOT_MELEE = 0x0, + WEAPON_SLOT_PRIMARY = 0x1, + WEAPON_SLOT_SECONDARY = 0x2, + WEAPON_SLOT_EXPLOSIVE = 0x3, + WEAPON_SLOT_MAX = 0x4, +}; + +// IDA Local Type ordinal 1292; PDB kind: enum. +enum botWeaponCategory_t : __int32 +{ + WEAPON_CATEGORY_MELEE = 0x0, + WEAPON_CATEGORY_SMG = 0x1, + WEAPON_CATEGORY_SHOTGUN = 0x2, + WEAPON_CATEGORY_SNIPER = 0x3, + WEAPON_CATEGORY_THROWN = 0x4, + WEAPON_CATEGORY_MAX = 0x5, +}; + +// IDA Local Type ordinal 14980; PDB kind: struct. +struct idBotWeaponState::BotWeaponRequest_t +{ + botWeaponPriority_t weaponPriority; + botWeaponSlots_t weaponSlot; + botWeaponFireMode_t weaponFireMode; + struct idBotWeapon *weaponHandler; + idStr weaponUserName; +}; + +// IDA Local Type ordinal 14982; PDB kind: class. +class idBotWeaponState +{ +public: + idBot *owner; + idBotWeaponState::BotWeaponRequest_t weaponRequests[4]; + idList weapons; + botWeaponCategory_t currentWeaponCategory; +}; diff --git a/source/tungsten/game/bot/bot_worldstate.h b/source/tungsten/game/bot/bot_worldstate.h new file mode 100644 index 0000000..0a8a860 --- /dev/null +++ b/source/tungsten/game/bot/bot_worldstate.h @@ -0,0 +1,22 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\bot\bot_worldstate.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14961; PDB kind: class. +class idBotWorldState +{ +public: + int enemyCheckDebounce; + int lastEnemyUpdateTime; + int lastAttackerTime; + int lastUpdatedEntityListHandle; + float fov; + idBotTargetFilter *targetFilter; + idBot *owner; + idEntityPtr lastAttacker; + idList targetRecords; +}; diff --git a/source/tungsten/game/bot/global/bot_debug.h b/source/tungsten/game/bot/global/bot_debug.h new file mode 100644 index 0000000..a658c42 --- /dev/null +++ b/source/tungsten/game/bot/global/bot_debug.h @@ -0,0 +1,16 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\bot\global\bot_debug.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1294; PDB kind: enum. +enum botDebugGuiType_t : __int32 +{ + BOT_DEBUG_GUI_TYPE_HUD = 0x0, + BOT_DEBUG_GUI_TYPE_WORLD = 0x1, + BOT_DEBUG_GUI_TYPE_BEHAVIOR = 0x2, + BOT_DEBUG_GUI_TYPE_MAX = 0x3, +}; diff --git a/source/tungsten/game/bot/global/bot_entitymanager.h b/source/tungsten/game/bot/global/bot_entitymanager.h new file mode 100644 index 0000000..a76667c --- /dev/null +++ b/source/tungsten/game/bot/global/bot_entitymanager.h @@ -0,0 +1,47 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\bot\global\bot_entitymanager.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1267; PDB kind: enum. +enum botEntityType_t : __int32 +{ + BOT_ENTITY_TYPE_NULL = 0x0, + BOT_ENTITY_TYPE_PLAYER = 0x1, + BOT_ENTITY_TYPE_PROJECTILE = 0x2, + BOT_ENTITY_TYPE_PICKUP = 0x4, + BOT_ENTITY_TYPE_DISPENSER = 0x8, + BOT_ENTITY_TYPE_PROP = 0x10, + BOT_ENTITY_TYPE_AI = 0x20, + BOT_ENTITY_TYPE_TURRET = 0x40, + BOT_ENTITY_TYPE_MAX = 0x41, +}; + +// IDA Local Type ordinal 16522; PDB kind: class. +class idBotEntityManager +{ +public: + int currentEntityListHandle; + idStaticList entityList; +}; + +// IDA Local Type ordinal 17994; PDB kind: class. +class idBotEntityFilter +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17995. + virtual ~idBotEntityFilter(); + virtual void CheckEntity(const int, const entInfo_t *); + virtual void PreCheckEntities(const int); + virtual void Reset(); + virtual void Init(const int, const int, const int); + + int bestEntityIndex; + int desiredEntityType; + int desiredEntityFlags; + int ignoreEntityFlags; + idEntityPtr bestEntity; +}; diff --git a/source/tungsten/game/bot/global/bot_goalmanager.h b/source/tungsten/game/bot/global/bot_goalmanager.h new file mode 100644 index 0000000..cfcb0d4 --- /dev/null +++ b/source/tungsten/game/bot/global/bot_goalmanager.h @@ -0,0 +1,97 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\bot\global\bot_goalmanager.h +// Recovered logical types: 6 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16523; PDB kind: class. +class idBotGoalManager : public idEventReceiver +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16524. + virtual idTypeInfo *GetType(); + virtual ~idBotGoalManager(); + 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 Think(const int); + +}; + +// IDA Local Type ordinal 20347; PDB kind: class. +class idBotGoalManager_DM : public idBotGoalManager +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20348. + virtual idTypeInfo *GetType(); + virtual ~idBotGoalManager_DM(); + 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 Think(const int); + +}; + +// IDA Local Type ordinal 20349; PDB kind: class. +class idBotGoalManager_TDM : public idBotGoalManager +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20350. + virtual idTypeInfo *GetType(); + virtual ~idBotGoalManager_TDM(); + 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 Think(const int); + +}; + +// IDA Local Type ordinal 20351; PDB kind: class. +class idBotGoalManager_CTF : public idBotGoalManager +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20352. + virtual idTypeInfo *GetType(); + virtual ~idBotGoalManager_CTF(); + 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 Think(const int); + +}; + +// IDA Local Type ordinal 20353; PDB kind: class. +class idBotGoalManager_HORDE : public idBotGoalManager +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20354. + virtual idTypeInfo *GetType(); + virtual ~idBotGoalManager_HORDE(); + 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 Think(const int); + +}; + +// IDA Local Type ordinal 20355; PDB kind: class. +class idBotGoalManager_DOM : public idBotGoalManager +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20356. + virtual idTypeInfo *GetType(); + virtual ~idBotGoalManager_DOM(); + 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 Think(const int); + +}; diff --git a/source/tungsten/game/bot/global/bot_tracemanager.h b/source/tungsten/game/bot/global/bot_tracemanager.h new file mode 100644 index 0000000..5a2a92d --- /dev/null +++ b/source/tungsten/game/bot/global/bot_tracemanager.h @@ -0,0 +1,42 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\bot\global\bot_tracemanager.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16515; PDB kind: struct. +struct idBotTraceManager::perceptionData_t +{ + int lastSeenTime; + int lastUpdateTime; +}; + +// IDA Local Type ordinal 16516; PDB kind: struct. +struct idBotTraceManager::entityData_t +{ + int lastUpdateTime; + idEntityPtr ent; +}; + +// IDA Local Type ordinal 16517; PDB kind: struct. +struct idBotTraceManager::traceWorkData_t +{ + int srcIndex; + int targetIndex; + idClipQuery clipQuery; +}; + +// IDA Local Type ordinal 16518; PDB kind: class. +class idBotTraceManager +{ +public: + int curEntDataIndex; + int curTraceIndex; + int numActiveTraces; + idBotTraceManager::perceptionData_t perceptionTable[6][32]; + idBotTraceManager::entityData_t entityData[32]; + idBotTraceManager::traceWorkData_t traceWorkData[8]; + idStaticList playerUpdateIndexes; +}; diff --git a/source/tungsten/game/clientgame/clientgame_local.h b/source/tungsten/game/clientgame/clientgame_local.h new file mode 100644 index 0000000..d6f4816 --- /dev/null +++ b/source/tungsten/game/clientgame/clientgame_local.h @@ -0,0 +1,75 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\clientgame\clientgame_local.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15600; PDB kind: class. +class idClientGame +{ +public: + idRandom2 random; + idRenderWorld *renderWorld; + idSoundWorld *soundWorld; + int firstRenderFrame; + int lastRenderFrame; + idStr mapName; + idVec3 gravity; + bool vehicleRaceMap; + __declspec(align(8)) idGameLibEffects gameLibEffects; + idTraceModelCache traceModelCache; + idTraceModelRecycler traceModelRecycler; + idClip clip; + idPush push; + idPVS pvs; + idEventSystem eventSystem; + idList objectList; + idHashIndex objectHash; + idList aimAssistTargets; + int entityToPresentableLUT[8192]; + idList presentableThinks; + int previousServerTime; + int serverTime; + idGameTimeManager gameTimeManager; + int playerTime; + int ssEndTime; + int ssStartTime; + idList presentables; + idList activePresentables; + idList pusherPresentables; + idList vehiclePresentables; + idList serializedPresentables; + idArray firstFreePresentable; + bool serialized; + unsigned int presentableSpawnId; + idArray lobbyUserIDs; + idArray replicatedSounds; + idList startSoundOverRun; + unsigned __int8 overrideSoundPeerMask; + idArray inputToPlayerIndexRouting; + idArray localGuiModels; + idRenderModelGui *guiModel; + idList activeViewCallbacks; + idInfluenceTrailManager influenceTrailManager; + idRageMetrics *rageMetrics; + challengeGameMode_t serializedChallengeMode; + idDeferredFireManager deferredFireManager; + const idDeclVoiceOver *impressive; + const idDeclVoiceOver *doubleKill; + const idDeclVoiceOver *tripleKill; + const idDeclVoiceOver *quadKill; + const idDeclVoiceOver *slaughter; + const idDeclVoiceOver *revenge; + const idDeclVoiceOver *airMail; + const idDeclVoiceOver *pull; + const idDeclVoiceOver *afterLife; + const idDeclVoiceOver *maxChain; + const idDeclVoiceOver *chainBreaker; + const idDeclVoiceOver *closeCall; + const idDeclVoiceOver *airRally; + const idDeclVoiceOver *denial; + unsigned __int8 reliableMsgBuffer[8000]; + idList queuedReliableMsgs; +}; diff --git a/source/tungsten/game/clientgame/clientgame_reliable.h b/source/tungsten/game/clientgame/clientgame_reliable.h new file mode 100644 index 0000000..931b640 --- /dev/null +++ b/source/tungsten/game/clientgame/clientgame_reliable.h @@ -0,0 +1,75 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\clientgame\clientgame_reliable.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1064; PDB kind: enum. +enum gameReliable_t : __int32 +{ + RELIABLE_SELECT_QUICK_WEAPON = 0x0, + RELIABLE_SELECT_QUICK_AMMO = 0x1, + RELIABLE_CLEAR_PICKUP = 0x2, + RELIABLE_SCOPE_BLUR = 0x3, + RELIABLE_CLEAR_ROCKET_TARGET = 0x4, + RELIABLE_HIDE_MODAL_GUI = 0x5, + RELIABLE_SELECT_PLAYER_LOADOUT = 0x6, + RELIABLE_FORCE_SELECT_PLAYER_LOADOUT = 0x7, + RELIABLE_PLAYER_SUICIDE = 0x8, + RELIABLE_PLAYER_CHANGE_TEAMS = 0x9, + RELIABLE_LOBBY_VOTE_TO_SKIP = 0xA, + RELIABLE_ACCEPT_RESPAWN_FROM_SPECTATE = 0xB, + RELIABLE_LOOT_AI = 0xC, + RELIABLE_RESTART_CHALLENGE = 0xD, + RELIABLE_SET_AFK = 0xE, + RELIABLE_SELECT_WEAPON_SLOT = 0xF, + RELIABLE_SCROLL_WEAPONS = 0x10, + RELIABLE_SCROLL_QUICKUSE = 0x11, + RELIABLE_SELECT_DISABLE_DPAD_WEAPON_SELECT = 0x12, + RELIABLE_SHOW_OBJECTIVE_RESULTS_GUI = 0x13, + RELIABLE_SHOW_LOADOUT_SELECT_GUI = 0x14, + RELIABLE_SEND_SERVER_TEXT = 0x15, + RELIABLE_ONLINE_GAME_EVENT = 0x16, + RELIABLE_BROADCAST_KILL_MESSAGE = 0x17, + RELIABLE_LOBBY_UPDATE = 0x18, + RELIABLE_BROADCAST_TEXT_CHAT = 0x19, + RELIABLE_UPDATE_CASH = 0x1A, + RELIABLE_RESTART_CHALLENGE_RESPONSE = 0x1B, + RELIABLE_DUCK_SOUND = 0x1C, + RELIABLE_PLAY_VO = 0x1D, + RELIABLE_PLAYER_METRICS = 0x1E, + RELIABLE_XP_GAIN = 0x1F, + RELIABLE_PLAYER_VEHICLE_PICKUP = 0x20, + RELIABLE_RALLY_SCORE = 0x21, + RELIABLE_METEOR_SCORE = 0x22, + RELIABLE_STATUS_ALERT = 0x23, + RELIABLE_SHOW_TUTORIAL_GUI = 0x24, + RELIABLE_TOGGLE_SHOW_LEGEND_TITLE = 0x25, + RELIABLE_CLIENTGAMEMSG_HANDS_EQUIP = 0x26, + RELIABLE_CLIENTGAMEMSG_HANDS_AMMO_CHANGE = 0x27, + RELIABLE_CLIENTGAMEMSG_HANDS_THROW = 0x28, + RELIABLE_CLIENTGAMEMSG_HITSCANHIT = 0x29, + RELIABLE_CLIENTGAMEMSG_QUICKUSE = 0x2A, + RELIABLE_CLIENTGAMEMSG_USEFOCUS = 0x2B, + RELIABLE_CLIENTGAMEMSG_HANDSACTION = 0x2C, + RELIABLE_CLIENTGAMEMSG_MELEEHIT = 0x2D, + RELIABLE_CLIENTGAMEMSG_DROPITEM = 0x2E, + RELIABLE_CLIENTGAMEMSG_VEHICLE_CROSSHAIR_CHANGE_TARGET = 0x2F, + RELIABLE_CLIENTGAMEMSG_VEHICLE_WEAPON_CHANGE = 0x30, + RELIABLE_CLIENTGAMEMSG_UPDATE_STAT = 0x31, + RELIABLE_CLIENTGAMEMSG_ACTORMODIFIER = 0x32, + RELIABLE_PUSH_NOTICE_TO_SERVER = 0x33, + RELIABLE_PUSH_NOTICE_TO_CLIENT = 0x34, + RELIABLE_PUSH_ACK_TO_SERVER = 0x35, + RELIABLE_PUSH_ACK_TO_CLIENT = 0x36, + RELIABLE_EMP_NOTICE_TO_SERVER = 0x37, + RELIABLE_EMP_NOTICE_TO_CLIENT = 0x38, + RELIABLE_SHIELD_DOWN = 0x39, + RELIABLE_POSTGAME_SCORERECAP = 0x3A, + RELIABLE_LOCK_SCRAMBLE = 0x3B, + RELIABLE_SMASH_ACTIVE = 0x3C, + RELIABLE_BOOST_EXTENDER = 0x3D, + RELIABLE_GAME_OVER = 0x3E, +}; diff --git a/source/tungsten/game/clientgame/gamelayermanager.h b/source/tungsten/game/clientgame/gamelayermanager.h new file mode 100644 index 0000000..a773e33 --- /dev/null +++ b/source/tungsten/game/clientgame/gamelayermanager.h @@ -0,0 +1,25 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\clientgame\gamelayermanager.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14465; PDB kind: class. +class __declspec(align(4)) idGameLayerManager +{ +public: + idList entityRetainedStates; + idList retainedItemMemoryForMap; + idPlayer *owner; + idList playerLayers; + idList layers_DeactiveToActive; + idList layers_ActiveToDeactivate; + idList layers_ToRemove; + idList layers_ToRemoveFromGameLocalLists; + idList layers_ToMarkActiveNextMapLoad; + idList layers_ToMarkDeactiveNextMapLoad; + bool inDebug; + bool inInitState; +}; diff --git a/source/tungsten/game/clientgame/playerguis/playerguis_render.h b/source/tungsten/game/clientgame/playerguis/playerguis_render.h new file mode 100644 index 0000000..682a632 --- /dev/null +++ b/source/tungsten/game/clientgame/playerguis/playerguis_render.h @@ -0,0 +1,82 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\clientgame\playerguis\playerguis_render.h +// Recovered logical types: 6 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1271; PDB kind: enum. +enum idPlayerGuis_Render::playerGuis_t : __int32 +{ + GUI_TEXT_CHAT = 0x0, + GUI_GAMEOVER = 0x1, + GUI_NUM_GUIS = 0x2, +}; + +// IDA Local Type ordinal 15324; PDB kind: struct. +struct idPlayerGuis_Render::playerGuisInfo_t::objectiveResults_t::playerResults_t +{ + int score; + int kills; + int multiKills; + int headshotKills; + int assists; + int defends; + int revives; +}; + +// IDA Local Type ordinal 15325; PDB kind: struct. +struct idPlayerGuis_Render::playerGuisInfo_t::objectiveResults_t +{ + bool show; + int earnedCash; + int killCount; + int killBonus; + int itemCount; + int itemBonus; + int collectNum; + int collectMax; + int time; + int parTime; + int bonusCash; + int totalCash; + idPlayerGuis_Render::playerGuisInfo_t::objectiveResults_t::playerResults_t playerObjectives[2]; + int totalTime; + int collectibles; + int collectiblesMax; + int collectibleBonusScore; + int finalScore; + int rating; +}; + +// IDA Local Type ordinal 15326; PDB kind: struct. +struct idPlayerGuis_Render::playerGuisInfo_t +{ + idPlayerGuis_Render::playerGuisInfo_t::objectiveResults_t objectiveResults; +}; + +// IDA Local Type ordinal 15327; PDB kind: class. +class idPlayerGuis_Render +{ +public: + idPlayerGuis_Render::playerGuisInfo_t playerGuiInfo; + idSWF *guis[2]; + int playerNum; + idStr textChatHistory; +}; + +// IDA Local Type ordinal 20329; PDB kind: class. +class idPlayerGuis_Render::Init::__l15::idSWFScriptFunction_SendChatText : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20330. + virtual ~idSWFScriptFunction_SendChatText(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayerGuis_Render *owner; +}; diff --git a/source/tungsten/game/clientgame/playerhud/playerhud_render.h b/source/tungsten/game/clientgame/playerhud/playerhud_render.h new file mode 100644 index 0000000..ab5fc1a --- /dev/null +++ b/source/tungsten/game/clientgame/playerhud/playerhud_render.h @@ -0,0 +1,22 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\clientgame\playerhud\playerhud_render.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15322; PDB kind: class. +class idPlayerHud_Render +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15323. + virtual ~idPlayerHud_Render(); + + idSWF *hud; + bool showScoreboard; + int playerNum; + int minigameResult; + int minigameStage; + float minigameRangeIndicator; +}; diff --git a/source/tungsten/game/clientgame/presentable/presentable.h b/source/tungsten/game/clientgame/presentable/presentable.h new file mode 100644 index 0000000..3ba3afd --- /dev/null +++ b/source/tungsten/game/clientgame/presentable/presentable.h @@ -0,0 +1,149 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\clientgame\presentable\presentable.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14198; PDB kind: class. +class idPresentable +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15507. + virtual ~idPresentable(); + virtual void Shutdown(); + virtual void ClientJobSync(); + virtual void ControlReleased(); + virtual inputSettings_t *GetInputSettings(inputSettings_t *result, idPresentablePlayer *); + virtual void Present(); + virtual void Serialize(idSerializer *); + virtual void PostSerializeRead(bool); + virtual void Interpolate(int, float); + virtual bool ShouldSerializeHidden(); + virtual bool ShouldInterpolate(); + virtual void ClientPredict(int, float); + virtual void ClientThink(int, float, bool); + virtual void ServerThink(int); + virtual bool Draw(idPresentablePlayer *); + virtual void SerializeFX(idSerializer *); + virtual void PostAlloc(); + virtual presentableType_t GetType(); + virtual idPresentableAnimatedEntity *GetAnimatedEntityInterface(); + virtual idPresentableVehicle *GetVehicleInterface(); + virtual idPresentableBreakable *GetBreakableInterface(); + virtual idPresentablePieceEmitter *GetPieceEmitterInterface(); + virtual idPresentableDamageable *GetDamageableInterface(); + virtual const idPresentableActor *GetActorInterface(); + virtual idPresentableActor *GetActorInterface_2(); + virtual const idPresentablePlayer *GetPlayerInterface(); + virtual idPresentablePlayer *GetPlayerInterface_2(); + virtual idPresentableProjectile *GetProjectileInterface(); + virtual idPresentableProjectile_Rocket *GetProjectileRocketInterface(); + virtual idPresentableProjectile_Homing *GetProjectileHomingInterface(); + virtual idPresentableProjectile_Grenade *GetProjectileGrenadeInterface(); + virtual idPresentableMultiplayerTrigger *GetMultiplayerTriggerInterface(); + virtual idPresentableWeaponStatic *GetWeaponStaticInterface(); + virtual idPresentableAI *GetAIInterface(); + virtual idPresentableProp *GetPropInterface(); + virtual idPresentableDoorAnimated *GetDoorAnimatedInterface(); + virtual idPresentableWeapon *GetWeaponInterface(); + virtual idOnlineVehicleDeathCameraPresentable *GetVehicleCameraInterface(); + virtual idPresentableReviveCamera *GetReviveCameraInterface(); + virtual idPresentableArmorPiece *GetArmorInterface(); + virtual idPresentablePusher *GetPusherInterface(); + virtual idPresentableTurret *GetTurretInterface(); + virtual idPresentableParticleEmitter *GetParticleEmitterInterface(); + virtual idPresentableCollisionTrigger *GetCollisionTriggerInterface(); + virtual idPresentableSpectatorCamera *GetSpectatorCameraInterface(); + virtual idPresentableAnimatedEntity *GetAnimatedPhysicsInterface(); + virtual void SetRenderModel(idRenderModel *, bool); + virtual bool ShouldSerializeRenderModelParms(); + virtual void StopSound_Predicted(const soundChannel_t); + virtual void Hide(bool); + virtual void Show(); + virtual void GetWorldTransform(idVec3 *, idMat3 *); + virtual idBounds *GetBounds(idBounds *result, int); + virtual idBounds *GetAbsBounds(idBounds *result, int); + virtual bool ShouldTriggerClientHitScanHit(); + virtual void ClientHitScanHit(int, int, int, const idDeclWeapon *, const idDeclProjectile *, int); + virtual void ClientHitScanHit_ClientFire(int, const idDeclWeapon *, int); + virtual void PredictHitScanHit(idPresentable *, float, const idVec3 *, const idVec3 *, const idDeclProjectile *, trace_t *); + virtual int GetPeerIndex(); + virtual bool IsTargetLockable(const idDeclAmmo *); + virtual float GetTotalCurHealth(); + virtual float GetTotalMaxHealth(); + virtual bool ShouldSaveForTimeTrial(); + virtual void StartFX(fxCondition_t, fxExtraCondition_t); + virtual void StopAllFX(); + virtual void UpdateFX(const idVec3 *, const idMat3 *, idFXManager *, const float, const float); + virtual void UpdateFX_2(const idVec3 *, const idMat3 *); + virtual void UpdateFX_3(const float, const float); + virtual void LocalStartFX(fxCondition_t); + virtual usableState_t GetOnlineUsableState(idPresentablePlayer *, int); + virtual void GetOnlineModifiedCrosshairInfo(const idPresentable *, const idFocusTrace *, const usableState_t, idCrosshairInfo *); + virtual idStrId *GetOnlineUsableText(idStrId *result); + virtual void BecomeReplicated(); + virtual int GetControllingPlayerIndex(); + virtual idPresentablePlayer *GetControllingPlayer(); + virtual bool IsLocallyControlled(); + virtual idWeapon *GetFiredWeapon(const idDeclWeapon *); + virtual void InitFXMgr(const idDeclFX *); + virtual void ShutdownFXMgr(); + virtual void UpdateClientCollision(const idVec3 *, const idMat3 *, const idVec3 *, const idMat3 *); + virtual bool ShouldLinkPresentableCollision(); + + __declspec(align(8)) idPresentablePtr groupMaster; + bool clipModelDynamic; + bool clipModelDynamicAxis; + int clipModelPhysID; + idVec3 origins[2]; + idMat3 axes[2]; + bool becameReplicated; + idVec3 origin; + idMat3 axis; + idRenderModel *model; + IFFN_t curIFF; + bool hidden; + int entityNumber; + idClipModelInfo clipModelInfo; + idVec3 clipModelSpawnPos; + idMat3 clipModelSpawnAxis; + idClipModel *clipModel; + int clipModelContents; + bool overridingClipContents; + idFXManager fxManager; + const idDeclFX *fxDecl; + idSoundEmitter *soundEmitter; + idPresentablePtr parent; + idIndex parentJoint; + idPresentablePtr controller; + int index; + int activeIndex; + int serializedIndex; + const char *debugName; + int serializeCount; + idEntity *entity; + unsigned int spawnId; + float radius; + unsigned int peerInRangeMask[2]; + int changedCount; + int stopSerializeCount; + bool clientThink; + gameTeam_t team; + int ownerPlayerIndex; + idHandle influenceHandle; + unsigned __int8 usablePlayerMask; + usableState_t usableState; + int lastUsedTime; + highlightColor_t highlightColor; + unsigned int predictedKey; + bool entityNumAdded; + unsigned __int64 serverPermanetSoundChannels; + bool hideDuringFirstSSInterval; + bool queueForDelete; + idClientServerInterface *csInterface; + unsigned int entityTypeFlags; + bool shouldPresent; + int shouldPresentCounter; +}; diff --git a/source/tungsten/game/clientgame/presentable/presentableai.h b/source/tungsten/game/clientgame/presentable/presentableai.h new file mode 100644 index 0000000..3a82120 --- /dev/null +++ b/source/tungsten/game/clientgame/presentable/presentableai.h @@ -0,0 +1,162 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\clientgame\presentable\presentableai.h +// Recovered logical types: 5 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15462; PDB kind: struct. +struct idPresentableAI::bloodSplatterEventInfo_t +{ + int eventTime; + int lastHandledEventTime; + int playerIndex; + const idDeclGore *goreInfo; + idVec3 impactPoint; + idVec3 impactDir; +}; + +// IDA Local Type ordinal 15474; PDB kind: struct. +struct idPresentableAI::painAnimationEventInfo_t +{ + int eventTime; + int lastHandledEventTime; + int playerIndex; + idStr weaponPrefix; + idVec3 projDir; + idIndex joint; + const idDeclTwitchPain *declTwitchPain; +}; + +// IDA Local Type ordinal 15475; PDB kind: struct. +struct idPresentableAI::attachmentInfo_t +{ + bool enabled; + idStr name; + idIndex jointId; + int content; + const idDeclFX *fxDecl; + idClipModel *model; +}; + +// IDA Local Type ordinal 15476; PDB kind: struct. +struct __declspec(align(4)) idPresentableAI::lootBodyEventInfo_t +{ + int eventTime; + int lastHandledEventTime; + int playerIndex; + bool hasLoot; +}; + +// IDA Local Type ordinal 15479; PDB kind: class. +class __declspec(align(8)) idPresentableAI : public idPresentableActor +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34118. + virtual ~idPresentableAI(); + virtual void Shutdown(); + virtual void ClientJobSync(); + virtual void ControlReleased(); + virtual inputSettings_t *GetInputSettings(inputSettings_t *result, idPresentablePlayer *); + virtual void Present(); + virtual void Serialize(idSerializer *); + virtual void PostSerializeRead(bool); + virtual void Interpolate(int, float); + virtual bool ShouldSerializeHidden(); + virtual bool ShouldInterpolate(); + virtual void ClientPredict(int, float); + virtual void ClientThink(int, float, bool); + virtual void ServerThink(int); + virtual bool Draw(idPresentablePlayer *); + virtual void SerializeFX(idSerializer *); + virtual void PostAlloc(); + virtual presentableType_t GetType(); + virtual idPresentableAnimatedEntity *GetAnimatedEntityInterface(); + virtual idPresentableVehicle *GetVehicleInterface(); + virtual idPresentableBreakable *GetBreakableInterface(); + virtual idPresentablePieceEmitter *GetPieceEmitterInterface(); + virtual idPresentableDamageable *GetDamageableInterface(); + virtual const idPresentableActor *GetActorInterface(); + virtual idPresentableActor *GetActorInterface_2(); + virtual const idPresentablePlayer *GetPlayerInterface(); + virtual idPresentablePlayer *GetPlayerInterface_2(); + virtual idPresentableProjectile *GetProjectileInterface(); + virtual idPresentableProjectile_Rocket *GetProjectileRocketInterface(); + virtual idPresentableProjectile_Homing *GetProjectileHomingInterface(); + virtual idPresentableProjectile_Grenade *GetProjectileGrenadeInterface(); + virtual idPresentableMultiplayerTrigger *GetMultiplayerTriggerInterface(); + virtual idPresentableWeaponStatic *GetWeaponStaticInterface(); + virtual idPresentableAI *GetAIInterface(); + virtual idPresentableProp *GetPropInterface(); + virtual idPresentableDoorAnimated *GetDoorAnimatedInterface(); + virtual idPresentableWeapon *GetWeaponInterface(); + virtual idOnlineVehicleDeathCameraPresentable *GetVehicleCameraInterface(); + virtual idPresentableReviveCamera *GetReviveCameraInterface(); + virtual idPresentableArmorPiece *GetArmorInterface(); + virtual idPresentablePusher *GetPusherInterface(); + virtual idPresentableTurret *GetTurretInterface(); + virtual idPresentableParticleEmitter *GetParticleEmitterInterface(); + virtual idPresentableCollisionTrigger *GetCollisionTriggerInterface(); + virtual idPresentableSpectatorCamera *GetSpectatorCameraInterface(); + virtual idPresentableAnimatedEntity *GetAnimatedPhysicsInterface(); + virtual void SetRenderModel(idRenderModel *, bool); + virtual bool ShouldSerializeRenderModelParms(); + virtual void StopSound_Predicted(const soundChannel_t); + virtual void Hide(bool); + virtual void Show(); + virtual void GetWorldTransform(idVec3 *, idMat3 *); + virtual idBounds *GetBounds(idBounds *result, int); + virtual idBounds *GetAbsBounds(idBounds *result, int); + virtual bool ShouldTriggerClientHitScanHit(); + virtual void ClientHitScanHit(int, int, int, const idDeclWeapon *, const idDeclProjectile *, int); + virtual void ClientHitScanHit_ClientFire(int, const idDeclWeapon *, int); + virtual void PredictHitScanHit(idPresentable *, float, const idVec3 *, const idVec3 *, const idDeclProjectile *, trace_t *); + virtual int GetPeerIndex(); + virtual bool IsTargetLockable(const idDeclAmmo *); + virtual float GetTotalCurHealth(); + virtual float GetTotalMaxHealth(); + virtual bool ShouldSaveForTimeTrial(); + virtual void StartFX(fxCondition_t, fxExtraCondition_t); + virtual void StopAllFX(); + virtual void UpdateFX(const idVec3 *, const idMat3 *, idFXManager *, const float, const float); + virtual void UpdateFX_2(const idVec3 *, const idMat3 *); + virtual void UpdateFX_3(const float, const float); + virtual void LocalStartFX(fxCondition_t); + virtual usableState_t GetOnlineUsableState(idPresentablePlayer *, int); + virtual void GetOnlineModifiedCrosshairInfo(const idPresentable *, const idFocusTrace *, const usableState_t, idCrosshairInfo *); + virtual idStrId *GetOnlineUsableText(idStrId *result); + virtual void BecomeReplicated(); + virtual int GetControllingPlayerIndex(); + virtual idPresentablePlayer *GetControllingPlayer(); + virtual bool IsLocallyControlled(); + virtual idWeapon *GetFiredWeapon(const idDeclWeapon *); + virtual void InitFXMgr(const idDeclFX *); + virtual void ShutdownFXMgr(); + virtual void UpdateClientCollision(const idVec3 *, const idMat3 *, const idVec3 *, const idMat3 *); + virtual bool ShouldLinkPresentableCollision(); + virtual idInventoryCollection *GetInventory(); + virtual const idInventoryCollection *GetInventory_2(); + virtual bool ShouldEnableSphereCollision(); + virtual void InventoryAdded(idInventoryItem *, int, bool); + virtual idWeapon *GetEquippedWeapon(); + virtual idWeapon *GetEquippedWeapon(const equipSlot_t); + virtual void OnDamage(idEntity *, idEntity *, const idDeclDamage *); + virtual bool IsDead(); + virtual const idActorModifierManager *GetActorModifierManager(); + virtual idActorModifierManager *GetActorModifierManager(); + virtual void HandleActorModifierMessage(unsigned int, unsigned __int8); + virtual float GetSpeedScale(); + virtual float GetDamageScale(); + virtual bool IsOverdriveDisabled(); + + idPresentableAI::bloodSplatterEventInfo_t bloodSplatterEventInfo; + idPresentableAI::painAnimationEventInfo_t painAnimationEventInfo; + idPresentableAI::attachmentInfo_t attachment; + idPresentableAI::lootBodyEventInfo_t lootBodyEventInfo; + idAnimator_Pain *painAnimator; + idEntityInfluenceTrail influence; + bool hasLoot; + bool predictedLootBody; + bool dead; +}; diff --git a/source/tungsten/game/clientgame/presentable/presentableanimatedphysics.h b/source/tungsten/game/clientgame/presentable/presentableanimatedphysics.h new file mode 100644 index 0000000..6d61f48 --- /dev/null +++ b/source/tungsten/game/clientgame/presentable/presentableanimatedphysics.h @@ -0,0 +1,101 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\clientgame\presentable\presentableanimatedphysics.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 20070; PDB kind: class. +class __declspec(align(4)) idPresentableAnimatedPhysics : public idPresentable +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20071. + virtual ~idPresentableAnimatedPhysics(); + virtual void Shutdown(); + virtual void ClientJobSync(); + virtual void ControlReleased(); + virtual inputSettings_t *GetInputSettings(inputSettings_t *result, idPresentablePlayer *); + virtual void Present(); + virtual void Serialize(idSerializer *); + virtual void PostSerializeRead(bool); + virtual void Interpolate(int, float); + virtual bool ShouldSerializeHidden(); + virtual bool ShouldInterpolate(); + virtual void ClientPredict(int, float); + virtual void ClientThink(int, float, bool); + virtual void ServerThink(int); + virtual bool Draw(idPresentablePlayer *); + virtual void SerializeFX(idSerializer *); + virtual void PostAlloc(); + virtual presentableType_t GetType(); + virtual idPresentableAnimatedEntity *GetAnimatedEntityInterface(); + virtual idPresentableVehicle *GetVehicleInterface(); + virtual idPresentableBreakable *GetBreakableInterface(); + virtual idPresentablePieceEmitter *GetPieceEmitterInterface(); + virtual idPresentableDamageable *GetDamageableInterface(); + virtual const idPresentableActor *GetActorInterface(); + virtual idPresentableActor *GetActorInterface_2(); + virtual const idPresentablePlayer *GetPlayerInterface(); + virtual idPresentablePlayer *GetPlayerInterface_2(); + virtual idPresentableProjectile *GetProjectileInterface(); + virtual idPresentableProjectile_Rocket *GetProjectileRocketInterface(); + virtual idPresentableProjectile_Homing *GetProjectileHomingInterface(); + virtual idPresentableProjectile_Grenade *GetProjectileGrenadeInterface(); + virtual idPresentableMultiplayerTrigger *GetMultiplayerTriggerInterface(); + virtual idPresentableWeaponStatic *GetWeaponStaticInterface(); + virtual idPresentableAI *GetAIInterface(); + virtual idPresentableProp *GetPropInterface(); + virtual idPresentableDoorAnimated *GetDoorAnimatedInterface(); + virtual idPresentableWeapon *GetWeaponInterface(); + virtual idOnlineVehicleDeathCameraPresentable *GetVehicleCameraInterface(); + virtual idPresentableReviveCamera *GetReviveCameraInterface(); + virtual idPresentableArmorPiece *GetArmorInterface(); + virtual idPresentablePusher *GetPusherInterface(); + virtual idPresentableTurret *GetTurretInterface(); + virtual idPresentableParticleEmitter *GetParticleEmitterInterface(); + virtual idPresentableCollisionTrigger *GetCollisionTriggerInterface(); + virtual idPresentableSpectatorCamera *GetSpectatorCameraInterface(); + virtual idPresentableAnimatedEntity *GetAnimatedPhysicsInterface(); + virtual void SetRenderModel(idRenderModel *, bool); + virtual bool ShouldSerializeRenderModelParms(); + virtual void StopSound_Predicted(const soundChannel_t); + virtual void Hide(bool); + virtual void Show(); + virtual void GetWorldTransform(idVec3 *, idMat3 *); + virtual idBounds *GetBounds(idBounds *result, int); + virtual idBounds *GetAbsBounds(idBounds *result, int); + virtual bool ShouldTriggerClientHitScanHit(); + virtual void ClientHitScanHit(int, int, int, const idDeclWeapon *, const idDeclProjectile *, int); + virtual void ClientHitScanHit_ClientFire(int, const idDeclWeapon *, int); + virtual void PredictHitScanHit(idPresentable *, float, const idVec3 *, const idVec3 *, const idDeclProjectile *, trace_t *); + virtual int GetPeerIndex(); + virtual bool IsTargetLockable(const idDeclAmmo *); + virtual float GetTotalCurHealth(); + virtual float GetTotalMaxHealth(); + virtual bool ShouldSaveForTimeTrial(); + virtual void StartFX(fxCondition_t, fxExtraCondition_t); + virtual void StopAllFX(); + virtual void UpdateFX(const idVec3 *, const idMat3 *, idFXManager *, const float, const float); + virtual void UpdateFX_2(const idVec3 *, const idMat3 *); + virtual void UpdateFX_3(const float, const float); + virtual void LocalStartFX(fxCondition_t); + virtual usableState_t GetOnlineUsableState(idPresentablePlayer *, int); + virtual void GetOnlineModifiedCrosshairInfo(const idPresentable *, const idFocusTrace *, const usableState_t, idCrosshairInfo *); + virtual idStrId *GetOnlineUsableText(idStrId *result); + virtual void BecomeReplicated(); + virtual int GetControllingPlayerIndex(); + virtual idPresentablePlayer *GetControllingPlayer(); + virtual bool IsLocallyControlled(); + virtual idWeapon *GetFiredWeapon(const idDeclWeapon *); + virtual void InitFXMgr(const idDeclFX *); + virtual void ShutdownFXMgr(); + virtual void UpdateClientCollision(const idVec3 *, const idMat3 *, const idVec3 *, const idMat3 *); + virtual bool ShouldLinkPresentableCollision(); + + idPhysics_Static physicsObj; + idStrClipModel clip; + bool physicsInit; + int entityOwnerIndex; + bool linked; +}; diff --git a/source/tungsten/game/clientgame/presentable/presentablearmorpiece.h b/source/tungsten/game/clientgame/presentable/presentablearmorpiece.h new file mode 100644 index 0000000..67e3f26 --- /dev/null +++ b/source/tungsten/game/clientgame/presentable/presentablearmorpiece.h @@ -0,0 +1,101 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\clientgame\presentable\presentablearmorpiece.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15485; PDB kind: class. +class __declspec(align(8)) idPresentableArmorPiece : public idPresentable +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34005. + virtual ~idPresentableArmorPiece(); + virtual void Shutdown(); + virtual void ClientJobSync(); + virtual void ControlReleased(); + virtual inputSettings_t *GetInputSettings(inputSettings_t *result, idPresentablePlayer *); + virtual void Present(); + virtual void Serialize(idSerializer *); + virtual void PostSerializeRead(bool); + virtual void Interpolate(int, float); + virtual bool ShouldSerializeHidden(); + virtual bool ShouldInterpolate(); + virtual void ClientPredict(int, float); + virtual void ClientThink(int, float, bool); + virtual void ServerThink(int); + virtual bool Draw(idPresentablePlayer *); + virtual void SerializeFX(idSerializer *); + virtual void PostAlloc(); + virtual presentableType_t GetType(); + virtual idPresentableAnimatedEntity *GetAnimatedEntityInterface(); + virtual idPresentableVehicle *GetVehicleInterface(); + virtual idPresentableBreakable *GetBreakableInterface(); + virtual idPresentablePieceEmitter *GetPieceEmitterInterface(); + virtual idPresentableDamageable *GetDamageableInterface(); + virtual const idPresentableActor *GetActorInterface(); + virtual idPresentableActor *GetActorInterface_2(); + virtual const idPresentablePlayer *GetPlayerInterface(); + virtual idPresentablePlayer *GetPlayerInterface_2(); + virtual idPresentableProjectile *GetProjectileInterface(); + virtual idPresentableProjectile_Rocket *GetProjectileRocketInterface(); + virtual idPresentableProjectile_Homing *GetProjectileHomingInterface(); + virtual idPresentableProjectile_Grenade *GetProjectileGrenadeInterface(); + virtual idPresentableMultiplayerTrigger *GetMultiplayerTriggerInterface(); + virtual idPresentableWeaponStatic *GetWeaponStaticInterface(); + virtual idPresentableAI *GetAIInterface(); + virtual idPresentableProp *GetPropInterface(); + virtual idPresentableDoorAnimated *GetDoorAnimatedInterface(); + virtual idPresentableWeapon *GetWeaponInterface(); + virtual idOnlineVehicleDeathCameraPresentable *GetVehicleCameraInterface(); + virtual idPresentableReviveCamera *GetReviveCameraInterface(); + virtual idPresentableArmorPiece *GetArmorInterface(); + virtual idPresentablePusher *GetPusherInterface(); + virtual idPresentableTurret *GetTurretInterface(); + virtual idPresentableParticleEmitter *GetParticleEmitterInterface(); + virtual idPresentableCollisionTrigger *GetCollisionTriggerInterface(); + virtual idPresentableSpectatorCamera *GetSpectatorCameraInterface(); + virtual idPresentableAnimatedEntity *GetAnimatedPhysicsInterface(); + virtual void SetRenderModel(idRenderModel *, bool); + virtual bool ShouldSerializeRenderModelParms(); + virtual void StopSound_Predicted(const soundChannel_t); + virtual void Hide(bool); + virtual void Show(); + virtual void GetWorldTransform(idVec3 *, idMat3 *); + virtual idBounds *GetBounds(idBounds *result, int); + virtual idBounds *GetAbsBounds(idBounds *result, int); + virtual bool ShouldTriggerClientHitScanHit(); + virtual void ClientHitScanHit(int, int, int, const idDeclWeapon *, const idDeclProjectile *, int); + virtual void ClientHitScanHit_ClientFire(int, const idDeclWeapon *, int); + virtual void PredictHitScanHit(idPresentable *, float, const idVec3 *, const idVec3 *, const idDeclProjectile *, trace_t *); + virtual int GetPeerIndex(); + virtual bool IsTargetLockable(const idDeclAmmo *); + virtual float GetTotalCurHealth(); + virtual float GetTotalMaxHealth(); + virtual bool ShouldSaveForTimeTrial(); + virtual void StartFX(fxCondition_t, fxExtraCondition_t); + virtual void StopAllFX(); + virtual void UpdateFX(const idVec3 *, const idMat3 *, idFXManager *, const float, const float); + virtual void UpdateFX_2(const idVec3 *, const idMat3 *); + virtual void UpdateFX_3(const float, const float); + virtual void LocalStartFX(fxCondition_t); + virtual usableState_t GetOnlineUsableState(idPresentablePlayer *, int); + virtual void GetOnlineModifiedCrosshairInfo(const idPresentable *, const idFocusTrace *, const usableState_t, idCrosshairInfo *); + virtual idStrId *GetOnlineUsableText(idStrId *result); + virtual void BecomeReplicated(); + virtual int GetControllingPlayerIndex(); + virtual idPresentablePlayer *GetControllingPlayer(); + virtual bool IsLocallyControlled(); + virtual idWeapon *GetFiredWeapon(const idDeclWeapon *); + virtual void InitFXMgr(const idDeclFX *); + virtual void ShutdownFXMgr(); + virtual void UpdateClientCollision(const idVec3 *, const idMat3 *, const idVec3 *, const idMat3 *); + virtual bool ShouldLinkPresentableCollision(); + + idPhysics_RigidBody physicsObj; + idArmorPiecePhysicsCallback physicsCallback; + idFadeHelper fade; + float fadeTime; + bool removeWhenAtRest; +}; diff --git a/source/tungsten/game/clientgame/presentable/presentablebreakable.h b/source/tungsten/game/clientgame/presentable/presentablebreakable.h new file mode 100644 index 0000000..79d0be7 --- /dev/null +++ b/source/tungsten/game/clientgame/presentable/presentablebreakable.h @@ -0,0 +1,112 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\clientgame\presentable\presentablebreakable.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15424; PDB kind: class. +class __declspec(align(8)) idPresentableBreakable : public idPresentable +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34006. + virtual ~idPresentableBreakable(); + virtual void Shutdown(); + virtual void ClientJobSync(); + virtual void ControlReleased(); + virtual inputSettings_t *GetInputSettings(inputSettings_t *result, idPresentablePlayer *); + virtual void Present(); + virtual void Serialize(idSerializer *); + virtual void PostSerializeRead(bool); + virtual void Interpolate(int, float); + virtual bool ShouldSerializeHidden(); + virtual bool ShouldInterpolate(); + virtual void ClientPredict(int, float); + virtual void ClientThink(int, float, bool); + virtual void ServerThink(int); + virtual bool Draw(idPresentablePlayer *); + virtual void SerializeFX(idSerializer *); + virtual void PostAlloc(); + virtual presentableType_t GetType(); + virtual idPresentableAnimatedEntity *GetAnimatedEntityInterface(); + virtual idPresentableVehicle *GetVehicleInterface(); + virtual idPresentableBreakable *GetBreakableInterface(); + virtual idPresentablePieceEmitter *GetPieceEmitterInterface(); + virtual idPresentableDamageable *GetDamageableInterface(); + virtual const idPresentableActor *GetActorInterface(); + virtual idPresentableActor *GetActorInterface_2(); + virtual const idPresentablePlayer *GetPlayerInterface(); + virtual idPresentablePlayer *GetPlayerInterface_2(); + virtual idPresentableProjectile *GetProjectileInterface(); + virtual idPresentableProjectile_Rocket *GetProjectileRocketInterface(); + virtual idPresentableProjectile_Homing *GetProjectileHomingInterface(); + virtual idPresentableProjectile_Grenade *GetProjectileGrenadeInterface(); + virtual idPresentableMultiplayerTrigger *GetMultiplayerTriggerInterface(); + virtual idPresentableWeaponStatic *GetWeaponStaticInterface(); + virtual idPresentableAI *GetAIInterface(); + virtual idPresentableProp *GetPropInterface(); + virtual idPresentableDoorAnimated *GetDoorAnimatedInterface(); + virtual idPresentableWeapon *GetWeaponInterface(); + virtual idOnlineVehicleDeathCameraPresentable *GetVehicleCameraInterface(); + virtual idPresentableReviveCamera *GetReviveCameraInterface(); + virtual idPresentableArmorPiece *GetArmorInterface(); + virtual idPresentablePusher *GetPusherInterface(); + virtual idPresentableTurret *GetTurretInterface(); + virtual idPresentableParticleEmitter *GetParticleEmitterInterface(); + virtual idPresentableCollisionTrigger *GetCollisionTriggerInterface(); + virtual idPresentableSpectatorCamera *GetSpectatorCameraInterface(); + virtual idPresentableAnimatedEntity *GetAnimatedPhysicsInterface(); + virtual void SetRenderModel(idRenderModel *, bool); + virtual bool ShouldSerializeRenderModelParms(); + virtual void StopSound_Predicted(const soundChannel_t); + virtual void Hide(bool); + virtual void Show(); + virtual void GetWorldTransform(idVec3 *, idMat3 *); + virtual idBounds *GetBounds(idBounds *result, int); + virtual idBounds *GetAbsBounds(idBounds *result, int); + virtual bool ShouldTriggerClientHitScanHit(); + virtual void ClientHitScanHit(int, int, int, const idDeclWeapon *, const idDeclProjectile *, int); + virtual void ClientHitScanHit_ClientFire(int, const idDeclWeapon *, int); + virtual void PredictHitScanHit(idPresentable *, float, const idVec3 *, const idVec3 *, const idDeclProjectile *, trace_t *); + virtual int GetPeerIndex(); + virtual bool IsTargetLockable(const idDeclAmmo *); + virtual float GetTotalCurHealth(); + virtual float GetTotalMaxHealth(); + virtual bool ShouldSaveForTimeTrial(); + virtual void StartFX(fxCondition_t, fxExtraCondition_t); + virtual void StopAllFX(); + virtual void UpdateFX(const idVec3 *, const idMat3 *, idFXManager *, const float, const float); + virtual void UpdateFX_2(const idVec3 *, const idMat3 *); + virtual void UpdateFX_3(const float, const float); + virtual void LocalStartFX(fxCondition_t); + virtual usableState_t GetOnlineUsableState(idPresentablePlayer *, int); + virtual void GetOnlineModifiedCrosshairInfo(const idPresentable *, const idFocusTrace *, const usableState_t, idCrosshairInfo *); + virtual idStrId *GetOnlineUsableText(idStrId *result); + virtual void BecomeReplicated(); + virtual int GetControllingPlayerIndex(); + virtual idPresentablePlayer *GetControllingPlayer(); + virtual bool IsLocallyControlled(); + virtual idWeapon *GetFiredWeapon(const idDeclWeapon *); + virtual void InitFXMgr(const idDeclFX *); + virtual void ShutdownFXMgr(); + virtual void UpdateClientCollision(const idVec3 *, const idMat3 *, const idVec3 *, const idMat3 *); + virtual bool ShouldLinkPresentableCollision(); + + int explodeFrame; + int activatorIndex; + int currentExplodeFrame; + int serializeFrame; + float pieceMinBounceVelocity; + idVec3 localExplosionOrigin; + int boneToOrientGibTo; + bool broken; + bool isRenderModelDiscreteAnimation; + const idDeclImpactSound *impactTable; + idEffectPhysicsBreakable breakablePhysics; + idPresentablePtr breakableParent; + int brokenStartTime; + int fadeTimeMS; + int fadeDelayMS; + idFadeHelper fade; +}; diff --git a/source/tungsten/game/clientgame/presentable/presentablecollisiontrigger.h b/source/tungsten/game/clientgame/presentable/presentablecollisiontrigger.h new file mode 100644 index 0000000..ef1996d --- /dev/null +++ b/source/tungsten/game/clientgame/presentable/presentablecollisiontrigger.h @@ -0,0 +1,98 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\clientgame\presentable\presentablecollisiontrigger.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15505; PDB kind: class. +class __declspec(align(4)) idPresentableCollisionTrigger : public idPresentable +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34007. + virtual ~idPresentableCollisionTrigger(); + virtual void Shutdown(); + virtual void ClientJobSync(); + virtual void ControlReleased(); + virtual inputSettings_t *GetInputSettings(inputSettings_t *result, idPresentablePlayer *); + virtual void Present(); + virtual void Serialize(idSerializer *); + virtual void PostSerializeRead(bool); + virtual void Interpolate(int, float); + virtual bool ShouldSerializeHidden(); + virtual bool ShouldInterpolate(); + virtual void ClientPredict(int, float); + virtual void ClientThink(int, float, bool); + virtual void ServerThink(int); + virtual bool Draw(idPresentablePlayer *); + virtual void SerializeFX(idSerializer *); + virtual void PostAlloc(); + virtual presentableType_t GetType(); + virtual idPresentableAnimatedEntity *GetAnimatedEntityInterface(); + virtual idPresentableVehicle *GetVehicleInterface(); + virtual idPresentableBreakable *GetBreakableInterface(); + virtual idPresentablePieceEmitter *GetPieceEmitterInterface(); + virtual idPresentableDamageable *GetDamageableInterface(); + virtual const idPresentableActor *GetActorInterface(); + virtual idPresentableActor *GetActorInterface_2(); + virtual const idPresentablePlayer *GetPlayerInterface(); + virtual idPresentablePlayer *GetPlayerInterface_2(); + virtual idPresentableProjectile *GetProjectileInterface(); + virtual idPresentableProjectile_Rocket *GetProjectileRocketInterface(); + virtual idPresentableProjectile_Homing *GetProjectileHomingInterface(); + virtual idPresentableProjectile_Grenade *GetProjectileGrenadeInterface(); + virtual idPresentableMultiplayerTrigger *GetMultiplayerTriggerInterface(); + virtual idPresentableWeaponStatic *GetWeaponStaticInterface(); + virtual idPresentableAI *GetAIInterface(); + virtual idPresentableProp *GetPropInterface(); + virtual idPresentableDoorAnimated *GetDoorAnimatedInterface(); + virtual idPresentableWeapon *GetWeaponInterface(); + virtual idOnlineVehicleDeathCameraPresentable *GetVehicleCameraInterface(); + virtual idPresentableReviveCamera *GetReviveCameraInterface(); + virtual idPresentableArmorPiece *GetArmorInterface(); + virtual idPresentablePusher *GetPusherInterface(); + virtual idPresentableTurret *GetTurretInterface(); + virtual idPresentableParticleEmitter *GetParticleEmitterInterface(); + virtual idPresentableCollisionTrigger *GetCollisionTriggerInterface(); + virtual idPresentableSpectatorCamera *GetSpectatorCameraInterface(); + virtual idPresentableAnimatedEntity *GetAnimatedPhysicsInterface(); + virtual void SetRenderModel(idRenderModel *, bool); + virtual bool ShouldSerializeRenderModelParms(); + virtual void StopSound_Predicted(const soundChannel_t); + virtual void Hide(bool); + virtual void Show(); + virtual void GetWorldTransform(idVec3 *, idMat3 *); + virtual idBounds *GetBounds(idBounds *result, int); + virtual idBounds *GetAbsBounds(idBounds *result, int); + virtual bool ShouldTriggerClientHitScanHit(); + virtual void ClientHitScanHit(int, int, int, const idDeclWeapon *, const idDeclProjectile *, int); + virtual void ClientHitScanHit_ClientFire(int, const idDeclWeapon *, int); + virtual void PredictHitScanHit(idPresentable *, float, const idVec3 *, const idVec3 *, const idDeclProjectile *, trace_t *); + virtual int GetPeerIndex(); + virtual bool IsTargetLockable(const idDeclAmmo *); + virtual float GetTotalCurHealth(); + virtual float GetTotalMaxHealth(); + virtual bool ShouldSaveForTimeTrial(); + virtual void StartFX(fxCondition_t, fxExtraCondition_t); + virtual void StopAllFX(); + virtual void UpdateFX(const idVec3 *, const idMat3 *, idFXManager *, const float, const float); + virtual void UpdateFX_2(const idVec3 *, const idMat3 *); + virtual void UpdateFX_3(const float, const float); + virtual void LocalStartFX(fxCondition_t); + virtual usableState_t GetOnlineUsableState(idPresentablePlayer *, int); + virtual void GetOnlineModifiedCrosshairInfo(const idPresentable *, const idFocusTrace *, const usableState_t, idCrosshairInfo *); + virtual idStrId *GetOnlineUsableText(idStrId *result); + virtual void BecomeReplicated(); + virtual int GetControllingPlayerIndex(); + virtual idPresentablePlayer *GetControllingPlayer(); + virtual bool IsLocallyControlled(); + virtual idWeapon *GetFiredWeapon(const idDeclWeapon *); + virtual void InitFXMgr(const idDeclFX *); + virtual void ShutdownFXMgr(); + virtual void UpdateClientCollision(const idVec3 *, const idMat3 *, const idVec3 *, const idMat3 *); + virtual bool ShouldLinkPresentableCollision(); + + idPresentablePtr targetPresentable; + bool triggered; +}; diff --git a/source/tungsten/game/clientgame/presentable/presentablecuttable.h b/source/tungsten/game/clientgame/presentable/presentablecuttable.h new file mode 100644 index 0000000..3bbcc03 --- /dev/null +++ b/source/tungsten/game/clientgame/presentable/presentablecuttable.h @@ -0,0 +1,96 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\clientgame\presentable\presentablecuttable.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 20322; PDB kind: class. +class idPresentableCuttable : public idPresentable +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20323. + virtual ~idPresentableCuttable(); + virtual void Shutdown(); + virtual void ClientJobSync(); + virtual void ControlReleased(); + virtual inputSettings_t *GetInputSettings(inputSettings_t *result, idPresentablePlayer *); + virtual void Present(); + virtual void Serialize(idSerializer *); + virtual void PostSerializeRead(bool); + virtual void Interpolate(int, float); + virtual bool ShouldSerializeHidden(); + virtual bool ShouldInterpolate(); + virtual void ClientPredict(int, float); + virtual void ClientThink(int, float, bool); + virtual void ServerThink(int); + virtual bool Draw(idPresentablePlayer *); + virtual void SerializeFX(idSerializer *); + virtual void PostAlloc(); + virtual presentableType_t GetType(); + virtual idPresentableAnimatedEntity *GetAnimatedEntityInterface(); + virtual idPresentableVehicle *GetVehicleInterface(); + virtual idPresentableBreakable *GetBreakableInterface(); + virtual idPresentablePieceEmitter *GetPieceEmitterInterface(); + virtual idPresentableDamageable *GetDamageableInterface(); + virtual const idPresentableActor *GetActorInterface(); + virtual idPresentableActor *GetActorInterface_2(); + virtual const idPresentablePlayer *GetPlayerInterface(); + virtual idPresentablePlayer *GetPlayerInterface_2(); + virtual idPresentableProjectile *GetProjectileInterface(); + virtual idPresentableProjectile_Rocket *GetProjectileRocketInterface(); + virtual idPresentableProjectile_Homing *GetProjectileHomingInterface(); + virtual idPresentableProjectile_Grenade *GetProjectileGrenadeInterface(); + virtual idPresentableMultiplayerTrigger *GetMultiplayerTriggerInterface(); + virtual idPresentableWeaponStatic *GetWeaponStaticInterface(); + virtual idPresentableAI *GetAIInterface(); + virtual idPresentableProp *GetPropInterface(); + virtual idPresentableDoorAnimated *GetDoorAnimatedInterface(); + virtual idPresentableWeapon *GetWeaponInterface(); + virtual idOnlineVehicleDeathCameraPresentable *GetVehicleCameraInterface(); + virtual idPresentableReviveCamera *GetReviveCameraInterface(); + virtual idPresentableArmorPiece *GetArmorInterface(); + virtual idPresentablePusher *GetPusherInterface(); + virtual idPresentableTurret *GetTurretInterface(); + virtual idPresentableParticleEmitter *GetParticleEmitterInterface(); + virtual idPresentableCollisionTrigger *GetCollisionTriggerInterface(); + virtual idPresentableSpectatorCamera *GetSpectatorCameraInterface(); + virtual idPresentableAnimatedEntity *GetAnimatedPhysicsInterface(); + virtual void SetRenderModel(idRenderModel *, bool); + virtual bool ShouldSerializeRenderModelParms(); + virtual void StopSound_Predicted(const soundChannel_t); + virtual void Hide(bool); + virtual void Show(); + virtual void GetWorldTransform(idVec3 *, idMat3 *); + virtual idBounds *GetBounds(idBounds *result, int); + virtual idBounds *GetAbsBounds(idBounds *result, int); + virtual bool ShouldTriggerClientHitScanHit(); + virtual void ClientHitScanHit(int, int, int, const idDeclWeapon *, const idDeclProjectile *, int); + virtual void ClientHitScanHit_ClientFire(int, const idDeclWeapon *, int); + virtual void PredictHitScanHit(idPresentable *, float, const idVec3 *, const idVec3 *, const idDeclProjectile *, trace_t *); + virtual int GetPeerIndex(); + virtual bool IsTargetLockable(const idDeclAmmo *); + virtual float GetTotalCurHealth(); + virtual float GetTotalMaxHealth(); + virtual bool ShouldSaveForTimeTrial(); + virtual void StartFX(fxCondition_t, fxExtraCondition_t); + virtual void StopAllFX(); + virtual void UpdateFX(const idVec3 *, const idMat3 *, idFXManager *, const float, const float); + virtual void UpdateFX_2(const idVec3 *, const idMat3 *); + virtual void UpdateFX_3(const float, const float); + virtual void LocalStartFX(fxCondition_t); + virtual usableState_t GetOnlineUsableState(idPresentablePlayer *, int); + virtual void GetOnlineModifiedCrosshairInfo(const idPresentable *, const idFocusTrace *, const usableState_t, idCrosshairInfo *); + virtual idStrId *GetOnlineUsableText(idStrId *result); + virtual void BecomeReplicated(); + virtual int GetControllingPlayerIndex(); + virtual idPresentablePlayer *GetControllingPlayer(); + virtual bool IsLocallyControlled(); + virtual idWeapon *GetFiredWeapon(const idDeclWeapon *); + virtual void InitFXMgr(const idDeclFX *); + virtual void ShutdownFXMgr(); + virtual void UpdateClientCollision(const idVec3 *, const idMat3 *, const idVec3 *, const idMat3 *); + virtual bool ShouldLinkPresentableCollision(); + +}; diff --git a/source/tungsten/game/clientgame/presentable/presentabledamageable.h b/source/tungsten/game/clientgame/presentable/presentabledamageable.h new file mode 100644 index 0000000..402f8f3 --- /dev/null +++ b/source/tungsten/game/clientgame/presentable/presentabledamageable.h @@ -0,0 +1,112 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\clientgame\presentable\presentabledamageable.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15427; PDB kind: struct. +struct idPresentableDamageable::rayBufferItem_t +{ + idVec3 start; + idVec3 end; +}; + +// IDA Local Type ordinal 15428; PDB kind: class. +class idPresentableDamageable : public idPresentable +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34008. + virtual ~idPresentableDamageable(); + virtual void Shutdown(); + virtual void ClientJobSync(); + virtual void ControlReleased(); + virtual inputSettings_t *GetInputSettings(inputSettings_t *result, idPresentablePlayer *); + virtual void Present(); + virtual void Serialize(idSerializer *); + virtual void PostSerializeRead(bool); + virtual void Interpolate(int, float); + virtual bool ShouldSerializeHidden(); + virtual bool ShouldInterpolate(); + virtual void ClientPredict(int, float); + virtual void ClientThink(int, float, bool); + virtual void ServerThink(int); + virtual bool Draw(idPresentablePlayer *); + virtual void SerializeFX(idSerializer *); + virtual void PostAlloc(); + virtual presentableType_t GetType(); + virtual idPresentableAnimatedEntity *GetAnimatedEntityInterface(); + virtual idPresentableVehicle *GetVehicleInterface(); + virtual idPresentableBreakable *GetBreakableInterface(); + virtual idPresentablePieceEmitter *GetPieceEmitterInterface(); + virtual idPresentableDamageable *GetDamageableInterface(); + virtual const idPresentableActor *GetActorInterface(); + virtual idPresentableActor *GetActorInterface_2(); + virtual const idPresentablePlayer *GetPlayerInterface(); + virtual idPresentablePlayer *GetPlayerInterface_2(); + virtual idPresentableProjectile *GetProjectileInterface(); + virtual idPresentableProjectile_Rocket *GetProjectileRocketInterface(); + virtual idPresentableProjectile_Homing *GetProjectileHomingInterface(); + virtual idPresentableProjectile_Grenade *GetProjectileGrenadeInterface(); + virtual idPresentableMultiplayerTrigger *GetMultiplayerTriggerInterface(); + virtual idPresentableWeaponStatic *GetWeaponStaticInterface(); + virtual idPresentableAI *GetAIInterface(); + virtual idPresentableProp *GetPropInterface(); + virtual idPresentableDoorAnimated *GetDoorAnimatedInterface(); + virtual idPresentableWeapon *GetWeaponInterface(); + virtual idOnlineVehicleDeathCameraPresentable *GetVehicleCameraInterface(); + virtual idPresentableReviveCamera *GetReviveCameraInterface(); + virtual idPresentableArmorPiece *GetArmorInterface(); + virtual idPresentablePusher *GetPusherInterface(); + virtual idPresentableTurret *GetTurretInterface(); + virtual idPresentableParticleEmitter *GetParticleEmitterInterface(); + virtual idPresentableCollisionTrigger *GetCollisionTriggerInterface(); + virtual idPresentableSpectatorCamera *GetSpectatorCameraInterface(); + virtual idPresentableAnimatedEntity *GetAnimatedPhysicsInterface(); + virtual void SetRenderModel(idRenderModel *, bool); + virtual bool ShouldSerializeRenderModelParms(); + virtual void StopSound_Predicted(const soundChannel_t); + virtual void Hide(bool); + virtual void Show(); + virtual void GetWorldTransform(idVec3 *, idMat3 *); + virtual idBounds *GetBounds(idBounds *result, int); + virtual idBounds *GetAbsBounds(idBounds *result, int); + virtual bool ShouldTriggerClientHitScanHit(); + virtual void ClientHitScanHit(int, int, int, const idDeclWeapon *, const idDeclProjectile *, int); + virtual void ClientHitScanHit_ClientFire(int, const idDeclWeapon *, int); + virtual void PredictHitScanHit(idPresentable *, float, const idVec3 *, const idVec3 *, const idDeclProjectile *, trace_t *); + virtual int GetPeerIndex(); + virtual bool IsTargetLockable(const idDeclAmmo *); + virtual float GetTotalCurHealth(); + virtual float GetTotalMaxHealth(); + virtual bool ShouldSaveForTimeTrial(); + virtual void StartFX(fxCondition_t, fxExtraCondition_t); + virtual void StopAllFX(); + virtual void UpdateFX(const idVec3 *, const idMat3 *, idFXManager *, const float, const float); + virtual void UpdateFX_2(const idVec3 *, const idMat3 *); + virtual void UpdateFX_3(const float, const float); + virtual void LocalStartFX(fxCondition_t); + virtual usableState_t GetOnlineUsableState(idPresentablePlayer *, int); + virtual void GetOnlineModifiedCrosshairInfo(const idPresentable *, const idFocusTrace *, const usableState_t, idCrosshairInfo *); + virtual idStrId *GetOnlineUsableText(idStrId *result); + virtual void BecomeReplicated(); + virtual int GetControllingPlayerIndex(); + virtual idPresentablePlayer *GetControllingPlayer(); + virtual bool IsLocallyControlled(); + virtual idWeapon *GetFiredWeapon(const idDeclWeapon *); + virtual void InitFXMgr(const idDeclFX *); + virtual void ShutdownFXMgr(); + virtual void UpdateClientCollision(const idVec3 *, const idMat3 *, const idVec3 *, const idMat3 *); + virtual bool ShouldLinkPresentableCollision(); + + idPresentableDamageable::rayBufferItem_t rayImpactBuffer[10]; + int rayImpactBufferPos; + int explosionFrame; + int activateAllNowFrame; + int currentExplosionFrame; + int currentActivateAllNowFrame; + float pieceMinBounceVelocity; + const idDeclImpactSound *impactTable; + idEffectPhysicsBreakable breakablePhysics; +}; diff --git a/source/tungsten/game/clientgame/presentable/presentabledooranimated.h b/source/tungsten/game/clientgame/presentable/presentabledooranimated.h new file mode 100644 index 0000000..72365b2 --- /dev/null +++ b/source/tungsten/game/clientgame/presentable/presentabledooranimated.h @@ -0,0 +1,101 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\clientgame\presentable\presentabledooranimated.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15480; PDB kind: class. +class __declspec(align(4)) idPresentableDoorAnimated : public idPresentable +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34009. + virtual ~idPresentableDoorAnimated(); + virtual void Shutdown(); + virtual void ClientJobSync(); + virtual void ControlReleased(); + virtual inputSettings_t *GetInputSettings(inputSettings_t *result, idPresentablePlayer *); + virtual void Present(); + virtual void Serialize(idSerializer *); + virtual void PostSerializeRead(bool); + virtual void Interpolate(int, float); + virtual bool ShouldSerializeHidden(); + virtual bool ShouldInterpolate(); + virtual void ClientPredict(int, float); + virtual void ClientThink(int, float, bool); + virtual void ServerThink(int); + virtual bool Draw(idPresentablePlayer *); + virtual void SerializeFX(idSerializer *); + virtual void PostAlloc(); + virtual presentableType_t GetType(); + virtual idPresentableAnimatedEntity *GetAnimatedEntityInterface(); + virtual idPresentableVehicle *GetVehicleInterface(); + virtual idPresentableBreakable *GetBreakableInterface(); + virtual idPresentablePieceEmitter *GetPieceEmitterInterface(); + virtual idPresentableDamageable *GetDamageableInterface(); + virtual const idPresentableActor *GetActorInterface(); + virtual idPresentableActor *GetActorInterface_2(); + virtual const idPresentablePlayer *GetPlayerInterface(); + virtual idPresentablePlayer *GetPlayerInterface_2(); + virtual idPresentableProjectile *GetProjectileInterface(); + virtual idPresentableProjectile_Rocket *GetProjectileRocketInterface(); + virtual idPresentableProjectile_Homing *GetProjectileHomingInterface(); + virtual idPresentableProjectile_Grenade *GetProjectileGrenadeInterface(); + virtual idPresentableMultiplayerTrigger *GetMultiplayerTriggerInterface(); + virtual idPresentableWeaponStatic *GetWeaponStaticInterface(); + virtual idPresentableAI *GetAIInterface(); + virtual idPresentableProp *GetPropInterface(); + virtual idPresentableDoorAnimated *GetDoorAnimatedInterface(); + virtual idPresentableWeapon *GetWeaponInterface(); + virtual idOnlineVehicleDeathCameraPresentable *GetVehicleCameraInterface(); + virtual idPresentableReviveCamera *GetReviveCameraInterface(); + virtual idPresentableArmorPiece *GetArmorInterface(); + virtual idPresentablePusher *GetPusherInterface(); + virtual idPresentableTurret *GetTurretInterface(); + virtual idPresentableParticleEmitter *GetParticleEmitterInterface(); + virtual idPresentableCollisionTrigger *GetCollisionTriggerInterface(); + virtual idPresentableSpectatorCamera *GetSpectatorCameraInterface(); + virtual idPresentableAnimatedEntity *GetAnimatedPhysicsInterface(); + virtual void SetRenderModel(idRenderModel *, bool); + virtual bool ShouldSerializeRenderModelParms(); + virtual void StopSound_Predicted(const soundChannel_t); + virtual void Hide(bool); + virtual void Show(); + virtual void GetWorldTransform(idVec3 *, idMat3 *); + virtual idBounds *GetBounds(idBounds *result, int); + virtual idBounds *GetAbsBounds(idBounds *result, int); + virtual bool ShouldTriggerClientHitScanHit(); + virtual void ClientHitScanHit(int, int, int, const idDeclWeapon *, const idDeclProjectile *, int); + virtual void ClientHitScanHit_ClientFire(int, const idDeclWeapon *, int); + virtual void PredictHitScanHit(idPresentable *, float, const idVec3 *, const idVec3 *, const idDeclProjectile *, trace_t *); + virtual int GetPeerIndex(); + virtual bool IsTargetLockable(const idDeclAmmo *); + virtual float GetTotalCurHealth(); + virtual float GetTotalMaxHealth(); + virtual bool ShouldSaveForTimeTrial(); + virtual void StartFX(fxCondition_t, fxExtraCondition_t); + virtual void StopAllFX(); + virtual void UpdateFX(const idVec3 *, const idMat3 *, idFXManager *, const float, const float); + virtual void UpdateFX_2(const idVec3 *, const idMat3 *); + virtual void UpdateFX_3(const float, const float); + virtual void LocalStartFX(fxCondition_t); + virtual usableState_t GetOnlineUsableState(idPresentablePlayer *, int); + virtual void GetOnlineModifiedCrosshairInfo(const idPresentable *, const idFocusTrace *, const usableState_t, idCrosshairInfo *); + virtual idStrId *GetOnlineUsableText(idStrId *result); + virtual void BecomeReplicated(); + virtual int GetControllingPlayerIndex(); + virtual idPresentablePlayer *GetControllingPlayer(); + virtual bool IsLocallyControlled(); + virtual idWeapon *GetFiredWeapon(const idDeclWeapon *); + virtual void InitFXMgr(const idDeclFX *); + virtual void ShutdownFXMgr(); + virtual void UpdateClientCollision(const idVec3 *, const idMat3 *, const idVec3 *, const idMat3 *); + virtual bool ShouldLinkPresentableCollision(); + + idPhysics_Static physicsObj; + idStrClipModel clip; + bool physicsInit; + int entityOwnerIndex; + bool linked; +}; diff --git a/source/tungsten/game/clientgame/presentable/presentableeboltemitter.h b/source/tungsten/game/clientgame/presentable/presentableeboltemitter.h new file mode 100644 index 0000000..fd22e91 --- /dev/null +++ b/source/tungsten/game/clientgame/presentable/presentableeboltemitter.h @@ -0,0 +1,109 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\clientgame\presentable\presentableeboltemitter.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 20320; PDB kind: class. +class __declspec(align(8)) idPresentableEBoltEmitter : public idPresentable +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20321. + virtual ~idPresentableEBoltEmitter(); + virtual void Shutdown(); + virtual void ClientJobSync(); + virtual void ControlReleased(); + virtual inputSettings_t *GetInputSettings(inputSettings_t *result, idPresentablePlayer *); + virtual void Present(); + virtual void Serialize(idSerializer *); + virtual void PostSerializeRead(bool); + virtual void Interpolate(int, float); + virtual bool ShouldSerializeHidden(); + virtual bool ShouldInterpolate(); + virtual void ClientPredict(int, float); + virtual void ClientThink(int, float, bool); + virtual void ServerThink(int); + virtual bool Draw(idPresentablePlayer *); + virtual void SerializeFX(idSerializer *); + virtual void PostAlloc(); + virtual presentableType_t GetType(); + virtual idPresentableAnimatedEntity *GetAnimatedEntityInterface(); + virtual idPresentableVehicle *GetVehicleInterface(); + virtual idPresentableBreakable *GetBreakableInterface(); + virtual idPresentablePieceEmitter *GetPieceEmitterInterface(); + virtual idPresentableDamageable *GetDamageableInterface(); + virtual const idPresentableActor *GetActorInterface(); + virtual idPresentableActor *GetActorInterface_2(); + virtual const idPresentablePlayer *GetPlayerInterface(); + virtual idPresentablePlayer *GetPlayerInterface_2(); + virtual idPresentableProjectile *GetProjectileInterface(); + virtual idPresentableProjectile_Rocket *GetProjectileRocketInterface(); + virtual idPresentableProjectile_Homing *GetProjectileHomingInterface(); + virtual idPresentableProjectile_Grenade *GetProjectileGrenadeInterface(); + virtual idPresentableMultiplayerTrigger *GetMultiplayerTriggerInterface(); + virtual idPresentableWeaponStatic *GetWeaponStaticInterface(); + virtual idPresentableAI *GetAIInterface(); + virtual idPresentableProp *GetPropInterface(); + virtual idPresentableDoorAnimated *GetDoorAnimatedInterface(); + virtual idPresentableWeapon *GetWeaponInterface(); + virtual idOnlineVehicleDeathCameraPresentable *GetVehicleCameraInterface(); + virtual idPresentableReviveCamera *GetReviveCameraInterface(); + virtual idPresentableArmorPiece *GetArmorInterface(); + virtual idPresentablePusher *GetPusherInterface(); + virtual idPresentableTurret *GetTurretInterface(); + virtual idPresentableParticleEmitter *GetParticleEmitterInterface(); + virtual idPresentableCollisionTrigger *GetCollisionTriggerInterface(); + virtual idPresentableSpectatorCamera *GetSpectatorCameraInterface(); + virtual idPresentableAnimatedEntity *GetAnimatedPhysicsInterface(); + virtual void SetRenderModel(idRenderModel *, bool); + virtual bool ShouldSerializeRenderModelParms(); + virtual void StopSound_Predicted(const soundChannel_t); + virtual void Hide(bool); + virtual void Show(); + virtual void GetWorldTransform(idVec3 *, idMat3 *); + virtual idBounds *GetBounds(idBounds *result, int); + virtual idBounds *GetAbsBounds(idBounds *result, int); + virtual bool ShouldTriggerClientHitScanHit(); + virtual void ClientHitScanHit(int, int, int, const idDeclWeapon *, const idDeclProjectile *, int); + virtual void ClientHitScanHit_ClientFire(int, const idDeclWeapon *, int); + virtual void PredictHitScanHit(idPresentable *, float, const idVec3 *, const idVec3 *, const idDeclProjectile *, trace_t *); + virtual int GetPeerIndex(); + virtual bool IsTargetLockable(const idDeclAmmo *); + virtual float GetTotalCurHealth(); + virtual float GetTotalMaxHealth(); + virtual bool ShouldSaveForTimeTrial(); + virtual void StartFX(fxCondition_t, fxExtraCondition_t); + virtual void StopAllFX(); + virtual void UpdateFX(const idVec3 *, const idMat3 *, idFXManager *, const float, const float); + virtual void UpdateFX_2(const idVec3 *, const idMat3 *); + virtual void UpdateFX_3(const float, const float); + virtual void LocalStartFX(fxCondition_t); + virtual usableState_t GetOnlineUsableState(idPresentablePlayer *, int); + virtual void GetOnlineModifiedCrosshairInfo(const idPresentable *, const idFocusTrace *, const usableState_t, idCrosshairInfo *); + virtual idStrId *GetOnlineUsableText(idStrId *result); + virtual void BecomeReplicated(); + virtual int GetControllingPlayerIndex(); + virtual idPresentablePlayer *GetControllingPlayer(); + virtual bool IsLocallyControlled(); + virtual idWeapon *GetFiredWeapon(const idDeclWeapon *); + virtual void InitFXMgr(const idDeclFX *); + virtual void ShutdownFXMgr(); + virtual void UpdateClientCollision(const idVec3 *, const idMat3 *, const idVec3 *, const idMat3 *); + virtual bool ShouldLinkPresentableCollision(); + + int minResetTime; + int maxResetTime; + const idDeclElectricBolt *electricBoltSystem; + const idSoundShader *sndPowerDown; + const idSoundShader *sndPowerUp; + float maxConeAngle; + idVec2 length; + idElectricBolt *ebolt; + idList targetPoints; + idList,5> targets; + int nextResetTime; + bool startOff; + bool firstSerialize; +}; diff --git a/source/tungsten/game/clientgame/presentable/presentablelasergate.h b/source/tungsten/game/clientgame/presentable/presentablelasergate.h new file mode 100644 index 0000000..f40aac2 --- /dev/null +++ b/source/tungsten/game/clientgame/presentable/presentablelasergate.h @@ -0,0 +1,105 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\clientgame\presentable\presentablelasergate.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 20316; PDB kind: class. +class idPresentableLaserGate : public idPresentable +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20317. + virtual ~idPresentableLaserGate(); + virtual void Shutdown(); + virtual void ClientJobSync(); + virtual void ControlReleased(); + virtual inputSettings_t *GetInputSettings(inputSettings_t *result, idPresentablePlayer *); + virtual void Present(); + virtual void Serialize(idSerializer *); + virtual void PostSerializeRead(bool); + virtual void Interpolate(int, float); + virtual bool ShouldSerializeHidden(); + virtual bool ShouldInterpolate(); + virtual void ClientPredict(int, float); + virtual void ClientThink(int, float, bool); + virtual void ServerThink(int); + virtual bool Draw(idPresentablePlayer *); + virtual void SerializeFX(idSerializer *); + virtual void PostAlloc(); + virtual presentableType_t GetType(); + virtual idPresentableAnimatedEntity *GetAnimatedEntityInterface(); + virtual idPresentableVehicle *GetVehicleInterface(); + virtual idPresentableBreakable *GetBreakableInterface(); + virtual idPresentablePieceEmitter *GetPieceEmitterInterface(); + virtual idPresentableDamageable *GetDamageableInterface(); + virtual const idPresentableActor *GetActorInterface(); + virtual idPresentableActor *GetActorInterface_2(); + virtual const idPresentablePlayer *GetPlayerInterface(); + virtual idPresentablePlayer *GetPlayerInterface_2(); + virtual idPresentableProjectile *GetProjectileInterface(); + virtual idPresentableProjectile_Rocket *GetProjectileRocketInterface(); + virtual idPresentableProjectile_Homing *GetProjectileHomingInterface(); + virtual idPresentableProjectile_Grenade *GetProjectileGrenadeInterface(); + virtual idPresentableMultiplayerTrigger *GetMultiplayerTriggerInterface(); + virtual idPresentableWeaponStatic *GetWeaponStaticInterface(); + virtual idPresentableAI *GetAIInterface(); + virtual idPresentableProp *GetPropInterface(); + virtual idPresentableDoorAnimated *GetDoorAnimatedInterface(); + virtual idPresentableWeapon *GetWeaponInterface(); + virtual idOnlineVehicleDeathCameraPresentable *GetVehicleCameraInterface(); + virtual idPresentableReviveCamera *GetReviveCameraInterface(); + virtual idPresentableArmorPiece *GetArmorInterface(); + virtual idPresentablePusher *GetPusherInterface(); + virtual idPresentableTurret *GetTurretInterface(); + virtual idPresentableParticleEmitter *GetParticleEmitterInterface(); + virtual idPresentableCollisionTrigger *GetCollisionTriggerInterface(); + virtual idPresentableSpectatorCamera *GetSpectatorCameraInterface(); + virtual idPresentableAnimatedEntity *GetAnimatedPhysicsInterface(); + virtual void SetRenderModel(idRenderModel *, bool); + virtual bool ShouldSerializeRenderModelParms(); + virtual void StopSound_Predicted(const soundChannel_t); + virtual void Hide(bool); + virtual void Show(); + virtual void GetWorldTransform(idVec3 *, idMat3 *); + virtual idBounds *GetBounds(idBounds *result, int); + virtual idBounds *GetAbsBounds(idBounds *result, int); + virtual bool ShouldTriggerClientHitScanHit(); + virtual void ClientHitScanHit(int, int, int, const idDeclWeapon *, const idDeclProjectile *, int); + virtual void ClientHitScanHit_ClientFire(int, const idDeclWeapon *, int); + virtual void PredictHitScanHit(idPresentable *, float, const idVec3 *, const idVec3 *, const idDeclProjectile *, trace_t *); + virtual int GetPeerIndex(); + virtual bool IsTargetLockable(const idDeclAmmo *); + virtual float GetTotalCurHealth(); + virtual float GetTotalMaxHealth(); + virtual bool ShouldSaveForTimeTrial(); + virtual void StartFX(fxCondition_t, fxExtraCondition_t); + virtual void StopAllFX(); + virtual void UpdateFX(const idVec3 *, const idMat3 *, idFXManager *, const float, const float); + virtual void UpdateFX_2(const idVec3 *, const idMat3 *); + virtual void UpdateFX_3(const float, const float); + virtual void LocalStartFX(fxCondition_t); + virtual usableState_t GetOnlineUsableState(idPresentablePlayer *, int); + virtual void GetOnlineModifiedCrosshairInfo(const idPresentable *, const idFocusTrace *, const usableState_t, idCrosshairInfo *); + virtual idStrId *GetOnlineUsableText(idStrId *result); + virtual void BecomeReplicated(); + virtual int GetControllingPlayerIndex(); + virtual idPresentablePlayer *GetControllingPlayer(); + virtual bool IsLocallyControlled(); + virtual idWeapon *GetFiredWeapon(const idDeclWeapon *); + virtual void InitFXMgr(const idDeclFX *); + virtual void ShutdownFXMgr(); + virtual void UpdateClientCollision(const idVec3 *, const idMat3 *, const idVec3 *, const idMat3 *); + virtual bool ShouldLinkPresentableCollision(); + + int gateActivationTime; + int shutdownTime; + laserGateState_t currentGateState; + laserGateState_t requestedGateState; + const idDeclLaserGate *laserGateDecl; + idList laserBeams; + idList laserEndPoints; + bool collisionLastFrame; + idGatherQuery gatherQuery; +}; diff --git a/source/tungsten/game/clientgame/presentable/presentablemultiplayertrigger.h b/source/tungsten/game/clientgame/presentable/presentablemultiplayertrigger.h new file mode 100644 index 0000000..6fee034 --- /dev/null +++ b/source/tungsten/game/clientgame/presentable/presentablemultiplayertrigger.h @@ -0,0 +1,100 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\clientgame\presentable\presentablemultiplayertrigger.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15439; PDB kind: class. +class idPresentableMultiplayerTrigger : public idPresentable +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34010. + virtual ~idPresentableMultiplayerTrigger(); + virtual void Shutdown(); + virtual void ClientJobSync(); + virtual void ControlReleased(); + virtual inputSettings_t *GetInputSettings(inputSettings_t *result, idPresentablePlayer *); + virtual void Present(); + virtual void Serialize(idSerializer *); + virtual void PostSerializeRead(bool); + virtual void Interpolate(int, float); + virtual bool ShouldSerializeHidden(); + virtual bool ShouldInterpolate(); + virtual void ClientPredict(int, float); + virtual void ClientThink(int, float, bool); + virtual void ServerThink(int); + virtual bool Draw(idPresentablePlayer *); + virtual void SerializeFX(idSerializer *); + virtual void PostAlloc(); + virtual presentableType_t GetType(); + virtual idPresentableAnimatedEntity *GetAnimatedEntityInterface(); + virtual idPresentableVehicle *GetVehicleInterface(); + virtual idPresentableBreakable *GetBreakableInterface(); + virtual idPresentablePieceEmitter *GetPieceEmitterInterface(); + virtual idPresentableDamageable *GetDamageableInterface(); + virtual const idPresentableActor *GetActorInterface(); + virtual idPresentableActor *GetActorInterface_2(); + virtual const idPresentablePlayer *GetPlayerInterface(); + virtual idPresentablePlayer *GetPlayerInterface_2(); + virtual idPresentableProjectile *GetProjectileInterface(); + virtual idPresentableProjectile_Rocket *GetProjectileRocketInterface(); + virtual idPresentableProjectile_Homing *GetProjectileHomingInterface(); + virtual idPresentableProjectile_Grenade *GetProjectileGrenadeInterface(); + virtual idPresentableMultiplayerTrigger *GetMultiplayerTriggerInterface(); + virtual idPresentableWeaponStatic *GetWeaponStaticInterface(); + virtual idPresentableAI *GetAIInterface(); + virtual idPresentableProp *GetPropInterface(); + virtual idPresentableDoorAnimated *GetDoorAnimatedInterface(); + virtual idPresentableWeapon *GetWeaponInterface(); + virtual idOnlineVehicleDeathCameraPresentable *GetVehicleCameraInterface(); + virtual idPresentableReviveCamera *GetReviveCameraInterface(); + virtual idPresentableArmorPiece *GetArmorInterface(); + virtual idPresentablePusher *GetPusherInterface(); + virtual idPresentableTurret *GetTurretInterface(); + virtual idPresentableParticleEmitter *GetParticleEmitterInterface(); + virtual idPresentableCollisionTrigger *GetCollisionTriggerInterface(); + virtual idPresentableSpectatorCamera *GetSpectatorCameraInterface(); + virtual idPresentableAnimatedEntity *GetAnimatedPhysicsInterface(); + virtual void SetRenderModel(idRenderModel *, bool); + virtual bool ShouldSerializeRenderModelParms(); + virtual void StopSound_Predicted(const soundChannel_t); + virtual void Hide(bool); + virtual void Show(); + virtual void GetWorldTransform(idVec3 *, idMat3 *); + virtual idBounds *GetBounds(idBounds *result, int); + virtual idBounds *GetAbsBounds(idBounds *result, int); + virtual bool ShouldTriggerClientHitScanHit(); + virtual void ClientHitScanHit(int, int, int, const idDeclWeapon *, const idDeclProjectile *, int); + virtual void ClientHitScanHit_ClientFire(int, const idDeclWeapon *, int); + virtual void PredictHitScanHit(idPresentable *, float, const idVec3 *, const idVec3 *, const idDeclProjectile *, trace_t *); + virtual int GetPeerIndex(); + virtual bool IsTargetLockable(const idDeclAmmo *); + virtual float GetTotalCurHealth(); + virtual float GetTotalMaxHealth(); + virtual bool ShouldSaveForTimeTrial(); + virtual void StartFX(fxCondition_t, fxExtraCondition_t); + virtual void StopAllFX(); + virtual void UpdateFX(const idVec3 *, const idMat3 *, idFXManager *, const float, const float); + virtual void UpdateFX_2(const idVec3 *, const idMat3 *); + virtual void UpdateFX_3(const float, const float); + virtual void LocalStartFX(fxCondition_t); + virtual usableState_t GetOnlineUsableState(idPresentablePlayer *, int); + virtual void GetOnlineModifiedCrosshairInfo(const idPresentable *, const idFocusTrace *, const usableState_t, idCrosshairInfo *); + virtual idStrId *GetOnlineUsableText(idStrId *result); + virtual void BecomeReplicated(); + virtual int GetControllingPlayerIndex(); + virtual idPresentablePlayer *GetControllingPlayer(); + virtual bool IsLocallyControlled(); + virtual idWeapon *GetFiredWeapon(const idDeclWeapon *); + virtual void InitFXMgr(const idDeclFX *); + virtual void ShutdownFXMgr(); + virtual void UpdateClientCollision(const idVec3 *, const idMat3 *, const idVec3 *, const idMat3 *); + virtual bool ShouldLinkPresentableCollision(); + + idList touching; + idList oldTouching; + idMultiplayerTriggerStrategy *strategy; + idEntity *triggerEntity; +}; diff --git a/source/tungsten/game/clientgame/presentable/presentableparticleemitter.h b/source/tungsten/game/clientgame/presentable/presentableparticleemitter.h new file mode 100644 index 0000000..0830ab9 --- /dev/null +++ b/source/tungsten/game/clientgame/presentable/presentableparticleemitter.h @@ -0,0 +1,112 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\clientgame\presentable\presentableparticleemitter.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15504; PDB kind: class. +class __declspec(align(8)) idPresentableParticleEmitter : public idPresentable +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34011. + virtual ~idPresentableParticleEmitter(); + virtual void Shutdown(); + virtual void ClientJobSync(); + virtual void ControlReleased(); + virtual inputSettings_t *GetInputSettings(inputSettings_t *result, idPresentablePlayer *); + virtual void Present(); + virtual void Serialize(idSerializer *); + virtual void PostSerializeRead(bool); + virtual void Interpolate(int, float); + virtual bool ShouldSerializeHidden(); + virtual bool ShouldInterpolate(); + virtual void ClientPredict(int, float); + virtual void ClientThink(int, float, bool); + virtual void ServerThink(int); + virtual bool Draw(idPresentablePlayer *); + virtual void SerializeFX(idSerializer *); + virtual void PostAlloc(); + virtual presentableType_t GetType(); + virtual idPresentableAnimatedEntity *GetAnimatedEntityInterface(); + virtual idPresentableVehicle *GetVehicleInterface(); + virtual idPresentableBreakable *GetBreakableInterface(); + virtual idPresentablePieceEmitter *GetPieceEmitterInterface(); + virtual idPresentableDamageable *GetDamageableInterface(); + virtual const idPresentableActor *GetActorInterface(); + virtual idPresentableActor *GetActorInterface_2(); + virtual const idPresentablePlayer *GetPlayerInterface(); + virtual idPresentablePlayer *GetPlayerInterface_2(); + virtual idPresentableProjectile *GetProjectileInterface(); + virtual idPresentableProjectile_Rocket *GetProjectileRocketInterface(); + virtual idPresentableProjectile_Homing *GetProjectileHomingInterface(); + virtual idPresentableProjectile_Grenade *GetProjectileGrenadeInterface(); + virtual idPresentableMultiplayerTrigger *GetMultiplayerTriggerInterface(); + virtual idPresentableWeaponStatic *GetWeaponStaticInterface(); + virtual idPresentableAI *GetAIInterface(); + virtual idPresentableProp *GetPropInterface(); + virtual idPresentableDoorAnimated *GetDoorAnimatedInterface(); + virtual idPresentableWeapon *GetWeaponInterface(); + virtual idOnlineVehicleDeathCameraPresentable *GetVehicleCameraInterface(); + virtual idPresentableReviveCamera *GetReviveCameraInterface(); + virtual idPresentableArmorPiece *GetArmorInterface(); + virtual idPresentablePusher *GetPusherInterface(); + virtual idPresentableTurret *GetTurretInterface(); + virtual idPresentableParticleEmitter *GetParticleEmitterInterface(); + virtual idPresentableCollisionTrigger *GetCollisionTriggerInterface(); + virtual idPresentableSpectatorCamera *GetSpectatorCameraInterface(); + virtual idPresentableAnimatedEntity *GetAnimatedPhysicsInterface(); + virtual void SetRenderModel(idRenderModel *, bool); + virtual bool ShouldSerializeRenderModelParms(); + virtual void StopSound_Predicted(const soundChannel_t); + virtual void Hide(bool); + virtual void Show(); + virtual void GetWorldTransform(idVec3 *, idMat3 *); + virtual idBounds *GetBounds(idBounds *result, int); + virtual idBounds *GetAbsBounds(idBounds *result, int); + virtual bool ShouldTriggerClientHitScanHit(); + virtual void ClientHitScanHit(int, int, int, const idDeclWeapon *, const idDeclProjectile *, int); + virtual void ClientHitScanHit_ClientFire(int, const idDeclWeapon *, int); + virtual void PredictHitScanHit(idPresentable *, float, const idVec3 *, const idVec3 *, const idDeclProjectile *, trace_t *); + virtual int GetPeerIndex(); + virtual bool IsTargetLockable(const idDeclAmmo *); + virtual float GetTotalCurHealth(); + virtual float GetTotalMaxHealth(); + virtual bool ShouldSaveForTimeTrial(); + virtual void StartFX(fxCondition_t, fxExtraCondition_t); + virtual void StopAllFX(); + virtual void UpdateFX(const idVec3 *, const idMat3 *, idFXManager *, const float, const float); + virtual void UpdateFX_2(const idVec3 *, const idMat3 *); + virtual void UpdateFX_3(const float, const float); + virtual void LocalStartFX(fxCondition_t); + virtual usableState_t GetOnlineUsableState(idPresentablePlayer *, int); + virtual void GetOnlineModifiedCrosshairInfo(const idPresentable *, const idFocusTrace *, const usableState_t, idCrosshairInfo *); + virtual idStrId *GetOnlineUsableText(idStrId *result); + virtual void BecomeReplicated(); + virtual int GetControllingPlayerIndex(); + virtual idPresentablePlayer *GetControllingPlayer(); + virtual bool IsLocallyControlled(); + virtual idWeapon *GetFiredWeapon(const idDeclWeapon *); + virtual void InitFXMgr(const idDeclFX *); + virtual void ShutdownFXMgr(); + virtual void UpdateClientCollision(const idVec3 *, const idMat3 *, const idVec3 *, const idMat3 *); + virtual bool ShouldLinkPresentableCollision(); + virtual void TriggerShow(); + virtual void TriggerHide(); + virtual void SetParticle(const idDeclParticle *); + + const idDeclParticle *particleSystem; + netBoolEvent_t activated; + netBoolEvent_t deactivated; + idFadeHelper fade; + float fadeIn; + float fadeOut; + float alphaScale; + int smokeSystemRate; + idVec3 distributionScale; + idVec3 velocity; + idVec4 colorv4; + bool useGlobalShadows; + bool useSmokeSystem; +}; diff --git a/source/tungsten/game/clientgame/presentable/presentablepieceemitter.h b/source/tungsten/game/clientgame/presentable/presentablepieceemitter.h new file mode 100644 index 0000000..e2bfd11 --- /dev/null +++ b/source/tungsten/game/clientgame/presentable/presentablepieceemitter.h @@ -0,0 +1,116 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\clientgame\presentable\presentablepieceemitter.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15425; PDB kind: struct. +struct idPresentablePieceEmitter::emitPieceItem_t +{ + idVec3 pos; + idMat3 axis; + idVec3 impulsePoint; + idVec3 impulse; +}; + +// IDA Local Type ordinal 15426; PDB kind: class. +class __declspec(align(8)) idPresentablePieceEmitter : public idPresentable +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34012. + virtual ~idPresentablePieceEmitter(); + virtual void Shutdown(); + virtual void ClientJobSync(); + virtual void ControlReleased(); + virtual inputSettings_t *GetInputSettings(inputSettings_t *result, idPresentablePlayer *); + virtual void Present(); + virtual void Serialize(idSerializer *); + virtual void PostSerializeRead(bool); + virtual void Interpolate(int, float); + virtual bool ShouldSerializeHidden(); + virtual bool ShouldInterpolate(); + virtual void ClientPredict(int, float); + virtual void ClientThink(int, float, bool); + virtual void ServerThink(int); + virtual bool Draw(idPresentablePlayer *); + virtual void SerializeFX(idSerializer *); + virtual void PostAlloc(); + virtual presentableType_t GetType(); + virtual idPresentableAnimatedEntity *GetAnimatedEntityInterface(); + virtual idPresentableVehicle *GetVehicleInterface(); + virtual idPresentableBreakable *GetBreakableInterface(); + virtual idPresentablePieceEmitter *GetPieceEmitterInterface(); + virtual idPresentableDamageable *GetDamageableInterface(); + virtual const idPresentableActor *GetActorInterface(); + virtual idPresentableActor *GetActorInterface_2(); + virtual const idPresentablePlayer *GetPlayerInterface(); + virtual idPresentablePlayer *GetPlayerInterface_2(); + virtual idPresentableProjectile *GetProjectileInterface(); + virtual idPresentableProjectile_Rocket *GetProjectileRocketInterface(); + virtual idPresentableProjectile_Homing *GetProjectileHomingInterface(); + virtual idPresentableProjectile_Grenade *GetProjectileGrenadeInterface(); + virtual idPresentableMultiplayerTrigger *GetMultiplayerTriggerInterface(); + virtual idPresentableWeaponStatic *GetWeaponStaticInterface(); + virtual idPresentableAI *GetAIInterface(); + virtual idPresentableProp *GetPropInterface(); + virtual idPresentableDoorAnimated *GetDoorAnimatedInterface(); + virtual idPresentableWeapon *GetWeaponInterface(); + virtual idOnlineVehicleDeathCameraPresentable *GetVehicleCameraInterface(); + virtual idPresentableReviveCamera *GetReviveCameraInterface(); + virtual idPresentableArmorPiece *GetArmorInterface(); + virtual idPresentablePusher *GetPusherInterface(); + virtual idPresentableTurret *GetTurretInterface(); + virtual idPresentableParticleEmitter *GetParticleEmitterInterface(); + virtual idPresentableCollisionTrigger *GetCollisionTriggerInterface(); + virtual idPresentableSpectatorCamera *GetSpectatorCameraInterface(); + virtual idPresentableAnimatedEntity *GetAnimatedPhysicsInterface(); + virtual void SetRenderModel(idRenderModel *, bool); + virtual bool ShouldSerializeRenderModelParms(); + virtual void StopSound_Predicted(const soundChannel_t); + virtual void Hide(bool); + virtual void Show(); + virtual void GetWorldTransform(idVec3 *, idMat3 *); + virtual idBounds *GetBounds(idBounds *result, int); + virtual idBounds *GetAbsBounds(idBounds *result, int); + virtual bool ShouldTriggerClientHitScanHit(); + virtual void ClientHitScanHit(int, int, int, const idDeclWeapon *, const idDeclProjectile *, int); + virtual void ClientHitScanHit_ClientFire(int, const idDeclWeapon *, int); + virtual void PredictHitScanHit(idPresentable *, float, const idVec3 *, const idVec3 *, const idDeclProjectile *, trace_t *); + virtual int GetPeerIndex(); + virtual bool IsTargetLockable(const idDeclAmmo *); + virtual float GetTotalCurHealth(); + virtual float GetTotalMaxHealth(); + virtual bool ShouldSaveForTimeTrial(); + virtual void StartFX(fxCondition_t, fxExtraCondition_t); + virtual void StopAllFX(); + virtual void UpdateFX(const idVec3 *, const idMat3 *, idFXManager *, const float, const float); + virtual void UpdateFX_2(const idVec3 *, const idMat3 *); + virtual void UpdateFX_3(const float, const float); + virtual void LocalStartFX(fxCondition_t); + virtual usableState_t GetOnlineUsableState(idPresentablePlayer *, int); + virtual void GetOnlineModifiedCrosshairInfo(const idPresentable *, const idFocusTrace *, const usableState_t, idCrosshairInfo *); + virtual idStrId *GetOnlineUsableText(idStrId *result); + virtual void BecomeReplicated(); + virtual int GetControllingPlayerIndex(); + virtual idPresentablePlayer *GetControllingPlayer(); + virtual bool IsLocallyControlled(); + virtual idWeapon *GetFiredWeapon(const idDeclWeapon *); + virtual void InitFXMgr(const idDeclFX *); + virtual void ShutdownFXMgr(); + virtual void UpdateClientCollision(const idVec3 *, const idMat3 *, const idVec3 *, const idMat3 *); + virtual bool ShouldLinkPresentableCollision(); + + idEffectPhysicsPieceEmitter piecePhysics; + const idDeclImpactSound *impactTable; + float pieceMinBounceVelocity; + int pieceLifeSpan; + float pieceFriction; + float emitFovScale; + float emitModelDepthHack; + float pieceCollisionAgeDecay; + float pieceCollisionVolumeDecay; + idPresentablePieceEmitter::emitPieceItem_t emitPieceBuffer[10]; + int emitPieceBufferPos; +}; diff --git a/source/tungsten/game/clientgame/presentable/presentableplayer.h b/source/tungsten/game/clientgame/presentable/presentableplayer.h new file mode 100644 index 0000000..a09aa40 --- /dev/null +++ b/source/tungsten/game/clientgame/presentable/presentableplayer.h @@ -0,0 +1,487 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\clientgame\presentable\presentableplayer.h +// Recovered logical types: 18 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1179; PDB kind: enum. +enum idPresentablePlayer::idPlayerExplicitMotion_t::explicitMoveType_t : __int32 +{ + EXPLICIT_MOVE_NONE = 0x0, + EXPLICIT_MOVE_SINGLE_EXCLUSIVE = 0x1, + EXPLICIT_MOVE_SINGLE_ADDITIONAL = 0x2, +}; + +// IDA Local Type ordinal 1206; PDB kind: enum. +enum idPresentablePlayer::playerGuis_t : __int32 +{ + GUI_DELIVERY = 0x0, + GUI_JOBOFFER = 0x1, + GUI_JOBBOARD = 0x2, + GUI_MERCHANT = 0x3, + GUI_CLOTHING = 0x4, + GUI_RACES = 0x5, + GUI_JOB_DEBUG = 0x6, + GUI_PLAYTEST_DEBUG = 0x7, + GUI_GENERAL_GAME_USE = 0x8, + GUI_PLAYERGARAGE = 0x9, + GUI_TUNE_VEHICLE = 0xA, + GUI_TUNER_VEHICLE = 0xB, + GUI_INFO_BIG_NO_PIC = 0xC, + GUI_INFO_SMALL = 0xD, + GUI_INITIAL_ACTIVATE = 0xE, + GUI_SUBTITLE = 0xF, + GUI_INVENTORY = 0x10, + GUI_SIDEMISSION = 0x11, + GUI_VIEWNOTE = 0x12, + GUI_TOWTRUCK = 0x13, + GUI_TUTORIAL = 0x14, +}; + +// IDA Local Type ordinal 2131; PDB kind: enum. +enum idPresentablePlayer::additiveBlendType_t : __int32 +{ + ADDITIVE_VIEW_ANGLE_BLEND_FULL_OUT = 0x0, + ADDITIVE_VIEW_ANGLE_BLEND_IN = 0x1, + ADDITIVE_VIEW_ANGLE_BLEND_OUT = 0x2, + ADDITIVE_VIEW_ANGLE_BLEND_FULL_IN = 0x3, +}; + +// IDA Local Type ordinal 14754; PDB kind: class. +class __declspec(align(16)) idPresentablePlayer : public idPresentableActor +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34013. + virtual ~idPresentablePlayer(); + virtual void Shutdown(); + virtual void ClientJobSync(); + virtual void ControlReleased(); + virtual inputSettings_t *GetInputSettings(inputSettings_t *result, idPresentablePlayer *); + virtual void Present(); + virtual void Serialize(idSerializer *); + virtual void PostSerializeRead(bool); + virtual void Interpolate(int, float); + virtual bool ShouldSerializeHidden(); + virtual bool ShouldInterpolate(); + virtual void ClientPredict(int, float); + virtual void ClientThink(int, float, bool); + virtual void ServerThink(int); + virtual bool Draw(idPresentablePlayer *); + virtual void SerializeFX(idSerializer *); + virtual void PostAlloc(); + virtual presentableType_t GetType(); + virtual idPresentableAnimatedEntity *GetAnimatedEntityInterface(); + virtual idPresentableVehicle *GetVehicleInterface(); + virtual idPresentableBreakable *GetBreakableInterface(); + virtual idPresentablePieceEmitter *GetPieceEmitterInterface(); + virtual idPresentableDamageable *GetDamageableInterface(); + virtual const idPresentableActor *GetActorInterface(); + virtual idPresentableActor *GetActorInterface_2(); + virtual const idPresentablePlayer *GetPlayerInterface(); + virtual idPresentablePlayer *GetPlayerInterface_2(); + virtual idPresentableProjectile *GetProjectileInterface(); + virtual idPresentableProjectile_Rocket *GetProjectileRocketInterface(); + virtual idPresentableProjectile_Homing *GetProjectileHomingInterface(); + virtual idPresentableProjectile_Grenade *GetProjectileGrenadeInterface(); + virtual idPresentableMultiplayerTrigger *GetMultiplayerTriggerInterface(); + virtual idPresentableWeaponStatic *GetWeaponStaticInterface(); + virtual idPresentableAI *GetAIInterface(); + virtual idPresentableProp *GetPropInterface(); + virtual idPresentableDoorAnimated *GetDoorAnimatedInterface(); + virtual idPresentableWeapon *GetWeaponInterface(); + virtual idOnlineVehicleDeathCameraPresentable *GetVehicleCameraInterface(); + virtual idPresentableReviveCamera *GetReviveCameraInterface(); + virtual idPresentableArmorPiece *GetArmorInterface(); + virtual idPresentablePusher *GetPusherInterface(); + virtual idPresentableTurret *GetTurretInterface(); + virtual idPresentableParticleEmitter *GetParticleEmitterInterface(); + virtual idPresentableCollisionTrigger *GetCollisionTriggerInterface(); + virtual idPresentableSpectatorCamera *GetSpectatorCameraInterface(); + virtual idPresentableAnimatedEntity *GetAnimatedPhysicsInterface(); + virtual void SetRenderModel(idRenderModel *, bool); + virtual bool ShouldSerializeRenderModelParms(); + virtual void StopSound_Predicted(const soundChannel_t); + virtual void Hide(bool); + virtual void Show(); + virtual void GetWorldTransform(idVec3 *, idMat3 *); + virtual idBounds *GetBounds(idBounds *result, int); + virtual idBounds *GetAbsBounds(idBounds *result, int); + virtual bool ShouldTriggerClientHitScanHit(); + virtual void ClientHitScanHit(int, int, int, const idDeclWeapon *, const idDeclProjectile *, int); + virtual void ClientHitScanHit_ClientFire(int, const idDeclWeapon *, int); + virtual void PredictHitScanHit(idPresentable *, float, const idVec3 *, const idVec3 *, const idDeclProjectile *, trace_t *); + virtual int GetPeerIndex(); + virtual bool IsTargetLockable(const idDeclAmmo *); + virtual float GetTotalCurHealth(); + virtual float GetTotalMaxHealth(); + virtual bool ShouldSaveForTimeTrial(); + virtual void StartFX(fxCondition_t, fxExtraCondition_t); + virtual void StopAllFX(); + virtual void UpdateFX(const idVec3 *, const idMat3 *, idFXManager *, const float, const float); + virtual void UpdateFX_2(const idVec3 *, const idMat3 *); + virtual void UpdateFX_3(const float, const float); + virtual void LocalStartFX(fxCondition_t); + virtual usableState_t GetOnlineUsableState(idPresentablePlayer *, int); + virtual void GetOnlineModifiedCrosshairInfo(const idPresentable *, const idFocusTrace *, const usableState_t, idCrosshairInfo *); + virtual idStrId *GetOnlineUsableText(idStrId *result); + virtual void BecomeReplicated(); + virtual int GetControllingPlayerIndex(); + virtual idPresentablePlayer *GetControllingPlayer(); + virtual bool IsLocallyControlled(); + virtual idWeapon *GetFiredWeapon(const idDeclWeapon *); + virtual void InitFXMgr(const idDeclFX *); + virtual void ShutdownFXMgr(); + virtual void UpdateClientCollision(const idVec3 *, const idMat3 *, const idVec3 *, const idMat3 *); + virtual bool ShouldLinkPresentableCollision(); + virtual idInventoryCollection *GetInventory(); + virtual const idInventoryCollection *GetInventory_2(); + virtual bool ShouldEnableSphereCollision(); + virtual void InventoryAdded(idInventoryItem *, int, bool); + virtual idWeapon *GetEquippedWeapon(); + virtual idWeapon *GetEquippedWeapon(const equipSlot_t); + virtual void OnDamage(idEntity *, idEntity *, const idDeclDamage *); + virtual bool IsDead(); + virtual const idActorModifierManager *GetActorModifierManager(); + virtual idActorModifierManager *GetActorModifierManager(); + virtual void HandleActorModifierMessage(unsigned int, unsigned __int8); + virtual float GetSpeedScale(); + virtual float GetDamageScale(); + virtual bool IsOverdriveDisabled(); + virtual void HudThink(); + virtual void UpdateSerializedView(); + virtual unsigned __int8 GetPeerMaskForPrediction(); + virtual int StartSoundShader_Predicted(const soundChannel_t, const idSoundShader *, int); + + idPresentablePlayer::damageDealtFeedbackItem_t damageDealtBuffer[4]; + int damageDealtBufferIndex; + int lastDamageDealtBufferIndex; + idPresentablePlayer::coopCalloutItem_t calloutHistory[4]; + int calloutHistoryIndex; + int lastCalloutHistoryIndex; + idPresentablePlayer::coopScoreItem_t coopScoreHistory[4]; + int coopScoringIndex; + int lastCoopScoringIndex; + bool renderLegendTitle; + idStrId coopLegendTitle; + idStaticList screenPrtState; + idPresentablePlayer::screenParticleState_t fxScreenPrtState[4]; + idPresentablePtr uniqueTrackedProjectile; + int uniqueTrackedProjectileClientGameFrameWhenFired; + idPresentablePlayer::idPlayerCameraShake cameraShake; + bool stepUpSpringCrouchState; + idSpring stepUpViewSpring; + idSpring stepUpHandsSpring; + float leanRoll; + idPresentablePlayer::idPlayerExplicitMotion_t explicitMotion; + const idDeclPlayerProps *playerProps; + int clientPlayerInputFrame; + int serverOverridePositionTime; + idView view; + idAngles localMinViewAngles; + idAngles localMaxViewAngles; + localView_t localView; + idPlayerViewCallbacks *viewCallbacks; + clientFireInfo_t clientFire; + int throwCount; + idInventoryCollection predictedInventory; + idInventoryCollection *activeInventory; + bool physicsInitialized; + bool firstPredictionSerialize; + playerPState_t serializedState; + idPresentablePlayer::moveBufferItem_t moveBuffer[64]; + int lastRecordedMoveBufferIndex; + idPresentablePlayer::damageFeedbackBufferItem_t damageFeedback[10]; + int damageFeedbackBufferPos; + int serializeDamageFeedbackCount; + idPresentablePlayer::attackerInfo_t attackerInfo[3]; + idList,5> controlledPresentables; + int wrongWeapons; + int wrongAmmo; + idEntityInfluenceTrail influence; + idPlayerHud playerHud; + idHudInfo hudInfo; + unsigned __int8 serializedHudInfoBuffer[444]; + bool ignoreTutorialPause; + bool ignoreTowTruckPause; + idPhysics_Player physicsObj; + idHands hands; + idBobCycle bobCycle; + idUCmdTracker ucmdTracker1; + idUCmdTracker ucmdTracker2; + idUCmdInhibit::inhibitFlags_t inhibitFlags; + idVec3 firstPersonViewOrigin; + idMat3 firstPersonViewAxis; + idVec3 serializedViewOrigin; + idMat3 serializedviewAxis; + idVec3 originError; + float deferredOriginOffsetZ; + float lastFov; + idInterpolate zoomFov; + bool wantZoom; + idEntityPtr missionPin; + idEntityPtr controlledEntity; + idWeaponKick weaponKick[5]; + float savedViewPitchForKick; + idAngles addViewAngles; + idVec3 addViweOffset; + int addViewAnglDoneAtTime; + idPresentablePlayer::additiveBlendType_t addViewAnglBlendState; + idInterpolate baseWeaponSpread; + idInterpolate kickWeaponSpread; + idQuat perfectOriginRotation; + int perfectOriginDuration; + int perfectOriginStartTime; + __int8 hasOddball : 1; + __int8 hasQuad : 1; + __int8 incapacitated : 1; + __int8 spectating : 1; + __int8 inhibited : 1; + __int8 noClip : 1; + __int8 zoomedIn : 1; + __int8 isDead : 1; + __int8 restrictedGamePlayCanRun : 1; + __int8 restrictedGamePlay : 1; + __int8 perfectMovement : 1; + __int8 inhibitFireControl : 1; + __int8 isAFK : 1; + __int8 showDeadBody : 1; + __int8 canRespawn : 1; + __int8 isBully : 1; + unsigned __int8 : 4; + __int8 forceIgnoreLanding : 1; + __int8 forceSoftLanding : 1; + __int8 inhibitChangeWeapon : 1; + __int8 inhibitRaiseWeapon : 1; + int disableLandingResultsFrames; + const idDeclAmmo *pendingAmmo; + int pendingQuickWeapon; + bool useIntroBringUp; + int nextAmmoChangeTime; + int nextWeaponChangeTime; + int weaponButtonPressTime; + int ammoButtonPressTime; + int inhibitFireControlStartTime; + idWeapon::weaponState_t weaponFiremodeAnimStateRight; + idWeapon::weaponState_t weaponFiremodeAnimStateLeft; + int lastWeaponSlotRight; + int lastWeaponSlotLeft; + burstMode_t lastBurstModeRight; + burstMode_t lastBurstModeLeft; + idLaserCutter::functionalityLens_t lastFunctionalityLens; + float staminaCharge; + int previousStaminaCharge; + float staminaPercent; + float staminaStopTime; + float staminaStartTime; + bool requireSprintButtonrelease; + bool isSprinting; + bool wasSprinting; + bool inInteractionView; + bool isTurretControl; + int respawnCount; + decayParams_s standDecay; + decayParams_s crouchDecay; + idFocusTracker_Player focusTracker; + idEnvironmentAnalyzer environmentAnalyzer; + netBoolEvent_t killed; + netBoolEvent_t respawn; + netBoolEvent_t teleported; + netBoolEvent_t vehicleExited; + int pain_debounce_time; + int nextBeatTime; + float breath_sprintScale; + bool heartBeatLub; + bool playDamagedBreathing; + const idDeclTutorialEvent *currentTutorialGuiDecl; + idPresentablePlayer::deathMessage_t deathInfo; + idSubtitleSequencer subtitleSequencer; + int subtitleStartTime; + idRenderModelAugmentOutline *outlineModel; + idAimAssist aimAssist; + idSWF *loadedGuis[21]; + idStr guiNames[21]; + bool purgableGuis[21]; + bool challengeLeavingSoon; + bool challengeRestartingSoon; + bool challengeLocalRestart; + bool challengeRemoteRestart; + int challengeEndTime; + float lastDecalValue; + bool wasPaused; + idList postGameItems; + int roverBombSoundCounter; + int localRoverBombSoundCounter; + bool disableSubtitles; + idPresentablePlayer::idSWFScriptFunction_goToMission scriptFunction_goToMission; + idPresentablePlayer::idSWFScriptFunction_resumeMap scriptFunction_resumeMap; + int quickUseFailedTime; + bool sentOfficialSnap; + bool quickSelectUsed; + bool isGeneralGuiCardGame; +}; + +// IDA Local Type ordinal 15305; PDB kind: struct. +struct idPresentablePlayer::damageDealtFeedbackItem_t +{ + idPresentablePtr victim; +}; + +// IDA Local Type ordinal 15308; PDB kind: struct. +struct idPresentablePlayer::coopCalloutItem_t +{ + const idDeclOnlineScoringCallout *callout; + int scoreIndex; +}; + +// IDA Local Type ordinal 15309; PDB kind: struct. +struct idPresentablePlayer::coopScoreItem_t +{ + idVec3 worldPosition; + int score; + int time; + int index; +}; + +// IDA Local Type ordinal 15310; PDB kind: struct. +struct __declspec(align(4)) idPresentablePlayer::screenParticleState_t +{ + idRenderModel *pModel; + float excludeAngle; + int fadeStartTime; + int fadeEndTime; + bool isActive; +}; + +// IDA Local Type ordinal 15313; PDB kind: struct. +struct idPresentablePlayer::idPlayerCameraShake +{ + bool active; + float startTime; + float scale; + float decay; +}; + +// IDA Local Type ordinal 15315; PDB kind: struct. +struct idPresentablePlayer::idPlayerExplicitMotion_t +{ + idVec3 right; + idVec3 up; + idVec3 forward; + idVec3 lastPos; + idPresentablePlayer::idPlayerExplicitMotion_t::explicitMoveType_t moveType; + playerExplicitMove_t singleMove; + playerExplicitMove_t singleMove2; +}; + +// IDA Local Type ordinal 15333; PDB kind: struct. +struct __declspec(align(4)) idPresentablePlayer::moveBufferItem_t +{ + usercmd_t prevCmd; + usercmd_t curCmd; + idAngles viewAngles; + int startTime; + int endTime; + idVec3 origin; + float speed; + unsigned __int8 predictionBits; +}; + +// IDA Local Type ordinal 15334; PDB kind: struct. +struct idPresentablePlayer::damageFeedbackBufferItem_t +{ + float damage; + const idDeclDamage *damageDef; + idPresentablePtr attacker; + idVec3 impactPoint; + idVec3 impactDir; + idVec3 impactKick; + int impactOverrideTimer; +}; + +// IDA Local Type ordinal 15335; PDB kind: struct. +struct idPresentablePlayer::attackerInfo_t +{ + idPresentablePtr attacker; + float damageDone; + float spikeDamage; +}; + +// IDA Local Type ordinal 15384; PDB kind: struct. +struct __declspec(align(4)) idPresentablePlayer::deathMessage_t +{ + idStr attacker; + idStr attackerEmblem; + const idDeclDamage *damageDef; + bool isKilledByPlayer; + bool isTeamKill; + bool isSuicide; + bool hasQuad; + bool show; +}; + +// IDA Local Type ordinal 15402; PDB kind: class. +class idPresentablePlayer::idSWFScriptFunction_goToMission : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15403. + virtual ~idSWFScriptFunction_goToMission(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 15404; PDB kind: class. +class idPresentablePlayer::idSWFScriptFunction_resumeMap : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15405. + virtual ~idSWFScriptFunction_resumeMap(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 20310; PDB kind: class. +class idPresentablePlayer::ShowTutorialGui::__l32::idSWFScriptFunction_waitInput : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20311. + virtual ~idSWFScriptFunction_waitInput(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + const idDeclTutorialEvent *decl; + idSWF *gui; + idEntity *activatingEntity; + idPlayer *player; + idStr actionCheck; +}; + +// IDA Local Type ordinal 20312; PDB kind: class. +class idPresentablePlayer::ShowTutorialGui::__l31::idSWFScriptFunction_DeactivateCallback : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20313. + virtual ~idSWFScriptFunction_DeactivateCallback(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idSWF *gui; + idEntity *activatingEntity; + idPlayer *player; + const idDeclTutorialEvent *decl; +}; diff --git a/source/tungsten/game/clientgame/presentable/presentableprojectile.h b/source/tungsten/game/clientgame/presentable/presentableprojectile.h new file mode 100644 index 0000000..b130724 --- /dev/null +++ b/source/tungsten/game/clientgame/presentable/presentableprojectile.h @@ -0,0 +1,420 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\clientgame\presentable\presentableprojectile.h +// Recovered logical types: 5 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1039; PDB kind: enum. +enum idPresentableProjectile_Homing::homingState_t : __int32 +{ + LAUNCHING = 0x0, + FLYOUT = 0x1, + ACQUIRING = 0x2, +}; + +// IDA Local Type ordinal 15429; PDB kind: class. +class idPresentableProjectile : public idPresentableAnimatedEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34014. + virtual ~idPresentableProjectile(); + virtual void Shutdown(); + virtual void ClientJobSync(); + virtual void ControlReleased(); + virtual inputSettings_t *GetInputSettings(inputSettings_t *result, idPresentablePlayer *); + virtual void Present(); + virtual void Serialize(idSerializer *); + virtual void PostSerializeRead(bool); + virtual void Interpolate(int, float); + virtual bool ShouldSerializeHidden(); + virtual bool ShouldInterpolate(); + virtual void ClientPredict(int, float); + virtual void ClientThink(int, float, bool); + virtual void ServerThink(int); + virtual bool Draw(idPresentablePlayer *); + virtual void SerializeFX(idSerializer *); + virtual void PostAlloc(); + virtual presentableType_t GetType(); + virtual idPresentableAnimatedEntity *GetAnimatedEntityInterface(); + virtual idPresentableVehicle *GetVehicleInterface(); + virtual idPresentableBreakable *GetBreakableInterface(); + virtual idPresentablePieceEmitter *GetPieceEmitterInterface(); + virtual idPresentableDamageable *GetDamageableInterface(); + virtual const idPresentableActor *GetActorInterface(); + virtual idPresentableActor *GetActorInterface_2(); + virtual const idPresentablePlayer *GetPlayerInterface(); + virtual idPresentablePlayer *GetPlayerInterface_2(); + virtual idPresentableProjectile *GetProjectileInterface(); + virtual idPresentableProjectile_Rocket *GetProjectileRocketInterface(); + virtual idPresentableProjectile_Homing *GetProjectileHomingInterface(); + virtual idPresentableProjectile_Grenade *GetProjectileGrenadeInterface(); + virtual idPresentableMultiplayerTrigger *GetMultiplayerTriggerInterface(); + virtual idPresentableWeaponStatic *GetWeaponStaticInterface(); + virtual idPresentableAI *GetAIInterface(); + virtual idPresentableProp *GetPropInterface(); + virtual idPresentableDoorAnimated *GetDoorAnimatedInterface(); + virtual idPresentableWeapon *GetWeaponInterface(); + virtual idOnlineVehicleDeathCameraPresentable *GetVehicleCameraInterface(); + virtual idPresentableReviveCamera *GetReviveCameraInterface(); + virtual idPresentableArmorPiece *GetArmorInterface(); + virtual idPresentablePusher *GetPusherInterface(); + virtual idPresentableTurret *GetTurretInterface(); + virtual idPresentableParticleEmitter *GetParticleEmitterInterface(); + virtual idPresentableCollisionTrigger *GetCollisionTriggerInterface(); + virtual idPresentableSpectatorCamera *GetSpectatorCameraInterface(); + virtual idPresentableAnimatedEntity *GetAnimatedPhysicsInterface(); + virtual void SetRenderModel(idRenderModel *, bool); + virtual bool ShouldSerializeRenderModelParms(); + virtual void StopSound_Predicted(const soundChannel_t); + virtual void Hide(bool); + virtual void Show(); + virtual void GetWorldTransform(idVec3 *, idMat3 *); + virtual idBounds *GetBounds(idBounds *result, int); + virtual idBounds *GetAbsBounds(idBounds *result, int); + virtual bool ShouldTriggerClientHitScanHit(); + virtual void ClientHitScanHit(int, int, int, const idDeclWeapon *, const idDeclProjectile *, int); + virtual void ClientHitScanHit_ClientFire(int, const idDeclWeapon *, int); + virtual void PredictHitScanHit(idPresentable *, float, const idVec3 *, const idVec3 *, const idDeclProjectile *, trace_t *); + virtual int GetPeerIndex(); + virtual bool IsTargetLockable(const idDeclAmmo *); + virtual float GetTotalCurHealth(); + virtual float GetTotalMaxHealth(); + virtual bool ShouldSaveForTimeTrial(); + virtual void StartFX(fxCondition_t, fxExtraCondition_t); + virtual void StopAllFX(); + virtual void UpdateFX(const idVec3 *, const idMat3 *, idFXManager *, const float, const float); + virtual void UpdateFX_2(const idVec3 *, const idMat3 *); + virtual void UpdateFX_3(const float, const float); + virtual void LocalStartFX(fxCondition_t); + virtual usableState_t GetOnlineUsableState(idPresentablePlayer *, int); + virtual void GetOnlineModifiedCrosshairInfo(const idPresentable *, const idFocusTrace *, const usableState_t, idCrosshairInfo *); + virtual idStrId *GetOnlineUsableText(idStrId *result); + virtual void BecomeReplicated(); + virtual int GetControllingPlayerIndex(); + virtual idPresentablePlayer *GetControllingPlayer(); + virtual bool IsLocallyControlled(); + virtual idWeapon *GetFiredWeapon(const idDeclWeapon *); + virtual void InitFXMgr(const idDeclFX *); + virtual void ShutdownFXMgr(); + virtual void UpdateClientCollision(const idVec3 *, const idMat3 *, const idVec3 *, const idMat3 *); + virtual bool ShouldLinkPresentableCollision(); + virtual idInventoryCollection *GetInventory(); + virtual const idInventoryCollection *GetInventory_2(); + virtual bool ShouldEnableSphereCollision(); + virtual void InventoryAdded(idInventoryItem *, int, bool); + virtual bool IsDead(); + virtual void InternalClientLaunch(idPresentable *, const idVec3 *, const idMat3 *, const idProjectileTarget *, float, int); + virtual void UpdateLaserDot(); + + const idDeclProjectile *projectileDecl; + projectileState_t state; + idPhysics *projectilePhysics; + idPresentablePtr attacker; + bool playingWarningSound; + idVec3 launchOrigin; + idMat3 launchAxis; + bool launched; + bool hasQuad; + idVec3 smoothOrigin; + idMat3 smoothAxis; + int launchTime; + idMat3 intitialFireAxis; +}; + +// IDA Local Type ordinal 15432; PDB kind: class. +class idPresentableProjectile_Rocket : public idPresentableProjectile +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34120. + virtual ~idPresentableProjectile_Rocket(); + virtual void Shutdown(); + virtual void ClientJobSync(); + virtual void ControlReleased(); + virtual inputSettings_t *GetInputSettings(inputSettings_t *result, idPresentablePlayer *); + virtual void Present(); + virtual void Serialize(idSerializer *); + virtual void PostSerializeRead(bool); + virtual void Interpolate(int, float); + virtual bool ShouldSerializeHidden(); + virtual bool ShouldInterpolate(); + virtual void ClientPredict(int, float); + virtual void ClientThink(int, float, bool); + virtual void ServerThink(int); + virtual bool Draw(idPresentablePlayer *); + virtual void SerializeFX(idSerializer *); + virtual void PostAlloc(); + virtual presentableType_t GetType(); + virtual idPresentableAnimatedEntity *GetAnimatedEntityInterface(); + virtual idPresentableVehicle *GetVehicleInterface(); + virtual idPresentableBreakable *GetBreakableInterface(); + virtual idPresentablePieceEmitter *GetPieceEmitterInterface(); + virtual idPresentableDamageable *GetDamageableInterface(); + virtual const idPresentableActor *GetActorInterface(); + virtual idPresentableActor *GetActorInterface_2(); + virtual const idPresentablePlayer *GetPlayerInterface(); + virtual idPresentablePlayer *GetPlayerInterface_2(); + virtual idPresentableProjectile *GetProjectileInterface(); + virtual idPresentableProjectile_Rocket *GetProjectileRocketInterface(); + virtual idPresentableProjectile_Homing *GetProjectileHomingInterface(); + virtual idPresentableProjectile_Grenade *GetProjectileGrenadeInterface(); + virtual idPresentableMultiplayerTrigger *GetMultiplayerTriggerInterface(); + virtual idPresentableWeaponStatic *GetWeaponStaticInterface(); + virtual idPresentableAI *GetAIInterface(); + virtual idPresentableProp *GetPropInterface(); + virtual idPresentableDoorAnimated *GetDoorAnimatedInterface(); + virtual idPresentableWeapon *GetWeaponInterface(); + virtual idOnlineVehicleDeathCameraPresentable *GetVehicleCameraInterface(); + virtual idPresentableReviveCamera *GetReviveCameraInterface(); + virtual idPresentableArmorPiece *GetArmorInterface(); + virtual idPresentablePusher *GetPusherInterface(); + virtual idPresentableTurret *GetTurretInterface(); + virtual idPresentableParticleEmitter *GetParticleEmitterInterface(); + virtual idPresentableCollisionTrigger *GetCollisionTriggerInterface(); + virtual idPresentableSpectatorCamera *GetSpectatorCameraInterface(); + virtual idPresentableAnimatedEntity *GetAnimatedPhysicsInterface(); + virtual void SetRenderModel(idRenderModel *, bool); + virtual bool ShouldSerializeRenderModelParms(); + virtual void StopSound_Predicted(const soundChannel_t); + virtual void Hide(bool); + virtual void Show(); + virtual void GetWorldTransform(idVec3 *, idMat3 *); + virtual idBounds *GetBounds(idBounds *result, int); + virtual idBounds *GetAbsBounds(idBounds *result, int); + virtual bool ShouldTriggerClientHitScanHit(); + virtual void ClientHitScanHit(int, int, int, const idDeclWeapon *, const idDeclProjectile *, int); + virtual void ClientHitScanHit_ClientFire(int, const idDeclWeapon *, int); + virtual void PredictHitScanHit(idPresentable *, float, const idVec3 *, const idVec3 *, const idDeclProjectile *, trace_t *); + virtual int GetPeerIndex(); + virtual bool IsTargetLockable(const idDeclAmmo *); + virtual float GetTotalCurHealth(); + virtual float GetTotalMaxHealth(); + virtual bool ShouldSaveForTimeTrial(); + virtual void StartFX(fxCondition_t, fxExtraCondition_t); + virtual void StopAllFX(); + virtual void UpdateFX(const idVec3 *, const idMat3 *, idFXManager *, const float, const float); + virtual void UpdateFX_2(const idVec3 *, const idMat3 *); + virtual void UpdateFX_3(const float, const float); + virtual void LocalStartFX(fxCondition_t); + virtual usableState_t GetOnlineUsableState(idPresentablePlayer *, int); + virtual void GetOnlineModifiedCrosshairInfo(const idPresentable *, const idFocusTrace *, const usableState_t, idCrosshairInfo *); + virtual idStrId *GetOnlineUsableText(idStrId *result); + virtual void BecomeReplicated(); + virtual int GetControllingPlayerIndex(); + virtual idPresentablePlayer *GetControllingPlayer(); + virtual bool IsLocallyControlled(); + virtual idWeapon *GetFiredWeapon(const idDeclWeapon *); + virtual void InitFXMgr(const idDeclFX *); + virtual void ShutdownFXMgr(); + virtual void UpdateClientCollision(const idVec3 *, const idMat3 *, const idVec3 *, const idMat3 *); + virtual bool ShouldLinkPresentableCollision(); + virtual idInventoryCollection *GetInventory(); + virtual const idInventoryCollection *GetInventory_2(); + virtual bool ShouldEnableSphereCollision(); + virtual void InventoryAdded(idInventoryItem *, int, bool); + virtual bool IsDead(); + virtual void InternalClientLaunch(idPresentable *, const idVec3 *, const idMat3 *, const idProjectileTarget *, float, int); + virtual void UpdateLaserDot(); + virtual idVec3 *GetInitialDir(idVec3 *result, const idMat3 *); + + idPhysics_RigidBody physicsObj; + int calcThrustDelay; + float goalSpeed; +}; + +// IDA Local Type ordinal 15437; PDB kind: class. +class idPresentableProjectile_Homing : public idPresentableProjectile_Rocket +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34165. + virtual ~idPresentableProjectile_Homing(); + virtual void Shutdown(); + virtual void ClientJobSync(); + virtual void ControlReleased(); + virtual inputSettings_t *GetInputSettings(inputSettings_t *result, idPresentablePlayer *); + virtual void Present(); + virtual void Serialize(idSerializer *); + virtual void PostSerializeRead(bool); + virtual void Interpolate(int, float); + virtual bool ShouldSerializeHidden(); + virtual bool ShouldInterpolate(); + virtual void ClientPredict(int, float); + virtual void ClientThink(int, float, bool); + virtual void ServerThink(int); + virtual bool Draw(idPresentablePlayer *); + virtual void SerializeFX(idSerializer *); + virtual void PostAlloc(); + virtual presentableType_t GetType(); + virtual idPresentableAnimatedEntity *GetAnimatedEntityInterface(); + virtual idPresentableVehicle *GetVehicleInterface(); + virtual idPresentableBreakable *GetBreakableInterface(); + virtual idPresentablePieceEmitter *GetPieceEmitterInterface(); + virtual idPresentableDamageable *GetDamageableInterface(); + virtual const idPresentableActor *GetActorInterface(); + virtual idPresentableActor *GetActorInterface_2(); + virtual const idPresentablePlayer *GetPlayerInterface(); + virtual idPresentablePlayer *GetPlayerInterface_2(); + virtual idPresentableProjectile *GetProjectileInterface(); + virtual idPresentableProjectile_Rocket *GetProjectileRocketInterface(); + virtual idPresentableProjectile_Homing *GetProjectileHomingInterface(); + virtual idPresentableProjectile_Grenade *GetProjectileGrenadeInterface(); + virtual idPresentableMultiplayerTrigger *GetMultiplayerTriggerInterface(); + virtual idPresentableWeaponStatic *GetWeaponStaticInterface(); + virtual idPresentableAI *GetAIInterface(); + virtual idPresentableProp *GetPropInterface(); + virtual idPresentableDoorAnimated *GetDoorAnimatedInterface(); + virtual idPresentableWeapon *GetWeaponInterface(); + virtual idOnlineVehicleDeathCameraPresentable *GetVehicleCameraInterface(); + virtual idPresentableReviveCamera *GetReviveCameraInterface(); + virtual idPresentableArmorPiece *GetArmorInterface(); + virtual idPresentablePusher *GetPusherInterface(); + virtual idPresentableTurret *GetTurretInterface(); + virtual idPresentableParticleEmitter *GetParticleEmitterInterface(); + virtual idPresentableCollisionTrigger *GetCollisionTriggerInterface(); + virtual idPresentableSpectatorCamera *GetSpectatorCameraInterface(); + virtual idPresentableAnimatedEntity *GetAnimatedPhysicsInterface(); + virtual void SetRenderModel(idRenderModel *, bool); + virtual bool ShouldSerializeRenderModelParms(); + virtual void StopSound_Predicted(const soundChannel_t); + virtual void Hide(bool); + virtual void Show(); + virtual void GetWorldTransform(idVec3 *, idMat3 *); + virtual idBounds *GetBounds(idBounds *result, int); + virtual idBounds *GetAbsBounds(idBounds *result, int); + virtual bool ShouldTriggerClientHitScanHit(); + virtual void ClientHitScanHit(int, int, int, const idDeclWeapon *, const idDeclProjectile *, int); + virtual void ClientHitScanHit_ClientFire(int, const idDeclWeapon *, int); + virtual void PredictHitScanHit(idPresentable *, float, const idVec3 *, const idVec3 *, const idDeclProjectile *, trace_t *); + virtual int GetPeerIndex(); + virtual bool IsTargetLockable(const idDeclAmmo *); + virtual float GetTotalCurHealth(); + virtual float GetTotalMaxHealth(); + virtual bool ShouldSaveForTimeTrial(); + virtual void StartFX(fxCondition_t, fxExtraCondition_t); + virtual void StopAllFX(); + virtual void UpdateFX(const idVec3 *, const idMat3 *, idFXManager *, const float, const float); + virtual void UpdateFX_2(const idVec3 *, const idMat3 *); + virtual void UpdateFX_3(const float, const float); + virtual void LocalStartFX(fxCondition_t); + virtual usableState_t GetOnlineUsableState(idPresentablePlayer *, int); + virtual void GetOnlineModifiedCrosshairInfo(const idPresentable *, const idFocusTrace *, const usableState_t, idCrosshairInfo *); + virtual idStrId *GetOnlineUsableText(idStrId *result); + virtual void BecomeReplicated(); + virtual int GetControllingPlayerIndex(); + virtual idPresentablePlayer *GetControllingPlayer(); + virtual bool IsLocallyControlled(); + virtual idWeapon *GetFiredWeapon(const idDeclWeapon *); + virtual void InitFXMgr(const idDeclFX *); + virtual void ShutdownFXMgr(); + virtual void UpdateClientCollision(const idVec3 *, const idMat3 *, const idVec3 *, const idMat3 *); + virtual bool ShouldLinkPresentableCollision(); + virtual idInventoryCollection *GetInventory(); + virtual const idInventoryCollection *GetInventory_2(); + virtual bool ShouldEnableSphereCollision(); + virtual void InventoryAdded(idInventoryItem *, int, bool); + virtual bool IsDead(); + virtual void InternalClientLaunch(idPresentable *, const idVec3 *, const idMat3 *, const idProjectileTarget *, float, int); + virtual void UpdateLaserDot(); + virtual idVec3 *GetInitialDir(idVec3 *result, const idMat3 *); + + idPresentableProjectile_Homing::homingState_t homingState; + idProjectileTarget target; +}; + +// IDA Local Type ordinal 15438; PDB kind: class. +class idPresentableProjectile_Grenade : public idPresentableProjectile +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34119. + virtual ~idPresentableProjectile_Grenade(); + virtual void Shutdown(); + virtual void ClientJobSync(); + virtual void ControlReleased(); + virtual inputSettings_t *GetInputSettings(inputSettings_t *result, idPresentablePlayer *); + virtual void Present(); + virtual void Serialize(idSerializer *); + virtual void PostSerializeRead(bool); + virtual void Interpolate(int, float); + virtual bool ShouldSerializeHidden(); + virtual bool ShouldInterpolate(); + virtual void ClientPredict(int, float); + virtual void ClientThink(int, float, bool); + virtual void ServerThink(int); + virtual bool Draw(idPresentablePlayer *); + virtual void SerializeFX(idSerializer *); + virtual void PostAlloc(); + virtual presentableType_t GetType(); + virtual idPresentableAnimatedEntity *GetAnimatedEntityInterface(); + virtual idPresentableVehicle *GetVehicleInterface(); + virtual idPresentableBreakable *GetBreakableInterface(); + virtual idPresentablePieceEmitter *GetPieceEmitterInterface(); + virtual idPresentableDamageable *GetDamageableInterface(); + virtual const idPresentableActor *GetActorInterface(); + virtual idPresentableActor *GetActorInterface_2(); + virtual const idPresentablePlayer *GetPlayerInterface(); + virtual idPresentablePlayer *GetPlayerInterface_2(); + virtual idPresentableProjectile *GetProjectileInterface(); + virtual idPresentableProjectile_Rocket *GetProjectileRocketInterface(); + virtual idPresentableProjectile_Homing *GetProjectileHomingInterface(); + virtual idPresentableProjectile_Grenade *GetProjectileGrenadeInterface(); + virtual idPresentableMultiplayerTrigger *GetMultiplayerTriggerInterface(); + virtual idPresentableWeaponStatic *GetWeaponStaticInterface(); + virtual idPresentableAI *GetAIInterface(); + virtual idPresentableProp *GetPropInterface(); + virtual idPresentableDoorAnimated *GetDoorAnimatedInterface(); + virtual idPresentableWeapon *GetWeaponInterface(); + virtual idOnlineVehicleDeathCameraPresentable *GetVehicleCameraInterface(); + virtual idPresentableReviveCamera *GetReviveCameraInterface(); + virtual idPresentableArmorPiece *GetArmorInterface(); + virtual idPresentablePusher *GetPusherInterface(); + virtual idPresentableTurret *GetTurretInterface(); + virtual idPresentableParticleEmitter *GetParticleEmitterInterface(); + virtual idPresentableCollisionTrigger *GetCollisionTriggerInterface(); + virtual idPresentableSpectatorCamera *GetSpectatorCameraInterface(); + virtual idPresentableAnimatedEntity *GetAnimatedPhysicsInterface(); + virtual void SetRenderModel(idRenderModel *, bool); + virtual bool ShouldSerializeRenderModelParms(); + virtual void StopSound_Predicted(const soundChannel_t); + virtual void Hide(bool); + virtual void Show(); + virtual void GetWorldTransform(idVec3 *, idMat3 *); + virtual idBounds *GetBounds(idBounds *result, int); + virtual idBounds *GetAbsBounds(idBounds *result, int); + virtual bool ShouldTriggerClientHitScanHit(); + virtual void ClientHitScanHit(int, int, int, const idDeclWeapon *, const idDeclProjectile *, int); + virtual void ClientHitScanHit_ClientFire(int, const idDeclWeapon *, int); + virtual void PredictHitScanHit(idPresentable *, float, const idVec3 *, const idVec3 *, const idDeclProjectile *, trace_t *); + virtual int GetPeerIndex(); + virtual bool IsTargetLockable(const idDeclAmmo *); + virtual float GetTotalCurHealth(); + virtual float GetTotalMaxHealth(); + virtual bool ShouldSaveForTimeTrial(); + virtual void StartFX(fxCondition_t, fxExtraCondition_t); + virtual void StopAllFX(); + virtual void UpdateFX(const idVec3 *, const idMat3 *, idFXManager *, const float, const float); + virtual void UpdateFX_2(const idVec3 *, const idMat3 *); + virtual void UpdateFX_3(const float, const float); + virtual void LocalStartFX(fxCondition_t); + virtual usableState_t GetOnlineUsableState(idPresentablePlayer *, int); + virtual void GetOnlineModifiedCrosshairInfo(const idPresentable *, const idFocusTrace *, const usableState_t, idCrosshairInfo *); + virtual idStrId *GetOnlineUsableText(idStrId *result); + virtual void BecomeReplicated(); + virtual int GetControllingPlayerIndex(); + virtual idPresentablePlayer *GetControllingPlayer(); + virtual bool IsLocallyControlled(); + virtual idWeapon *GetFiredWeapon(const idDeclWeapon *); + virtual void InitFXMgr(const idDeclFX *); + virtual void ShutdownFXMgr(); + virtual void UpdateClientCollision(const idVec3 *, const idMat3 *, const idVec3 *, const idMat3 *); + virtual bool ShouldLinkPresentableCollision(); + virtual idInventoryCollection *GetInventory(); + virtual const idInventoryCollection *GetInventory_2(); + virtual bool ShouldEnableSphereCollision(); + virtual void InventoryAdded(idInventoryItem *, int, bool); + virtual bool IsDead(); + virtual void InternalClientLaunch(idPresentable *, const idVec3 *, const idMat3 *, const idProjectileTarget *, float, int); + virtual void UpdateLaserDot(); + + idPhysics_RigidBody physicsObj; +}; diff --git a/source/tungsten/game/clientgame/presentable/presentableprop.h b/source/tungsten/game/clientgame/presentable/presentableprop.h new file mode 100644 index 0000000..587000a --- /dev/null +++ b/source/tungsten/game/clientgame/presentable/presentableprop.h @@ -0,0 +1,133 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\clientgame\presentable\presentableprop.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2129; PDB kind: enum. +enum idPresentableProp::specialProp_t : __int32 +{ + SPECIAL_PROP_NONE = 0x0, + SPECIAL_PROP_RALLY = 0x1, +}; + +// IDA Local Type ordinal 5330; PDB kind: struct. +struct PRESENCE_PROPERTY +{ + unsigned int dwPropertyId; + unsigned int cbData; +}; + +// IDA Local Type ordinal 15442; PDB kind: struct. +struct idPresentableProp::pickupEventInfo_t +{ + int eventTime; + int lastHandledEventTime; + int playerIndex; + int presentableIndex; +}; + +// IDA Local Type ordinal 15443; PDB kind: class. +class __declspec(align(8)) idPresentableProp : public idPresentableAnimatedEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34015. + virtual ~idPresentableProp(); + virtual void Shutdown(); + virtual void ClientJobSync(); + virtual void ControlReleased(); + virtual inputSettings_t *GetInputSettings(inputSettings_t *result, idPresentablePlayer *); + virtual void Present(); + virtual void Serialize(idSerializer *); + virtual void PostSerializeRead(bool); + virtual void Interpolate(int, float); + virtual bool ShouldSerializeHidden(); + virtual bool ShouldInterpolate(); + virtual void ClientPredict(int, float); + virtual void ClientThink(int, float, bool); + virtual void ServerThink(int); + virtual bool Draw(idPresentablePlayer *); + virtual void SerializeFX(idSerializer *); + virtual void PostAlloc(); + virtual presentableType_t GetType(); + virtual idPresentableAnimatedEntity *GetAnimatedEntityInterface(); + virtual idPresentableVehicle *GetVehicleInterface(); + virtual idPresentableBreakable *GetBreakableInterface(); + virtual idPresentablePieceEmitter *GetPieceEmitterInterface(); + virtual idPresentableDamageable *GetDamageableInterface(); + virtual const idPresentableActor *GetActorInterface(); + virtual idPresentableActor *GetActorInterface_2(); + virtual const idPresentablePlayer *GetPlayerInterface(); + virtual idPresentablePlayer *GetPlayerInterface_2(); + virtual idPresentableProjectile *GetProjectileInterface(); + virtual idPresentableProjectile_Rocket *GetProjectileRocketInterface(); + virtual idPresentableProjectile_Homing *GetProjectileHomingInterface(); + virtual idPresentableProjectile_Grenade *GetProjectileGrenadeInterface(); + virtual idPresentableMultiplayerTrigger *GetMultiplayerTriggerInterface(); + virtual idPresentableWeaponStatic *GetWeaponStaticInterface(); + virtual idPresentableAI *GetAIInterface(); + virtual idPresentableProp *GetPropInterface(); + virtual idPresentableDoorAnimated *GetDoorAnimatedInterface(); + virtual idPresentableWeapon *GetWeaponInterface(); + virtual idOnlineVehicleDeathCameraPresentable *GetVehicleCameraInterface(); + virtual idPresentableReviveCamera *GetReviveCameraInterface(); + virtual idPresentableArmorPiece *GetArmorInterface(); + virtual idPresentablePusher *GetPusherInterface(); + virtual idPresentableTurret *GetTurretInterface(); + virtual idPresentableParticleEmitter *GetParticleEmitterInterface(); + virtual idPresentableCollisionTrigger *GetCollisionTriggerInterface(); + virtual idPresentableSpectatorCamera *GetSpectatorCameraInterface(); + virtual idPresentableAnimatedEntity *GetAnimatedPhysicsInterface(); + virtual void SetRenderModel(idRenderModel *, bool); + virtual bool ShouldSerializeRenderModelParms(); + virtual void StopSound_Predicted(const soundChannel_t); + virtual void Hide(bool); + virtual void Show(); + virtual void GetWorldTransform(idVec3 *, idMat3 *); + virtual idBounds *GetBounds(idBounds *result, int); + virtual idBounds *GetAbsBounds(idBounds *result, int); + virtual bool ShouldTriggerClientHitScanHit(); + virtual void ClientHitScanHit(int, int, int, const idDeclWeapon *, const idDeclProjectile *, int); + virtual void ClientHitScanHit_ClientFire(int, const idDeclWeapon *, int); + virtual void PredictHitScanHit(idPresentable *, float, const idVec3 *, const idVec3 *, const idDeclProjectile *, trace_t *); + virtual int GetPeerIndex(); + virtual bool IsTargetLockable(const idDeclAmmo *); + virtual float GetTotalCurHealth(); + virtual float GetTotalMaxHealth(); + virtual bool ShouldSaveForTimeTrial(); + virtual void StartFX(fxCondition_t, fxExtraCondition_t); + virtual void StopAllFX(); + virtual void UpdateFX(const idVec3 *, const idMat3 *, idFXManager *, const float, const float); + virtual void UpdateFX_2(const idVec3 *, const idMat3 *); + virtual void UpdateFX_3(const float, const float); + virtual void LocalStartFX(fxCondition_t); + virtual usableState_t GetOnlineUsableState(idPresentablePlayer *, int); + virtual void GetOnlineModifiedCrosshairInfo(const idPresentable *, const idFocusTrace *, const usableState_t, idCrosshairInfo *); + virtual idStrId *GetOnlineUsableText(idStrId *result); + virtual void BecomeReplicated(); + virtual int GetControllingPlayerIndex(); + virtual idPresentablePlayer *GetControllingPlayer(); + virtual bool IsLocallyControlled(); + virtual idWeapon *GetFiredWeapon(const idDeclWeapon *); + virtual void InitFXMgr(const idDeclFX *); + virtual void ShutdownFXMgr(); + virtual void UpdateClientCollision(const idVec3 *, const idMat3 *, const idVec3 *, const idMat3 *); + virtual bool ShouldLinkPresentableCollision(); + virtual idInventoryCollection *GetInventory(); + virtual const idInventoryCollection *GetInventory_2(); + virtual bool ShouldEnableSphereCollision(); + virtual void InventoryAdded(idInventoryItem *, int, bool); + + idPresentableProp::pickupEventInfo_t pickupEventInfo; + const idSoundShader *pickupSound; + bool shouldPlayPickupSound; + bool predictedPickup; + bool pickupOnTouch; + bool pickupOnUse; + const idDeclInventory *inventoryDecl; + bool isUsable; + netBoolEvent_t resetPickup; + idPresentableProp::specialProp_t specialType; +}; diff --git a/source/tungsten/game/clientgame/presentable/presentableptr.h b/source/tungsten/game/clientgame/presentable/presentableptr.h new file mode 100644 index 0000000..fb395b2 --- /dev/null +++ b/source/tungsten/game/clientgame/presentable/presentableptr.h @@ -0,0 +1,63 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\clientgame\presentable\presentableptr.h +// Recovered logical types: 8 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14596; PDB kind: class. +class idPresentablePtr +{ +public: + unsigned int spawnId; +}; + +// IDA Local Type ordinal 14597; PDB kind: class. +class idPresentablePtr +{ +public: + unsigned int spawnId; +}; + +// IDA Local Type ordinal 15272; PDB kind: class. +class idPresentablePtr +{ +public: + unsigned int spawnId; +}; + +// IDA Local Type ordinal 15278; PDB kind: class. +class idPresentablePtr +{ +public: + unsigned int spawnId; +}; + +// IDA Local Type ordinal 15282; PDB kind: class. +class idPresentablePtr +{ +public: + unsigned int spawnId; +}; + +// IDA Local Type ordinal 15390; PDB kind: class. +class idPresentablePtr +{ +public: + unsigned int spawnId; +}; + +// IDA Local Type ordinal 15430; PDB kind: class. +class idPresentablePtr +{ +public: + unsigned int spawnId; +}; + +// IDA Local Type ordinal 15481; PDB kind: class. +class idPresentablePtr +{ +public: + unsigned int spawnId; +}; diff --git a/source/tungsten/game/clientgame/presentable/presentablepusher.h b/source/tungsten/game/clientgame/presentable/presentablepusher.h new file mode 100644 index 0000000..7aad3ea --- /dev/null +++ b/source/tungsten/game/clientgame/presentable/presentablepusher.h @@ -0,0 +1,99 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\clientgame\presentable\presentablepusher.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15502; PDB kind: class. +class __declspec(align(8)) idPresentablePusher : public idPresentable +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34016. + virtual ~idPresentablePusher(); + virtual void Shutdown(); + virtual void ClientJobSync(); + virtual void ControlReleased(); + virtual inputSettings_t *GetInputSettings(inputSettings_t *result, idPresentablePlayer *); + virtual void Present(); + virtual void Serialize(idSerializer *); + virtual void PostSerializeRead(bool); + virtual void Interpolate(int, float); + virtual bool ShouldSerializeHidden(); + virtual bool ShouldInterpolate(); + virtual void ClientPredict(int, float); + virtual void ClientThink(int, float, bool); + virtual void ServerThink(int); + virtual bool Draw(idPresentablePlayer *); + virtual void SerializeFX(idSerializer *); + virtual void PostAlloc(); + virtual presentableType_t GetType(); + virtual idPresentableAnimatedEntity *GetAnimatedEntityInterface(); + virtual idPresentableVehicle *GetVehicleInterface(); + virtual idPresentableBreakable *GetBreakableInterface(); + virtual idPresentablePieceEmitter *GetPieceEmitterInterface(); + virtual idPresentableDamageable *GetDamageableInterface(); + virtual const idPresentableActor *GetActorInterface(); + virtual idPresentableActor *GetActorInterface_2(); + virtual const idPresentablePlayer *GetPlayerInterface(); + virtual idPresentablePlayer *GetPlayerInterface_2(); + virtual idPresentableProjectile *GetProjectileInterface(); + virtual idPresentableProjectile_Rocket *GetProjectileRocketInterface(); + virtual idPresentableProjectile_Homing *GetProjectileHomingInterface(); + virtual idPresentableProjectile_Grenade *GetProjectileGrenadeInterface(); + virtual idPresentableMultiplayerTrigger *GetMultiplayerTriggerInterface(); + virtual idPresentableWeaponStatic *GetWeaponStaticInterface(); + virtual idPresentableAI *GetAIInterface(); + virtual idPresentableProp *GetPropInterface(); + virtual idPresentableDoorAnimated *GetDoorAnimatedInterface(); + virtual idPresentableWeapon *GetWeaponInterface(); + virtual idOnlineVehicleDeathCameraPresentable *GetVehicleCameraInterface(); + virtual idPresentableReviveCamera *GetReviveCameraInterface(); + virtual idPresentableArmorPiece *GetArmorInterface(); + virtual idPresentablePusher *GetPusherInterface(); + virtual idPresentableTurret *GetTurretInterface(); + virtual idPresentableParticleEmitter *GetParticleEmitterInterface(); + virtual idPresentableCollisionTrigger *GetCollisionTriggerInterface(); + virtual idPresentableSpectatorCamera *GetSpectatorCameraInterface(); + virtual idPresentableAnimatedEntity *GetAnimatedPhysicsInterface(); + virtual void SetRenderModel(idRenderModel *, bool); + virtual bool ShouldSerializeRenderModelParms(); + virtual void StopSound_Predicted(const soundChannel_t); + virtual void Hide(bool); + virtual void Show(); + virtual void GetWorldTransform(idVec3 *, idMat3 *); + virtual idBounds *GetBounds(idBounds *result, int); + virtual idBounds *GetAbsBounds(idBounds *result, int); + virtual bool ShouldTriggerClientHitScanHit(); + virtual void ClientHitScanHit(int, int, int, const idDeclWeapon *, const idDeclProjectile *, int); + virtual void ClientHitScanHit_ClientFire(int, const idDeclWeapon *, int); + virtual void PredictHitScanHit(idPresentable *, float, const idVec3 *, const idVec3 *, const idDeclProjectile *, trace_t *); + virtual int GetPeerIndex(); + virtual bool IsTargetLockable(const idDeclAmmo *); + virtual float GetTotalCurHealth(); + virtual float GetTotalMaxHealth(); + virtual bool ShouldSaveForTimeTrial(); + virtual void StartFX(fxCondition_t, fxExtraCondition_t); + virtual void StopAllFX(); + virtual void UpdateFX(const idVec3 *, const idMat3 *, idFXManager *, const float, const float); + virtual void UpdateFX_2(const idVec3 *, const idMat3 *); + virtual void UpdateFX_3(const float, const float); + virtual void LocalStartFX(fxCondition_t); + virtual usableState_t GetOnlineUsableState(idPresentablePlayer *, int); + virtual void GetOnlineModifiedCrosshairInfo(const idPresentable *, const idFocusTrace *, const usableState_t, idCrosshairInfo *); + virtual idStrId *GetOnlineUsableText(idStrId *result); + virtual void BecomeReplicated(); + virtual int GetControllingPlayerIndex(); + virtual idPresentablePlayer *GetControllingPlayer(); + virtual bool IsLocallyControlled(); + virtual idWeapon *GetFiredWeapon(const idDeclWeapon *); + virtual void InitFXMgr(const idDeclFX *); + virtual void ShutdownFXMgr(); + virtual void UpdateClientCollision(const idVec3 *, const idMat3 *, const idVec3 *, const idMat3 *); + virtual bool ShouldLinkPresentableCollision(); + + idPhysics_Parametric physicsObj; + bool physicsInit; + bool pushEnabled; +}; diff --git a/source/tungsten/game/clientgame/presentable/presentableturret.h b/source/tungsten/game/clientgame/presentable/presentableturret.h new file mode 100644 index 0000000..cbe4110 --- /dev/null +++ b/source/tungsten/game/clientgame/presentable/presentableturret.h @@ -0,0 +1,110 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\clientgame\presentable\presentableturret.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15503; PDB kind: class. +class __declspec(align(4)) idPresentableTurret : public idPresentableWeapon +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34121. + virtual ~idPresentableTurret(); + virtual void Shutdown(); + virtual void ClientJobSync(); + virtual void ControlReleased(); + virtual inputSettings_t *GetInputSettings(inputSettings_t *result, idPresentablePlayer *); + virtual void Present(); + virtual void Serialize(idSerializer *); + virtual void PostSerializeRead(bool); + virtual void Interpolate(int, float); + virtual bool ShouldSerializeHidden(); + virtual bool ShouldInterpolate(); + virtual void ClientPredict(int, float); + virtual void ClientThink(int, float, bool); + virtual void ServerThink(int); + virtual bool Draw(idPresentablePlayer *); + virtual void SerializeFX(idSerializer *); + virtual void PostAlloc(); + virtual presentableType_t GetType(); + virtual idPresentableAnimatedEntity *GetAnimatedEntityInterface(); + virtual idPresentableVehicle *GetVehicleInterface(); + virtual idPresentableBreakable *GetBreakableInterface(); + virtual idPresentablePieceEmitter *GetPieceEmitterInterface(); + virtual idPresentableDamageable *GetDamageableInterface(); + virtual const idPresentableActor *GetActorInterface(); + virtual idPresentableActor *GetActorInterface_2(); + virtual const idPresentablePlayer *GetPlayerInterface(); + virtual idPresentablePlayer *GetPlayerInterface_2(); + virtual idPresentableProjectile *GetProjectileInterface(); + virtual idPresentableProjectile_Rocket *GetProjectileRocketInterface(); + virtual idPresentableProjectile_Homing *GetProjectileHomingInterface(); + virtual idPresentableProjectile_Grenade *GetProjectileGrenadeInterface(); + virtual idPresentableMultiplayerTrigger *GetMultiplayerTriggerInterface(); + virtual idPresentableWeaponStatic *GetWeaponStaticInterface(); + virtual idPresentableAI *GetAIInterface(); + virtual idPresentableProp *GetPropInterface(); + virtual idPresentableDoorAnimated *GetDoorAnimatedInterface(); + virtual idPresentableWeapon *GetWeaponInterface(); + virtual idOnlineVehicleDeathCameraPresentable *GetVehicleCameraInterface(); + virtual idPresentableReviveCamera *GetReviveCameraInterface(); + virtual idPresentableArmorPiece *GetArmorInterface(); + virtual idPresentablePusher *GetPusherInterface(); + virtual idPresentableTurret *GetTurretInterface(); + virtual idPresentableParticleEmitter *GetParticleEmitterInterface(); + virtual idPresentableCollisionTrigger *GetCollisionTriggerInterface(); + virtual idPresentableSpectatorCamera *GetSpectatorCameraInterface(); + virtual idPresentableAnimatedEntity *GetAnimatedPhysicsInterface(); + virtual void SetRenderModel(idRenderModel *, bool); + virtual bool ShouldSerializeRenderModelParms(); + virtual void StopSound_Predicted(const soundChannel_t); + virtual void Hide(bool); + virtual void Show(); + virtual void GetWorldTransform(idVec3 *, idMat3 *); + virtual idBounds *GetBounds(idBounds *result, int); + virtual idBounds *GetAbsBounds(idBounds *result, int); + virtual bool ShouldTriggerClientHitScanHit(); + virtual void ClientHitScanHit(int, int, int, const idDeclWeapon *, const idDeclProjectile *, int); + virtual void ClientHitScanHit_ClientFire(int, const idDeclWeapon *, int); + virtual void PredictHitScanHit(idPresentable *, float, const idVec3 *, const idVec3 *, const idDeclProjectile *, trace_t *); + virtual int GetPeerIndex(); + virtual bool IsTargetLockable(const idDeclAmmo *); + virtual float GetTotalCurHealth(); + virtual float GetTotalMaxHealth(); + virtual bool ShouldSaveForTimeTrial(); + virtual void StartFX(fxCondition_t, fxExtraCondition_t); + virtual void StopAllFX(); + virtual void UpdateFX(const idVec3 *, const idMat3 *, idFXManager *, const float, const float); + virtual void UpdateFX_2(const idVec3 *, const idMat3 *); + virtual void UpdateFX_3(const float, const float); + virtual void LocalStartFX(fxCondition_t); + virtual usableState_t GetOnlineUsableState(idPresentablePlayer *, int); + virtual void GetOnlineModifiedCrosshairInfo(const idPresentable *, const idFocusTrace *, const usableState_t, idCrosshairInfo *); + virtual idStrId *GetOnlineUsableText(idStrId *result); + virtual void BecomeReplicated(); + virtual int GetControllingPlayerIndex(); + virtual idPresentablePlayer *GetControllingPlayer(); + virtual bool IsLocallyControlled(); + virtual idWeapon *GetFiredWeapon(const idDeclWeapon *); + virtual void InitFXMgr(const idDeclFX *); + virtual void ShutdownFXMgr(); + virtual void UpdateClientCollision(const idVec3 *, const idMat3 *, const idVec3 *, const idMat3 *); + virtual bool ShouldLinkPresentableCollision(); + virtual idInventoryCollection *GetInventory(); + virtual const idInventoryCollection *GetInventory_2(); + virtual bool ShouldEnableSphereCollision(); + virtual void InventoryAdded(idInventoryItem *, int, bool); + + idAnimator_JointMod *jointModAnimator; + idIndex jointRotation; + __int16 jointRotationYaw; + __int16 clientLastUpdateRotationYaw; + __int16 jointRotationPitch; + __int16 clientLastUpdateRotationPitch; + idIndex jointPitch; + __int16 jointPitchPitch; + __int16 clientLastUpdatejointPitch; + idIndex jointSpinwheel; +}; diff --git a/source/tungsten/game/clientgame/presentable/presentablevehiclecar.h b/source/tungsten/game/clientgame/presentable/presentablevehiclecar.h new file mode 100644 index 0000000..f170388 --- /dev/null +++ b/source/tungsten/game/clientgame/presentable/presentablevehiclecar.h @@ -0,0 +1,416 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\clientgame\presentable\presentablevehiclecar.h +// Recovered logical types: 9 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2120; PDB kind: unknown. +enum idPresentableVehicle:: : __int32 +{ + RBS_NONE = 0x0, + RBS_PULLED = 0x1, + RBS_RELEASED = 0x2, + RBS_BOOSTING = 0x3, +}; + +// IDA Local Type ordinal 2124; PDB kind: enum. +enum idPresentableVehicle::autoRollState_t : __int32 +{ + AUTOROLL_NONE = 0x0, + AUTOROLL_PITCH = 0x1, + AUTOROLL_ROLL = 0x2, +}; + +// IDA Local Type ordinal 2127; PDB kind: enum. +enum idPresentableVehicle::wheelLoc_t : __int32 +{ + WHEEL_FRONT_LEFT = 0x0, + WHEEL_FRONT_RIGHT = 0x1, + WHEEL_REAR_LEFT = 0x2, + WHEEL_REAR_RIGHT = 0x3, +}; + +// IDA Local Type ordinal 14505; PDB kind: class. +class __declspec(align(4)) idPresentableVehicle : public idPresentableAnimatedEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34019. + virtual ~idPresentableVehicle(); + virtual void Shutdown(); + virtual void ClientJobSync(); + virtual void ControlReleased(); + virtual inputSettings_t *GetInputSettings(inputSettings_t *result, idPresentablePlayer *); + virtual void Present(); + virtual void Serialize(idSerializer *); + virtual void PostSerializeRead(bool); + virtual void Interpolate(int, float); + virtual bool ShouldSerializeHidden(); + virtual bool ShouldInterpolate(); + virtual void ClientPredict(int, float); + virtual void ClientThink(int, float, bool); + virtual void ServerThink(int); + virtual bool Draw(idPresentablePlayer *); + virtual void SerializeFX(idSerializer *); + virtual void PostAlloc(); + virtual presentableType_t GetType(); + virtual idPresentableAnimatedEntity *GetAnimatedEntityInterface(); + virtual idPresentableVehicle *GetVehicleInterface(); + virtual idPresentableBreakable *GetBreakableInterface(); + virtual idPresentablePieceEmitter *GetPieceEmitterInterface(); + virtual idPresentableDamageable *GetDamageableInterface(); + virtual const idPresentableActor *GetActorInterface(); + virtual idPresentableActor *GetActorInterface_2(); + virtual const idPresentablePlayer *GetPlayerInterface(); + virtual idPresentablePlayer *GetPlayerInterface_2(); + virtual idPresentableProjectile *GetProjectileInterface(); + virtual idPresentableProjectile_Rocket *GetProjectileRocketInterface(); + virtual idPresentableProjectile_Homing *GetProjectileHomingInterface(); + virtual idPresentableProjectile_Grenade *GetProjectileGrenadeInterface(); + virtual idPresentableMultiplayerTrigger *GetMultiplayerTriggerInterface(); + virtual idPresentableWeaponStatic *GetWeaponStaticInterface(); + virtual idPresentableAI *GetAIInterface(); + virtual idPresentableProp *GetPropInterface(); + virtual idPresentableDoorAnimated *GetDoorAnimatedInterface(); + virtual idPresentableWeapon *GetWeaponInterface(); + virtual idOnlineVehicleDeathCameraPresentable *GetVehicleCameraInterface(); + virtual idPresentableReviveCamera *GetReviveCameraInterface(); + virtual idPresentableArmorPiece *GetArmorInterface(); + virtual idPresentablePusher *GetPusherInterface(); + virtual idPresentableTurret *GetTurretInterface(); + virtual idPresentableParticleEmitter *GetParticleEmitterInterface(); + virtual idPresentableCollisionTrigger *GetCollisionTriggerInterface(); + virtual idPresentableSpectatorCamera *GetSpectatorCameraInterface(); + virtual idPresentableAnimatedEntity *GetAnimatedPhysicsInterface(); + virtual void SetRenderModel(idRenderModel *, bool); + virtual bool ShouldSerializeRenderModelParms(); + virtual void StopSound_Predicted(const soundChannel_t); + virtual void Hide(bool); + virtual void Show(); + virtual void GetWorldTransform(idVec3 *, idMat3 *); + virtual idBounds *GetBounds(idBounds *result, int); + virtual idBounds *GetAbsBounds(idBounds *result, int); + virtual bool ShouldTriggerClientHitScanHit(); + virtual void ClientHitScanHit(int, int, int, const idDeclWeapon *, const idDeclProjectile *, int); + virtual void ClientHitScanHit_ClientFire(int, const idDeclWeapon *, int); + virtual void PredictHitScanHit(idPresentable *, float, const idVec3 *, const idVec3 *, const idDeclProjectile *, trace_t *); + virtual int GetPeerIndex(); + virtual bool IsTargetLockable(const idDeclAmmo *); + virtual float GetTotalCurHealth(); + virtual float GetTotalMaxHealth(); + virtual bool ShouldSaveForTimeTrial(); + virtual void StartFX(fxCondition_t, fxExtraCondition_t); + virtual void StopAllFX(); + virtual void UpdateFX(const idVec3 *, const idMat3 *, idFXManager *, const float, const float); + virtual void UpdateFX_2(const idVec3 *, const idMat3 *); + virtual void UpdateFX_3(const float, const float); + virtual void LocalStartFX(fxCondition_t); + virtual usableState_t GetOnlineUsableState(idPresentablePlayer *, int); + virtual void GetOnlineModifiedCrosshairInfo(const idPresentable *, const idFocusTrace *, const usableState_t, idCrosshairInfo *); + virtual idStrId *GetOnlineUsableText(idStrId *result); + virtual void BecomeReplicated(); + virtual int GetControllingPlayerIndex(); + virtual idPresentablePlayer *GetControllingPlayer(); + virtual bool IsLocallyControlled(); + virtual idWeapon *GetFiredWeapon(const idDeclWeapon *); + virtual void InitFXMgr(const idDeclFX *); + virtual void ShutdownFXMgr(); + virtual void UpdateClientCollision(const idVec3 *, const idMat3 *, const idVec3 *, const idMat3 *); + virtual bool ShouldLinkPresentableCollision(); + virtual idInventoryCollection *GetInventory(); + virtual const idInventoryCollection *GetInventory_2(); + virtual bool ShouldEnableSphereCollision(); + virtual void InventoryAdded(idInventoryItem *, int, bool); + virtual idImpactManager *GetImpactMgrPtr(); + virtual int StartSoundShader(const soundChannel_t, const idSoundShader *, int, unsigned __int8); + virtual int StartSoundShader_Predicted(const soundChannel_t, const idSoundShader *, int); + virtual float GetHealth(); + + idStaticList detachableItems; + idAnimator_VehicleCar *animator; + const idDeclVehicleProps *vehicleProps; + bool showExhaust; + idVec3 lastOrigin; + idSmokeEmitter exhaustEmitter_right; + idSmokeEmitter exhaustEmitter_left; + idSmokeEmitter exhaustEmitter_right2; + idSmokeEmitter exhaustEmitter_left2; + idVec3 originalOrigin; + idVec3 originalSmoothOrigin; + idMat3 originalSmoothAxis; + int radialBlurHandle; + int ammoDepletedMsgTime; + bool enableVehicleControls; + bool engineRunning; + bool accelerating; + bool reversing; + bool boosting; + bool canAccelerate; + bool braking; + bool handBraking; + bool aiSpecialSkid; + float currentThrottle; + float maxSpeed; + int currentGear; + float currentAproxMPH; + float currentEngineRPM; + float totalWheelSkid; + int savedSurfaceType; + idVec3 currentAproxLinearVelocity; + int numAnimWheelsOnGround; + float averageCompression; + int rampLandTime; + idPresentableVehicle::soundState_t soundState; + idEffectPhysicsDebrisEmitter debrisEmitter; + idImpactManager impactManager; + int serializedPhysicsSize; + unsigned __int8 serializedPhysics[2048]; + int respawnFrame; + int lastRespawnFrame; + int serverOverridePositionTime; + bool firstClientOverride; + bool postSerializeRespawn; + int specialDeathTime; + bool appliedSpecialDeath; + idPresentablePtr cachedPlayerDriver; + idInventoryCollection inventory; + idInventoryCollection *activeInventory; + idList occupants; + idList wheels; + const idSoundShader *vehicleHorn; + idPhysics_AF physicsObj; + const idDeclTable *motorTorque; + vehicleStickControl_t stickControl; + float curSteerAngle; + float maxSteerSpeed; + float brakeForce; + idAngles driverViewAngles; + bool mainCameraView; + idAngles currentViewAngles; + idAngles minDriverViewAngles; + idAngles maxDriverViewAngles; + idAngles lastCarAngles; + int lastDrawTime; + float zoom_fov_x; + int wildSpinTime; + int jumpStartTime; + float jumpApogee; + float jumpHeightOffset; + float jumpBackOffset; + idAngles freeAngles; + bool quickTurnActive; + bool quickUseFailed; + bool quickSelectUsed; + int quickTurnStartTime; + int quickTurnTotalTime; + int quickTurnDir; + float viewAnglesDeltaPerc; + float prevCameraPitch; + float prevCameraPushDelta; + idAngles mouseCumulativeFreeAngles; + float mouseCumulativePitch; + idMat3 activeTargetAxis; + idVec3 currentCameraFocusOffset; + idVec3 currentViewOrigin; + bool activeTargetUpright; + float cameraTraceZs[10]; + int cameraTraceZIndex; + bool cameraZInitialized; + int boostStartTime; + int reverseBoostTime; + int reverseBoostState; + float boostScalePercent; + int externalBoostStart; + int externalBoostEnd; + int externalBoostDuration; + idPresentableVehicle::boostFx_t boostFx; + int numWheelsOnGround; + idVec3 driverViewOrigin; + idMat3 driverViewAxis; + float driverViewFov_x; + int jumpTime; + int lastSlideTime; + bool playedFullBoostSound; + bool boostDisabled; + idInterpolate boostPower; + float megaBoostAcceleration; + int megaBoostTime; + bool slideFxPlaying; + int forceBoostFxTime; + bool hasQuad; + float currentMPH; + int nextBoostCharge; + float boostDuration; + int lastHandbrakeTime; + int handbrakeStartTime; + int nextSteerTime; + float currentMaxSpeed; + float currentMaxReverseSpeed; + idStaticList quickItemThink; + int curQuickItem; + int curQuickItemSlot; + idPresentableVehicle::onlinePerks_t currentPerks; + int currentWeaponGroup; + int clientPendingWeaponGroup; + int clientPendingWeaponChangeFirecount; + int weaponControlIndex; + bool hadAmmo; + bool weaponTriggerPulled; + bool lastWeaponTriggerPulled; + bool lastHadAmmo; + bool inhibitFireControl; + int inhibitFireControlStartTime; + const idVehicleWeapon *lastFiredVehicleWeapon; + idThirdPersonCrosshair crosshair; + idList weapons; + mannedWeaponTransition_t weapTransState; + int seatTransitionTime; + idVec3 transitionFromOrigin; + idMat3 transitionFromAxis; + idVec3 lastWeaponOrigin; + idMat3 lastWeaponViewAxis; + idVec3 lastViewOrigin; + idMat3 lastViewAxis; + bool sharedWeaponChange; + int mannedWeaponChangeTime; + float attackDamageScale; + bool canFireWeapons; + idFXManager predictedFXMgr; + float boostShake; + bool drawBirdsView; + int zoomTime; + idPresentableVehicle::vehicleDamageInfo_t damageHistory[8]; + int damageHistoryIndex; + int damageHistoryLastSerialize; + int predictedDamageCount; + bool newPassenger; + idAngles lastFPSStickAngles; + idVec3 lastPassengerViewOrg; + idMat3 lastPassengerViewAxis; + idVec3 birdOrigin; + int birdObstructedCamTime; + bool allowWeaponChange_Serialized; + float health_Serialized; + float maxHealth_Serialized; + bool hasInfiniteAmmo_Serialized; + idPresentablePtr lockedTarget_Serialized; + idPhysicsCallbacks *clientPhysicsCB; + collisionInfo_t lastCollision; + idVec3 lastLinearVelocity; + idVec3 lastAngularVelocity; + int stuckFrames; + int collisionTime; + int backImpulseTime; + int debrisTime; + int violentRollStartTime; + int violentRollStopTime; + int violentRollFxTime; + int rolloverFxTime; + vehicleFxDamageLevel_t currentFXDamageLevel; + int deathTime; + float lastBoostPower; + bool engineDisabled; + bool hasBoosted; + int lastTargetRenderedTime; + idPresentableVehicle::autoRollState_t autoRollState; + bool skipRemoteClientUpdates; + int EMPTimeout; + float brakeForceBackup; + netBoolEvent_t quadOn; + netBoolEvent_t quadOff; + netBoolEvent_t resetBoost; + bool isBully; + bool isScramblingLocks; + int lockScramblingTimeout; + bool isSmashActive; + int predictSmashActiveFrame; + int smashTimeout; + unsigned __int8 approxSpeed; + int timeInAir; + int firingHeat; + int firingLastHeatTime; + int firingLastHeatFrame; + int firingLastHeatFireTime; + int numLockedProjectiles; + bool skipUpdateSounds; +}; + +// IDA Local Type ordinal 14507; PDB kind: struct. +struct idPresentableVehicle::clientDetachable_t +{ + detachable_t item; + bool attached; + bool permDetach; + int lastAddCount; + int lastRemoveCount; + int addCount; + int removeCount; + int damageLeft; +}; + +// IDA Local Type ordinal 14567; PDB kind: struct. +struct __declspec(align(4)) idPresentableVehicle::soundState_t +{ + bool engineRunning; + int engineDamagedLevel; + int lastTireBumpSound; + int startInAirTime; + int startIdleTime; + int stopIdleTime; + int startNonIdleTime; + int stopNonIdleTime; + int surfaceType; + int oldSurfaceType; + int nextSkidTime; + bool braking; + int shiftStartTime; + int shiftRampDownEndTime; + int shiftRampUpStartTime; + int shiftEndTime; + bool reverse; + int revLimitStartTime; + int revLimitEndTime; + int boostStartTime; + int boostEndTime; + bool boostOverlayStarted; + int nextCrashTime; + int engineSoundFadeInTime; + bool crosshairLockedOn; + bool isLockedTargeted; +}; + +// IDA Local Type ordinal 14631; PDB kind: struct. +struct idPresentableVehicle::boostFx_t +{ + float curFov; + float startingPower; +}; + +// IDA Local Type ordinal 14635; PDB kind: struct. +struct idPresentableVehicle::onlinePerks_t +{ + float boostUpModifier; + float duraBumpModifier; + float jumpManModifier; + float overAmmoModifier; + float lockJackModifier; + float fasterFasterModifier; + float theSnapperModifier; + int overLoadModifier; +}; + +// IDA Local Type ordinal 14751; PDB kind: struct. +struct __declspec(align(4)) idPresentableVehicle::vehicleDamageInfo_t +{ + const idDeclDamage *damageDef; + idVec3 damageDir; + idVec3 impactPoint; + float damageScale; + float damage; + float startHealth; + float endHealth; + int time; + idPresentablePtr attacker; + bool predicted; +}; diff --git a/source/tungsten/game/clientgame/presentable/presentableweapon.h b/source/tungsten/game/clientgame/presentable/presentableweapon.h new file mode 100644 index 0000000..224edcb --- /dev/null +++ b/source/tungsten/game/clientgame/presentable/presentableweapon.h @@ -0,0 +1,121 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\clientgame\presentable\presentableweapon.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15482; PDB kind: class. +class idPresentableWeapon : public idPresentableAnimatedEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34021. + virtual ~idPresentableWeapon(); + virtual void Shutdown(); + virtual void ClientJobSync(); + virtual void ControlReleased(); + virtual inputSettings_t *GetInputSettings(inputSettings_t *result, idPresentablePlayer *); + virtual void Present(); + virtual void Serialize(idSerializer *); + virtual void PostSerializeRead(bool); + virtual void Interpolate(int, float); + virtual bool ShouldSerializeHidden(); + virtual bool ShouldInterpolate(); + virtual void ClientPredict(int, float); + virtual void ClientThink(int, float, bool); + virtual void ServerThink(int); + virtual bool Draw(idPresentablePlayer *); + virtual void SerializeFX(idSerializer *); + virtual void PostAlloc(); + virtual presentableType_t GetType(); + virtual idPresentableAnimatedEntity *GetAnimatedEntityInterface(); + virtual idPresentableVehicle *GetVehicleInterface(); + virtual idPresentableBreakable *GetBreakableInterface(); + virtual idPresentablePieceEmitter *GetPieceEmitterInterface(); + virtual idPresentableDamageable *GetDamageableInterface(); + virtual const idPresentableActor *GetActorInterface(); + virtual idPresentableActor *GetActorInterface_2(); + virtual const idPresentablePlayer *GetPlayerInterface(); + virtual idPresentablePlayer *GetPlayerInterface_2(); + virtual idPresentableProjectile *GetProjectileInterface(); + virtual idPresentableProjectile_Rocket *GetProjectileRocketInterface(); + virtual idPresentableProjectile_Homing *GetProjectileHomingInterface(); + virtual idPresentableProjectile_Grenade *GetProjectileGrenadeInterface(); + virtual idPresentableMultiplayerTrigger *GetMultiplayerTriggerInterface(); + virtual idPresentableWeaponStatic *GetWeaponStaticInterface(); + virtual idPresentableAI *GetAIInterface(); + virtual idPresentableProp *GetPropInterface(); + virtual idPresentableDoorAnimated *GetDoorAnimatedInterface(); + virtual idPresentableWeapon *GetWeaponInterface(); + virtual idOnlineVehicleDeathCameraPresentable *GetVehicleCameraInterface(); + virtual idPresentableReviveCamera *GetReviveCameraInterface(); + virtual idPresentableArmorPiece *GetArmorInterface(); + virtual idPresentablePusher *GetPusherInterface(); + virtual idPresentableTurret *GetTurretInterface(); + virtual idPresentableParticleEmitter *GetParticleEmitterInterface(); + virtual idPresentableCollisionTrigger *GetCollisionTriggerInterface(); + virtual idPresentableSpectatorCamera *GetSpectatorCameraInterface(); + virtual idPresentableAnimatedEntity *GetAnimatedPhysicsInterface(); + virtual void SetRenderModel(idRenderModel *, bool); + virtual bool ShouldSerializeRenderModelParms(); + virtual void StopSound_Predicted(const soundChannel_t); + virtual void Hide(bool); + virtual void Show(); + virtual void GetWorldTransform(idVec3 *, idMat3 *); + virtual idBounds *GetBounds(idBounds *result, int); + virtual idBounds *GetAbsBounds(idBounds *result, int); + virtual bool ShouldTriggerClientHitScanHit(); + virtual void ClientHitScanHit(int, int, int, const idDeclWeapon *, const idDeclProjectile *, int); + virtual void ClientHitScanHit_ClientFire(int, const idDeclWeapon *, int); + virtual void PredictHitScanHit(idPresentable *, float, const idVec3 *, const idVec3 *, const idDeclProjectile *, trace_t *); + virtual int GetPeerIndex(); + virtual bool IsTargetLockable(const idDeclAmmo *); + virtual float GetTotalCurHealth(); + virtual float GetTotalMaxHealth(); + virtual bool ShouldSaveForTimeTrial(); + virtual void StartFX(fxCondition_t, fxExtraCondition_t); + virtual void StopAllFX(); + virtual void UpdateFX(const idVec3 *, const idMat3 *, idFXManager *, const float, const float); + virtual void UpdateFX_2(const idVec3 *, const idMat3 *); + virtual void UpdateFX_3(const float, const float); + virtual void LocalStartFX(fxCondition_t); + virtual usableState_t GetOnlineUsableState(idPresentablePlayer *, int); + virtual void GetOnlineModifiedCrosshairInfo(const idPresentable *, const idFocusTrace *, const usableState_t, idCrosshairInfo *); + virtual idStrId *GetOnlineUsableText(idStrId *result); + virtual void BecomeReplicated(); + virtual int GetControllingPlayerIndex(); + virtual idPresentablePlayer *GetControllingPlayer(); + virtual bool IsLocallyControlled(); + virtual idWeapon *GetFiredWeapon(const idDeclWeapon *); + virtual void InitFXMgr(const idDeclFX *); + virtual void ShutdownFXMgr(); + virtual void UpdateClientCollision(const idVec3 *, const idMat3 *, const idVec3 *, const idMat3 *); + virtual bool ShouldLinkPresentableCollision(); + virtual idInventoryCollection *GetInventory(); + virtual const idInventoryCollection *GetInventory_2(); + virtual bool ShouldEnableSphereCollision(); + virtual void InventoryAdded(idInventoryItem *, int, bool); + + idPresentablePtr attacker; + idPresentablePtr vehicleAttacker; + fxEmitterSound_t soundInfo; + int lastWeaponID; + int presentableWeaponID; + const idDeclWeapon *weaponDecl; + idWeapon *clientWeapon; + const idDeclAmmo *ammoDecl; + int ownerEntityNum; + idPresentable *expectedHit; + idLaserSight laserSight; + int netFireIndex; + int netFireIndexLastSerialize; + idPresentablePtr hitPresentable; + idIndex hitJoint; + idIndex rollJointIndex; + float rollDelta; + float rollAngle; + idVec3 spinJointOrigin; + idMat3 spinJointMat; + int lastFireTime; +}; diff --git a/source/tungsten/game/clientgame/presentable/presentableweaponstatic.h b/source/tungsten/game/clientgame/presentable/presentableweaponstatic.h new file mode 100644 index 0000000..519defd --- /dev/null +++ b/source/tungsten/game/clientgame/presentable/presentableweaponstatic.h @@ -0,0 +1,129 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\clientgame\presentable\presentableweaponstatic.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15444; PDB kind: class. +class __declspec(align(8)) idPresentableWeaponStatic : public idPresentableProp +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34020. + virtual ~idPresentableWeaponStatic(); + virtual void Shutdown(); + virtual void ClientJobSync(); + virtual void ControlReleased(); + virtual inputSettings_t *GetInputSettings(inputSettings_t *result, idPresentablePlayer *); + virtual void Present(); + virtual void Serialize(idSerializer *); + virtual void PostSerializeRead(bool); + virtual void Interpolate(int, float); + virtual bool ShouldSerializeHidden(); + virtual bool ShouldInterpolate(); + virtual void ClientPredict(int, float); + virtual void ClientThink(int, float, bool); + virtual void ServerThink(int); + virtual bool Draw(idPresentablePlayer *); + virtual void SerializeFX(idSerializer *); + virtual void PostAlloc(); + virtual presentableType_t GetType(); + virtual idPresentableAnimatedEntity *GetAnimatedEntityInterface(); + virtual idPresentableVehicle *GetVehicleInterface(); + virtual idPresentableBreakable *GetBreakableInterface(); + virtual idPresentablePieceEmitter *GetPieceEmitterInterface(); + virtual idPresentableDamageable *GetDamageableInterface(); + virtual const idPresentableActor *GetActorInterface(); + virtual idPresentableActor *GetActorInterface_2(); + virtual const idPresentablePlayer *GetPlayerInterface(); + virtual idPresentablePlayer *GetPlayerInterface_2(); + virtual idPresentableProjectile *GetProjectileInterface(); + virtual idPresentableProjectile_Rocket *GetProjectileRocketInterface(); + virtual idPresentableProjectile_Homing *GetProjectileHomingInterface(); + virtual idPresentableProjectile_Grenade *GetProjectileGrenadeInterface(); + virtual idPresentableMultiplayerTrigger *GetMultiplayerTriggerInterface(); + virtual idPresentableWeaponStatic *GetWeaponStaticInterface(); + virtual idPresentableAI *GetAIInterface(); + virtual idPresentableProp *GetPropInterface(); + virtual idPresentableDoorAnimated *GetDoorAnimatedInterface(); + virtual idPresentableWeapon *GetWeaponInterface(); + virtual idOnlineVehicleDeathCameraPresentable *GetVehicleCameraInterface(); + virtual idPresentableReviveCamera *GetReviveCameraInterface(); + virtual idPresentableArmorPiece *GetArmorInterface(); + virtual idPresentablePusher *GetPusherInterface(); + virtual idPresentableTurret *GetTurretInterface(); + virtual idPresentableParticleEmitter *GetParticleEmitterInterface(); + virtual idPresentableCollisionTrigger *GetCollisionTriggerInterface(); + virtual idPresentableSpectatorCamera *GetSpectatorCameraInterface(); + virtual idPresentableAnimatedEntity *GetAnimatedPhysicsInterface(); + virtual void SetRenderModel(idRenderModel *, bool); + virtual bool ShouldSerializeRenderModelParms(); + virtual void StopSound_Predicted(const soundChannel_t); + virtual void Hide(bool); + virtual void Show(); + virtual void GetWorldTransform(idVec3 *, idMat3 *); + virtual idBounds *GetBounds(idBounds *result, int); + virtual idBounds *GetAbsBounds(idBounds *result, int); + virtual bool ShouldTriggerClientHitScanHit(); + virtual void ClientHitScanHit(int, int, int, const idDeclWeapon *, const idDeclProjectile *, int); + virtual void ClientHitScanHit_ClientFire(int, const idDeclWeapon *, int); + virtual void PredictHitScanHit(idPresentable *, float, const idVec3 *, const idVec3 *, const idDeclProjectile *, trace_t *); + virtual int GetPeerIndex(); + virtual bool IsTargetLockable(const idDeclAmmo *); + virtual float GetTotalCurHealth(); + virtual float GetTotalMaxHealth(); + virtual bool ShouldSaveForTimeTrial(); + virtual void StartFX(fxCondition_t, fxExtraCondition_t); + virtual void StopAllFX(); + virtual void UpdateFX(const idVec3 *, const idMat3 *, idFXManager *, const float, const float); + virtual void UpdateFX_2(const idVec3 *, const idMat3 *); + virtual void UpdateFX_3(const float, const float); + virtual void LocalStartFX(fxCondition_t); + virtual usableState_t GetOnlineUsableState(idPresentablePlayer *, int); + virtual void GetOnlineModifiedCrosshairInfo(const idPresentable *, const idFocusTrace *, const usableState_t, idCrosshairInfo *); + virtual idStrId *GetOnlineUsableText(idStrId *result); + virtual void BecomeReplicated(); + virtual int GetControllingPlayerIndex(); + virtual idPresentablePlayer *GetControllingPlayer(); + virtual bool IsLocallyControlled(); + virtual idWeapon *GetFiredWeapon(const idDeclWeapon *); + virtual void InitFXMgr(const idDeclFX *); + virtual void ShutdownFXMgr(); + virtual void UpdateClientCollision(const idVec3 *, const idMat3 *, const idVec3 *, const idMat3 *); + virtual bool ShouldLinkPresentableCollision(); + virtual idInventoryCollection *GetInventory(); + virtual const idInventoryCollection *GetInventory_2(); + virtual bool ShouldEnableSphereCollision(); + virtual void InventoryAdded(idInventoryItem *, int, bool); + virtual void Shoot(bool, bool); + + float curHeat; + int maxHeat; + float minPitch; + float maxPitch; + float minYaw; + float maxYaw; + bool overheating; + bool fireInOrder; + idMat3 lookAt; + int turning; + idIndex jointYaw; + idIndex jointPitch; + const idDeclInventory *weaponDecl; + float windupTimer; + float clipForwardAmount; + const idSoundShader *sndTurning; + const idSoundShader *sndFireLoop; + const idSoundShader *sndFireStop; + const idSoundShader *sndOverheat; + int infopropsIndex; + idList barrels; + idWeapon *clientWeapon; + float zoomTime; + bool shooting; + float windupTime; + idAnimator_JointMod *jointModAnimator; + float lastThinkTime; + int barrelIndex; +}; diff --git a/source/tungsten/game/components/clothcomponent.h b/source/tungsten/game/components/clothcomponent.h new file mode 100644 index 0000000..8a7516a --- /dev/null +++ b/source/tungsten/game/components/clothcomponent.h @@ -0,0 +1,18 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\components\clothcomponent.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15217; PDB kind: class. +class __declspec(align(4)) idClothComponent +{ +public: + const idDeclCloth *clothDecl; + idDeclEntityDef *gibEntity; + idAnimatedEntity *animatedEntity; + idClothSim *clothSim; + bool isDetached; +}; diff --git a/source/tungsten/game/components/healthcomponent.h b/source/tungsten/game/components/healthcomponent.h new file mode 100644 index 0000000..b1157dc --- /dev/null +++ b/source/tungsten/game/components/healthcomponent.h @@ -0,0 +1,30 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\components\healthcomponent.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2390; PDB kind: enum. +enum aiHealthComponent_t : __int32 +{ + AI_HEALTH_HITPOINTS = 0x0, + AI_HEALTH_SHIELD = 0x1, + AI_HEALTH_MAX = 0x2, +}; + +// IDA Local Type ordinal 2431; PDB kind: enum. +enum vehicleHealthComponent_t : __int32 +{ + VEHICLE_HEALTH_HITPOINTS = 0x0, + VEHICLE_HEALTH_ARMOR = 0x1, + VEHICLE_HEALTH_MAX = 0x2, +}; + +// IDA Local Type ordinal 2442; PDB kind: enum. +enum simpleHealthComponent_t : __int32 +{ + SIMPLE_HEALTH_HITPOINTS = 0x0, + SIMPLE_HEALTH_MAX = 0x1, +}; diff --git a/source/tungsten/game/components/smartlootcomponent.h b/source/tungsten/game/components/smartlootcomponent.h new file mode 100644 index 0000000..3db75d2 --- /dev/null +++ b/source/tungsten/game/components/smartlootcomponent.h @@ -0,0 +1,41 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\components\smartlootcomponent.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2116; PDB kind: unknown. +enum idSmartLootComponent::CreateRandomItem::__l2:: : __int32 +{ + HEALTH = 0x0, + ARMOR = 0x1, + GROUP_MAX = 0x2, +}; + +// IDA Local Type ordinal 15110; PDB kind: class. +class idSmartLootComponent +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15111. + virtual ~idSmartLootComponent(); + virtual void Update(const idEntity *, const idPlayer *); + + const mgDeclSmartLoot *decl; + const idDeclWeapon *weaponDecl; + idInventoryItem *customItem; + idInventoryItem *weaponItem; + idInventoryItem *ammoItem; + idInventoryItem *randomItem; +}; + +// IDA Local Type ordinal 15243; PDB kind: class. +class idSmartLootComponentActor : public idSmartLootComponent +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15244. + virtual ~idSmartLootComponentActor(); + virtual void Update(const idEntity *, const idPlayer *); + +}; diff --git a/source/tungsten/game/decls/declaccolades.h b/source/tungsten/game/decls/declaccolades.h new file mode 100644 index 0000000..9a3fad6 --- /dev/null +++ b/source/tungsten/game/decls/declaccolades.h @@ -0,0 +1,47 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\decls\declaccolades.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 18362; PDB kind: class. +class idDeclAccolade : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18363. + virtual ~idDeclAccolade(); + 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(); + + int ordinal; + const idMaterial *icon; + rageStat_t stat; + idStr accoladeName; + idStr description; + int index; +}; + +// IDA Local Type ordinal 20275; PDB kind: class. +class idSort_DeclAccoladePtr : public idSort_Quick +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20276. + virtual ~idSort_DeclAccoladePtr(); + virtual void Sort(const idDeclAccolade **, unsigned int); + +}; diff --git a/source/tungsten/game/decls/declachievements.h b/source/tungsten/game/decls/declachievements.h new file mode 100644 index 0000000..602dfc2 --- /dev/null +++ b/source/tungsten/game/decls/declachievements.h @@ -0,0 +1,76 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\decls\declachievements.h +// Recovered logical types: 5 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14992; PDB kind: struct. +struct idDeclAchievement::flags_t +{ + unsigned __int8 : 3; + __int8 sys_mac : 1; + __int8 sys_ps3 : 1; + __int8 sys_xbox : 1; + __int8 sys_pc : 1; + __int8 internalUse : 1; +}; + +// IDA Local Type ordinal 14993; PDB kind: struct. +struct idDeclAchievement::inventoryAchievement_t +{ + idStr itemDecl; + int count; +}; + +// IDA Local Type ordinal 14996; PDB kind: struct. +struct idDeclAchievement::raceAchievement_t +{ + idStr raceName; + raceMemoryPlace_t place; +}; + +// IDA Local Type ordinal 14998; PDB kind: struct. +struct idDeclAchievement::statConstraint_t +{ + rageStat_t stat; + int count; +}; + +// IDA Local Type ordinal 15001; PDB kind: class. +class idDeclAchievement : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15002. + virtual ~idDeclAchievement(); + 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(); + + idStrId achievementName; + idStrId description; + achievementId_t id; + idDeclAchievement::flags_t flags; + idList item; + idList jobDecl; + idList trigger; + idList races; + bool allRacesRequired; + idList events; + bool allEventsRequired; + idList achievements; + avatarAward_t avatarAwardId; +}; diff --git a/source/tungsten/game/decls/declactormodifier.h b/source/tungsten/game/decls/declactormodifier.h new file mode 100644 index 0000000..277c6c4 --- /dev/null +++ b/source/tungsten/game/decls/declactormodifier.h @@ -0,0 +1,146 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\decls\declactormodifier.h +// Recovered logical types: 12 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2010; PDB kind: enum. +enum idDeclActorModifier::ActorModifierAction_t : __int32 +{ + ACTION_MODIFY_VALUE = 0x0, + ACTION_APPLY_MODIFIER = 0x1, + ACTION_DROP_POI = 0x2, + ACTION_GIVE_OVERDRIVE_POINTS = 0x3, + ACTION_CLEAR_OVERDRIVE_POINTS = 0x4, + MODIFIER_ACTION_COUNT = 0x5, +}; + +// IDA Local Type ordinal 2011; PDB kind: enum. +enum idDeclActorModifier::ActorModifierAttribute_t : __int32 +{ + NULL_MODIFICATION = 0x0, + SPEED_MODIFICATION = 0x1, + DAMAGE_MODIFICATION = 0x2, + OVERDRIVE_DISABLE_MODIFICATION = 0x3, + MODIFIER_ATTRIB_COUNT = 0x4, +}; + +// IDA Local Type ordinal 2012; PDB kind: enum. +enum idDeclActorModifier::ActorModifierAttributeOperation_t : __int32 +{ + MULTIPLY_VALUE = 0x0, + ADD_VALUE = 0x1, +}; + +// IDA Local Type ordinal 2014; PDB kind: enum. +enum idDeclActorModifier::ActorModifierTarget_t : __int32 +{ + TARGET_SELF = 0x0, + TARGET_VICTIM = 0x1, + TARGET_ATTACKER = 0x2, +}; + +// IDA Local Type ordinal 2015; PDB kind: enum. +enum idDeclActorModifier::ActorModifierDepType_t : __int32 +{ + NULL_DEPTYPE = 0x0, + OVERDRIVE_FULL_DEPTYPE = 0x1, + DEPTYPE_COUNT = 0x2, +}; + +// IDA Local Type ordinal 2016; PDB kind: enum. +enum idDeclActorModifier::TriggerType_t : __int32 +{ + TRIGGER_TYPE_BUTTON = 0x0, + TRIGGER_TYPE_ALWAYS_ON = 0x1, + TRIGGER_TYPE_EVENT = 0x2, + TRIGGER_TYPE_DAMAGE_DEALT = 0x3, + TRIGGER_TYPE_DAMAGE_TAKEN = 0x4, + TRIGGER_TYPE_TIMER = 0x5, +}; + +// IDA Local Type ordinal 2039; PDB kind: enum. +enum idDeclActorModifier::ActorModifierUISlot_t : __int32 +{ + SLOT_HIDDEN = 0x0, + SLOT_ACTIVE = 0x1, + SLOT_PASSIVE = 0x2, + SLOT_OVERDRIVE = 0x3, +}; + +// IDA Local Type ordinal 15289; PDB kind: class. +class __declspec(align(4)) idDeclActorModifier : public idDeclInventory +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15297. + virtual ~idDeclActorModifier(); + 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(); + + idList outputs; + idList triggers; + idList deps; + int lifetime; + int removeAfter; + int cooldown; + const idDeclFX *fxDecl; + idDeclActorModifier::ActorModifierUISlot_t uiSlot; + bool removeOnDeath; +}; + +// IDA Local Type ordinal 15290; PDB kind: struct. +struct idDeclActorModifier::ActorModifierSounds_t +{ + const idSoundShader *attackSound; + const idSoundShader *activeSound; + const idSoundShader *startSound; + const idSoundShader *stopSound; + const idSoundShader *almostDoneSound; +}; + +// IDA Local Type ordinal 15291; PDB kind: struct. +struct __declspec(align(4)) idDeclActorModifier::ActorModifierOutput_t +{ + idDeclActorModifier::ActorModifierAction_t action; + idDeclActorModifier::ActorModifierAttribute_t attrib; + idDeclActorModifier::ActorModifierAttributeOperation_t operation; + idDeclActorModifier::ActorModifierTarget_t target; + float value; + const idDeclActorModifier *decl; + const idMaterial *customMaterial; + const idMaterial *customWeaponMaterial; + const idMaterial *customMaterial3rdPerson; + const idMaterial *customWeaponMaterial3rdPerson; + idDeclActorModifier::ActorModifierSounds_t sounds; + bool predicted; +}; + +// IDA Local Type ordinal 15294; PDB kind: struct. +struct __unaligned __declspec(align(4)) idDeclActorModifier::ActorModifierTrigger_t +{ + idDeclActorModifier::TriggerType_t type; + usercmdButton_t button; + int timerDelay; + idList triggers; +}; + +// IDA Local Type ordinal 15295; PDB kind: struct. +struct idDeclActorModifier::ActorModifierDeps_t +{ + idDeclActorModifier::ActorModifierDepType_t type; +}; diff --git a/source/tungsten/game/decls/declaibehavior.h b/source/tungsten/game/decls/declaibehavior.h new file mode 100644 index 0000000..0bebaca --- /dev/null +++ b/source/tungsten/game/decls/declaibehavior.h @@ -0,0 +1,589 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\decls\declaibehavior.h +// Recovered logical types: 22 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13790; PDB kind: struct. +struct idDeclGoreBehavior::fullBodyExplosion_t +{ + float chanceOfLimbloss; + float chanceOfWound; + float chanceOfHeadshot; + int maxPieces; + int maxWounds; +}; + +// IDA Local Type ordinal 13791; PDB kind: class. +class __declspec(align(4)) idDeclGoreBehavior : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13792. + virtual ~idDeclGoreBehavior(); + 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(); + + idDeclGoreBehavior::fullBodyExplosion_t bodyExplosion; + bool enableLimbloss; + bool enableHeadShots; + bool enableBodyWound; + bool enableFullBodyExplosion; + bool enableGoreWhenAlive; +}; + +// IDA Local Type ordinal 16646; PDB kind: struct. +struct idDeclAIBehavior::idDamageBehaviors +{ + float twitchThresholdStanding; + float staggerThresholdStanding; + float twitchThresholdWalking; + float staggerThresholdWalking; + float twitchThresholdRunning; + float staggerThresholdRunning; + int minStaggerPainInterval; + float movingPainSpeed; + float movingDeathSpeed; + float slowMovingDeathSpeed; + float injuredRunThreshold; + int injuredChance; + int injuredDontMoveCount; + float groundBleedRate; + float standingBleedRate; + const idDeclDamage *bleedOutDamageDecl; + idSkillSetting difficultyDamageScale; + __int8 hasBlood : 1; + __int8 usesRechargeHints : 1; + __int8 hasDeathIntensities : 1; + __int8 hasMovingDeathAnims : 1; + __int8 hasDeathAnims : 1; + __int8 hasMovingPainAnims : 1; + __int8 hasAdditivePains : 1; + __int8 canTakeDamage : 1; + unsigned __int8 : 2; + __int8 fourDirExplosionPain : 1; + __int8 usesExplosionPains : 1; + __int8 ignoreDeathRagdoll : 1; + __int8 deathStopsAmbientSound : 1; + __int8 explodesOnStrike : 1; + __int8 canRocketsImpale : 1; + const idDeclEntityDef *explosionEntity; + const idDeclEntityDef *lootBox; + float shieldChargeThreshold; + float shieldBackOnThreshold; + aiInjuredRunMode_t injuredRunMode; +}; + +// IDA Local Type ordinal 16647; PDB kind: struct. +struct __declspec(align(4)) idDeclAIBehavior::idMovementBehaviors +{ + float crouchMoveMax; + float injuredCrouchMoveMax; + float runMoveMin; + float sprintMoveMin; + int coverCrouchPathTime; + int coverRunPathTime; + int coverSprintPathTime; + int fireRunningToCoverChance; + float cornerCircleRadius; + float alignToPointDistance; + __int8 allowEnemySightedCrouchIdle : 1; + __int8 enemyCloseObscurityTest : 1; + __int8 strafeMoveToEntity : 1; + __int8 runFacingForward : 1; + __int8 useOldAlignToPoint : 1; + __int8 allowTransitionOvershoot : 1; + __int8 crouchWhenStill : 1; + __int8 runsIfShotAt : 1; + unsigned __int8 : 7; + __int8 obstacleAvoid_IgnorePlayer : 1; +}; + +// IDA Local Type ordinal 16650; PDB kind: struct. +struct __declspec(align(4)) idDeclAIBehavior::idTakeCoverBehaviors +{ + idSkillSetting maxWaitTimeAfterReachingCover; + idSkillSetting minWaitInCoverTime; + idSkillSetting maxWaitInCoverTime; + idSkillSetting usesForwardCover; + idSkillSetting usesBackwardCover; +}; + +// IDA Local Type ordinal 16651; PDB kind: struct. +struct idDeclAIBehavior::idRunTypeBehaviors +{ + int scrambleRunIndex; + int gunDownIndex; + int downStairsIndex; + int upStairsIndex; + int narrowIndex; + int duckIndex; + int farRunIndex; + float minFarRunDistance; + float maxFarRunDistance; + float blendRate; +}; + +// IDA Local Type ordinal 16652; PDB kind: struct. +struct idDeclAIBehavior::idIdleBehaviors +{ + int gunDownIndex; + int narrowIndex; + int duckIndex; +}; + +// IDA Local Type ordinal 16653; PDB kind: struct. +struct idDeclAIBehavior::idRageBehaviors +{ + int angryRageAfterHurtChance; + int angryRageAfterMissingChance; + int angryRageAfterAttractChance; + float angryRageWhenCloseDistance; + int tauntRageAfterHitEnemyChance; + int tauntRageBehindEnemyChance; + int tauntRageFleeingEnemyChance; + int tauntRageAfterKillingEnemyChance; + int minRageInterval; + int maxRageInterval; + int staleAngryRageThreshold; + int staleTauntRageThreshold; + bool useGroupRageLimit; + float minRageFacingDot; +}; + +// IDA Local Type ordinal 16654; PDB kind: struct. +struct idDeclAIBehavior::idBackstandBehaviors +{ + float approachDistance; + float riseDistance; + float commitDistance; + float attackReach; + float standReach; + float groundReach; + float riseTime; +}; + +// IDA Local Type ordinal 16655; PDB kind: class. +class idDeclAIBehavior::idAIIntimidationBehaviors +{ +public: + aiConfidenceLevel_t minConfidenceLevel; + aiConfidenceLevel_t maxConfidenceLevel; + aiConfidenceLevel_t intimidationConfidence; + aiConfidenceLevel_t minTauntConfidence; + int minIntimidationTime; + float healthFactor; + float avoidFactor; + float firedAtFactor; + float heavyFiredAtFactor; + float recentlyKilledGroupMemberFactor; + float recentHeavilyKilledGroupMemberFactor; + float recentlyKilledHeaviesFactor; + float injured; + float heavyConfidenceBoost; + float deadGroupMemberCap; + float closeEnemyFactor; + float closeEnemyDist; +}; + +// IDA Local Type ordinal 16656; PDB kind: class. +class idDeclAIBehavior::idAIClanDistinctionBehaviors +{ +public: + unsigned __int8 : 3; + __int8 dodgeOnlyAfterMemberKilled : 1; + __int8 fallbackVo : 1; + __int8 retreatVo : 1; + __int8 advanceVo : 1; + __int8 coveringFire : 1; +}; + +// IDA Local Type ordinal 16657; PDB kind: class. +class __declspec(align(4)) idDeclAIBehavior::idAIDodgingBehaviors +{ +public: + int gunfireDodgeCoverChance; + int gunfireDodgeNoCoverChance; + int aimDodgeCoverChance; + int aimHeavyDodgeNoCoverChance; + int painDiveCoverChance; + int painDiveNoCoverChance; + int gunfireHeavyDiveCoverChance; + int gunfireHeavyDiveNoCoverChance; + int aimHeavyDiveCoverChance; + int aimHeavyDiveNoCoverChance; + int gunfireFlinchChance; + int gunfireLightDiveNoCoverChance; + int aimLightDiveNoCoverChance; + int gunfireForwardDiveChance; + idSkillSetting aimForwardDiveChance; + int avoidDiveChance; + int avoidForwardDiveChance; + float tooCloseDist; + float closeRangeDist; + float mediumRangeDist; + int aimCoverHideChance; + int aimHeavyCoverHideChance; + int gunfireCoverHideChance; + int damageCoverHideChance; + bool onlyCoverHideNoHelmet; + int gunfireHideBailChance; + int damageHideBailChance; + int damageHideBailMaxChance; + int minAimDodgeInterval; + int maxAimDodgeInterval; + float sidestepDistance; + float diveDistance; + bool mustBeDirectTarget; + float lightFiredAtAngle; + float mediumFiredAtAngle; + float heavyFiredAtAngle; + bool disableHintNodeUnderFire; +}; + +// IDA Local Type ordinal 16663; PDB kind: class. +class idDeclAIBehavior::idForwardCoverCaps +{ +public: + idAICoverCapabilities meleeCoverCaps; + idAICoverCapabilities pistolCoverCaps; + idAICoverCapabilities rifleCoverCaps; +}; + +// IDA Local Type ordinal 16664; PDB kind: class. +class idDeclAIBehavior::idBackwardCoverCaps +{ +public: + idAICoverCapabilities meleeCoverCaps; + idAICoverCapabilities pistolCoverCaps; + idAICoverCapabilities rifleCoverCaps; +}; + +// IDA Local Type ordinal 16665; PDB kind: class. +class idDeclAIBehavior::idDynamicCoverCaps +{ +public: + unsigned __int8 : 5; + __int8 providesFormationCover : 1; + __int8 usesFormationCover : 1; + __int8 usesVehicleCover : 1; +}; + +// IDA Local Type ordinal 16674; PDB kind: class. +class idDeclAIBehavior : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16675. + virtual ~idDeclAIBehavior(); + 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(); + + int traversalAimEvasionDuration; + int traversalGunfireEvasionDuration; + int traversalAttackTolerance; + float traversalEvasionAimDist; + float traversalEvasionGunfireDist; + __int8 canUseTeleporters : 1; + __int8 canUseElevators : 1; + __int8 canUseLadders : 1; + __int8 canClimbBarriers : 1; + __int8 canDropOffBarriers : 1; + __int8 canClimbLedges : 1; + __int8 canDropOffLedges : 1; + __int8 canUseStairs : 1; + __int8 usesSearch : 1; + __int8 isVehicleChaser : 1; + __int8 useTurningCircles : 1; + __int8 hasBumpedReaction : 1; + __int8 canUseTraversalEvasions : 1; + __int8 canUseTraversals : 1; + __int8 canSwim : 1; + __int8 canJump : 1; + __int8 usesOnElevator : 1; + __int8 usesBackStand : 1; + __int8 usesPanic : 1; + __int8 usesAvoidCower : 1; + __int8 usesAvoidDive : 1; + __int8 usesAvoidCover : 1; + __int8 usesAvoidRun : 1; + __int8 usesAvoid : 1; + unsigned __int8 : 5; + __int8 usesCombatLookFocusRelaxed : 1; + __int8 usesCombatLookFocus : 1; + __int8 canBeTagged : 1; + idDeclAIBehavior::idDamageBehaviors damageBehaviors; + __int8 usesStrafeApproach : 1; + __int8 usesSneakUpOnEnemy : 1; + __int8 usesMelee : 1; + __int8 usesOpenCombat : 1; + __int8 usesFallback : 1; + __int8 usesAdvance : 1; + __int8 usesScenePoints : 1; + __int8 usesCombat : 1; + unsigned __int8 : 4; + __int8 subtitlesInCombat : 1; + __int8 usesShootIdle : 1; + __int8 dontLeaveTurretsEasily : 1; + __int8 usesTurrets : 1; + equipSlot_t weaponSlot; + float friendlyAttitudeAdjust; + float neutralAttitudeAdjust; + float attitudeAdjust; + idSkillSetting throwLag; + idSkillSetting maxThrowError; + aiItemSelect_t itemSelect[3]; + float muzzleTraceClearOffset; + float minThrowDot; + idDeclAmmo *combatAmmo; + float aimOffset; + idDeclAIBehavior::idMovementBehaviors movementBehaviors; + idList rolePreferenceOrder; + idRelationship::attitude_t followFriendlyThreshold; + bool lookAtFriendlyTarget; + bool chasesProjectiles; + bool canGreetPlayers; + bool canGreetHumans; + bool investigatesBody; + idDeclAIBehavior::idTakeCoverBehaviors takeCoverBehaviors; + __int8 hasCrouches : 1; + __int8 has157Turns : 1; + __int8 hasCombatSprints : 1; + __int8 hasWalkInserts : 1; + __int8 hasSyncedWalks : 1; + __int8 hasCombatWalks : 1; + __int8 canRetreat : 1; + __int8 canCharge : 1; + unsigned __int8 : 7; + __int8 hasBackStandLerps : 1; + unsigned __int8 doubleBlinkChance; + __int16 doubleBlinkInterval; + __int16 minBlinkInterval; + __int16 maxBlinkInterval; + __int16 jitterMinInterval; + __int16 jitterMaxInterval; + idDeclAIBehavior::idRunTypeBehaviors runTypeBehaviors; + idDeclAIBehavior::idIdleBehaviors idleBehaviors; + float openCombatDuration; + float exposeCoverDistance; + float exposeCoverMinDistance; + float optimalCoverDistance; + float exposeCoverTravelTime; + int exposeCoverOpenCombatChance; + float coverPathNearDistance; + int minFireFromCoverDuration; + int maxFireFromCoverDuration; + int repeatExposeCoverChargeTime; + idRelationship::attitude_t friendlyFireThreshold; + float freeAmmoDistance; + idDeclAIBehavior::idRageBehaviors rageBehaviors; + float enemyTooCloseToGoProne; + float enemyTooCloseToGoProneFacing; + float closeMeleeDist; + float mediumMeleeDist; + float longMeleeDist; + float movingMeleeDist; + int minCloseMeleeInterval; + int maxCloseMeleeInterval; + float meleeExtrapolate; + const idDeclDamage *closeMeleeKickDamage; + const idDeclDamage *closeMeleePunchDamage; + const idDeclProjectileImpactEffect *meleeImpactEffect; + int meleeFromStunChance; + int stunIgnoreTime; + int leapAttackChance; + int minLeapAttackInterval; + int maxLeapAttackInterval; + float maxLeapAttackDistance; + float minLeapAttackDistance; + float leapAttackTargetExtrapolate; + float leapAttackSpeed; + idDeclAIBehavior::idBackstandBehaviors backstandBehaviors; + idDeclAIBehavior::idAIIntimidationBehaviors intimidation; + idDeclAIBehavior::idAIClanDistinctionBehaviors clanDistinctionBehaviors; + int maxChargeDuration; + int minChargeInterval; + int maxChargeInterval; + int chargeChance; + float minChargeDistance; + float maxChargeDistance; + idDeclAIBehavior::idAIDodgingBehaviors dodging; + int meleeDodgeChance; + int minMeleeDodgeInterval; + int maxMeleeDodgeInterval; + float noticeGrenadeChance; + int minThrowInterval; + int maxThrowInterval; + int minOCThrowInterval; + int maxOCThrowInterval; + int minCoverDuration; + int maxCoverDuration; + int noContactInterval; + int breakCoverDuration; + int combatTimeoutInterval; + int searchTimeoutInterval; + int obstacleStopDistance; + int surroundRadius; + int minControlTime; + int maxControlTime; + int controlIntroDuration; + const idDeclDamage *controlSelfDamage; + const idDeclDamage *controlSplashDamage; + const idDeclParticle *controlEndParticle; + const idDeclFaction *berzerkerFaction; + const idDeclParticle *bfgDeathParticle; + idDeclAIBehavior::idForwardCoverCaps forwardCoverCaps; + idDeclAIBehavior::idBackwardCoverCaps backwardCoverCaps; + idDeclAIBehavior::idDynamicCoverCaps dynamicCoverCaps; + idList formations; + idStaticList turnParms; + idAINavPowerMoverParms navpower; +}; + +// IDA Local Type ordinal 16677; PDB kind: class. +class idDeclAIBehaviorVO::idVoiceSearch +{ +public: + idVoiceInfo startFromCombat; +}; + +// IDA Local Type ordinal 16678; PDB kind: class. +class idDeclAIBehaviorVO::idVoiceCombat +{ +public: + idVoiceInfo changePosition; + idVoiceInfo firstSpot; + idVoiceInfo reSpot; + idVoiceInfo flankSpot; + idVoiceInfo downed; + idVoiceInfo losingBattle; + idVoiceInfo reload; + idVoiceInfo fightMotivation; + idVoiceInfo fightMotivationResponse; +}; + +// IDA Local Type ordinal 16679; PDB kind: struct. +struct idDeclAIBehaviorVO::jobResponseInfo_t +{ + idDeclJobRef jobDecl; + const idDeclVoiceOver *voiceOver; +}; + +// IDA Local Type ordinal 16681; PDB kind: class. +class idDeclAIBehaviorVO : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16682. + virtual ~idDeclAIBehaviorVO(); + 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(); + + idDeclAIBehaviorVO::idVoiceSearch search; + idDeclAIBehaviorVO::idVoiceCombat combat; + idList jobResponseInfo; +}; + +// IDA Local Type ordinal 16688; PDB kind: class. +class idDeclAIBehaviorVOChains : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16689. + virtual ~idDeclAIBehaviorVOChains(); + 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(); + + idList combatVoChains; +}; + +// IDA Local Type ordinal 16690; PDB kind: class. +class idDeclAIBehaviorEvents : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16691. + virtual ~idDeclAIBehaviorEvents(); + 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(); + + const idDeclAiEvent *bodyEventDecl; + const idDeclAiEvent *electricDeathEventDecl; + const idDeclAiEvent *mutantAttackEventDecl; + const idDeclAiEvent *possessionEventDecl; + const idDeclAiEvent *deadBodyLandEventDecl; + const idDeclAiEvent *gotKilledVoiceEventDecl; + const idDeclAiEvent *sawSomethingVoiceEventDecl; + const idDeclAiEvent *heardSomethingVoiceEventDecl; + const idDeclAiEvent *memberKilledVoiceEventDecl; + const idDeclAiEvent *foundDeadBodyVoiceEventDecl; + const idDeclAiEvent *enemySightedVoiceEventDecl; + const idDeclAiEvent *injuredVOEventDecl; + const idDeclAiEvent *crapVOEventDecl; + const idDeclAiEvent *intimidatedVOEventDecl; + const idDeclAiEvent *enemyKilledVOEventDecl; + const idDeclAiEvent *losingBattleVOEventDecl; + const idDeclAiEvent *memberKilledVOEventDecl; +}; diff --git a/source/tungsten/game/decls/declaiinteraction.h b/source/tungsten/game/decls/declaiinteraction.h new file mode 100644 index 0000000..5f68145 --- /dev/null +++ b/source/tungsten/game/decls/declaiinteraction.h @@ -0,0 +1,49 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\decls\declaiinteraction.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2352; PDB kind: enum. +enum idDeclAIInteraction::interactionEvent_t : __int32 +{ + IEV_ACTIONSCRIPT = 0x0, + IEV_MAX = 0x1, +}; + +// IDA Local Type ordinal 20188; PDB kind: struct. +struct idDeclAIInteraction::eventData_t +{ + idDeclAIInteraction::interactionEvent_t type; + int timeMS; + int durationMS; + int actorIndex; + idList actionScript; +}; + +// IDA Local Type ordinal 20190; PDB kind: class. +class idDeclAIInteraction : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20191. + virtual ~idDeclAIInteraction(); + 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(); + + idList events; +}; diff --git a/source/tungsten/game/decls/declaimassist.h b/source/tungsten/game/decls/declaimassist.h new file mode 100644 index 0000000..72a11bb --- /dev/null +++ b/source/tungsten/game/decls/declaimassist.h @@ -0,0 +1,32 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\decls\declaimassist.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 20212; PDB kind: class. +class idDeclAimAssist : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20213. + virtual ~idDeclAimAssist(); + 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(); + + aimAssistData_t baseData; +}; diff --git a/source/tungsten/game/decls/declaiplayerinteraction.h b/source/tungsten/game/decls/declaiplayerinteraction.h new file mode 100644 index 0000000..0bb7afd --- /dev/null +++ b/source/tungsten/game/decls/declaiplayerinteraction.h @@ -0,0 +1,35 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\decls\declaiplayerinteraction.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16623; PDB kind: class. +class idDeclAIPlayerInteraction : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16624. + virtual ~idDeclAIPlayerInteraction(); + 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(); + + float approachRadius; + float departureRadius; + float lookAheadTime; + idList interactList; +}; diff --git a/source/tungsten/game/decls/declaiturnparms.h b/source/tungsten/game/decls/declaiturnparms.h new file mode 100644 index 0000000..3972fe2 --- /dev/null +++ b/source/tungsten/game/decls/declaiturnparms.h @@ -0,0 +1,40 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\decls\declaiturnparms.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16670; PDB kind: class. +class __declspec(align(4)) idDeclAITurnParms : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16671. + virtual ~idDeclAITurnParms(); + 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(); + + idStr baseTurnName; + int turnDelay; + float extraAngleScale; + float maxAngle; + bool allowTurns; + bool allowCrouchedTurns; + bool allowSittingTurns; + bool predictTurns; + bool turnToFocus; +}; diff --git a/source/tungsten/game/decls/declbot.h b/source/tungsten/game/decls/declbot.h new file mode 100644 index 0000000..c882e75 --- /dev/null +++ b/source/tungsten/game/decls/declbot.h @@ -0,0 +1,32 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\decls\declbot.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14983; PDB kind: class. +class idDeclBot : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14984. + virtual ~idDeclBot(); + 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(); + + idStr botName; +}; diff --git a/source/tungsten/game/decls/declcameratrigger.h b/source/tungsten/game/decls/declcameratrigger.h new file mode 100644 index 0000000..bb092e6 --- /dev/null +++ b/source/tungsten/game/decls/declcameratrigger.h @@ -0,0 +1,255 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\decls\declcameratrigger.h +// Recovered logical types: 20 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1688; PDB kind: enum. +enum idDeclCameraTrigger::cam_move_t : __int32 +{ + CAM_MOVE_NONE = 0x0, + CAM_MOVE_SPLINE = 0x1, + CAM_MOVE_POSITION = 0x2, + CAM_MOVE_ENTITY = 0x3, + CAM_MOVE_PLAYER = 0x4, + CAM_MOVE_PLAYER_VEHICLE = 0x5, + CAM_MOVE_VEHICLE_DEFAULT = 0x6, + CAM_MOVE_ENTITY_POSITION = 0x7, + CAM_MOVE_ACTIVATOR = 0x8, + CAM_MOVE_ACTIVATOR_POSITION = 0x9, + CAM_MOVE_PLAYER_POSITION = 0xA, + CAM_MOVE_PLAYER_VEHICLE_POSITION = 0xB, + CAM_MOVE_CIRCLE_ENTITY = 0xC, + CAM_MOVE_CIRCLE_PLAYER = 0xD, + CAM_MOVE_CIRCLE_PLAYER_VEHICLE = 0xE, + CAM_MOVE_RADIAL_ENTITY = 0xF, + CAM_MOVE_RADIAL_PLAYER = 0x10, + CAM_MOVE_RADIAL_PLAYER_VEHICLE = 0x11, +}; + +// IDA Local Type ordinal 1689; PDB kind: enum. +enum idDeclCameraTrigger::cam_focus_t : __int32 +{ + CAM_FOCUS_NONE = 0x0, + CAM_FOCUS_MOVEPATH = 0x1, + CAM_FOCUS_SPLINE = 0x2, + CAM_FOCUS_ACTIVATOR = 0x3, + CAM_FOCUS_ACTIVATOR_POSITION = 0x4, + CAM_FOCUS_PLAYER = 0x5, + CAM_FOCUS_PLAYER_VEHICLE = 0x6, + CAM_FOCUS_VEHICLE_DEFAULT = 0x7, + CAM_FOCUS_ENTITY = 0x8, + CAM_FOCUS_ENTITY_POSITION = 0x9, + CAM_FOCUS_POSITION = 0xA, + CAM_FOCUS_POSITION_LERP = 0xB, +}; + +// IDA Local Type ordinal 1690; PDB kind: enum. +enum idDeclCameraTrigger::cam_showhud_t : __int32 +{ + CAM_SHOWHUD_NULL = 0x0, + CAM_SHOWHUD_NO = 0x1, + CAM_SHOWHUD_YES = 0x2, +}; + +// IDA Local Type ordinal 14400; PDB kind: class. +class idDeclCameraTrigger::idSplineMove +{ +public: + idSplinePath *path; + float dist; + int sc; +}; + +// IDA Local Type ordinal 14401; PDB kind: class. +class idDeclCameraTrigger::idTimeLerpHelper +{ +public: + float duration; + float easeInTime; + float easeOutTime; + bool looping; + int startTimeOfs; +}; + +// IDA Local Type ordinal 14402; PDB kind: class. +class idDeclCameraTrigger::idTrigMovement +{ +public: + idDeclCameraTrigger::cam_move_t moveType; + idDeclCameraTrigger::idSplineMove spline; + idVec3 position; + idEntityPtr entity; + idVec3 entityOffset; + float scalarOffset; + idDeclCameraTrigger::idTimeLerpHelper timing; + idDeclCameraTrigger::idTimeLerpHelper frameLerp; + idVec3 additionalOffset; + idVec3 viewOrigin; +}; + +// IDA Local Type ordinal 14403; PDB kind: class. +class idDeclCameraTrigger::idTrigFocus +{ +public: + idDeclCameraTrigger::cam_focus_t focusType; + idDeclCameraTrigger::idSplineMove spline; + float splineTime; + idEntityPtr entity; + idVec3 position; + idAngles pathAdjust; + idVec3 focusOffset; + idDeclCameraTrigger::idTimeLerpHelper frameLerp; + idMat3 viewAxis; + idVec3 lastKnownPosition; +}; + +// IDA Local Type ordinal 14404; PDB kind: class. +class __declspec(align(4)) idDeclCameraTrigger::idTrigFade +{ +public: + idColor color; + float transTime; + bool timeScaleFade; + bool activate; +}; + +// IDA Local Type ordinal 14405; PDB kind: class. +class idDeclCameraTrigger::idTrigTimeScale +{ +public: + float scale; + idDeclCameraTrigger::idTimeLerpHelper timing; + float initScale; +}; + +// IDA Local Type ordinal 14406; PDB kind: class. +class idDeclCameraTrigger::idTrigFovZoom +{ +public: + float angle; + idDeclCameraTrigger::idTimeLerpHelper timing; +}; + +// IDA Local Type ordinal 14407; PDB kind: class. +class idDeclCameraTrigger::idTrigActivateEnt +{ +public: + idList,5> entity; +}; + +// IDA Local Type ordinal 14409; PDB kind: class. +class idDeclCameraTrigger::idTrigSounds +{ +public: + idList sound; +}; + +// IDA Local Type ordinal 14410; PDB kind: class. +class idDeclCameraTrigger::idTrigDof +{ +public: + float blurStart; + float blurScale; + idDeclCameraTrigger::idTimeLerpHelper timing; + idVec3 vec; +}; + +// IDA Local Type ordinal 14411; PDB kind: class. +class __declspec(align(4)) idDeclCameraTrigger::idTrigShakeView +{ +public: + float shakeVolume; + bool activate; +}; + +// IDA Local Type ordinal 14412; PDB kind: class. +class idDeclCameraTrigger::idTrigRenderParms +{ +public: + float fogScale; + idColor fogColor; + idDeclCameraTrigger::idTimeLerpHelper timing; +}; + +// IDA Local Type ordinal 14413; PDB kind: class. +class idDeclCameraTrigger::idTrigMisc +{ +public: + bool endCinematic; + bool notifyGUI; + bool suspendCamera; + idDeclCameraTrigger::cam_showhud_t showHud; +}; + +// IDA Local Type ordinal 14414; PDB kind: class. +class __declspec(align(4)) idDeclCameraTrigger::idCameraTriggerParms +{ +public: + idStr title; + float offsetTime; + idDeclCameraTrigger::idTrigMovement movement; + idDeclCameraTrigger::idTrigFocus focus; + idDeclCameraTrigger::idTrigFade fade; + idDeclCameraTrigger::idTrigTimeScale timeScale; + idDeclCameraTrigger::idTrigFovZoom fovZoom; + idDeclCameraTrigger::idTrigActivateEnt activate; + idDeclCameraTrigger::idTrigSounds sounds; + idDeclCameraTrigger::idTrigDof depthOfField; + idDeclCameraTrigger::idTrigShakeView shakeView; + idDeclCameraTrigger::idTrigRenderParms renderParms; + idDeclCameraTrigger::idTrigMisc misc; + bool triggered; +}; + +// IDA Local Type ordinal 14416; PDB kind: class. +class idDeclCameraTrigger : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14417. + virtual ~idDeclCameraTrigger(); + 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(); + + idList triggers; +}; + +// IDA Local Type ordinal 14761; PDB kind: class. +class idDeclCameraTrigger::idCameraTriggerState +{ +public: + idDeclCameraTrigger::idTrigMovement movement; + idDeclCameraTrigger::idTrigFocus focus; + idDeclCameraTrigger::idTrigFade fade; + idDeclCameraTrigger::idTrigTimeScale timeScale; + idDeclCameraTrigger::idTrigFovZoom fovZoom; + idDeclCameraTrigger::idTrigDof depthOfField; + idDeclCameraTrigger::idTrigShakeView shakeView; + idDeclCameraTrigger::idTrigRenderParms renderParms; + idDeclCameraTrigger::idTrigMisc misc; +}; + +// IDA Local Type ordinal 14762; PDB kind: class. +class idDeclCameraTrigger::idSplineCurve +{ +public: + idSplinePath *splinePath; + idCurve_Spline *curve; + float length; + idVec3 lastOrigin; +}; diff --git a/source/tungsten/game/decls/declchapter.h b/source/tungsten/game/decls/declchapter.h new file mode 100644 index 0000000..2cb67e8 --- /dev/null +++ b/source/tungsten/game/decls/declchapter.h @@ -0,0 +1,46 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\decls\declchapter.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1783; PDB kind: enum. +enum idDeclChapter::chapterType_t : __int32 +{ + CHAPTERTYPE_CAMPAIGN = 0x0, + CHAPTERTYPE_SIDEMISSION = 0x1, + MAX_TYPES = 0x2, +}; + +// IDA Local Type ordinal 16086; PDB kind: class. +class idDeclChapter : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16087. + virtual ~idDeclChapter(); + 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(); + + int sortId; + idStrId displayName; + idStrId lockedName; + idDeclChapter::chapterType_t type; + idVec2 offset; + idStr sideMap; + idList variations; +}; diff --git a/source/tungsten/game/decls/decldamage.h b/source/tungsten/game/decls/decldamage.h new file mode 100644 index 0000000..330dd4c --- /dev/null +++ b/source/tungsten/game/decls/decldamage.h @@ -0,0 +1,254 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\decls\decldamage.h +// Recovered logical types: 10 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1049; PDB kind: enum. +enum idDeclDamage::damageType_t : __int32 +{ + DAMAGETYPE_NONE = 0x0, + DAMAGETYPE_GENERIC = 0x1, + DAMAGETYPE_MELEE = 0x2, + DAMAGETYPE_PISTOL = 0x4, + DAMAGETYPE_RIFLE = 0x8, + DAMAGETYPE_SHOTGUN = 0x10, + DAMAGETYPE_TURRET = 0x20, + DAMAGETYPE_VEHICLE_RAM = 0x40, + DAMAGETYPE_LASER = 0x80, + DAMAGETYPE_EXPLOSION = 0x100, + DAMAGETYPE_FIRE = 0x200, + DAMAGETYPE_ELECTRIC = 0x400, + DAMAGETYPE_EDGED = 0x1000, + DAMAGETYPE_BLUNT = 0x2000, + DAMAGETYPE_LASER_CUTTING = 0x4000, + DAMAGETYPE_NO_DAMAGE = 0x8000, + DAMAGETYPE_ALL = 0x7FFFFFFF, + DAMAGETYPE_LIGHT = 0x8C, + DAMAGETYPE_HEAVY = 0x30, +}; + +// IDA Local Type ordinal 1283; PDB kind: enum. +enum idDeclDamage::goreType_t : __int32 +{ + GORETYPE_NONE = 0x0, + GORETYPE_DECAPITATION = 0x1, + GORETYPE_DISMEMBER_ARMS = 0x2, + GORETYPE_DISMEMBER_LEGS = 0x4, + GORETYPE_GIB = 0x8, + GORETYPE_HEAD_EXPLODE = 0x10, + GORETYPE_SMALL_WOUND = 0x20, + GORETYPE_BIG_WOUND = 0x40, + GORETYPE_TORSO_SAW = 0x80, + GORETYPE_BFG = 0x100, + GORETYPE_ANY = 0x7FFFFFFF, +}; + +// IDA Local Type ordinal 1625; PDB kind: enum. +enum idDeclDamage::damageSource_t : __int32 +{ + DAMAGESRC_UNKNOWN = 0x0, + DAMAGESRC_BULLET = 0x1, + DAMAGESRC_MELEE = 0x2, + DAMAGESRC_FIRE = 0x4, + DAMAGESRC_ELECTRICAL = 0x8, + DAMAGESRC_FALL = 0x10, + DAMAGESRC_CRUSH = 0x20, + DAMAGESRC_EXPLOSIVE = 0x40, + DAMAGESRC_CHAINSAW = 0x80, + DAMAGESRC_ACID = 0x100, + DAMAGESRC_HELLSPIKE = 0x200, + DAMAGESRC_PLASMA = 0x400, + DAMAGESRC_BFG = 0x800, + DAMAGESRC_SPIRITWEB = 0x1000, + DAMAGESRC_POISON_GAS = 0x2000, + DAMAGESRC_SYNCED_FATALITY = 0x4000, +}; + +// IDA Local Type ordinal 13784; PDB kind: class. +class __declspec(align(4)) idDeclVisionDamage : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13785. + virtual ~idDeclVisionDamage(); + 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(); + + idVisionDamageElement contrast; + idVisionDamageElement brightness; + idVisionDamageElement brightnessAdd; + idVisionDamageElement saturation; + idVisionDamageElement tintRed; + idVisionDamageElement tintGreen; + idVisionDamageElement tintBlue; + idVisionDamageElement doubleVision; + idVisionDamageElement blur; + idVisionDamageElement negative; + idVisionDamageElement chromaticAberration; + idVisionDamageElement radialBlur; + idVisionDamageElement distortion; + idVisionDamageElement colorDodge; + idVisionDamageElement colorBurn; + bool interruptible; + bool applyAfterDeath; +}; + +// IDA Local Type ordinal 13786; PDB kind: struct. +struct idDeclDamage::damageScreenEffectParms_t +{ + float screenDamageTime; + idMaterial *screenDamageMtr; + idVec2 screenDamageSize; + idVec2 offsetPctX; + idVec2 offsetPctY; + idVec2 distribPctX; + idVec2 distribPctY; + idVec2 driftYAmount; + idVec2 delay; + float fadeOutTime; + int screenDamageFrames; + int numQuads; +}; + +// IDA Local Type ordinal 13787; PDB kind: struct. +struct idDeclDamage::damageScreenEffect_t +{ + idDeclDamage::damageScreenEffectParms_t parms; + float damagePct; + float radius; +}; + +// IDA Local Type ordinal 13788; PDB kind: struct. +struct idDeclDamage::damageFeedbackScreenEffects_t +{ + idDeclDamage::damageScreenEffect_t feedbackSmall; + idDeclDamage::damageScreenEffect_t feedbackMedium; + idDeclDamage::damageScreenEffect_t feedbackLarge; + idDeclDamage::damageScreenEffect_t feedbackGib; +}; + +// IDA Local Type ordinal 13789; PDB kind: struct. +struct idDeclDamage::playerDamageScreenEffects_t +{ + idDeclDamage::damageScreenEffect_t damageSmall; + idDeclDamage::damageScreenEffect_t damageMedium; + idDeclDamage::damageScreenEffect_t damageLarge; +}; + +// IDA Local Type ordinal 13793; PDB kind: class. +class idDeclDamage : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13794. + virtual ~idDeclDamage(); + 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(); + + idStr damageName; + idDeclDamage::damageType_t damageTypes; + idDeclDamage::goreType_t goreTypes; + idDeclDamage::damageSource_t damageSource; + idHandsHitReactionType_t handsHitReactionType; + idPlayerBodyReactionDescriptor_t playerBodyReactionDescriptor; + const idDeclVisionDamage *visionDamage; + float minDamage; + float maxDamage; + float vehicleDamageScale; + float selfDamageScale; + float playerDamageScale; + bool damageIsCurrentHealth; + bool ignoreGodMode; + bool ignoreArmor; + bool ignorePlayer; + bool ignoreArmoredBreakables; + bool ignoreFriendlyFire; + bool isMelee; + bool burning; + bool noSound; + bool stuns; + bool instantRagdoll; + bool ragdollOnDeath; + bool coopSpecial; + bool simplifiedRadiusDamage; + int knockBack; + int knockUp; + float selfKnockbackScale; + bool absoluteknockBack; + float kickTime; + float kickAmplitude; + idVec3 kickDir; + float radius; + int radiusInner; + int radiusOuterDamageStrength; + float ragdollImpulseMag; + float vehicleImpulseMag; + float blur; + float blurTime; + float doubleVision; + float doubleVisionTime; + fxCondition_t hitFXStartCondition; + damageIntensity_t intensity; + idSoundShader *damageSound; + bool isStealthy; + specialDeath_t specialDeathType; + bool friendlyFire; + bool knocksOffArmor; + idDeclDamage::damageFeedbackScreenEffects_t feedbackScreenEffects; + idDeclDamage::playerDamageScreenEffects_t playerDamageScreenEffects; + const idMaterial *damageIcon; + idDeclGoreBehavior *declGoreBehavior; +}; + +// IDA Local Type ordinal 17978; PDB kind: class. +class idDeclDamageBoostItem : public idDeclInventory +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17979. + virtual ~idDeclDamageBoostItem(); + 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(); + + float damageBoostMultiplier; + float damageBoostDuration; +}; diff --git a/source/tungsten/game/decls/declemblems.h b/source/tungsten/game/decls/declemblems.h new file mode 100644 index 0000000..8de71b4 --- /dev/null +++ b/source/tungsten/game/decls/declemblems.h @@ -0,0 +1,55 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\decls\declemblems.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2094; PDB kind: enum. +enum idDeclEmblem::emblemCategory_t : __int32 +{ + EMBLEM_COOP = 0x0, + EMBLEM_VDM = 0x1, +}; + +// IDA Local Type ordinal 17910; PDB kind: class. +class idDeclEmblem : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17911. + virtual ~idDeclEmblem(); + 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(); + + int ordinal; + const idMaterial *icon; + idList requirements; + bool allEventsRequired; + idDeclEmblem::emblemCategory_t category; + idStrId unlockDescription; + int index; +}; + +// IDA Local Type ordinal 20271; PDB kind: class. +class idSort_DeclEmblemPtr : public idSort_Quick +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20272. + virtual ~idSort_DeclEmblemPtr(); + virtual void Sort(const idDeclEmblem **, unsigned int); + +}; diff --git a/source/tungsten/game/decls/declfaction.h b/source/tungsten/game/decls/declfaction.h new file mode 100644 index 0000000..79da739 --- /dev/null +++ b/source/tungsten/game/decls/declfaction.h @@ -0,0 +1,34 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\decls\declfaction.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14375; PDB kind: class. +class idDeclFaction : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14380. + virtual ~idDeclFaction(); + 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(); + + idStr factionNameId; + const idDeclFaction *parentFaction; + idRelationshipList relationships; +}; diff --git a/source/tungsten/game/decls/declgore.h b/source/tungsten/game/decls/declgore.h new file mode 100644 index 0000000..d67f23e --- /dev/null +++ b/source/tungsten/game/decls/declgore.h @@ -0,0 +1,48 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\decls\declgore.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13305; PDB kind: class. +class idDeclSource +{ +public: + idAtomicString name; + idDeclFile *sourceFile; + int sourceLine; + idDeclSource *nextInFile; + bool isStatic; + int sourceTextOffset; + int sourceTextLength; +}; + +// IDA Local Type ordinal 15460; PDB kind: class. +class idDeclGore : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15461. + virtual ~idDeclGore(); + 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(); + + idList gorePieces; + idList damageSplatterDecals; + idList fullBodyBreakableGibs; + idGoreDeathFade deathFadeInfo; +}; diff --git a/source/tungsten/game/decls/declhandsbobcycle.h b/source/tungsten/game/decls/declhandsbobcycle.h new file mode 100644 index 0000000..01dda82 --- /dev/null +++ b/source/tungsten/game/decls/declhandsbobcycle.h @@ -0,0 +1,41 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\decls\declhandsbobcycle.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 20199; PDB kind: class. +class __declspec(align(2)) idDeclHandsBobCycle : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20200. + virtual ~idDeclHandsBobCycle(); + 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(); + + idAtomicString subweb; + idHandsBobCycleSingleCycleData_t idleData; + idHandsBobCycleSingleCycleData_t runData; + idHandsBobCycleSingleCycleData_t sprintData; + idHandsBobCycleSingleCycleData_t crouchData; + idHandsBobCycleSingleCycleData_t zoomData; + idHandsBobCycleSingleCycleData_t pdaData; + bool scaleAlphaWithSpeed; + bool hasSprint; + bool inited; +}; diff --git a/source/tungsten/game/decls/declinventory.h b/source/tungsten/game/decls/declinventory.h new file mode 100644 index 0000000..27a925c --- /dev/null +++ b/source/tungsten/game/decls/declinventory.h @@ -0,0 +1,180 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\decls\declinventory.h +// Recovered logical types: 7 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1203; PDB kind: enum. +enum idDeclInventory::inventoryUse_t : __int32 +{ + INVENTORY_USE_UNDEF = 0x0, + INVENTORY_USE_JOB = 0x1, + INVENTORY_USE_QUICK = 0x2, + INVENTORY_USE_ENGINEERING = 0x3, + INVENTORY_USE_SELLABLE = 0x4, + INVENTORY_USE_BUYABLE = 0x5, + INVENTORY_USE_AMMO = 0x6, + INVENTORY_USE_WEAPON = 0x7, + INVENTORY_USE_USABLE = 0x8, + INVENTORY_USE_NONE = 0x9, + INVENTORY_USE_VEHICLE = 0xA, +}; + +// IDA Local Type ordinal 2088; PDB kind: enum. +enum idDeclInventory::inventoryGroup_t : __int32 +{ + INVENTORY_GROUP_UNGROUPED = 0x0, + INVENTORY_GROUP_BOOKS = 0x1, + INVENTORY_GROUP_FOODS = 0x2, + INVENTORY_GROUP_GAS = 0x3, + INVENTORY_GROUP_OIL = 0x4, + INVENTORY_GROUP_SMALL = 0x5, + INVENTORY_GROUP_BEER = 0x6, + INVENTORY_GROUP_TOOLS = 0x7, +}; + +// IDA Local Type ordinal 13423; PDB kind: class. +class idDeclInventory : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13822. + virtual ~idDeclInventory(); + 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(); + + idStr inventoryClass; + const idDeclMD6 *handsModelMD6; + const idDeclMD6 *handsModelMD6Alt; + const idDeclMD6 *thirdPersonMD6; + const idDeclInventory *dualWieldItemDecl; + idStaticModel *thirdPersonStatic; + idStaticModel *guiModel; + float thirdPersonScale; + idList childItem; + const idMaterial *customMaterial; + idList attachmentInfo; + float handsFovScale; + idStrId displayName; + idStr internalName; + idStrId description; + idStrId boostDescription; + idStrId requiredName; + const idMaterial *icon; + const idMaterial *quickIcon; + const idMaterial *garageIcon; + const idMaterial *engineeringIcon; + const idMaterial *merchantIcon; + const idMaterial *raceRewardImage; + const idDeclEntityDef *entityDef; + const idDeclEntityDef *boostEntityDef; + bool usable; + bool usableInTown; + __int16 maxCountOverride; + quickSlotGroup_t quickSlotGroup; + bool giveable; + bool dropable; + bool droppedBot; + bool dropRemoveOnContact; + idDeclInventory::controllerShankInfo_t droppedControllerShake; + bool isWeapon; + bool isVehicleAmmo; + bool stackable; + bool singular; + bool removeOnUse; + bool closeInventoryGuiOnUse; + bool noAttachment; + bool vehicleAttachment; + bool vehiclePermAttachment; + bool vehicleArmor; + idStr vehicleJointName; + bool noPickupMessage; + removeCond_t removeCondition; + float fadeDelay; + int quickUseCoolDown; + int maxCount; + int count; + int buyCount; + int sellCount; + int numHands; + equipSlot_t equipSlot; + equipSlot_t holsterSlot; + bool sellStack; + int price; + int sellPrice; + bool useRaceCertificates; + bool playerCanSell; + bool playerCanSeeInInventory; + const idDeclRecipe *recipe; + bool specialItem; + idScriptObject scriptUse; + bool isContainer; + const idDeclInventory *containerDecl; + bool useOnReceive; + bool selectOnReceive; + bool useOnDeath; + bool blockEquipIfEmpty; + __int16 setCountOverride; + const idSoundShader *useSound; + const idSoundShader *dropSound; + const idSoundShader *hoverSound; + const idDeclAiEvent *dropEventDecl; + idDeclInventory::inventoryUse_t itemUse; + bool initiallyHidden; + idDeclInventory::inventoryGroup_t itemGroup; + int itemGroupWorth; + idDeclInventory::weaponAimSettings_t aimWeaponSettings; + idList giveItemsOnReceive; + idList giveItemsOnRecieveWithCount; + idList engineerableItems; + const idDeclFX *weaponFX; + const idDeclWeapon *equipWeaponOnUse; +}; + +// IDA Local Type ordinal 13462; PDB kind: class. +class idDeclInventory::idAttachmentInfo +{ +public: + equipSlot_t equipSlot; + const idDeclParticle *particleFx; + idStr tagName; +}; + +// IDA Local Type ordinal 13467; PDB kind: struct. +struct idDeclInventory::controllerShankInfo_t +{ + float highMagnitude; + int highDuration; + float lowMagnitude; + int lowDuration; +}; + +// IDA Local Type ordinal 13738; PDB kind: struct. +struct idDeclInventory::weaponAimSettings_t +{ + bool aimPrimary; + bool aimSecondary; + bool aimLaserInWeaponDirPrim; + bool aimLaserInWeaponDirSec; +}; + +// IDA Local Type ordinal 13739; PDB kind: struct. +struct idDeclInventory::itemListElement_t +{ + const idDeclInventory *item; + int count; +}; diff --git a/source/tungsten/game/decls/decljob.h b/source/tungsten/game/decls/decljob.h new file mode 100644 index 0000000..39ee77c --- /dev/null +++ b/source/tungsten/game/decls/decljob.h @@ -0,0 +1,274 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\decls\decljob.h +// Recovered logical types: 18 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1193; PDB kind: enum. +enum idDeclJob::jobPreConditionType_t : __int32 +{ + JOBPRECONDITION_NONE = 0x0, + JOBPRECONDITION_JOB = 0x1, + JOBPRECONDITION_ITEM = 0x2, + JOBPRECONDITION_GAMESTATEINT = 0x3, +}; + +// IDA Local Type ordinal 1194; PDB kind: enum. +enum idDeclJob::jobCompleteType_t : __int32 +{ + JOBCOMPLETE_NONE = 0x0, + JOBCOMPLETE_ITEM = 0x1, + JOBCOMPLETE_TRIGGER = 0x2, + JOBCOMPLETE_JOB = 0x3, + JOBCOMPLETE_JOB_ACCEPTED = 0x4, + JOBCOMPLETE_GAMESTATEINT = 0x5, + JOBCOMPLETE_JUSTDISPLAY = 0x6, +}; + +// IDA Local Type ordinal 1195; PDB kind: enum. +enum idDeclJob::jobType_t : __int32 +{ + JOBTYPE_NONE = 0x0, + JOBTYPE_REQUIRED = 0x1, + JOBTYPE_SIMPLE = 0x2, + JOBTYPE_OPTIONAL = 0x3, + JOBTYPE_OPTIONAL_POSTED = 0x4, + JOBTYPE_REPEATING = 0x5, + JOBTYPE_APPROACHVO = 0x6, + JOBTYPE_RADIOVO = 0x7, + JOBTYPE_DATAMANAGEMENT = 0x8, + JOBTYPE_DYNAMIC_COMBAT = 0x9, + JOBTYPE_DYNAMIC_OTHER = 0xA, + JOBTYPE_JUSTGUI = 0xB, + JOBTYPE_INFO = 0xC, +}; + +// IDA Local Type ordinal 1325; PDB kind: enum. +enum idDeclJob::jobPreConditionStatus_t : __int32 +{ + JOBPRECONDITIONSTATUS_ACCEPTED = 0x0, + JOBPRECONDITIONSTATUS_READYTOTURNIN = 0x1, + JOBPRECONDITIONSTATUS_COMPLETED = 0x2, +}; + +// IDA Local Type ordinal 1326; PDB kind: enum. +enum idDeclJob::jobRewardType_t : __int32 +{ + JOBREWARD_NONE = 0x0, + JOBREWARD_ITEM = 0x1, + JOBREWARD_ITEM_REMOVE = 0x2, + JOBREWARD_FACTION = 0x3, + JOBREWARD_JOBCOMPLETION = 0x4, + JOBREWARD_JOBACCEPT = 0x5, + JOBREWARD_JOBREMOVE = 0x6, + JOBREWARD_JOBREMOVE_INPROGRESS = 0x7, + JOBREWARD_USEALTERNATEHANDS = 0x8, + JOBREWARD_GAMESTATEINT = 0x9, + JOBREWARD_GARAGE = 0xA, + JOBREWARD_ACTIVATE_JOB = 0xB, +}; + +// IDA Local Type ordinal 2076; PDB kind: enum. +enum idDeclJob::jobGiverFaction_t : __int32 +{ + JOBFACTION_NONE = 0x0, + JOBFACTION_BOUNTY = 0x1, + JOBFACTION_WASTELANDER = 0x2, + JOBFACTION_WELLSPRING = 0x3, + JOBFACTION_SUBWAYTOWN = 0x4, + JOBFACTION_REGIME = 0x5, + JOBFACTION_MUTANTBASH = 0x6, +}; + +// IDA Local Type ordinal 14345; PDB kind: class. +class idDeclJobRef : public idStr +{ +public: +}; + +// IDA Local Type ordinal 14370; PDB kind: struct. +struct idDeclJob::jobNormalFlowVars_t +{ + bool showsGUI; +}; + +// IDA Local Type ordinal 14373; PDB kind: class. +class idDeclJob::jobPreCondition_t +{ +public: + idDeclJob::jobPreConditionType_t precondition; + idDeclJobRef jobDecl; + idDeclJob::jobPreConditionStatus_t jobStatus; + const idDeclInventory *inventoryDecl; + int count; + bool removeInventory; + const idDeclGameStateInt *gameStateIntDecl; +}; + +// IDA Local Type ordinal 14381; PDB kind: class. +class idDeclJob : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14420. + virtual ~idDeclJob(); + 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(); + + idStrId jobNameId; + idStrId jobSummaryId; + idStrId jobRequirementsId; + idStrId jobRewardId; + idStrId jobStanleyObjId; + idList relevantMaps; + idDeclJob::jobType_t jobType; + bool treatAsImportantIfNotRequired; + bool acceptNeedsVerification; + bool aiAcceptImmediatly; + bool sniperMission; + int challengeLevel; + idDeclJob::jobNormalFlowVars_t normalFlowVars; + bool giveAndCompleteOnApproach; + const idDeclJobTimerEvent *jobTimerEvent; + idList preconditions; + idList acceptRewards; + idList readyRewards; + idList completion; + idList rewards; + idList acceptedMiniMapTravelEnt; + idList readyToTurnInMiniMapCompletionEnt; + idStrId completeNPCName; + idDeclJob::jobLayerInfo_t jobLayerInfo; + idDeclJob::jobNoteInfo_t jobNoteInfo; + idDeclJob::jobAutoTransitionInfo_t jobAutoTransitionInfo; + bool discSwappingJob; + idDeclJob::jobGiverFaction_t jobGiverFaction; + idDeclJob::jobDebugMasterInfo_t debugInfo; + idDeclJobRef parentWithoutPrecondition; + idList cameras; + int cameraIndex; + bool showOnDebugJobGUI; + const idMaterial *jobImage; + bool doesFakeJob; + idStrId fakeJobName; + idStrId fakeJobObj; + idStrId fakeJobCompleteNPC; + idStr fakeJobMiniMapEnt; + bool ignoreFakeJob; + bool breakFakeJobCheck; + gameDLCState_t requiredDLC; + bool autoCompletes; + int autoCompleteDistance; + idList demoStates; +}; + +// IDA Local Type ordinal 14382; PDB kind: class. +class idDeclJob::jobReward_t +{ +public: + idDeclJob::jobRewardType_t reward; + const idDeclInventory *inventoryDecl; + int count; + const idDeclFaction *factionDecl; + const idDeclJob *jobDecl; + const idDeclGameStateInt *gameStateIntDecl; + garageList_t garage; + rageStat_t stat; + int statAmount; +}; + +// IDA Local Type ordinal 14384; PDB kind: class. +class idDeclJob::jobComplete_t +{ +public: + idDeclJob::jobCompleteType_t completion; + const idDeclInventory *inventoryDecl; + int count; + bool removeInventory; + bool showTrackerMessage; + bool justDisplayCountsReadyAsComplete; + idStrId triggerMessage; + idDeclJobRef jobDecl; + const idDeclGameStateInt *gameStateIntDecl; +}; + +// IDA Local Type ordinal 14389; PDB kind: class. +class idDeclJob::jobLayerInfo_t +{ +public: + idList acceptLayers; + idList acceptLayersDeactive; + idList acceptLayersRemove; + idList readyLayers; + idList readyLayersDeactive; + idList readyLayersRemove; + idList completeLayers; + idList completeLayersDeactive; + idList completeLayersRemove; +}; + +// IDA Local Type ordinal 14393; PDB kind: class. +class idDeclJob::jobNoteInfo_t +{ +public: + idList acceptJobNotes; + idList acceptJobNotesRemove; + idList readyJobNotes; + idList readyJobNotesRemove; + idList completeJobNotes; + idList completeJobNotesRemove; + idList relevantMapNotesRemove; + idList relevantMapNotes; +}; + +// IDA Local Type ordinal 14394; PDB kind: class. +class __declspec(align(4)) idDeclJob::jobSpawnInfo_t +{ +public: + idStr spawnSpot; + idStr mapName; + idList layerList; + idList layerListDeactive; + int delayTime; + bool hideVehicles; +}; + +// IDA Local Type ordinal 14395; PDB kind: class. +class idDeclJob::jobAutoTransitionInfo_t +{ +public: + idDeclJob::jobSpawnInfo_t acceptSpawnInfo; + idDeclJob::jobSpawnInfo_t readySpawnInfo; + idDeclJob::jobSpawnInfo_t completeSpawnInfo; + idDeclJob::jobSpawnInfo_t failSpawnInfo; +}; + +// IDA Local Type ordinal 14396; PDB kind: class. +class idDeclJob::jobDebugInfo_t +{ +public: + idList debugRewards; +}; + +// IDA Local Type ordinal 14397; PDB kind: class. +class idDeclJob::jobDebugMasterInfo_t +{ +public: + idDeclJob::jobDebugInfo_t debug_accepted; + idDeclJob::jobDebugInfo_t debug_readyToTurnIn; + idDeclJob::jobDebugInfo_t debug_completed; +}; diff --git a/source/tungsten/game/decls/declmenuitems.h b/source/tungsten/game/decls/declmenuitems.h new file mode 100644 index 0000000..b70b26e --- /dev/null +++ b/source/tungsten/game/decls/declmenuitems.h @@ -0,0 +1,82 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\decls\declmenuitems.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16054; PDB kind: class. +class idDeclDevMenuList : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16058. + virtual ~idDeclDevMenuList(); + 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(); + + idList devMenuList; +}; + +// IDA Local Type ordinal 16056; PDB kind: class. +class idDeclDevMenuList::idDevMenuOption +{ +public: + idStr devMenuDisplayName; + const idDeclDevMenuList *devMenuSubList; + idStrMapName devMenuMapName; + bool devMenuLoadMapAsMP; + idList devMenuCommandStrings; + idStr devMenuSpawnSpot; + idDeclRaceDescRef devMenuRaceDescDecl; + idDeclJobRef devMenuMissionDecl; + simpleMissionStatus_t devMenuMissionStatus; + idList devMenuAddActiveLayers; + idList devMenuRemoveActiveLayers; + idStr devMenuActiveLayers; + idList devMenuAddDeactiveLayers; + idList devMenuRemoveDeactiveLayers; + idStr devMenuDeactiveLayers; +}; + +// IDA Local Type ordinal 18381; PDB kind: class. +class idDeclMenuItem : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18382. + virtual ~idDeclMenuItem(); + 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(); + + const idMaterial *material; + idStr title; + idStr help; + vehicleLoadoutSlot_t loadoutSlot; + int index; +}; diff --git a/source/tungsten/game/decls/declmenupopup.h b/source/tungsten/game/decls/declmenupopup.h new file mode 100644 index 0000000..7d67ad0 --- /dev/null +++ b/source/tungsten/game/decls/declmenupopup.h @@ -0,0 +1,32 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\decls\declmenupopup.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 18499; PDB kind: class. +class idDeclMenuPopup : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18500. + virtual ~idDeclMenuPopup(); + 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(); + + idStr fileName; +}; diff --git a/source/tungsten/game/decls/declmetrics.h b/source/tungsten/game/decls/declmetrics.h new file mode 100644 index 0000000..eb5e490 --- /dev/null +++ b/source/tungsten/game/decls/declmetrics.h @@ -0,0 +1,38 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\decls\declmetrics.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15396; PDB kind: class. +class idDeclMetric : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15397. + virtual ~idDeclMetric(); + 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(); + + rageStat_t stat; + rageStatAggregationMethod aggregate; + idList weaponDecls; + bool isWeaponStat; + int xp; + idList xpBonus; + idStrId displayName; +}; diff --git a/source/tungsten/game/decls/declnavigation.h b/source/tungsten/game/decls/declnavigation.h new file mode 100644 index 0000000..44343b4 --- /dev/null +++ b/source/tungsten/game/decls/declnavigation.h @@ -0,0 +1,86 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\decls\declnavigation.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2070; PDB kind: enum. +enum idDeclNavigation::navCategory_t : __int32 +{ + NAVCAT_PLAYER = 0x0, + NAVCAT_MONSTER = 0x1, + NAVCAT_VEHICLE = 0x2, + NAVCAT_MAX = 0x3, +}; + +// IDA Local Type ordinal 2071; PDB kind: enum. +enum idDeclNavigation::navGenType_t : __int32 +{ + NAVGEN_2D_SURFACES = 0x0, + NAVGEN_3D_VOLUMES = 0x1, +}; + +// IDA Local Type ordinal 16564; PDB kind: struct. +struct idDeclNavigation::coverSet_t +{ + idNavCoverInfo_t coverLow; + idNavCoverInfo_t coverMid; + idNavCoverInfo_t coverHigh; +}; + +// IDA Local Type ordinal 16565; PDB kind: class. +class idDeclNavigation : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16566. + virtual ~idDeclNavigation(); + 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(); + + idDeclNavigation::navGenType_t navGenType; + idDeclNavigation::navCategory_t navCategory; + navLayer_t navLayer; + idAtomicString fileExtensionNav; + idAtomicString groupName; + idAtomicString altGroupName; + navCustomFlags_t includeSurfaceFlags; + float voxelSize; + float agentRadius; + float agentHeight; + float agentStepHeight; + float agentWalkableSlope; + float agentLedgeRadius; + float verticalOffsetDist; + float vertexSnap; + float customMergeDistance; + float additionalInwardsSmoothingDist; + bool useEnhancedTerrainTracking; + bool tessellateForPathAccuracy; + int islandsMax; + float islandsMinSurfaceArea; + bool islandsLeaveSmallTouchingPortals; + bool addBrushesAsExclusions; + bool optimizeForAxisAligned; + float volumeDistanceTolerance; + float volumeAngleTolerance; + bool buildImpNodeSurfaces; + bool useCollisionModels; + bool useEntityIslandMetadata; + bool bakeFlightVolumes; + idDeclNavigation::coverSet_t cover; +}; diff --git a/source/tungsten/game/decls/declonlinecoopscoring.h b/source/tungsten/game/decls/declonlinecoopscoring.h new file mode 100644 index 0000000..824c03e --- /dev/null +++ b/source/tungsten/game/decls/declonlinecoopscoring.h @@ -0,0 +1,98 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\decls\declonlinecoopscoring.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 20143; PDB kind: struct. +struct idDeclOnlineCoopScoring::cooptScoring_Event_t +{ + float assistPct; + int enemyKill; + int enemyHeadhshotKill; + int enemySpecialKill; + int heavyKill; + int heavyHeadhshotKill; + int heavySpecialKill; + int doubleKill; + int tripleKill; + int quadKill; + int killingSpree; + int collectiableBonus; +}; + +// IDA Local Type ordinal 20144; PDB kind: struct. +struct idDeclOnlineCoopScoring::coopScoring_Multiplier_t::damageMultiplierTable_t +{ + float multiplier; + int numTimesHit; +}; + +// IDA Local Type ordinal 20146; PDB kind: struct. +struct idDeclOnlineCoopScoring::coopScoring_Multiplier_t +{ + float normalDamageMultiplierPointsFactor; + float headshotDamageMultiplierPointsFactor; + float takenNormalDamageScale; + float takenMeleeDamageScale; + float takenProjectileDamageScale; + float takenDamageMultiplierScale; + int assistPoints; + int revengePoints; + int comboPoints; + int defendPoints; + int covertPoints; + int brutalPoints; + int incapacitatePoints; + int incapacitatePointsPerSecond; + float revivePCTPoints; + int idlePointsPerSecond; + float idlePointsStartupTime; + idList takenDamageTable; + int takenDamageResetTime; +}; + +// IDA Local Type ordinal 20147; PDB kind: class. +class idDeclOnlineCoopScoring : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20148. + virtual ~idDeclOnlineCoopScoring(); + 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(); + + idDeclOnlineCoopScoring::cooptScoring_Event_t events; + idDeclOnlineCoopScoring::coopScoring_Multiplier_t multiplier; + int multiplierPointsPerLevel; + int multiplierPointsLevelBuffer; + int maxMultiplierPoints; + const idDeclOnlineScoringCallout *multiplierUpCallout; + const idDeclOnlineScoringCallout *multiplierDownCallout; + const idDeclOnlineScoringCallout *headshotCallout; + const idDeclOnlineScoringCallout *defendCallout; + const idDeclOnlineScoringCallout *assistCallout; + const idDeclOnlineScoringCallout *revengeCallout; + const idDeclOnlineScoringCallout *comboCallout; + const idDeclOnlineScoringCallout *brutalCallout; + const idDeclOnlineScoringCallout *covertCallout; + const idDeclOnlineScoringCallout *doubleKillCallout; + const idDeclOnlineScoringCallout *tripleKillCallout; + const idDeclOnlineScoringCallout *quadKillCallout; + const idDeclOnlineScoringCallout *killingSpreeCallout; + const idDeclOnlineScoringCallout *collectableCallout; +}; diff --git a/source/tungsten/game/decls/declonlinefiction.h b/source/tungsten/game/decls/declonlinefiction.h new file mode 100644 index 0000000..7bd8ee1 --- /dev/null +++ b/source/tungsten/game/decls/declonlinefiction.h @@ -0,0 +1,35 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\decls\declonlinefiction.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 18628; PDB kind: class. +class __declspec(align(4)) idDeclOnlineFiction : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18629. + virtual ~idDeclOnlineFiction(); + 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(); + + const idDeclVoiceOver *voiceOver; + idStrId voiceOverTalkerName; + fxCondition_t fxCondition; + bool hasPlayed; +}; diff --git a/source/tungsten/game/decls/declonlinelevel.h b/source/tungsten/game/decls/declonlinelevel.h new file mode 100644 index 0000000..840b9d2 --- /dev/null +++ b/source/tungsten/game/decls/declonlinelevel.h @@ -0,0 +1,42 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\decls\declonlinelevel.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17916; PDB kind: struct. +struct onlineLevel_t +{ + int baseXp; + float localXpScale; + int loadouts; +}; + +// IDA Local Type ordinal 17918; PDB kind: class. +class idDeclOnlineLevel : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17919. + virtual ~idDeclOnlineLevel(); + 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(); + + idList levelList; + float globalXpScale; + int xpCap; +}; diff --git a/source/tungsten/game/decls/declonlineperk.h b/source/tungsten/game/decls/declonlineperk.h new file mode 100644 index 0000000..f3a05d8 --- /dev/null +++ b/source/tungsten/game/decls/declonlineperk.h @@ -0,0 +1,39 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\decls\declonlineperk.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 20131; PDB kind: class. +class idDeclOnlinePerk : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20132. + virtual ~idDeclOnlinePerk(); + 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(); + + float boostUpModifier; + float duraBumpModifier; + float jumpManModifier; + float overAmmoModifier; + float lockJackModifier; + float fasterFasterModifier; + float theSnapperModifier; + int overLoadModifier; +}; diff --git a/source/tungsten/game/decls/declonlinevocallout.h b/source/tungsten/game/decls/declonlinevocallout.h new file mode 100644 index 0000000..6741d5d --- /dev/null +++ b/source/tungsten/game/decls/declonlinevocallout.h @@ -0,0 +1,77 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\decls\declonlinevocallout.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15306; PDB kind: class. +class idDeclOnlineScoringCallout : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15307. + virtual ~idDeclOnlineScoringCallout(); + 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(); + + const idSoundShader *sound; + idStrId text; + const idMaterial *icon; + int priority; +}; + +// IDA Local Type ordinal 15553; PDB kind: class. +class idDeclOnlineVOCallout : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15554. + virtual ~idDeclOnlineVOCallout(); + 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(); + + soundShaderParms_t parms; + const idDeclVoiceOver *takenLead; + const idDeclVoiceOver *tiedLead; + const idDeclVoiceOver *lostLead; + const idDeclVoiceOver *impressive; + const idDeclVoiceOver *doubleKill; + const idDeclVoiceOver *tripleKill; + const idDeclVoiceOver *quadKill; + const idDeclVoiceOver *slaughter; + const idDeclVoiceOver *revenge; + const idDeclVoiceOver *airMail; + const idDeclVoiceOver *pull; + const idDeclVoiceOver *afterLife; + const idDeclVoiceOver *maxChain; + const idDeclVoiceOver *chainBreaker; + const idDeclVoiceOver *denial; + const idDeclVoiceOver *closeCall; + const idDeclVoiceOver *airRally; +}; diff --git a/source/tungsten/game/decls/declplayerprops.h b/source/tungsten/game/decls/declplayerprops.h new file mode 100644 index 0000000..91a03d1 --- /dev/null +++ b/source/tungsten/game/decls/declplayerprops.h @@ -0,0 +1,191 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\decls\declplayerprops.h +// Recovered logical types: 9 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14329; PDB kind: struct. +struct idDeclPlayerProps::screenParticle_t +{ + const idDeclParticle *waterDroplets; + const idDeclParticle *waterDripsSmall; + const idDeclParticle *waterDripsMedium; + const idDeclParticle *waterDripsLarge; +}; + +// IDA Local Type ordinal 14330; PDB kind: struct. +struct idDeclPlayerProps::playerSounds_t +{ + const idSoundShader *sndAlmostDead; + const idSoundShader *sndBreatheHeavy; + const idSoundShader *sndBreatheMedium; + const idSoundShader *sndBreatheSprinting; + const idSoundShader *sndCantUseItem; + const idSoundShader *sndJobAccepted; + const idSoundShader *sndJobCompleted; + const idSoundShader *sndJobReadyToTurnIn; + const idSoundShader *sndJobUpdated; + const idSoundShader *sndOutOfItems; + const idSoundShader *sndPickup; + const idSoundShader *sndPossess; + const idSoundShader *sndPossessLoop; + const idSoundShader *sndUseBandage; + const idSoundShader *sndBurn; + const idSoundShader *sndButtonBad; + const idSoundShader *sndButtonDown; + const idSoundShader *sndButtonUp; + const idSoundShader *sndCantDropItem; + const idSoundShader *sndCantLootEntity; + const idSoundShader *sndClickDown; + const idSoundShader *sndClickUp; + const idSoundShader *sndDeath; + const idSoundShader *sndDisassemble; + const idSoundShader *sndEnterWater; + const idSoundShader *sndExitWater; + const idSoundShader *sndJobFailed; + const idSoundShader *sndJump; + const idSoundShader *sndCrouch; + const idSoundShader *sndStandUp; + const idSoundShader *sndLandHard; + const idSoundShader *sndLootEntity; + const idSoundShader *sndSkipCinematic; + const idSoundShader *sndSpecialEventJump; + const idSoundShader *sndSpecialEventNewArea; + const idSoundShader *sndStepladder; + const idSoundShader *sndPainSmall; + const idSoundShader *sndPainMedium; + const idSoundShader *sndPainLarge; + const idSoundShader *sndHeartBeatLub; + const idSoundShader *sndHeartBeatDub; + const idSoundShader *sndThrownLandingWater; + const idSoundShader *sndThrownLanding; + const idSoundShader *sndThrown; + const idSoundShader *sndCancelRevive; + const idSoundShader *sndFinishRevive; + const idSoundShader *sndMPDmgDealtFeedback; + const idSoundShader *sndMPDmgDealtFeedbackVeh; + const idSoundShader *sndMPRoverBombSelfDestruct; + const idSoundShader *sndEndQuadDamage; +}; + +// IDA Local Type ordinal 14331; PDB kind: struct. +struct idDeclPlayerProps::playerSoundsParms_t +{ + float lowHealthThreshold; +}; + +// IDA Local Type ordinal 14332; PDB kind: struct. +struct idDeclPlayerProps::pain_t +{ + int pain_delay; + int pain_threshold; + float pain_mediumDamageAmount; + float pain_heavyDamageAmount; +}; + +// IDA Local Type ordinal 14333; PDB kind: struct. +struct idDeclPlayerProps::damageFeedback_t +{ + float centerIndicatorOffset; + float centerIndicatorSize; + float centerIndicatorDecay; + float outerIndicatorSize; + int IndicatorMinAlpha; + int IndicatorMaxAlpha; + float spikeIndicatorOffset; + float spikeIndicatorWidth; + float spikeIndicatorDecay; + int spikeIndicatorMinAlpha; + int spikeIndicatorMaxAlpha; + float dryGainEnd; + float roomGainEnd; + float roomHFGainEnd; + idDeclTable *worldFadeTable; +}; + +// IDA Local Type ordinal 14339; PDB kind: struct. +struct idDeclPlayerProps::collectorCardDeck_t +{ + const idDeclInventory *cardDeckRealDecl; + idStrId earlyDeckName; + idStrId earlyDeckDesc; + const idMaterial *earlyDeckTexture; + idStrId realDeckName; + idStrId realDeckDesc; + const idMaterial *realDeckTexture; +}; + +// IDA Local Type ordinal 14344; PDB kind: struct. +struct idDeclPlayerProps::tutorialData_t +{ + const idDeclTutorialEvent *bandageTutorial; + const idDeclTutorialEvent *reloadTutorial; + const idDeclGameStateInt *merchantSellGameStateInt; +}; + +// IDA Local Type ordinal 14349; PDB kind: class. +class idDeclPlayerProps : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14350. + virtual ~idDeclPlayerProps(); + 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(); + + idDeclPlayerProps::screenParticle_t screenParticles; + idDeclPlayerProps::playerSounds_t sounds; + idDeclPlayerProps::playerSoundsParms_t soundParms; + idDeclPlayerProps::pain_t pain; + idDeclPlayerProps::damageFeedback_t damageFeedback; + const idDeclReachIK *declReachIK; + const idDeclInventory *reviveItemDecl; + const idMaterial *coopMultiplierBG; + const idMaterial *coopMultiplierIcon; + const idDeclDuck *reviveDuck; + idDeclPlayerProps::collectorCardDeck_t collectorCardDeck; + idDeclPlayerProps::tutorialData_t tutorialData; + idList dlcItemInfo; +}; + +// IDA Local Type ordinal 16616; PDB kind: class. +class idDeclPlayerArmor : public idDeclInventory +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16617. + virtual ~idDeclPlayerArmor(); + 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(); + + float protectionPercent; + float armorReductionPercent; + float armorAmount; + float maxArmor; +}; diff --git a/source/tungsten/game/decls/declprojectile.h b/source/tungsten/game/decls/declprojectile.h new file mode 100644 index 0000000..7acb705 --- /dev/null +++ b/source/tungsten/game/decls/declprojectile.h @@ -0,0 +1,309 @@ +#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 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 envFireSounds; + idList envOnlineFireSounds; + idList envLastShotSound; + idList 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; +}; diff --git a/source/tungsten/game/decls/decltrackingparms.h b/source/tungsten/game/decls/decltrackingparms.h new file mode 100644 index 0000000..2d8db72 --- /dev/null +++ b/source/tungsten/game/decls/decltrackingparms.h @@ -0,0 +1,47 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\decls\decltrackingparms.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15951; PDB kind: struct. +struct trackingParms_t +{ + float kickScale; + idTypesafeNumber rate; + idTypesafeNumber acceleration; + idTypesafeNumber deceleration; + float springMass; + float springTightness; + float springDampen; + float springMaxSpeed; + float springRestLength; + float springMaxLength; +}; + +// IDA Local Type ordinal 15953; PDB kind: class. +class idDeclTrackingParms : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15954. + virtual ~idDeclTrackingParms(); + 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(); + + idList parms; +}; diff --git a/source/tungsten/game/decls/decltwitchpain.h b/source/tungsten/game/decls/decltwitchpain.h new file mode 100644 index 0000000..49137f9 --- /dev/null +++ b/source/tungsten/game/decls/decltwitchpain.h @@ -0,0 +1,32 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\decls\decltwitchpain.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15472; PDB kind: class. +class idDeclTwitchPain : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15473. + virtual ~idDeclTwitchPain(); + 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(); + + idList weaponGroups; +}; diff --git a/source/tungsten/game/decls/declvehicleattack.h b/source/tungsten/game/decls/declvehicleattack.h new file mode 100644 index 0000000..a232c21 --- /dev/null +++ b/source/tungsten/game/decls/declvehicleattack.h @@ -0,0 +1,69 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\decls\declvehicleattack.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2035; PDB kind: enum. +enum vehicleAttack_t : __int32 +{ + ATTACK_IDLE = 0x0, + ATTACK_RAM_ENEMY = 0x1, + ATTACK_RANGE_SHOOT = 0x2, + ATTACK_STRAFE_SHOOT = 0x3, + ATTACK_CIRCLE_SHOOT = 0x4, + ATTACK_CHASE_REAR_BUMP = 0x5, + ATTACK_CHASE_SIDE_BUMP = 0x6, + ATTACK_CHASE_SHOOT = 0x7, + ATTACK_CHASE_SIDE_SHOOT = 0x8, + ATTACK_CHASE_BYPASS = 0x9, + ATTACK_HITANDRUN = 0xA, + ATTACK_WAYPOINT_TAG = 0xB, + ATTACK_FIRE_WEAPON = 0xC, + ATTACK_RANDOM_FOLLOW = 0xD, + ATTACK_CHASE_POWERTURN_SHOOT = 0xE, + ATTACK_RC_BOMB_OUTSIDE = 0xF, + ATTACK_RC_BOMB_RACE = 0x10, + ATTACK_RC_BOMB_INSIDE = 0x11, + ATTACK_FREE_FORM = 0x12, + ATTACK_MP_STOP = 0x13, + ATTACK_MP_RAM = 0x14, + ATTACK_MP_CHASE = 0x15, + ATTACK_MP_PICKUP_ITEM = 0x16, + ATTACK_MP_REPAIR_STATION = 0x17, + ATTACK_MP_CTF_CAPTURE_FLAG = 0x18, + ATTACK_MP_CTF_DEFEND_BASE = 0x19, + ATTACK_MP_CTF_ENEMY_FLAG_TO_BASE = 0x1A, + ATTACK_MP_CTF_DEFEND_TEAMMATE = 0x1B, + ATTACK_MP_CTF_FIND_LOST_FLAG = 0x1C, + ATTACK_MP_CTF_GET_FLAG_FROM_ENEMY = 0x1D, + ATTACK_NONE = 0x1E, +}; + +// IDA Local Type ordinal 15637; PDB kind: class. +class idDeclVehicleAttack : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15638. + virtual ~idDeclVehicleAttack(); + 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(); + + vehicleAttack_t state; + vehicleAttackParams_t params; +}; diff --git a/source/tungsten/game/decls/declvehicleloadout.h b/source/tungsten/game/decls/declvehicleloadout.h new file mode 100644 index 0000000..41377c0 --- /dev/null +++ b/source/tungsten/game/decls/declvehicleloadout.h @@ -0,0 +1,40 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\decls\declvehicleloadout.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17942; PDB kind: class. +class idDeclVehicleLoadout : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17943. + virtual ~idDeclVehicleLoadout(); + 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(); + + idStrId desc; + const idDeclVehicleUnlock *vehicleClass; + const idDeclVehicleUnlock *vehicle; + const idDeclVehicleUnlock *weaponPrimary; + const idDeclVehicleUnlock *weaponSecondary; + const idDeclVehicleUnlock *quickUse1; + const idDeclVehicleUnlock *quickUse2; + bool isDefault; + int order; +}; diff --git a/source/tungsten/game/decls/declvehicleunlock.h b/source/tungsten/game/decls/declvehicleunlock.h new file mode 100644 index 0000000..a1e1712 --- /dev/null +++ b/source/tungsten/game/decls/declvehicleunlock.h @@ -0,0 +1,68 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\decls\declvehicleunlock.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15542; PDB kind: class. +class idDeclVehicleUnlock : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15545. + virtual ~idDeclVehicleUnlock(); + 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(); + + vehicleUnlockType_t unlockType; + int levelRequired; + idStrId displayName; + int quantity; + int rangeRank; + int damageRank; + int accuracyRank; + int rateOfFireRank; + idStrId description; + const idMaterial *loadoutIcon; + const idMaterial *bigLoadoutIcon; + const idDeclVehicleUnlock *upgradeTo; + int spRequired; + rageStat_t metricType; + int ordinal; + idList items; +}; + +// IDA Local Type ordinal 15543; PDB kind: struct. +struct idDeclVehicleUnlock::inventoryUnlock_t +{ + idStr itemDeclStr; + idStr entityDefStr; + idStr soundDeclStr; + int count; + itemUnlockType_t itemType; + vehicleType_t vehicleType; +}; + +// IDA Local Type ordinal 18432; PDB kind: class. +class idSort_DeclVehicleUnlockPtr_ByName : public idSort_Quick +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18433. + virtual ~idSort_DeclVehicleUnlockPtr_ByName(); + virtual void Sort(const idDeclVehicleUnlock **, unsigned int); + +}; diff --git a/source/tungsten/game/devtools/httpserver.h b/source/tungsten/game/devtools/httpserver.h new file mode 100644 index 0000000..2bb4b90 --- /dev/null +++ b/source/tungsten/game/devtools/httpserver.h @@ -0,0 +1,19 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\devtools\httpserver.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 18677; PDB kind: class. +class mgHttpServer : public idSysThread +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18678. + virtual ~mgHttpServer(); + virtual int Run(); + + idTCP incoming; + idList handlers; +}; diff --git a/source/tungsten/game/editor/editormodel.h b/source/tungsten/game/editor/editormodel.h new file mode 100644 index 0000000..018159c --- /dev/null +++ b/source/tungsten/game/editor/editormodel.h @@ -0,0 +1,299 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\editor\editormodel.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 20110; PDB kind: class. +class __declspec(align(8)) idEditorModelEntity : public idAnimatedEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20111. + virtual idTypeInfo *GetType(); + virtual ~idEditorModelEntity(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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(); + + idAttachmentCollection attachments; + idPresentableAnimatedEntity *uncompressedModelView; + float moveSpeed; + float caretTime; + bool movement; + bool cycle; + bool cycleFrom; + bool cycleTo; + idAnimator_Proxy proxyAnimator; + idAnimator_FaceTracks faceAnimator; + idAnimator_Paused basePoseAnimator; + idAnimStack animStackUncompressed; + idAnimator_Proxy proxyAnimatorUncompressed; + idAnimator_FaceTracks faceAnimatorUncompressed; + idAnimator_Paused basePoseAnimatorUncompressed; + idFaceMgr faceMgr; + const idSoundShader *sndFootsteps; + const idMD6Anim *curAnim; + idMD6Leaf *leaf; + idMD6LeafPlay leafPlay; + idMD6LeafPause leafPause; + const idMD6Anim *curAnimUncompressed; + idMD6Leaf *leafUncompressed; + idMD6LeafPlay leafPlayUncompressed; + idMD6LeafPause leafPauseUncompressed; + int lastLoopCount; + idVec3 baseOrigin; + idMat3 baseAxis; +}; + +// IDA Local Type ordinal 20112; PDB kind: class. +class idEditorModelInterface : public idAnimatedEntityInterface +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20113. + virtual ~idEditorModelInterface(); + virtual bool IsValid(); + virtual idGame *Game(); + virtual void GetWorldOrigin(idVec3 *); + virtual void SetWorldOrigin(const idVec3 *); + virtual void TranslateWorld(const idVec3 *); + virtual void GetWorldAxis(idMat3 *); + virtual void SetWorldAxis(const idMat3 *); + virtual void UpdateVisuals(); + virtual bool GetWorldSpaceTagTransform(const char *, const char *, idVec3 *, idMat3 *); + virtual void BindToJoint(idEntity *, idIndex, const bindFlags_t); + virtual void Unbind(); + virtual idHandle *AttachRenderModel(idHandle *result, const char *, const char *, const char *); + virtual bool DetachRenderModel(const idHandle *); + virtual int GetNumAttachments(); + virtual idRenderModel *GetAttachment(const idHandle *); + virtual bool RebindAttachment(const idHandle *, const tagData_t *); + virtual void GetLocalOrigin(idVec3 *); + virtual void SetLocalOrigin(const idVec3 *); + virtual void GetLocalAxis(idMat3 *); + virtual void SetLocalAxis(const idMat3 *); + virtual void GetSpawnPosition(idVec3 *); + virtual void SetSpawnPosition(const idVec3 *); + virtual void GetSpawnOrientation(idMat3 *); + virtual void SetSpawnOrientation(const idMat3 *); + virtual void SetModel(idRenderModel *); + virtual void SetModel_2(const char *); + virtual void StopSound(); + virtual void SetColor(const idColor *); + virtual idRenderModel *GetRenderEntity(); + virtual void DeleteEntity(); + virtual void GetViewAngles(idAngles *); + virtual void SetViewAngles(const idVec3 *); + virtual void GetEyePosition(idVec3 *); + virtual idTreeAnimator *GetTreeAnimator(const int); + virtual idAnimStack *GetAnimStack(); + virtual bool PlayAnim(const idMD6Anim *, const bool); + virtual bool PlayVTR(const idDeclVoiceOver *, const int); + virtual bool StopVTR(); + virtual bool IsAnimPlaying(); + virtual void ShowUncompressed(const bool); + virtual void SetRemoveOriginTranslation(bool); + virtual void SetRemoveOriginRotation(bool); + virtual bool GetRemoveOriginTranslation(); + virtual bool GetRemoveOriginRotation(); + virtual void SetAnimTime(float); + virtual float GetAnimTime(); + virtual int GetCurrentAnimFrame(); + virtual void AddReference(); + virtual void RemoveReference(); + virtual int GetReferenceCount(); + virtual idTypeInfoObject *GetTypeInfoObject(); + virtual const idDeclEntityDef *GetEntityDef(); + virtual idEntity *GetEntity(); + virtual const char *GetEntityName(); + virtual void SetLightColor(const idColor *); + virtual void GetLightColor(idColor *); + virtual void SetLightRadius(const idVec3 *); + virtual void GetLightRadius(idVec3 *); + virtual void SetCastShadows(const bool); + virtual bool GetCastShadows(); + virtual void SetLightMaterial(const char *); + virtual void SetLightSpotlight(const bool); + virtual bool GetLightSpotlight(); + virtual void SetLightParallel(const bool); + virtual bool GetLightParallel(); + virtual void SetLightCenter(const idVec3 *); + virtual void GetLightCenter(idVec3 *); + virtual void SetLightTarget(const idVec3 *); + virtual void SetLightRight(const idVec3 *); + virtual void SetLightUp(const idVec3 *); + virtual void SetLightStart(const idVec3 *); + virtual void SetLightEnd(const idVec3 *); + virtual void SetLightClass(lightClass_t); + virtual void ReInit(); + virtual void SetPreviewTime(int); + virtual int GetPreviewTime(); + virtual void RestartPlayback(); + virtual void StopPlayback(); + virtual bool RespondsToEvent(const idEventDef *); + virtual bool OnCustomFunctionCall(); + +}; diff --git a/source/tungsten/game/editor/entityinterfacelocal.h b/source/tungsten/game/editor/entityinterfacelocal.h new file mode 100644 index 0000000..58939dd --- /dev/null +++ b/source/tungsten/game/editor/entityinterfacelocal.h @@ -0,0 +1,100 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\editor\entityinterfacelocal.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19117; PDB kind: class. +class idEntityInterfaceLocal : public idEntityInterface +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19118. + virtual ~idEntityInterfaceLocal(); + virtual bool IsValid(); + virtual idGame *Game(); + virtual void GetWorldOrigin(idVec3 *); + virtual void SetWorldOrigin(const idVec3 *); + virtual void TranslateWorld(const idVec3 *); + virtual void GetWorldAxis(idMat3 *); + virtual void SetWorldAxis(const idMat3 *); + virtual void UpdateVisuals(); + virtual bool GetWorldSpaceTagTransform(const char *, const char *, idVec3 *, idMat3 *); + virtual void BindToJoint(idEntity *, idIndex, const bindFlags_t); + virtual void Unbind(); + virtual idHandle *AttachRenderModel(idHandle *result, const char *, const char *, const char *); + virtual bool DetachRenderModel(const idHandle *); + virtual int GetNumAttachments(); + virtual idRenderModel *GetAttachment(const idHandle *); + virtual bool RebindAttachment(const idHandle *, const tagData_t *); + virtual void GetLocalOrigin(idVec3 *); + virtual void SetLocalOrigin(const idVec3 *); + virtual void GetLocalAxis(idMat3 *); + virtual void SetLocalAxis(const idMat3 *); + virtual void GetSpawnPosition(idVec3 *); + virtual void SetSpawnPosition(const idVec3 *); + virtual void GetSpawnOrientation(idMat3 *); + virtual void SetSpawnOrientation(const idMat3 *); + virtual void SetModel(idRenderModel *); + virtual void SetModel_2(const char *); + virtual void StopSound(); + virtual void SetColor(const idColor *); + virtual idRenderModel *GetRenderEntity(); + virtual void DeleteEntity(); + virtual void GetViewAngles(idAngles *); + virtual void SetViewAngles(const idVec3 *); + virtual void GetEyePosition(idVec3 *); + virtual idTreeAnimator *GetTreeAnimator(const int); + virtual idAnimStack *GetAnimStack(); + virtual bool PlayAnim(const idMD6Anim *, const bool); + virtual bool PlayVTR(const idDeclVoiceOver *, const int); + virtual bool StopVTR(); + virtual bool IsAnimPlaying(); + virtual void ShowUncompressed(const bool); + virtual void SetRemoveOriginTranslation(bool); + virtual void SetRemoveOriginRotation(bool); + virtual bool GetRemoveOriginTranslation(); + virtual bool GetRemoveOriginRotation(); + virtual void SetAnimTime(float); + virtual float GetAnimTime(); + virtual int GetCurrentAnimFrame(); + virtual void AddReference(); + virtual void RemoveReference(); + virtual int GetReferenceCount(); + virtual idTypeInfoObject *GetTypeInfoObject(); + virtual const idDeclEntityDef *GetEntityDef(); + virtual idEntity *GetEntity(); + virtual const char *GetEntityName(); + virtual void SetLightColor(const idColor *); + virtual void GetLightColor(idColor *); + virtual void SetLightRadius(const idVec3 *); + virtual void GetLightRadius(idVec3 *); + virtual void SetCastShadows(const bool); + virtual bool GetCastShadows(); + virtual void SetLightMaterial(const char *); + virtual void SetLightSpotlight(const bool); + virtual bool GetLightSpotlight(); + virtual void SetLightParallel(const bool); + virtual bool GetLightParallel(); + virtual void SetLightCenter(const idVec3 *); + virtual void GetLightCenter(idVec3 *); + virtual void SetLightTarget(const idVec3 *); + virtual void SetLightRight(const idVec3 *); + virtual void SetLightUp(const idVec3 *); + virtual void SetLightStart(const idVec3 *); + virtual void SetLightEnd(const idVec3 *); + virtual void SetLightClass(lightClass_t); + virtual void ReInit(); + virtual void SetPreviewTime(int); + virtual int GetPreviewTime(); + virtual void RestartPlayback(); + virtual void StopPlayback(); + virtual bool RespondsToEvent(const idEventDef *); + virtual bool OnCustomFunctionCall(); + + idEntity *entityPtr; + idTypeInfoObject *typeInfoObject; + idGame *game; + int refCount; +}; diff --git a/source/tungsten/game/effects/gameeffects.h b/source/tungsten/game/effects/gameeffects.h new file mode 100644 index 0000000..5336b4f --- /dev/null +++ b/source/tungsten/game/effects/gameeffects.h @@ -0,0 +1,23 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\effects\gameeffects.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15191; PDB kind: class. +class __declspec(align(4)) idDamageEffect : public idClass +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15192. + virtual idTypeInfo *GetType(); + virtual ~idDamageEffect(); + + const idDeclParticle *type; + idDamageEffect *next; + idVec3 localOrigin; + idVec3 localNormal; + int time; + idIndex jointNum; +}; diff --git a/source/tungsten/game/effects/influencetrail.h b/source/tungsten/game/effects/influencetrail.h new file mode 100644 index 0000000..6897056 --- /dev/null +++ b/source/tungsten/game/effects/influencetrail.h @@ -0,0 +1,65 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\effects\influencetrail.h +// Recovered logical types: 6 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2025; PDB kind: enum. +enum invalidInfluenceTrail_t : __int32 +{ + INVALID_INFLUENCE_TRAIL = 0xFFFFFFFF, +}; + +// IDA Local Type ordinal 13777; PDB kind: class. +class idEntityInfluenceTrail +{ +public: + float innerRadius; + float outerRadius; + float angle; + float trailDist; + float trailFadeInTime; + float trailFadeOutTime; +}; + +// IDA Local Type ordinal 15524; PDB kind: class. +class idInfluenceTrail::idInfluenceSphere +{ +public: + idVec3 center; + int time; +}; + +// IDA Local Type ordinal 15526; PDB kind: class. +class idInfluenceTrail +{ +public: + bool active; + float trailDist; + float innerRadius; + float outerRadius; + float angle; + int trailFadeInTime; + int trailFadeOutTime; + idVec3 position; + idVec3 lastPosition; + idList trail; + idPresentable *presentable; + const idSoundShader *sndFoliage; +}; + +// IDA Local Type ordinal 15527; PDB kind: class. +class idInfluenceTrailManager : public idClass +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15528. + virtual idTypeInfo *GetType(); + virtual ~idInfluenceTrailManager(); + + idInfluenceTrail influenceTrails[128]; +}; + +// IDA Local Type ordinal 29177; PDB kind: typedef. +typedef idHandle idInfluenceTrailHandle; diff --git a/source/tungsten/game/entities/actionnode.h b/source/tungsten/game/entities/actionnode.h new file mode 100644 index 0000000..bda5ac5 --- /dev/null +++ b/source/tungsten/game/entities/actionnode.h @@ -0,0 +1,402 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\actionnode.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17031; PDB kind: class. +class idAction_Dodge : public idAIAction +{ +public: + // Recovered virtual interface; IDA vtable ordinal 33741. + virtual idTypeInfo *GetType(); + virtual ~idAction_Dodge(); + 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 Save(const idFiniteStateMachine *, idFile_String *, const char *); + virtual void InternalInitState(const idFiniteStateMachine *); + virtual bool InternalCanUse(idFiniteStateMachine *, const int); + virtual void InternalEnterState(idFiniteStateMachine *, const int); + virtual void InternalExitState(idFiniteStateMachine *, const int); + virtual void InternalWork(idFiniteStateMachine *, const int); + virtual void InternalReenterState(idFiniteStateMachine *, const int, const int); + virtual bool InternalIsStateWaiting(idFiniteStateMachine *, const int); + virtual void InternalGetDebugString(idStr *); + virtual bool AIState_CanUse(idAI2 *, idAIFSM *, const int); + virtual void AIState_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIState_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIState_Work(idAI2 *, idAIFSM *, const int); + virtual void AIState_ReenterState(idAI2 *, idAIFSM *, const int, const int); + virtual bool AIState_IsWaiting(idAI2 *, idAIFSM *, const int); + virtual const idEventDef *GetActionEventDef(); + virtual int GetActionFlags(); + virtual void AIAction_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIAction_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIAction_Work(idAI2 *, idAIFSM *, const int); + virtual void AIAction_ReenterState(idAI2 *, idAIFSM *, const int); + virtual bool AIAction_IsWaiting(idAI2 *, idAIFSM *, const int); + + idVec3 dodgePoint; +}; + +// IDA Local Type ordinal 19407; PDB kind: class. +class __declspec(align(8)) idTarget_ActionNode : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19408. + virtual idTypeInfo *GetType(); + virtual ~idTarget_ActionNode(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + idEntityPtr actionNode; +}; + +// IDA Local Type ordinal 20105; PDB kind: struct. +struct idActionNode::anim_t +{ + idAnimWebPath animWebNode; + idEntityPtr trigger; + float minLoopTime; + float maxLoopTime; + float timeBetween; + int weight; + bool enableHeadTracking; + int nextPlayTime; +}; + +// IDA Local Type ordinal 20107; PDB kind: class. +class __declspec(align(8)) idActionNode : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20108. + virtual idTypeInfo *GetType(); + virtual ~idActionNode(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + idEntityPtr reservingEntity; + idStr groupName; + idList actionScript; + standState_t standState; + sitState_t sitState; + posture_t posture; + idList anims; + aasType_t aasType; + bool shouldCheckAAS; + bool canBeBlockedByAI; + bool startOff; + bool isActive; + float reachedPointTolerance; + idList,5> touching; +}; diff --git a/source/tungsten/game/entities/actor.h b/source/tungsten/game/entities/actor.h new file mode 100644 index 0000000..f1f6e41 --- /dev/null +++ b/source/tungsten/game/entities/actor.h @@ -0,0 +1,356 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\actor.h +// Recovered logical types: 9 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14220; PDB kind: class. +class __declspec(align(8)) idActor : public idAnimatedEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15260. + virtual idTypeInfo *GetType(); + virtual ~idActor(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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 void RepairShield(const float); + virtual const idVec3 *GetEyeOffset(const idVec3 *result); + virtual void GetViewTransform(idVec3 *, idMat3 *); + virtual void GetLastEyePos(idVec3 *); + virtual void GetEyeAxis(idMat3 *); + virtual void SetEyeAxis(const idMat3 *); + virtual idAnimator_AF::testSolidResult_t StartRagdoll(const idRagdollInfo *); + virtual void StopRagdoll(); + virtual equipSlot_t GetWeaponSlot(); + virtual idWeapon *GetEquippedWeapon(); + virtual bool EquipItem(idInventoryItem *, equipSlot_t); + virtual bool UnequipItem(idInventoryItem *); + virtual bool HolsterItem(idInventoryItem *, bool); + virtual void ShowAttachment(idInventoryItem *); + virtual void HideAttachment(idInventoryItem *); + virtual void DropAttachment(const equipSlot_t); + virtual void DropAttachment_2(idInventoryItem *); + virtual idEntity *DropItem(idInventoryItem *, bool, bool, int, const idVec3 *, const idVec3 *); + virtual idInventoryItem *GetEquipped(const equipSlot_t); + virtual void ClearEquipped(idInventoryItem *); + virtual void ClearEquipped_2(const equipSlot_t); + virtual idFXManager *GetFXMgrForAttachment(idInventoryItem *); + virtual idStrId *GetCurrentNPC(idStrId *result); + virtual idAASPositionMgr *GetAASPositionMgr(); + virtual bool HasSyncedWalks(); + virtual void SetApplyBulletTime(float, float); + virtual void SetApplyInvulnerability(float); + virtual void SetApplyAuthorityForce(float, const idDeclInventory *); + virtual bool CanBeHealed(); + virtual posture_t GetPosture(); + virtual void SetPosture(const posture_t); + virtual leanState_t GetLeanState(); + virtual void SetLeanState(const leanState_t); + virtual walkState_t GetWalkState(); + virtual void SetWalkState(const walkState_t); + virtual weaponReadyState_t GetWeaponReadyState(); + virtual void SetWeaponReadyState(const weaponReadyState_t); + virtual float GetApplyDamageScale(); + virtual void SetApplyDamageScale(float, float); + virtual const idVehicle *GetVehicle(); + virtual idVehicle *GetVehicle_2(); + virtual bool IsDrivingVehicle(); + + bool looted; + idEntityPtr droppedItem1; + idEntityPtr droppedItem2; + idEntityPtr attachedLoot; + idEngagementTracker engagementTracker; + bool spawnPending; + idDeferredVisGrid deferredVisGrid; + idAnimator_AF afProperties; + idActor::idActorConstant actorConstants; + idRagdollInfo ragdollInfo; + idActor::idActorEditable actorEditable; + idStrId npcName; + idFaction faction; + const idDeclFaction *tempFaction; + int tempFactionTime; + actorFactionType factionType; + float weaponProficiency; + float armorProficiency; + float shieldBleedThrough; + float mass; + bool lootable; + bool dropRandomLoot; + idList startingInventory; + idList entityAttachments; + idDisassembleLoot disassembleLoot; + idSmartLootComponentActor smartLoot; + takedownTypes_t takedownTypes; + idActor::idActorVolatile actorVolatile; + idAnimator_WalkIK walkIK; + const idDeclWalkIK *walkIKDecl; + idInventoryItem *equipped[15]; + idAttachmentCollection attachments; + idLinkList actorNode; + idInventoryCollection inventory; + int damageGroup; + idList,5> touching; + idActorPhysicsCallbacks actorPhysicsCallbacks; +}; + +// IDA Local Type ordinal 15225; PDB kind: class. +class idActor::idActorConstant::idActorModel +{ +public: + idStr soundJoint; + idVec3 modelOffset; +}; + +// IDA Local Type ordinal 15226; PDB kind: class. +class idActor::idActorConstant::idActorPerception +{ +public: + idVec3 eyeOffset; + idVec3 crouchedEyeOffset; +}; + +// IDA Local Type ordinal 15230; PDB kind: struct. +struct idActor::idActorConstant::waterInteraction_t +{ + const idDeclParticle *waterPrtSlow; + const idDeclParticle *waterPrtFast; + const idDeclParticle *waterPrtSplash; + float moveSpeedSlow; + float emissionRate; +}; + +// IDA Local Type ordinal 15231; PDB kind: class. +class idActor::idActorConstant +{ +public: + idActor::idActorConstant::idActorModel modelInfo; + idActor::idActorConstant::idActorPerception perception; + idActorSounds actorSounds; + bool useCombatBox; + const idDeclProjectileImpactEffect *footstepEffectTable_Sprint; + const idDeclProjectileImpactEffect *footstepEffectTable; + const idDeclProjectileImpactEffect *footstepEffectTable_SlowWalk; + const idDeclProjectileImpactEffect *footstepEffectTable_CrouchWalk; + const idDeclProjectileImpactEffect *footstepEffectTable_Landing; + const idDeclFootstepEvents *footstepEvents; + idActor::idActorConstant::waterInteraction_t waterInteraction; + actorClass_t actorClass; + float aimAssistRadiusOverrideScale; +}; + +// IDA Local Type ordinal 15236; PDB kind: struct. +struct idActor::idActorEditable +{ + posture_t bodyState; + standState_t standState; + sitState_t sitState; + turnState_t turnState; + mentalState_t mentalState; + bool forceBodyState; + bool isInteracting; + idList damageGroups; + idList radiusDamageJoints; +}; + +// IDA Local Type ordinal 15246; PDB kind: struct. +struct __declspec(align(4)) idActor::idActorVolatile::idActorModelCache +{ + idMat3 modelAxis; + idMat3 eyeAxis; + idVec3 eyePos; + idIndex soundJoint; +}; + +// IDA Local Type ordinal 15247; PDB kind: struct. +struct idActor::idActorVolatile::idPainInfo +{ + idHandle jointGroupHandle; + idEntityPtr attacker; + idEntityPtr inflictor; + idIndex joint; + painType_t type; + damageDirection_t direction; + damageIntensity_t intensity; + const idDeclDamage *damageDecl; +}; + +// IDA Local Type ordinal 15248; PDB kind: struct. +struct idActor::idActorVolatile +{ + idActor::idActorVolatile::idActorModelCache modelInfo; + idActor::idActorVolatile::idPainInfo pain; + walkState_t walkState; + leanState_t leanState; + weaponReadyState_t weaponReadyState; + bool onStairs; + int postureChangeTime; + float damageTakenMultiplier; + idAASPosition aasPosition; +}; diff --git a/source/tungsten/game/entities/actormodifier.h b/source/tungsten/game/entities/actormodifier.h new file mode 100644 index 0000000..8eddacf --- /dev/null +++ b/source/tungsten/game/entities/actormodifier.h @@ -0,0 +1,242 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\actormodifier.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15283; PDB kind: class. +class idActorModifierItem : public idInventoryItem +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15284. + virtual idTypeInfo *GetType(); + virtual ~idActorModifierItem(); + 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 Init(const idDeclInventory *); + virtual void Merge(idPresentable *, idInventoryCollection *, const idDeclInventory *); + virtual void Hide(); + virtual void Show(); + virtual void OnEquip(const idPresentable *, idFXManager *); + virtual void OnUnequip(const idPresentable *, idFXManager *); + virtual void OnClone(const idInventoryItem *); + virtual int GetCount(); + virtual bool CanUse(idActor *); + virtual bool Use(idActor *); + virtual bool CanUseInVehicle(idActor *); + virtual bool ClientUse(idPresentablePlayer *); + virtual void Serialize(idSerializer *, idInventoryCollection *); + virtual void SerializeNonPrediction(idSerializer *, idInventoryCollection *); + virtual void ClientUpdate(); + virtual void GetPickupHudInfo(const idEntity *, idPickupHudInfo *); + +}; + +// IDA Local Type ordinal 15298; PDB kind: class. +class idActorModifier : public idEventReceiver +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15299. + virtual idTypeInfo *GetType(); + virtual ~idActorModifier(); + 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 *); + + idFXManager fxManager; + idStaticList timers; + idPresentablePtr parent; + idPresentablePtr instigator; + const idDeclActorModifier *decl; + const idInventoryItem *item; + netBoolEvent_t added; + netBoolEvent_t activated; + netBoolEvent_t deactivated; + unsigned int uid; + int creationTime; + int activationTime; + unsigned __int8 index; + bool valid; + bool active; + int nextTimerTick; +}; + +// IDA Local Type ordinal 19682; PDB kind: class. +class __declspec(align(8)) idMoverModifier : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19683. + virtual idTypeInfo *GetType(); + virtual ~idMoverModifier(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + idVec3 splineForwardDir; + idEntityPtr splinePath; + bool initialized; + bool dirty; + float controlPointLength; + float controlPointPCT; + int controlPointIndex; + idVec3 controlPointOrigin; + idVec3 controlPointOriginNext; + splineMoverModifier_t modifier; +}; diff --git a/source/tungsten/game/entities/actormodifiermanager.h b/source/tungsten/game/entities/actormodifiermanager.h new file mode 100644 index 0000000..316f85b --- /dev/null +++ b/source/tungsten/game/entities/actormodifiermanager.h @@ -0,0 +1,39 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\actormodifiermanager.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15281; PDB kind: class. +class idActorModifierManager : public idEventReceiver +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15304. + virtual idTypeInfo *GetType(); + virtual ~idActorModifierManager(); + 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 Serialize(idSerializer *); + virtual void PostSerializeRead(bool); + virtual void HandleActorModifierMessage(unsigned int, unsigned __int8); + + idPresentableActor *parentPtr; + idPresentablePtr parent; + idInventoryCollection *inventory; + idList items; + idArray modifiers; + unsigned int modifierUIDCounter; + idArray modValues; +}; + +// IDA Local Type ordinal 15302; PDB kind: struct. +struct idActorModifierManager::ActorModifierVar_s +{ + idNetFloat netFloat; + float value; + int integer; +}; diff --git a/source/tungsten/game/entities/afentity.h b/source/tungsten/game/entities/afentity.h new file mode 100644 index 0000000..4ced743 --- /dev/null +++ b/source/tungsten/game/entities/afentity.h @@ -0,0 +1,198 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\afentity.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19014; PDB kind: class. +class __declspec(align(8)) idAFEntity_Dummy : public idAnimatedEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19015. + virtual idTypeInfo *GetType(); + virtual ~idAFEntity_Dummy(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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(); + + idAnimator_AF afProperties; + idPhysics_Static phys; + idAnimator_Channel channelAnimator; + idHandle idleAnimHandle; + idHandle deathAnimHandle; + bool takesDamage; + bool isEnemyOfPlayer; + bool useSphereModels; + bool playedDeathAnim; + bool hasRagDolledYet; + idList radiusDamageJointNames; + int numHitsToKill; + const idDeclGore *goreDef; + idGoreComponent goreComponent; + idAnimator_TurretNxN<3> turretAnimator; + idAttachmentCollection attachments; +}; diff --git a/source/tungsten/game/entities/alignedentity.h b/source/tungsten/game/entities/alignedentity.h new file mode 100644 index 0000000..357841d --- /dev/null +++ b/source/tungsten/game/entities/alignedentity.h @@ -0,0 +1,258 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\alignedentity.h +// Recovered logical types: 6 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1242; PDB kind: enum. +enum idAlignedEntity::ALIGNMODE : __int32 +{ + SET_POS_SET_AXIS = 0x0, + ALIGN_NODE_POS_SET_AXIS = 0x1, + ALIGN_NODE_POS_ALIGN_NODE_AXIS = 0x2, +}; + +// IDA Local Type ordinal 14222; PDB kind: class. +class __declspec(align(8)) idAlignedEntity : public idAnimatedEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 33861. + virtual idTypeInfo *GetType(); + virtual ~idAlignedEntity(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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 void SetOrigin(const idVec3 *); + + idAlignedEntity::loopingSound_t loopingSound; + idAnimator_Channel baseAnimator; + idAnimator_Synced syncedAnimator; + idAnimator_Synced syncedAnimator2; + idAnimator_Channel additiveAnimator; + idAnimator_Synced additiveSyncedAnimator; + idAlignedEntity::animInfo_t baseAnimInfo; + idAlignedEntity::animInfo_t additiveAnimInfo; + idStr alignNodeName; + bool isAlive; + idStr soundTagName; + idAttachmentCollection attachmentCollection; + idList attachmentInfos; + bool manualUpdate; + bool okToShow; + bool updateCamera; + idPlayer *owner; + int lastAnimBlendFrame; + int attachToOwnerBlend; + int attachToOwnerStart; + idVec3 deltaTransExternalWorld; + idVec3 deltaTransScale; + idVec3 startBlendOrigin; + idQuat startBlendRot; + idVec3 endBlendOrigin; + idQuat endBlendRot; + idVec3 attachedModelOrigin; + idMat3 attachedModelAxis; + idInventoryCollection inventory; + idList animatedEntityAttachments; +}; + +// IDA Local Type ordinal 14223; PDB kind: struct. +struct __declspec(align(4)) idAlignedEntity::loopingSound_t +{ + const idSoundShader *shader; + idHandle aliasHandle; +}; + +// IDA Local Type ordinal 14303; PDB kind: struct. +struct idAlignedEntity::queuedAnim_t +{ + idHandle aliasHandle; + bool loop; + int durationMS; + float rateScale; + blendParms_t blendParms; +}; + +// IDA Local Type ordinal 14305; PDB kind: struct. +struct idAlignedEntity::animInfo_t +{ + idHandle curAliasHandle; + int animDurationMS; + idList queuedAnims; + bool startBlendOut; + int startTime; +}; + +// IDA Local Type ordinal 14310; PDB kind: struct. +struct __declspec(align(4)) idAlignedEntity::addedAttachment_t +{ + const idDeclInventory *attachItemDecl; + idInventoryItem *attachItem; + idHandle attachHandle; + bool attachAutoDetach; + bool noClone; +}; diff --git a/source/tungsten/game/entities/animated.h b/source/tungsten/game/entities/animated.h new file mode 100644 index 0000000..56bd282 --- /dev/null +++ b/source/tungsten/game/entities/animated.h @@ -0,0 +1,224 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\animated.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 20091; PDB kind: struct. +struct __declspec(align(4)) idAnimated::anim_t +{ + idAnimAliasRef animation; + unsigned __int16 blendDuration; + bool cycle; + idHandle animationHandle; +}; + +// IDA Local Type ordinal 20093; PDB kind: struct. +struct idAnimated::attachment_t +{ + idStr tag; + const idDeclEntityDef *entityDef; + idStr entityName; + const idDeclMD6 *md6; + idStr lwoName; +}; + +// IDA Local Type ordinal 20095; PDB kind: class. +class idAnimated : public idAnimatedEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20096. + virtual idTypeInfo *GetType(); + virtual ~idAnimated(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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(); + + idList animations; + idList startingAttachments; + bool alwaysUpdate; + bool applyAnimDelta; + bool loopAnimList; + idAttachmentCollection attachments; + int curAnim; + idAnimator_Channel channelAnimator; + idFaceMgr faceMgr; +}; + +// IDA Local Type ordinal 21305; PDB kind: class. +class AnimStarted : public idAIStateTransitionStatic +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21306. + virtual idTypeInfo *GetType(); + virtual ~AnimStarted(); + virtual int Evaluate(idFiniteStateMachine *, idState *, const int); + virtual void InternalSave(idFile_String *, const char *, const idList *); + virtual void Save(idFile_String *, const char *, const idList *); + virtual idAIStateTransition::aiTransCode_t Evaluate_2(idAI2 *, idAIFSM *, idAIState *, const int); + +}; diff --git a/source/tungsten/game/entities/animated_animweb.h b/source/tungsten/game/entities/animated_animweb.h new file mode 100644 index 0000000..315cd59 --- /dev/null +++ b/source/tungsten/game/entities/animated_animweb.h @@ -0,0 +1,256 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\animated_animweb.h +// Recovered logical types: 5 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19611; PDB kind: struct. +struct idAnimated_AnimWeb::animWebParms_t +{ + const idDeclAnimWeb *webDecl; + idAnimWebPath initialWebNode; + idList ambientAnims; +}; + +// IDA Local Type ordinal 19612; PDB kind: struct. +struct idAnimated_AnimWeb::attachment_t +{ + equipSlot_t equipSlot; + idStr tag; + const idDeclEntityDef *entityDef; + idStr entityName; + const idDeclInventory *declInventory; + const idDeclMD6 *md6; + idStr lwoName; +}; + +// IDA Local Type ordinal 19614; PDB kind: struct. +struct idAnimated_AnimWeb::collisionPieceStage_t +{ + idStrClipModel collisionModel; + idVec3 collisionBounds; + idStr tag; + idJointName joint; + idContents clipMask; + idContents contents; + bool clipBounds; + bool push; + bool crush; + idClipModel *clipModel; + idIndex jointIndex; + idQuat rOffset; + idVec3 tOffset; +}; + +// IDA Local Type ordinal 19616; PDB kind: struct. +struct idAnimated_AnimWeb::collisionPiece_t +{ + idList stages; + idPhysics_Static physicsObj; + int pushFlags; + int curStage; +}; + +// IDA Local Type ordinal 19619; PDB kind: class. +class idAnimated_AnimWeb : public idAnimatedEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19620. + virtual idTypeInfo *GetType(); + virtual ~idAnimated_AnimWeb(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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(); + + idAnimated_AnimWeb::animWebParms_t animWebParms; + idList startingAttachments; + bool applyAnimDelta; + bool useAmbientAnims; + int ambientWaitTime; + int ambientWait; + bool useFaceManager; + bool sceneModel; + bool overrideUsingDeferredPositions; + const idDeclDamage *crushDamage; + const idDeclDamage *pushDamage; + idJointName soundJoint; + idIndex soundJointIndex; + idList collisionPieces; + idStrId subtitleName; + idAnimator_AnimWeb animWeb; + idAnimator_Channel channelAnimators[2]; + idAnimator_Paused pausedAnimator; + idFaceMgr *faceMgr; + idAttachmentCollection attachments; + idHandle equipSlots[15]; + idInventoryCollection inventory; + idList attachmentAnimEventHandlers; + bool lightFromJointPositions; + idJointName skipJointForLighting; + idList hideMeshes; + idList showMeshes; +}; diff --git a/source/tungsten/game/entities/animatedentity.h b/source/tungsten/game/entities/animatedentity.h new file mode 100644 index 0000000..ae5a70a --- /dev/null +++ b/source/tungsten/game/entities/animatedentity.h @@ -0,0 +1,197 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\animatedentity.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14221; PDB kind: class. +class __declspec(align(8)) idAnimatedEntity : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15221. + virtual idTypeInfo *GetType(); + virtual ~idAnimatedEntity(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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(); + + idAnimStack animStack; + idDamageEffect *damageEffects; + idImpactManager impactManager; + const idDeclSkins *skinPreload; + const idDeclFX *fxDecl; + idAnimEventHandler animEventHandler; + idStr damageSwapSkin; + float initialMorphValue; + soundShaderParms_t soundOverrideParms; + idClothComponent clothComponent; + idTypesafeNumber pauseTime; + idEntityPtr animationMaster; + idAnimator_Proxy proxyAnimator; + idList,5> radiusDamageJointIndices; + idAnimatedEntityPhysicsCallbacks defaultPhysicsCallbacks; +}; diff --git a/source/tungsten/game/entities/animatedinteractable.h b/source/tungsten/game/entities/animatedinteractable.h new file mode 100644 index 0000000..010d470 --- /dev/null +++ b/source/tungsten/game/entities/animatedinteractable.h @@ -0,0 +1,194 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\animatedinteractable.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 20078; PDB kind: class. +class __declspec(align(4)) idAnimatedInteractable : public idAnimatedEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20079. + virtual idTypeInfo *GetType(); + virtual ~idAnimatedInteractable(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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 void Fire(); + + idEntityPtr usedByEntity; + idAnimator_Channel interactableAnimator; + idHandle onAnim; + idHandle offAnim; + idDeclJobRef availableJobDecl; + missionStatus_t availableJobStatus; + idDeclJobRef notAvailableJobDecl; + missionStatus_t notAvailableJobStatus; + idStrId displayText; + bool isOn; + bool playing; +}; diff --git a/source/tungsten/game/entities/animatedsimple.h b/source/tungsten/game/entities/animatedsimple.h new file mode 100644 index 0000000..f5b00dc --- /dev/null +++ b/source/tungsten/game/entities/animatedsimple.h @@ -0,0 +1,291 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\animatedsimple.h +// Recovered logical types: 7 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1800; PDB kind: enum. +enum idAnimatedSimple::stateMarker_t : __int32 +{ + STATE_RANDOM = 0xFFFFFFFE, + STATE_NONE = 0xFFFFFFFF, +}; + +// IDA Local Type ordinal 2003; PDB kind: enum. +typedef idAIScriptedAnimWeb::loopTriggerType_t idAnimatedSimple::loopTriggerType_t; + +// IDA Local Type ordinal 19585; PDB kind: struct. +struct __declspec(align(4)) idAnimatedSimple::idHitDetection_t +{ + idEntityPtr callTargetWhenDead; + idEntityPtr onIgnoredDamageTrigger; + idStr callWhenDead; + int health; + idDeclDamage::damageType_t ignoreDamageTypes; + bool shouldGetHit; + bool hasBeenKilled; +}; + +// IDA Local Type ordinal 19586; PDB kind: struct. +struct __declspec(align(4)) idAnimatedSimple::animEntry_t +{ + idHandle animationHandle; + idAnimAliasRef animation; + idEntityPtr perfectOriginRef; + idList,5> triggerEnter; + idList,5> triggerLeave; + idList,5> triggerLoopCount; + idList,5> triggerAnimDone; + float timeScale; + int jumpToState; + int blendTime; + int loopCountToTrigger; + idAnimatedSimple::loopTriggerType_t loopTriggerType; + unsigned __int8 : 1; + __int8 useTimeControl : 1; + __int8 useAnimationScale : 1; + __int8 hideWhenDone : 1; + __int8 useDeltaMovement : 1; + __int8 loop : 1; + __int8 useAnimationOrigin : 1; + __int8 playDefault : 1; +}; + +// IDA Local Type ordinal 19588; PDB kind: struct. +struct idAnimatedSimple::attachment_t +{ + idStr tag; + const idDeclEntityDef *entityDef; + idStr entityName; + const idDeclMD6 *md6; + idStr lwoName; + idDeclInventory *itemDef; + idHandle attachHandle; + equipSlot_t equipSlot; +}; + +// IDA Local Type ordinal 19590; PDB kind: struct. +struct idAnimatedSimple::idFacialOptions_t +{ + unsigned __int8 : 1; + __int8 useFacialAnims : 1; + __int8 useFaceManager : 1; + __int8 useLidDeformation : 1; + __int8 useBlinking : 1; + __int8 useFaceSetupEyeTracking : 1; + __int8 useEyeTracking : 1; + __int8 useLipsync : 1; +}; + +// IDA Local Type ordinal 19591; PDB kind: class. +class __declspec(align(8)) idAnimatedSimple : public idAnimatedEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19592. + virtual idTypeInfo *GetType(); + virtual ~idAnimatedSimple(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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(); + + idAnimatedSimple::idHitDetection_t hitDetectionOptions; + idList animList; + idList startingAttachments; + idAnimatedSimple::idFacialOptions_t facialOptions; + idStrId displayName; + unsigned __int8 : 1; + __int8 noDeferredPositon : 1; + __int8 sceneModel : 1; + __int8 isOkWithoutModel : 1; + __int8 ignoreMovement : 1; + __int8 playerShouldLowerWeapon : 1; + __int8 applyAnimTransformLocal : 1; + __int8 applyAnimTransform : 1; + __declspec(align(4)) idAnimator_Channel channelAnimator; + idAnimator_Paused pausedAnimator; + idAnimator_FaceTracks faceAnimator; + idAttachmentCollection attachments; + idFaceMgr faceMgr; + idQuat orgRotation; + idVec3 orgOrigin; + idQuat nextRotation; + idVec3 nextOrigin; + idVec3 prevTrans; + float externalTime; + int animStartFrame; + int animUpdatedFrame; + int physicsContent; + int currentState; + int queuedAnimState; + int queuedBlendTime; + int currentLoopCount; + int queuePauseFrame; + bool queuePause; + bool wasLooping; + bool isPaused; + bool hasCheckedDefault; +}; diff --git a/source/tungsten/game/entities/animatedsimplephysics.h b/source/tungsten/game/entities/animatedsimplephysics.h new file mode 100644 index 0000000..fa78c9e --- /dev/null +++ b/source/tungsten/game/entities/animatedsimplephysics.h @@ -0,0 +1,184 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\animatedsimplephysics.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 20074; PDB kind: class. +class __declspec(align(8)) idAnimatedSimplePhysics : public idAnimatedSimple +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20075. + virtual idTypeInfo *GetType(); + virtual ~idAnimatedSimplePhysics(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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(); + + bool crush; + idList collisionParts; +}; diff --git a/source/tungsten/game/entities/animcamera.h b/source/tungsten/game/entities/animcamera.h new file mode 100644 index 0000000..6193fae --- /dev/null +++ b/source/tungsten/game/entities/animcamera.h @@ -0,0 +1,241 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\animcamera.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 20059; PDB kind: struct. +struct idAnimCamera::idScreenFade +{ + int fadeTime; + idVec4 fadeColor; +}; + +// IDA Local Type ordinal 20061; PDB kind: class. +class __declspec(align(8)) idAnimCamera : public idCameraView +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34163. + virtual idTypeInfo *GetType(); + virtual ~idAnimCamera(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 HandleUserCmds(const usercmd_t *, const usercmd_t *); + virtual int InhibitFlags(); + virtual int InhibitButtons(); + virtual bool CanShowCrosshair(); + virtual bool InternalActivate(idEntity *); + virtual bool InternalDeactivate(); + + idJointName cameraJointName; + idStr cameraFovChannel; + idStr cameraDofChannel; + idHandle animationName; + idStr guiName; + int numLoops; + float initialFov; + bool hidePlayer; + bool abortable; + bool useDebugPlayerIfNeeded; + bool forceVirtualMaterialLoad; + int initialBlendTime; + bool startCamAnimImmediately; + int exitBlendTime; + idEntityPtr triggerWhenDone; + bool shouldPauseOnStart; + bool fadeInOnStart; + bool drawPlayerGUIS; + bool showLetterboxView; + float targetAspect; + bool useHighQualityMipGeneration; + bool adaptiveGlare; + bool hasActivated; + bool shouldPause; + bool waitingForKey; + idEntityPtr cinematicHands; + idAngles blendAngleOffset; + idAnimStack animStack; + idAnimator_Channel channelAnimator; + idVec3 camPos; + idMat3 camAxis; + idIndex camJointIdx; + const idMD6Anim *camAnim; + idInterpolate camFov; + idIndex camFovChannel; + idIndex camDofChannel; + idPlayerHud::hudState_t prevHudState; + idVec3 offset; + idAnimEventHandler animEventHandler; + idAnimCamera::idScreenFade screenFade; + int remainingFrames; + idRenderParmLerp depthOfField; + idRenderParmLerp fogColor; + idRenderParmLerp fogScale; + int overrideDOFMask; + int blendStartTime; + int startTime; + int endTime; + idVec3 startPos; + idQuat startQuat; + idQuat destQuat; + bool isBlendingIn; + idRenderParmLerp *renderParms[3]; + float cameraFOV; + float cameraDOF; + int oldSkipAdaptiveGlare; +}; diff --git a/source/tungsten/game/entities/animwebalignedentity.h b/source/tungsten/game/entities/animwebalignedentity.h new file mode 100644 index 0000000..342edda --- /dev/null +++ b/source/tungsten/game/entities/animwebalignedentity.h @@ -0,0 +1,55 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\animwebalignedentity.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 22004; PDB kind: class. +class idAnimWebAlignedEntity : public idAnimator_AnimWeb +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22005. + virtual ~idAnimWebAlignedEntity(); + virtual idAnimator_Base::priority_t GetStackPriority(); + virtual serializeType_t GetSerializeType(); + virtual void SerializeSnapshot(idSerializer *); + virtual void PreBlendSnapshot(idAnimStack *, int, const int, float); + virtual void PreSerializeInit(idAnimStack *, idClip *, idGameTimeManager *); + virtual bool InternalInit(const idAnimatorParms_Base *); + virtual bool InternalPostInit(const idAnimatorParms_Base *); + virtual void InternalShutdown(idAnimStack *); + virtual void InternalPreBlendTree(const idAnimStack *, const int, const int); + virtual void InternalPostBlendTree(const idAnimStack *, const int); + virtual void InternalStart(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalEnd(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalBlend(const idAnimStack *, const int, const float, const idTypesafeNumber); + virtual bool InternalIsContributing(); + virtual const idMD6Branch *InternalGetMergeBranch(); + virtual idMD6Branch *InternalGetMergeBranch_2(); + virtual void InternalPause(const idAnimStack *, const idTypesafeNumber); + virtual void InternalUnpause(const idAnimStack *, const idTypesafeNumber); + virtual const idMD6Branch *InternalGetEndBranch(); + virtual idMD6Branch *InternalGetEndBranch_2(); + virtual const idHandle *GetHandle(); + virtual void InternalInitWeb(); + virtual void InternalUpdate(const int); + virtual idDeclAnimWebNode::animDelta_t InternalGetCurrentAnimDeltaMode(); + virtual void InternalSetAnimDelta(const idIndex, const idDeclAnimWebNode *); + virtual int InternalGetEdgeCost(const idIndex, const idIndex); + virtual void InternalStartPath(); + virtual void InternalUpdateScalars(const int); + virtual void InternalStartBlend(const idDeclAnimWebNode *, const idDeclAnimWebNode *, const int); + virtual void InternalFinishBlend(const idDeclAnimWebNode *, const idDeclAnimWebNode *, const int); + virtual awCheckPathResult_t CheckNextNode(const idDeclAnimWebNode *, const idDeclAnimWebNode *); + virtual bool InternalShouldStartNextNode(const idIndex, const idIndex, const int, const int, const blendParms_t *, idIndex, const bool, animWebEvent_t *); + virtual void InternalTriggerEvent(const idDeclAnimWebNode *, const animWebEvent_t, const idHandle *, const int, const int); + virtual void InternalTriggerBlendEvent(int, idIndex, idIndex, idIndex, const int); + virtual bool InternalRemapNames(idStr *, idStr *); + virtual void InternalUpdateBlendEvents(const idAnimStack *, const int, const int); + + idAlignedEntity *alignedEntity; + float directionSelect; + float randomSelect; +}; diff --git a/source/tungsten/game/entities/attachments.h b/source/tungsten/game/entities/attachments.h new file mode 100644 index 0000000..bad0e46 --- /dev/null +++ b/source/tungsten/game/entities/attachments.h @@ -0,0 +1,213 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\attachments.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14307; PDB kind: class. +class __declspec(align(4)) idAttachment +{ +public: + idPresentable *presentable; + idInventoryItem *item; + const idDeclParticle *particleFx; + tagData_t particleFxTagData; + idVec3 originOffset; + idQuat savedRotOffset; + idQuat rotOffset; + idEntityPtr entity; + idIndex jointIndex; + int rotationAxis; + idHandle handle; + unsigned __int8 : 2; + __int8 isDetached : 1; + __int8 ignoreShowAll : 1; + __int8 isParticleFX : 1; + __int8 wasLinked : 1; + __int8 isHidden : 1; + __int8 isAnimated : 1; +}; + +// IDA Local Type ordinal 19706; PDB kind: class. +class idMoverAttachment : public idAnimatedEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19707. + virtual idTypeInfo *GetType(); + virtual ~idMoverAttachment(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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(); + + idAnimator_Channel channelAnimator; + idHandle currentAnimationHandle; + idAtomicString endOfAnimationScriptFunction; + int bindParentThinkFlags; + bool useAsVehicle; + const idDeclVehicleProps *vehicleProps; + idAnimator_VehicleCar vehicleAnimator; +}; diff --git a/source/tungsten/game/entities/batterychargepoint.h b/source/tungsten/game/entities/batterychargepoint.h new file mode 100644 index 0000000..4c52bda --- /dev/null +++ b/source/tungsten/game/entities/batterychargepoint.h @@ -0,0 +1,190 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\batterychargepoint.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 20056; PDB kind: class. +class __declspec(align(8)) idProp_BatteryChargePoint : public idProp_ContinuallyUsed +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20057. + virtual idTypeInfo *GetType(); + virtual ~idProp_BatteryChargePoint(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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 void GetUseLocation(const idActor *, idVec3 *); + virtual usableState_t GetOnlineUsableState(); + virtual bool BeforeUse(idEntity *); + + int lastChargetTime; + float curChargeAmount; + float chargePerSecond; + const idSoundShader *loopingSound; + idMat3 soundTransform; +}; diff --git a/source/tungsten/game/entities/bouncesparks.h b/source/tungsten/game/entities/bouncesparks.h new file mode 100644 index 0000000..b24a3c7 --- /dev/null +++ b/source/tungsten/game/entities/bouncesparks.h @@ -0,0 +1,186 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\bouncesparks.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 20051; PDB kind: struct. +struct idBounceSparks::sparkTimings_t +{ + float minDelay; + float maxDelay; +}; + +// IDA Local Type ordinal 20053; PDB kind: class. +class idBounceSparks : public idVolume +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34105. + virtual idTypeInfo *GetType(); + virtual ~idBounceSparks(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + const idDeclEntityDef *declBreakable; + float minTimeBetweenBursts; + float maxTimeBetweenBursts; + idVec3 burstDirection; + float impulse; + idList sparkTimings; + int nextSparkTime; +}; diff --git a/source/tungsten/game/entities/breakable.h b/source/tungsten/game/entities/breakable.h new file mode 100644 index 0000000..aabbdb5 --- /dev/null +++ b/source/tungsten/game/entities/breakable.h @@ -0,0 +1,476 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\breakable.h +// Recovered logical types: 8 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1837; PDB kind: enum. +enum __bitmask idProp_Breakable::breakableState_t : __int32 +{ + DAMAGED = 0x1, + EXPLODING = 0x2, +}; + +// IDA Local Type ordinal 14544; PDB kind: class. +class idBreakableTrail +{ +public: + const idDeclParticle *particleTrail; + const idDeclParticle *particleBounce; + const idDeclParticle *particleDie; + const idMaterial *glowQuadMaterial; + float glowQuadSize; + float minTrailVelocity; + float minBounceVelocity; + float trailSpacing; + float trailVelocityScale; + int delay; + int duration; + int fadeInDuration; + int fadeOutDuration; + idList pieces; +}; + +// IDA Local Type ordinal 14547; PDB kind: class. +class __declspec(align(4)) idBreakableDecal +{ +public: + idList materials; + idVec2 minSize; + idVec2 maxSize; + int lifetime; + int fadeOutStartTime; + int fadeInEndTime; + float minBounceVelocity; + float decalSpacing; + float depth; + idList pieces; + bool splatterOnBounce; + bool splatterOnRest; +}; + +// IDA Local Type ordinal 14551; PDB kind: class. +class idBreakableSpark +{ +public: + idList materials; + float sizeMin; + float sizeMax; + float velocityScaleMin; + float velocityScaleMax; +}; + +// IDA Local Type ordinal 19542; PDB kind: class. +class __declspec(align(8)) idProp_Breakable : public idProp_Moveable +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19543. + virtual idTypeInfo *GetType(); + virtual ~idProp_Breakable(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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 void GetUseLocation(const idActor *, idVec3 *); + virtual usableState_t GetOnlineUsableState(); + virtual void InitPropPhysics(); + virtual void Pickup(idEntity *, const bool); + virtual const idMaterial *GetIcon(); + virtual const char *GetIconName(); + virtual void Respawn(); + virtual float GetHealth(); + virtual void SetHealth(const float); + virtual void RemoveSelf(int); + + idProp_Breakable::breakableState_t state; + float health; + bool onlyMeleeDamage; + const idDeclEntityDef *replacement; + idList parts; + idList splinters; + int minSplinters; + int maxSplinters; + const idSoundShader *sound_break; + float delaySoundAfterBreak; + float removeDelay; + const idDeclParticle *smokeParticle; + bool breakFromTrigger; + bool explodes; + const idDeclEntityDef *explosionProjectile; + const idDeclAiEvent *explosionEventDecl; + const idDeclDamage *explodeDamage; + const idDeclEntityDef *breakable; + const idDeclEntityDef *entityToSpawnOnBreak; + int smokeStartTime; + idList spawnParts; + idList spawnSplinters; + idEntity *replacementPart; + int nextCollideTime; + weaponStatsTag_t statsTag; + idList ammoDamage; + highlightColor_t highlightColor; +}; + +// IDA Local Type ordinal 19868; PDB kind: struct. +struct breakableJoint_t +{ + idIndex jointIndex; + int pieceIndex; +}; + +// IDA Local Type ordinal 20047; PDB kind: class. +class idBreakable : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 20050. + virtual idTypeInfo *GetType(); + virtual ~idBreakable(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 bool IsTargetLockable_2(); + + const idSoundShader *soundExplosion; + const idDeclImpactSound *impactSoundTable; + float pieceMinBounceVelocity; + bool targetable; + idDeclDamage::damageType_t ignoreDamageType; + bool isPooled; + idList breakState; + idEffectPhysicsBreakable breakablePhysics; + idVec3 soundOffset; + int maxSimulationTime; + int brokenStartTime; + int brokenFrame; + float currentHealth; + float health; + bool fadeBroken; + float fadeTime; + float fadeDelay; + float velocityScale; + idFadeHelper fade; + idVec3 oldOrigin; + idVec3 velocity; +}; + +// IDA Local Type ordinal 23467; PDB kind: struct. +struct breakableIsland_t +{ + int index; + float lowestPoint; +}; diff --git a/source/tungsten/game/entities/breakablemanager.h b/source/tungsten/game/entities/breakablemanager.h new file mode 100644 index 0000000..8e0dfbd --- /dev/null +++ b/source/tungsten/game/entities/breakablemanager.h @@ -0,0 +1,21 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\breakablemanager.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16474; PDB kind: struct. +struct idBreakableManager::breakables_t +{ + idStaticList entity; + int next; +}; + +// IDA Local Type ordinal 16477; PDB kind: class. +class idBreakableManager +{ +public: + idStaticList breakable; +}; diff --git a/source/tungsten/game/entities/clothsimmanager.h b/source/tungsten/game/entities/clothsimmanager.h new file mode 100644 index 0000000..a61f2af --- /dev/null +++ b/source/tungsten/game/entities/clothsimmanager.h @@ -0,0 +1,28 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\clothsimmanager.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1528; PDB kind: enum. +enum idClothSimManager::clothSims_t::state_t : __int32 +{ + READY_TO_USE = 0x0, + READY_TO_FREE = 0x1, +}; + +// IDA Local Type ordinal 16498; PDB kind: struct. +struct idClothSimManager::clothSims_t +{ + idClothSimManager::clothSims_t::state_t state; + idClothSim *clothSim; +}; + +// IDA Local Type ordinal 16501; PDB kind: class. +class idClothSimManager +{ +public: + idStaticList cloth; +}; diff --git a/source/tungsten/game/entities/collisionstreamarea.h b/source/tungsten/game/entities/collisionstreamarea.h new file mode 100644 index 0000000..b2802a2 --- /dev/null +++ b/source/tungsten/game/entities/collisionstreamarea.h @@ -0,0 +1,173 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\collisionstreamarea.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19991; PDB kind: class. +class __declspec(align(8)) idCollisionStreamArea : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19992. + virtual idTypeInfo *GetType(); + virtual ~idCollisionStreamArea(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + int streamArea; +}; diff --git a/source/tungsten/game/entities/cuttable.h b/source/tungsten/game/entities/cuttable.h new file mode 100644 index 0000000..0cfd0e7 --- /dev/null +++ b/source/tungsten/game/entities/cuttable.h @@ -0,0 +1,195 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\cuttable.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15934; PDB kind: class. +class __declspec(align(8)) idCuttable : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15935. + virtual idTypeInfo *GetType(); + virtual ~idCuttable(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + idPhysics *physicsObj; + __unaligned __declspec(align(1)) idLinkList cuttableNode; + idCollisionGrid *collisionGrid; + idRenderModelCuttableSurface *cutModel; + idRenderModelCuttableBeams *beamModel; + idClipModel *clipModel; + idClipModel *gridClipModel; + idCollisionModel *collisionModel; + idCollisionModel *gridCollisionModel; + int graphHandle; + int infoHandle; + const idDeclImpactSound *impactTable; + int nestedPolygons; + int connectedPolygons; +}; + +// IDA Local Type ordinal 17352; PDB kind: struct. +struct cuttableInfo_t +{ + idRenderModelCuttableSurface *renderModel; + idPhysics *physics; + Contour *outerContour; + Contour *innerContour; +}; diff --git a/source/tungsten/game/entities/cuttablemanager.h b/source/tungsten/game/entities/cuttablemanager.h new file mode 100644 index 0000000..3bf8b3b --- /dev/null +++ b/source/tungsten/game/entities/cuttablemanager.h @@ -0,0 +1,20 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\cuttablemanager.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17367; PDB kind: class. +class idCuttableManager +{ +public: + idList infoCuttables; + idList nameCuttables; + idList vertexBuffers; + idList stBuffers; + idList indexBuffers; + idEffectPhysicsCuttable effectPhysics; + int freeBuffer; +}; diff --git a/source/tungsten/game/entities/cuttertimer.h b/source/tungsten/game/entities/cuttertimer.h new file mode 100644 index 0000000..c8c0fa5 --- /dev/null +++ b/source/tungsten/game/entities/cuttertimer.h @@ -0,0 +1,45 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\cuttertimer.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 21739; PDB kind: class. +class idCutterTimerTree::TreeItem +{ +public: + idCutterTimerTree::TreeItem *next; + idCutterTimerTree::TreeItem *parent; + idCutterTimerTree::TreeItem *children; + idStr name; + idTimer timer; + idTimer total; +}; + +// IDA Local Type ordinal 21919; PDB kind: class. +class __declspec(align(8)) idCutterTimerTree +{ +public: + idList items; + idCutterTimerTree::TreeItem *current; + idCutterTimerTree::TreeItem report; + bool enabled; +}; + +// IDA Local Type ordinal 22068; PDB kind: class. +class idCutterTimer +{ +public: + idHashTable timers; + idTimer *timer; + idStr reportName; +}; + +// IDA Local Type ordinal 22073; PDB kind: class. +class idCutterTimerTreeScope +{ +public: + idCutterTimerTree *tree; +}; diff --git a/source/tungsten/game/entities/damageableentity.h b/source/tungsten/game/entities/damageableentity.h new file mode 100644 index 0000000..a5a648a --- /dev/null +++ b/source/tungsten/game/entities/damageableentity.h @@ -0,0 +1,235 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\damageableentity.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1965; PDB kind: enum. +enum idDamageableEntity::breakState_t : __int32 +{ + UNBREAKABLE = 0x0, + BREAKABLE = 0x1, + READY_TO_BREAK = 0x2, + BREAKING = 0x3, + BROKEN = 0x4, + DEAD = 0x5, +}; + +// IDA Local Type ordinal 19974; PDB kind: class. +class __declspec(align(8)) idDamageableEntity : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19975. + virtual idTypeInfo *GetType(); + virtual ~idDamageableEntity(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 float GetHealth(); + virtual void SetHealth(const float); + virtual float GetMaxBaseHealth(); + virtual void SetMaxHealth(const float); + virtual void SetOrigin(const idVec3 *); + virtual void InternalApplyRadiusDamage(const idEntity *, const idEntity *, const idDeclDamage *, const idVec3 *, const float, const float, const float, const bool, const bool); + + float health; + float healthMax; + idPhysics *physicsObj; + idRenderModel *initialModel; + bool useRigidBody; + bool useStaticMulti; + idEffectPhysicsBreakable breakablePhysics; + const idSoundShader *sndBreak; + const idSoundShader *sndCrumble; + const idDeclImpactSound *impactSoundTable; + float pieceMinBounceVelocity; + int armorValue; + bool radiusDamageKills; + bool reorientOnSwap; + int fadeTime; + int maxSimulationTime; + const idDeclParticle *fadeParticle; + const idDeclParticle *swapParticle; + const idDeclParticle *destroyParticle; + const idDeclAiEvent *damagedAiEventDecl; + int collideIgnoreImpulse; + float destructionPercent; + float noClipPercent; + float resistPercent; + float secondBlastScale; + float density; + int hitsTaken; + int breakableTime; + bool explosionsStarted; + bool moveable; + bool barrelCollision; + bool targetable; + idClipModel *deadClipModel; + const idDeclBreakable *breakableDebris; + idEffectPhysicsDebrisEmitter debrisEmitter; + idVec3 debrisScale; + bool staticVehicleCollisions; + idDamageableEntity::breakState_t state; + idRenderModelDiscreteAnimation *breakableModel; + idRenderModel *renderModel; + int fadeStartTime; + int fadeEndTime; + int lastBump; + bool resetWhenDormant; + bool breakImmediately; + idEntityPtr playerOwner; +}; diff --git a/source/tungsten/game/entities/demo.h b/source/tungsten/game/entities/demo.h new file mode 100644 index 0000000..12a99d8 --- /dev/null +++ b/source/tungsten/game/entities/demo.h @@ -0,0 +1,20 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\demo.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 4864; PDB kind: struct. +struct _LD_DEMO +{ + unsigned int dwID; + unsigned int dwRunmode; + unsigned int dwTimeout; + char szLauncherXEX[128]; + char szLaunchedXEX[128]; +}; + +// IDA Local Type ordinal 27359; PDB kind: typedef. +typedef _LD_DEMO LD_DEMO; diff --git a/source/tungsten/game/entities/door_animated.h b/source/tungsten/game/entities/door_animated.h new file mode 100644 index 0000000..bcf2c78 --- /dev/null +++ b/source/tungsten/game/entities/door_animated.h @@ -0,0 +1,226 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\door_animated.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19960; PDB kind: class. +class idDoor_AnimatedPiece +{ +public: + idStrClipModel clipModel; + idJointName joint; + bool isObstacle; + idIndex jointIndex; + idPresentableDoorAnimated *presentable; +}; + +// IDA Local Type ordinal 19962; PDB kind: class. +class idDoor_Animated : public idDoor_Base +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19963. + virtual idTypeInfo *GetType(); + virtual ~idDoor_Animated(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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 usableState_t GetOnlineUsableState(); + virtual bool IsOpen(); + virtual bool IsClosed(); + virtual bool IsLocked(); + virtual bool IsLockedForEntity(const idEntity *, const float); + virtual bool CanKickOpen(); + virtual bool KickUnlocks(); + virtual bool HasKey(const idEntity *); + virtual void SetLocked(bool, idEntity *); + virtual void LockGrind(idEntity *, idEntity *); + virtual void UpdateAASAreas(); + virtual void InternalSetDoorState(idEntity *, const idDoor_Base::doorState_t); + virtual bool CanClose(bool); + + idAnimator_Channel doorAnimator; + int pushFlags; + idStr openAnim; + idStr closeAnim; + idStr lockAnim; + idStr unlockAnim; + int msUntilClose; + bool triggerTargetsOnOpen; + bool playerCanClose; + int numMaxOpens; + idList collisionParts; + bool testForActorsWhenClosing; + int autoCloseTime; + bool playing; + int openCount; + idHandle openAnimHandle; + idHandle closeAnimHandle; + idHandle lockAnimHandle; + idHandle unlockAnimHandle; + idGatherQuery canCloseQuery; +}; diff --git a/source/tungsten/game/entities/door_base.h b/source/tungsten/game/entities/door_base.h new file mode 100644 index 0000000..7f0090b --- /dev/null +++ b/source/tungsten/game/entities/door_base.h @@ -0,0 +1,228 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\door_base.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1709; PDB kind: enum. +enum idDoor_Base::doorState_t : __int32 +{ + DOOR_UNKNOWN = 0x0, + DOOR_CLOSING = 0x1, + DOOR_CLOSED = 0x2, + DOOR_OPENING = 0x3, + DOOR_OPENED = 0x4, + DOOR_BROKEN = 0x5, +}; + +// IDA Local Type ordinal 19028; PDB kind: class. +class idDoor_Base : public idAnimatedEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19031. + virtual idTypeInfo *GetType(); + virtual ~idDoor_Base(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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 usableState_t GetOnlineUsableState(); + virtual bool IsOpen(); + virtual bool IsClosed(); + virtual bool IsLocked(); + virtual bool IsLockedForEntity(const idEntity *, const float); + virtual bool CanKickOpen(); + virtual bool KickUnlocks(); + virtual bool HasKey(const idEntity *); + virtual void SetLocked(bool, idEntity *); + virtual void LockGrind(idEntity *, idEntity *); + virtual void UpdateAASAreas(); + virtual void InternalSetDoorState(idEntity *, const idDoor_Base::doorState_t); + virtual bool CanClose(bool); + + bool usableByAI; + bool locked; + bool canKickOpen; + bool kickUnlocks; + bool kickOffHinges; + bool opensWhenUnlocked; + bool forcedUnusable; + bool forceUnusableWhenOpened; + bool playerUsable; + int triggerWhenOpenedCount; + const idMaterial *displayIcon; + const idMaterial *displayIconLocked; + const idDeclInventory *requiredKey; + bool removeKeyOnUse; + const idSoundShader *locked_sound; + const idSoundShader *unlock_sound; + const idDeclAiEvent *motionEventDecl; + idList,5> linked; + idSoundDoor *soundDoor; + float kicked; + idDoor_Base::doorState_t state; + idBounds bounds; +}; diff --git a/source/tungsten/game/entities/door_laser.h b/source/tungsten/game/entities/door_laser.h new file mode 100644 index 0000000..d0fff20 --- /dev/null +++ b/source/tungsten/game/entities/door_laser.h @@ -0,0 +1,211 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\door_laser.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19955; PDB kind: class. +class idDoor_Laser::idDoor_LaserBar +{ +public: + int behavior; + idVec3 startRelativePosition; + idVec3 endRelativePosition; + float openDelay; + float openSpeed; + float closeDelay; + float closeSpeed; + float recloseDelay; + float recloseSpeed; + int numParts; + idVec3 startPosition; + idVec3 endPosition; + float openPercent[2]; + idClipQuery clipQuery[2]; + int startOpenCloseTime; + int nextSparkTime; +}; + +// IDA Local Type ordinal 19957; PDB kind: class. +class __declspec(align(4)) idDoor_Laser : public idVolume +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34111. + virtual idTypeInfo *GetType(); + virtual ~idDoor_Laser(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + float doorWidth; + float doorHeight; + bool startDoorOpenFlag; + const idSoundShader *openSound; + const idSoundShader *closeSound; + const idSoundShader *passThroughSound; + const idMaterial *barMaterial; + float barSize; + idList sparkParticles; + float sparkDelayMin; + float sparkDelayMax; + float barOpenExtraPercent; + float sparkBackExtraPercent; + idList bars; + bool shouldBeOpenFlag; + idLaserBeam laserBeam; + bool barsAnimatingFlag; +}; diff --git a/source/tungsten/game/entities/door_parametric.h b/source/tungsten/game/entities/door_parametric.h new file mode 100644 index 0000000..d1ffeb2 --- /dev/null +++ b/source/tungsten/game/entities/door_parametric.h @@ -0,0 +1,250 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\door_parametric.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1960; PDB kind: enum. +enum idDoor_Parametric::slideDir_t : __int32 +{ + SLIDE_UP = 0x0, + SLIDE_DOWN = 0x1, + SLIDE_LEFT = 0x2, + SLIDE_RIGHT = 0x3, + SLIDE_FORWARD = 0x4, + SLIDE_BACKWARD = 0x5, +}; + +// IDA Local Type ordinal 1961; PDB kind: enum. +enum idDoor_Parametric::axis_t : __int32 +{ + AXIS_X = 0x0, + AXIS_Y = 0x1, + AXIS_Z = 0x2, +}; + +// IDA Local Type ordinal 19952; PDB kind: class. +class idDoor_Parametric : public idDoor_Base +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19953. + virtual idTypeInfo *GetType(); + virtual ~idDoor_Parametric(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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 usableState_t GetOnlineUsableState(); + virtual bool IsOpen(); + virtual bool IsClosed(); + virtual bool IsLocked(); + virtual bool IsLockedForEntity(const idEntity *, const float); + virtual bool CanKickOpen(); + virtual bool KickUnlocks(); + virtual bool HasKey(const idEntity *); + virtual void SetLocked(bool, idEntity *); + virtual void LockGrind(idEntity *, idEntity *); + virtual void UpdateAASAreas(); + virtual void InternalSetDoorState(idEntity *, const idDoor_Base::doorState_t); + virtual bool CanClose(bool); + virtual void GetUseLocation(const idActor *, idVec3 *); + + idClipModel *frameClip; + idPhysics_Parametric physicsObj; + idPhysics_RigidBody rigidBodyPhysicsObj; + idDoor_Parametric::axis_t heading_axis; + idPresentable *framePresentable; + idPresentable *doorAttachment; + idRenderModel *frame; + idRenderModel *door; + idDoor_Parametric::axis_t rotation_axis; + float min_angle; + float max_angle; + float min_kick_angle; + float max_kick_angle; + float start_angle; + float angularspeed; + bool invertRotationDir; + bool slidingDoor; + idDoor_Parametric::slideDir_t slideDir; + float slideDist; + float slideSpeed; + float lockGrindRestAngle; + idVec3 rotate_axis; + idVec3 default_axis; + const idSoundShader *start_sound; + const idSoundShader *close_sound; + const idSoundShader *kick_open_sound; + idVec3 door_center; + idVec3 door_ai_offset; + int close_time; + int close_range; + int autoCloseTime; + int forceUnopenedTime; + idVec3 slideVec; + idVec3 closedPos; + idGatherQuery canCloseQuery; +}; diff --git a/source/tungsten/game/entities/drone.h b/source/tungsten/game/entities/drone.h new file mode 100644 index 0000000..a9afc96 --- /dev/null +++ b/source/tungsten/game/entities/drone.h @@ -0,0 +1,457 @@ +#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:: : __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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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 initialPath; + idEntityPtr 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 currentState; + idEnum nextState; + int changeStateTime; + idEnum lastNonScanState; + idEnum moveStates[4]; + float moveStateMemberships[4]; + float moveStateMembershipDeltas[4]; + idDrone::dronePathType_t currentPathType; + int currentPathTypeParm; + int patrolWaypointOn; + int patrolDirection; + idList patrolWaypoints; + float searchDirection; + int searchNextUpdateTime; + idList goals; + idList 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 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 smallEngineSounds; + idList largeEngineSounds; + idList 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 currentEnemy; + bool isScannerOn; + idEntityPtr currentScanEntity; + float currentScanEntityCuriosity; + float currentScanEntityEffectOn; + idList,5> previousFocusEntities; + idList previousFocusEntityTimes; + float focusEntityScanBob; + float focusEntityScanBobDelta; + idEntityPtr 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,5> touching; + idNavPathPosTracker *enemyTracker; + idList behaviorPoints; + int nextBehaviorPointToTest; + idList 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 deathTrigger; + float delayToHideDrone; + float minDeathThrustDuration; + float maxDeathThrustDuration; + idVec3 recentForceApplied; + idVec3 deathThrust; + __unaligned __declspec(align(1)) idLinkList 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 entityToScan; + int minTriggerCount; + int maxTriggerCount; + float distanceToScan; + float slowDistance; + float forcedCuriosity; + float scanChance; + int maxNumScans; + idEntityPtr startScanTrigger; + idEntityPtr endScanTrigger; + idDrone::droneState_t exitScanState; + idEntityPtr 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 trigger; + bool scanAttackerFlag; + idEntityPtr scanEntity; + float forcedCuriosity; + float desiredSpeedMultiplier; + bool hasBehaviorTriggered; +}; diff --git a/source/tungsten/game/entities/dropship.h b/source/tungsten/game/entities/dropship.h new file mode 100644 index 0000000..3c29de1 --- /dev/null +++ b/source/tungsten/game/entities/dropship.h @@ -0,0 +1,248 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\dropship.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1947; PDB kind: enum. +enum dropShipState_t : __int32 +{ + DPSP_HOVER = 0x0, + DPSP_ENROUTE = 0x1, + DPSP_DROPCARGO = 0x2, + DPSP_WAITTILLCLEAR = 0x3, + DPSP_HEADINGOUT = 0x4, + DPSP_POWERDOWN = 0x5, + DPSP_LANDED = 0x6, + DPSP_DONE = 0x7, +}; + +// IDA Local Type ordinal 19941; PDB kind: struct. +struct __declspec(align(4)) dropShipCargo_t +{ + idEntityPtr targetSpawn; + const idDeclEntityDef *cargoDef; + int count; + bool waitTillClear; +}; + +// IDA Local Type ordinal 19945; PDB kind: struct. +struct idDropShip::dropShipSound_t +{ + const idSoundShader *sound; + float minPitch; + float maxPitch; + float minVolume; + float maxVolume; +}; + +// IDA Local Type ordinal 19947; PDB kind: class. +class __declspec(align(8)) idDropShip : public idAnimatedEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19948. + virtual idTypeInfo *GetType(); + virtual ~idDropShip(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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(); + + idList splines; + idList cargo; + float timeBetweenDrops; + idInventoryAttachmentDef jetPack; + idList speedTable; + bool dropImmediately; + bool startOffHovering; + bool powerDownAtEndOfSpline; + float timeToPowerDown; + const idSoundShader *powerDownSound; + float fireDelayWhenMoving; + float fireDelayWhenHovering; + const idDeclVehicleWeapon *vehicleWeapon; + const idDeclMD6 *weaponAttachment; + idAttachmentCollection attachments; + idList dropShipSound; + float soundFadeTime; + idList,5> droppedCargo; + idInventoryCollection inventory; + idWeapon *weapon; + idCurve_Spline *currentSpline; + int currentSplineIdx; + idSpring movementSpring; + idMat3 currentAxis; + idAngles angles; + float currentDt; + dropShipState_t dropShipState; + int stateTimer; + int stateStartTime; + int soundStartTime; + float currentSplineTime; + int fireTimer; + int curNumDropped; + idVec2 engineShake; +}; diff --git a/source/tungsten/game/entities/entity.h b/source/tungsten/game/entities/entity.h new file mode 100644 index 0000000..eef0651 --- /dev/null +++ b/source/tungsten/game/entities/entity.h @@ -0,0 +1,265 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\entity.h +// Recovered logical types: 5 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2843; PDB kind: unknown. +enum idEntity:: : __int32 +{ + EVENT_STARTSOUNDSHADER = 0x0, + EVENT_STOPSOUNDSHADER = 0x1, + EVENT_MAXEVENTS = 0x2, +}; + +// IDA Local Type ordinal 14219; PDB kind: class. +class __declspec(align(8)) idEntity : public idEventReceiver +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15187. + virtual idTypeInfo *GetType(); + virtual ~idEntity(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + idStr name; + idVec3 spawnPosition; + idMat3 spawnOrientation; + idEntity::entityFlags_t flags; + idList,5> targets; + idRenderModelInfo renderModelInfo; + idClipModelInfo clipModelInfo; + idEntity::idBindInfo bindInfo; + idEntity::idDormancy dormancy; + idScriptObject scriptObject; + idHandle threadHandle; + idPresentable *presentable; + int entityNumber; + const idDeclEntityDef *entityDef; + int thinkFlags; + idPhysics_Static defaultPhysicsObj; + idEntityPhysicsCallbacks physicsCallbacks; + idPhysics *physics; + idGatherQuery touchTriggersQuery; + int numPVSAreas; + int PVSAreas[4]; + signalList_t *signals; + int entitiesKilled; + idEntity *progressionEntity; + bool firstPostSerializeRead; + idList superScriptObjects; + idLinkList spawnNode; + idLinkList activeNode; + idLinkList removeNode; +}; + +// IDA Local Type ordinal 15172; PDB kind: struct. +struct idEntity::entityFlags_t +{ + __int8 selected : 1; + __int8 takedamage : 1; + __int8 noknockback : 1; + __int8 isActivatable : 1; + __int8 noFlood : 1; + __int8 forcePhysicsUpdate : 1; + __int8 canBecomeDormant : 1; + __int8 hide : 1; + __int8 dynamicClipReplicationAxis : 1; + __int8 dynamicClipReplication : 1; + __int8 skipReplication : 1; + __int8 afTouchesTriggers : 1; + __int8 touchesTriggers : 1; + __int8 enableStaticSpecular : 1; + __int8 noSightStimulus : 1; + __int8 isDormant : 1; + unsigned __int8 : 7; + __int8 isAimAssistTarget : 1; +}; + +// IDA Local Type ordinal 15175; PDB kind: class. +class idEntity::idBindInfo +{ +public: + idEntityPtr bindParent; + idAngles bindOffset; + idStr bindToJoint; + idStr bindToTag; + idStr bindAnim; + unsigned __int8 : 4; + __int8 snapToParent : 1; + __int8 solidForTeam : 1; + __int8 bindLighting : 1; + __int8 bindOrientated : 1; + idEntity *bindMaster; + idEntity *teamMaster; + idEntity *teamChain; + idIndex bindJoint; + tagData_t bindTag; +}; + +// IDA Local Type ordinal 15176; PDB kind: class. +class __declspec(align(4)) idEntity::idDormancy +{ +public: + float delay; + float distance; + int lastTimeInPlayerPVS; + int becomeDormantTime; + int endForceTime; + bool forceDormant; +}; diff --git a/source/tungsten/game/entities/entityanimrecorder.h b/source/tungsten/game/entities/entityanimrecorder.h new file mode 100644 index 0000000..1f2a597 --- /dev/null +++ b/source/tungsten/game/entities/entityanimrecorder.h @@ -0,0 +1,33 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\entityanimrecorder.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1937; PDB kind: enum. +enum idEntityAnimRecorder::blockType_t : __int32 +{ + ENTITY_BLOCK = 0x3, + ENTITY_HEADER_BLOCK = 0x4, + ENTITY_END_BLOCK = 0x5, +}; + +// IDA Local Type ordinal 19923; PDB kind: class. +class idEntityAnimRecorder : public idAnimRecorder +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19924. + virtual void Serialize(int *, idGameTimeManager *, const bool); + virtual void Stop(); + virtual void ReadFrames(int); + virtual ~idEntityAnimRecorder(); + virtual void WriteHeaderBlock(); + virtual bool ReadHeaderBlock(); + + idQuat orientation; + idVec3 position; + int activeEntityNumber; + idEntity *activeEntity; +}; diff --git a/source/tungsten/game/entities/entityauditor.h b/source/tungsten/game/entities/entityauditor.h new file mode 100644 index 0000000..a56ec83 --- /dev/null +++ b/source/tungsten/game/entities/entityauditor.h @@ -0,0 +1,19 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\entityauditor.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14470; PDB kind: class. +class idEntityAuditor +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14495. + virtual ~idEntityAuditor(); + virtual void CollectData(const idEntity *, const int); + virtual void Audit(idEncounterGroup *, const idEntity *, const int, idAuditResults *); + virtual void Clear(); + +}; diff --git a/source/tungsten/game/entities/entityemitter.h b/source/tungsten/game/entities/entityemitter.h new file mode 100644 index 0000000..87efcf5 --- /dev/null +++ b/source/tungsten/game/entities/entityemitter.h @@ -0,0 +1,196 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\entityemitter.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1928; PDB kind: enum. +enum idEntityEmitter::AXIS : __int32 +{ + AXIS_NONE = 0xFFFFFFFF, +}; + +// IDA Local Type ordinal 19918; PDB kind: class. +class __declspec(align(8)) idEntityEmitter : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19919. + virtual idTypeInfo *GetType(); + virtual ~idEntityEmitter(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + int particleCount; + float particleLifespan; + float particleFadeTime; + float particleFadeSpeed; + float particleCollisionElasticity; + float particleCrazyBounceChance; + float particleAngularVelocity; + float particleFriction; + float particleAngularFriction; + idEntityEmitter::AXIS particleAlignmentExcludeAxis; + const idDeclImpactSound *impactSoundTable; + const idDeclEntityDef *particleDef; + idList particles; + int particleIndex; + int numParticlesInUse; + idRandom random; + float emitFovScale; + float emitModelDepthHack; +}; diff --git a/source/tungsten/game/entities/entityfx.h b/source/tungsten/game/entities/entityfx.h new file mode 100644 index 0000000..d827bf9 --- /dev/null +++ b/source/tungsten/game/entities/entityfx.h @@ -0,0 +1,179 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\entityfx.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19913; PDB kind: class. +class idEntityFx : public idDynamicEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19914. + virtual idTypeInfo *GetType(); + virtual ~idEntityFx(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + bool startOff; + bool cycleTrigger; + float actionDelay; + const idDeclFX *fxEffect; + fxCondition_t startCondition; + fxExtraCondition_t extraConditions; + int nextTriggerTime; +}; diff --git a/source/tungsten/game/entities/entityptr.h b/source/tungsten/game/entities/entityptr.h new file mode 100644 index 0000000..670f4dd --- /dev/null +++ b/source/tungsten/game/entities/entityptr.h @@ -0,0 +1,524 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\entityptr.h +// Recovered logical types: 75 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14186; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 14316; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 14317; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 14319; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 14363; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 14364; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 14376; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 14474; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 14484; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 14486; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 14489; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 14504; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 14640; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 14679; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 14696; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 14925; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 14990; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 15102; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 15218; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 15268; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 15672; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 15681; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 15688; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 15737; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 15785; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 15939; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 15988; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 15990; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 15992; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 15994; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 16039; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 16040; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 16549; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 16552; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 16553; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 16554; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 16627; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 16708; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 17099; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 17169; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 17217; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 17220; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 17222; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 17224; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 17225; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 17694; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 17701; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 18086; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 18790; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 18794; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 18841; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 18853; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 18911; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 18975; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 18979; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 18983; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 19011; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 19027; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 19172; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 19388; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 19520; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 19548; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 19552; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 19559; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 19560; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 19596; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 19649; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 19885; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 19887; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 19940; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 20058; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 20109; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 20468; PDB kind: class. +class idEntityPtr +{ +public: + idSpawnId spawnId; +}; + +// IDA Local Type ordinal 26713; PDB kind: typedef. +typedef idEntityPtr entityPtr_t; + +// IDA Local Type ordinal 32453; PDB kind: typedef. +typedef idList,5> idEntityPtrList; diff --git a/source/tungsten/game/entities/explodable.h b/source/tungsten/game/entities/explodable.h new file mode 100644 index 0000000..89ed25a --- /dev/null +++ b/source/tungsten/game/entities/explodable.h @@ -0,0 +1,193 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\explodable.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19911; PDB kind: class. +class __declspec(align(8)) idExplodable : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19912. + virtual idTypeInfo *GetType(); + virtual ~idExplodable(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + const idSoundShader *soundExplosion; + const idDeclParticle *impactParticle; + idRenderModel *brokenModel; + const idDeclDamage *damageDecl; + const idDeclFX *fxDecl; + idDeclDamage::damageType_t explodingDamageTypes; + idSimpleHealth explodableHealth; + bool steamOnDamage; + bool callScriptOnExplode; + int fxLastSteamIndex; +}; + +// IDA Local Type ordinal 22470; PDB kind: struct. +struct __declspec(align(4)) explodableEmit_t +{ + idMat3 localAxis; + idVec3 localOrigin; + int startTime; + int endTime; + float diversity; + bool free; +}; diff --git a/source/tungsten/game/entities/firstpersonevent.h b/source/tungsten/game/entities/firstpersonevent.h new file mode 100644 index 0000000..908488e --- /dev/null +++ b/source/tungsten/game/entities/firstpersonevent.h @@ -0,0 +1,443 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\firstpersonevent.h +// Recovered logical types: 7 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1923; PDB kind: enum. +enum idFirstPersonEvent::attachMode_t : __int32 +{ + ATTACHMODE_LEGS = 0x0, + ATTACHMODE_HANDS = 0x1, +}; + +// IDA Local Type ordinal 1924; PDB kind: enum. +enum idFirstPersonEvent::exitCondition_t : __int32 +{ + EXITCONDITION_NONE = 0x0, + EXITCONDITION_BUTTONPRESS = 0x1, + EXITCONDITION_MOVEMENT = 0x2, +}; + +// IDA Local Type ordinal 1925; PDB kind: enum. +enum idFirstPersonEvent::exitConditionMoveType_t : __int32 +{ + EXITCONDITION_MOVETYPE_NONE = 0x0, + EXITCONDITION_MOVETYPE_RIGHT = 0x1, + EXITCONDITION_MOVETYPE_LEFT = 0x2, + EXITCONDITION_MOVETYPE_FORWARD = 0x4, + EXITCONDITION_MOVETYPE_BACKWARD = 0x8, +}; + +// IDA Local Type ordinal 19593; PDB kind: struct. +struct idFirstPersonEvent::bindInfo_t +{ + idEntityPtr bindParent; + idAngles bindOffset; + idStr bindToJoint; + idStr bindToTag; +}; + +// IDA Local Type ordinal 19594; PDB kind: struct. +struct __declspec(align(4)) idFirstPersonEvent::animEntry_t +{ + idHandle legsAnimationHandle; + idHandle handsAnimationHandle; + int stateStarted; + idEntityPtr triggerEnter; + idEntityPtr triggerLeave; + idAnimAliasRef legsAnimation; + idAnimAliasRef handsAnimation; + idFirstPersonEvent::exitCondition_t exitCondition; + idFirstPersonEvent::exitConditionMoveType_t exitConditionMoveType; + usercmdButton_t exitConditionButton; + float timeScale; + int exitParameters; + int exitStateSucceded; + int exitStateFailed; + int maxLoopTime; + int blendTime; + unsigned __int8 : 6; + __int8 useTimeControl : 1; + __int8 loop : 1; +}; + +// IDA Local Type ordinal 19597; PDB kind: class. +class __declspec(align(2)) idFirstPersonEvent : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19598. + virtual idTypeInfo *GetType(); + virtual ~idFirstPersonEvent(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + idFirstPersonEvent::bindInfo_t fpBindinfo; + idList extraAnimations; + idAnimAliasRef legsAnimation; + idAnimAliasRef handsAnimation; + idEntityPtr perfectOriginRef; + idEntityPtr perfectDestinationRef; + idList,5> triggerEnter; + idList,5> triggerLeave; + idStr cameraJoint; + idStr fovUserChannel; + idVec3 playerEndOffset; + idFirstPersonEvent::attachMode_t attachMode; + int blendInTime; + int blendOutTime; + int cameraBlendOutTime; + unsigned __int8 : 3; + __int8 makePlayerFollowAlong : 1; + __int8 shouldEndInCrouch : 1; + __int8 forceActivateOnPlayer : 1; + __int8 useAnimationEndPos : 1; + __int8 useAnimationOrigin : 1; + idEntityPtr legsEntity; + idEntityPtr handsEntity; + idEntityPtr playerActivator; + idVec3 orgPosLegs; + idMat3 orgAxisLegs; + idVec3 orgPosHands; + idMat3 orgAxisHands; + idVec3 nextPosLegs; + idMat3 nextRotLegs; + idVec3 nextPosHands; + idMat3 nextRotHands; + idVec3 playerEndPos; + idMat3 playerEndRot; + idHandle legsAnimationHandle; + idHandle handsAnimationHandle; + int animStartFrame; + int eventStartTime; + int eventEndTime; + int curExtraAnimation; + float externalTime; + idHands::handHideReason_t playerShowFlags; + idUCmdInhibit::inhibitFlags_t playerSavedInhibitFlags; + bool removeOriginTransformLegs; + bool removeOriginTransformHands; + bool applyMovement; +}; + +// IDA Local Type ordinal 19905; PDB kind: class. +class idUseFirstPersonEvent : public idUse +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19906. + virtual idTypeInfo *GetType(); + virtual ~idUseFirstPersonEvent(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + bool additionalPickup; + int additionalPickupState; +}; diff --git a/source/tungsten/game/entities/gamechallenge.h b/source/tungsten/game/entities/gamechallenge.h new file mode 100644 index 0000000..9dd142a --- /dev/null +++ b/source/tungsten/game/entities/gamechallenge.h @@ -0,0 +1,1712 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\gamechallenge.h +// Recovered logical types: 14 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1915; PDB kind: enum. +enum __bitmask idGameChallenge::challengeFailed_t : __int32 +{ + PLAYER_DISCONNECT = 0x1, +}; + +// IDA Local Type ordinal 15541; PDB kind: class. +class idGameChallenge : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15592. + virtual idTypeInfo *GetType(); + virtual ~idGameChallenge(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 StartPreGame(); + virtual void BeginGame(); + virtual void EndGame(); + virtual void GameOver(); + virtual void StartRound(); + virtual void EndRound(); + virtual void FinishGame(); + virtual void SetPlayerState(idGameChallenge::playerData_t *, challengePlayerState_t, int); + virtual void ProcessPlayerStates(); + virtual bool Restart(); + virtual void RestartPlayer(idPlayer *); + virtual void SetSpectator(idGameChallenge::playerData_t *, bool); + virtual bool RegisterNewPlayer(idGameChallenge::playerData_t *, idPlayer *, bool); + virtual bool IsTeamGame(); + virtual bool AllowSpectators(); + virtual bool CanScore(); + virtual void ForceScoreboardAll(bool); + virtual bool HasPreGame(); + virtual int GetPreGameDuration(); + virtual void GameLoadingFinished(int); + virtual void SyncMigrationGameDataWithSession(bool); + virtual void SerializeMigrationGameData(idSerializer *); + virtual void SerializeMigrationUserData(idSerializer *, idGameChallenge::playerData_t *); + virtual gameTeam_t GetTeamNumber(const idGameChallenge::playerData_t *); + virtual void SetTeamRenderModel(idGameChallenge::playerData_t *); + virtual bool PlayerStateExpired(idGameChallenge::playerData_t *); + virtual void EnterState_PLAYER_STATE_VDM_SELECT_LOADOUT(idGameChallenge::playerData_t *); + virtual void EnterState_PLAYER_STATE_VDM_FORCE_SELECT_LOADOUT(idGameChallenge::playerData_t *); + virtual void EnterState_PLAYER_STATE_SPECTATE_AFTER_DEATH(idGameChallenge::playerData_t *); + virtual void EnterState_PLAYER_STATE_RESPAWNING(idGameChallenge::playerData_t *); + virtual void StateExpired_PLAYER_STATE_VDM_GAME_MODE_INFO(idGameChallenge::playerData_t *); + virtual void StateExpired_PLAYER_STATE_VDM_SELECT_LOADOUT(idGameChallenge::playerData_t *); + virtual void StateExpired_PLAYER_STATE_WAITING_TO_RESPAWN_FROM_DEATH(idGameChallenge::playerData_t *); + virtual void StateExpired_PLAYER_STATE_SPECTATE_AFTER_DEATH(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_NONE(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_VDM_SELECT_LOADOUT(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_VDM_FORCE_SELECT_LOADOUT(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_WAITING_TO_RESPAWN_FROM_DEATH(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_SPECTATE_AFTER_DEATH(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_RESPAWNING(idGameChallenge::playerData_t *); + virtual void RespawnPlayer(idGameChallenge::playerData_t *, idDoomSpawnManager::commandType_t); + virtual void FinalizeRespawnPlayer(idGameChallenge::playerData_t *, const idVec3 *, const idAngles *); + virtual void DebugAllSpawnPoints(); + virtual const idDeclMD6 *GetPlayerModelMD6(const idPlayer *); + virtual bool IsLeaderTied(); + virtual int GetLeaderPlayerIndex(); + virtual int GetLeaderEntityNumber(); + virtual int GetRunnerUpScore(); + virtual int GetHighScore(); + virtual bool ScoreLimitReached(); + virtual int GetPlayerScore(const idGameChallenge::playerData_t *); + virtual void GetScoringData(const idGameChallenge::playerData_t *, int *, int *, int *, int *); + virtual int GetTeamScore(gameTeam_t); + virtual int GetScoreLimit(); + virtual bool DidPlayerWin(int); + virtual void BroadcastKillMessage(int, int, const idDeclDamage *, bool, int, int); + virtual bool FriendlyFireEnabled(); + virtual bool PlayerReviveEnabled(); + virtual void OnTriggerTouched(idTrigger_GameChallenge *, idEntity *, int); + virtual int GetPrimaryScoreboardStat(int); + virtual int GetSecondaryScoreboardStat(int); + virtual void Notify_FlagCaptured(struct idProp_CTF_Flag *, idEntity *); + virtual void PostStatsToLeaderboard(); + virtual const leaderboardDefinition_t *GetLeaderboard(); + virtual int GetSecondaryLeaderboardStat(int); + virtual void LoadMultiplayerDecls(); + + bool startActive; + int timeLimit; + int scoreLimit; + int numLives; + bool countupTime; + bool takeDamage; + float respawnDelay; + int baseTime; + idList spawnPoints; + int minimumPlayers; + int leaderBoard; + bool useSpectatorCamera; + bool requireLoadoutSelection; + idEntityPtr initialSpectatorCamPos; + idEntityPtr initialSpectatorCamLookAt; + const idSoundShader *gameMusic; + const idSoundShader *gameOverSound; + const idSoundShader *failedGameOverSound; + const idDeclFX *fxDecl; + const idDeclOnlineVOCallout *voCallout; + int killScore; + int suicideScore; + int suicideSpawnDelay; + int spawnTimer; + idList teamInfo; + botGameManagerType_t botGameManagerType; + idStaticList players; + int startTime; + int endTime; + int originalEndTime; + int endTimeoutDuration; + int preGameTime; + int roundEndTime; + challengeGameMode_t gameMode; + bool bGameFailed; + idStrId gameFailedText; + idGameChallenge::challengeFailed_t failedReason; + bool bFinishGameExit; + bool incapacitated; + int lastReviveThresholdTick; + bool mapLoadFinished; + int forceQuitGameTime; + idStaticList teams; + bool gcInitialized; + bool checkWorldCollisionOnSpawn; + idDoomSpawnManager *spawnManager; + idSpawnNodeGroup spawnNodeGroup; + bool wasMigratedGame; + int migratedTime; + idStaticList eventConnectList; + idStaticList eventDisconnectList; + int fadeInFinishTime; + float reviveThreshold; +}; + +// IDA Local Type ordinal 15546; PDB kind: struct. +struct idGameChallenge::playerData_t +{ + idEntityPtr player; + int respawnDelay; + unsigned int spawnHandle; + int lastScore; + int score; + int lives; + gameTeam_t team; + bool spectator; + int lastKiller; + challengePlayerState_t state; + int stateTime; + int startTime; + bool needToSendFullSnap; + int timeTillNewPlayerCanTake; + const idDeclVehicleUnlock *loadoutSlot[6]; +}; + +// IDA Local Type ordinal 15549; PDB kind: class. +class idTrigger_GameChallenge : public idTrigger +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15550. + virtual idTypeInfo *GetType(); + virtual ~idTrigger_GameChallenge(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 bool CanActivate(idEntity *); + +}; + +// IDA Local Type ordinal 15551; PDB kind: struct. +struct idGameChallenge::spawnPoint_t +{ + idEntityPtr entity; + int teamNumber; +}; + +// IDA Local Type ordinal 15560; PDB kind: struct. +struct idGameChallenge::teamData_t +{ + idStaticList playerIndexList; + int teamScore; +}; + +// IDA Local Type ordinal 19886; PDB kind: class. +class __declspec(align(8)) idGameChallenge_Coop : public idGameChallenge +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19892. + virtual idTypeInfo *GetType(); + virtual ~idGameChallenge_Coop(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 StartPreGame(); + virtual void BeginGame(); + virtual void EndGame(); + virtual void GameOver(); + virtual void StartRound(); + virtual void EndRound(); + virtual void FinishGame(); + virtual void SetPlayerState(idGameChallenge::playerData_t *, challengePlayerState_t, int); + virtual void ProcessPlayerStates(); + virtual bool Restart(); + virtual void RestartPlayer(idPlayer *); + virtual void SetSpectator(idGameChallenge::playerData_t *, bool); + virtual bool RegisterNewPlayer(idGameChallenge::playerData_t *, idPlayer *, bool); + virtual bool IsTeamGame(); + virtual bool AllowSpectators(); + virtual bool CanScore(); + virtual void ForceScoreboardAll(bool); + virtual bool HasPreGame(); + virtual int GetPreGameDuration(); + virtual void GameLoadingFinished(int); + virtual void SyncMigrationGameDataWithSession(bool); + virtual void SerializeMigrationGameData(idSerializer *); + virtual void SerializeMigrationUserData(idSerializer *, idGameChallenge::playerData_t *); + virtual gameTeam_t GetTeamNumber(const idGameChallenge::playerData_t *); + virtual void SetTeamRenderModel(idGameChallenge::playerData_t *); + virtual bool PlayerStateExpired(idGameChallenge::playerData_t *); + virtual void EnterState_PLAYER_STATE_VDM_SELECT_LOADOUT(idGameChallenge::playerData_t *); + virtual void EnterState_PLAYER_STATE_VDM_FORCE_SELECT_LOADOUT(idGameChallenge::playerData_t *); + virtual void EnterState_PLAYER_STATE_SPECTATE_AFTER_DEATH(idGameChallenge::playerData_t *); + virtual void EnterState_PLAYER_STATE_RESPAWNING(idGameChallenge::playerData_t *); + virtual void StateExpired_PLAYER_STATE_VDM_GAME_MODE_INFO(idGameChallenge::playerData_t *); + virtual void StateExpired_PLAYER_STATE_VDM_SELECT_LOADOUT(idGameChallenge::playerData_t *); + virtual void StateExpired_PLAYER_STATE_WAITING_TO_RESPAWN_FROM_DEATH(idGameChallenge::playerData_t *); + virtual void StateExpired_PLAYER_STATE_SPECTATE_AFTER_DEATH(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_NONE(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_VDM_SELECT_LOADOUT(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_VDM_FORCE_SELECT_LOADOUT(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_WAITING_TO_RESPAWN_FROM_DEATH(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_SPECTATE_AFTER_DEATH(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_RESPAWNING(idGameChallenge::playerData_t *); + virtual void RespawnPlayer(idGameChallenge::playerData_t *, idDoomSpawnManager::commandType_t); + virtual void FinalizeRespawnPlayer(idGameChallenge::playerData_t *, const idVec3 *, const idAngles *); + virtual void DebugAllSpawnPoints(); + virtual const idDeclMD6 *GetPlayerModelMD6(const idPlayer *); + virtual bool IsLeaderTied(); + virtual int GetLeaderPlayerIndex(); + virtual int GetLeaderEntityNumber(); + virtual int GetRunnerUpScore(); + virtual int GetHighScore(); + virtual bool ScoreLimitReached(); + virtual int GetPlayerScore(const idGameChallenge::playerData_t *); + virtual void GetScoringData(const idGameChallenge::playerData_t *, int *, int *, int *, int *); + virtual int GetTeamScore(gameTeam_t); + virtual int GetScoreLimit(); + virtual bool DidPlayerWin(int); + virtual void BroadcastKillMessage(int, int, const idDeclDamage *, bool, int, int); + virtual bool FriendlyFireEnabled(); + virtual bool PlayerReviveEnabled(); + virtual void OnTriggerTouched(idTrigger_GameChallenge *, idEntity *, int); + virtual int GetPrimaryScoreboardStat(int); + virtual int GetSecondaryScoreboardStat(int); + virtual void Notify_FlagCaptured(struct idProp_CTF_Flag *, idEntity *); + virtual void PostStatsToLeaderboard(); + virtual const leaderboardDefinition_t *GetLeaderboard(); + virtual int GetSecondaryLeaderboardStat(int); + virtual void LoadMultiplayerDecls(); + virtual int GetTeamScore_2(int); + + idList collectibleList; + int numCollectiblesToComplete; + idStrId collectibleStatusMessage; + idGameChallenge_Coop::collectibleData_t specialCollectible; + bool useUniqueSpawnpoints; + bool bObjectiveActive; + int objectiveStartTimeMS; + int totalTime; + int objectiveScore; + int objectiveParScore; + int objectiveParTimeMS; + idStrId objectiveText; + idList scoreRating; + const idDeclMD6 *coopModelDefPlayer1; + const idDeclMD6 *coopModelDefPlayer2; +}; + +// IDA Local Type ordinal 19888; PDB kind: struct. +struct idGameChallenge_Coop::collectibleData_t +{ + bool found; + idEntityPtr collectible; +}; + +// IDA Local Type ordinal 19890; PDB kind: struct. +struct idGameChallenge_Coop::ratingTitle_t +{ + int points; + idStrId rating; +}; + +// IDA Local Type ordinal 19895; PDB kind: class. +class idGameChallenge_PVP : public idGameChallenge +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19896. + virtual idTypeInfo *GetType(); + virtual ~idGameChallenge_PVP(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 StartPreGame(); + virtual void BeginGame(); + virtual void EndGame(); + virtual void GameOver(); + virtual void StartRound(); + virtual void EndRound(); + virtual void FinishGame(); + virtual void SetPlayerState(idGameChallenge::playerData_t *, challengePlayerState_t, int); + virtual void ProcessPlayerStates(); + virtual bool Restart(); + virtual void RestartPlayer(idPlayer *); + virtual void SetSpectator(idGameChallenge::playerData_t *, bool); + virtual bool RegisterNewPlayer(idGameChallenge::playerData_t *, idPlayer *, bool); + virtual bool IsTeamGame(); + virtual bool AllowSpectators(); + virtual bool CanScore(); + virtual void ForceScoreboardAll(bool); + virtual bool HasPreGame(); + virtual int GetPreGameDuration(); + virtual void GameLoadingFinished(int); + virtual void SyncMigrationGameDataWithSession(bool); + virtual void SerializeMigrationGameData(idSerializer *); + virtual void SerializeMigrationUserData(idSerializer *, idGameChallenge::playerData_t *); + virtual gameTeam_t GetTeamNumber(const idGameChallenge::playerData_t *); + virtual void SetTeamRenderModel(idGameChallenge::playerData_t *); + virtual bool PlayerStateExpired(idGameChallenge::playerData_t *); + virtual void EnterState_PLAYER_STATE_VDM_SELECT_LOADOUT(idGameChallenge::playerData_t *); + virtual void EnterState_PLAYER_STATE_VDM_FORCE_SELECT_LOADOUT(idGameChallenge::playerData_t *); + virtual void EnterState_PLAYER_STATE_SPECTATE_AFTER_DEATH(idGameChallenge::playerData_t *); + virtual void EnterState_PLAYER_STATE_RESPAWNING(idGameChallenge::playerData_t *); + virtual void StateExpired_PLAYER_STATE_VDM_GAME_MODE_INFO(idGameChallenge::playerData_t *); + virtual void StateExpired_PLAYER_STATE_VDM_SELECT_LOADOUT(idGameChallenge::playerData_t *); + virtual void StateExpired_PLAYER_STATE_WAITING_TO_RESPAWN_FROM_DEATH(idGameChallenge::playerData_t *); + virtual void StateExpired_PLAYER_STATE_SPECTATE_AFTER_DEATH(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_NONE(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_VDM_SELECT_LOADOUT(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_VDM_FORCE_SELECT_LOADOUT(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_WAITING_TO_RESPAWN_FROM_DEATH(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_SPECTATE_AFTER_DEATH(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_RESPAWNING(idGameChallenge::playerData_t *); + virtual void RespawnPlayer(idGameChallenge::playerData_t *, idDoomSpawnManager::commandType_t); + virtual void FinalizeRespawnPlayer(idGameChallenge::playerData_t *, const idVec3 *, const idAngles *); + virtual void DebugAllSpawnPoints(); + virtual const idDeclMD6 *GetPlayerModelMD6(const idPlayer *); + virtual bool IsLeaderTied(); + virtual int GetLeaderPlayerIndex(); + virtual int GetLeaderEntityNumber(); + virtual int GetRunnerUpScore(); + virtual int GetHighScore(); + virtual bool ScoreLimitReached(); + virtual int GetPlayerScore(const idGameChallenge::playerData_t *); + virtual void GetScoringData(const idGameChallenge::playerData_t *, int *, int *, int *, int *); + virtual int GetTeamScore(gameTeam_t); + virtual int GetScoreLimit(); + virtual bool DidPlayerWin(int); + virtual void BroadcastKillMessage(int, int, const idDeclDamage *, bool, int, int); + virtual bool FriendlyFireEnabled(); + virtual bool PlayerReviveEnabled(); + virtual void OnTriggerTouched(idTrigger_GameChallenge *, idEntity *, int); + virtual int GetPrimaryScoreboardStat(int); + virtual int GetSecondaryScoreboardStat(int); + virtual void Notify_FlagCaptured(struct idProp_CTF_Flag *, idEntity *); + virtual void PostStatsToLeaderboard(); + virtual const leaderboardDefinition_t *GetLeaderboard(); + virtual int GetSecondaryLeaderboardStat(int); + virtual void LoadMultiplayerDecls(); + virtual void ScorePlayerKill(int, int); + virtual void ScoreTeamKill(int, int); + + bool isTeamGame; + const idDeclMD6 *teamNoneModelDef; + const idDeclMD6 *teamRedModelDef; + const idDeclMD6 *teamBlueModelDef; + const idDeclMD6 *teamGreenModelDef; + const idDeclMD6 *teamYellowModelDef; +}; + +// IDA Local Type ordinal 19897; PDB kind: class. +class idGameChallenge::SyncPlayersWithLobbyUsers::__l2::idSWFScriptFunction_LeaveGame : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19898. + virtual ~idSWFScriptFunction_LeaveGame(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idEntityPtr gc; + gameDialogMessages_t msg; +}; + +// IDA Local Type ordinal 19899; PDB kind: class. +class idGameChallenge_DM : public idGameChallenge_PVP +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19900. + virtual idTypeInfo *GetType(); + virtual ~idGameChallenge_DM(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 StartPreGame(); + virtual void BeginGame(); + virtual void EndGame(); + virtual void GameOver(); + virtual void StartRound(); + virtual void EndRound(); + virtual void FinishGame(); + virtual void SetPlayerState(idGameChallenge::playerData_t *, challengePlayerState_t, int); + virtual void ProcessPlayerStates(); + virtual bool Restart(); + virtual void RestartPlayer(idPlayer *); + virtual void SetSpectator(idGameChallenge::playerData_t *, bool); + virtual bool RegisterNewPlayer(idGameChallenge::playerData_t *, idPlayer *, bool); + virtual bool IsTeamGame(); + virtual bool AllowSpectators(); + virtual bool CanScore(); + virtual void ForceScoreboardAll(bool); + virtual bool HasPreGame(); + virtual int GetPreGameDuration(); + virtual void GameLoadingFinished(int); + virtual void SyncMigrationGameDataWithSession(bool); + virtual void SerializeMigrationGameData(idSerializer *); + virtual void SerializeMigrationUserData(idSerializer *, idGameChallenge::playerData_t *); + virtual gameTeam_t GetTeamNumber(const idGameChallenge::playerData_t *); + virtual void SetTeamRenderModel(idGameChallenge::playerData_t *); + virtual bool PlayerStateExpired(idGameChallenge::playerData_t *); + virtual void EnterState_PLAYER_STATE_VDM_SELECT_LOADOUT(idGameChallenge::playerData_t *); + virtual void EnterState_PLAYER_STATE_VDM_FORCE_SELECT_LOADOUT(idGameChallenge::playerData_t *); + virtual void EnterState_PLAYER_STATE_SPECTATE_AFTER_DEATH(idGameChallenge::playerData_t *); + virtual void EnterState_PLAYER_STATE_RESPAWNING(idGameChallenge::playerData_t *); + virtual void StateExpired_PLAYER_STATE_VDM_GAME_MODE_INFO(idGameChallenge::playerData_t *); + virtual void StateExpired_PLAYER_STATE_VDM_SELECT_LOADOUT(idGameChallenge::playerData_t *); + virtual void StateExpired_PLAYER_STATE_WAITING_TO_RESPAWN_FROM_DEATH(idGameChallenge::playerData_t *); + virtual void StateExpired_PLAYER_STATE_SPECTATE_AFTER_DEATH(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_NONE(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_VDM_SELECT_LOADOUT(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_VDM_FORCE_SELECT_LOADOUT(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_WAITING_TO_RESPAWN_FROM_DEATH(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_SPECTATE_AFTER_DEATH(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_RESPAWNING(idGameChallenge::playerData_t *); + virtual void RespawnPlayer(idGameChallenge::playerData_t *, idDoomSpawnManager::commandType_t); + virtual void FinalizeRespawnPlayer(idGameChallenge::playerData_t *, const idVec3 *, const idAngles *); + virtual void DebugAllSpawnPoints(); + virtual const idDeclMD6 *GetPlayerModelMD6(const idPlayer *); + virtual bool IsLeaderTied(); + virtual int GetLeaderPlayerIndex(); + virtual int GetLeaderEntityNumber(); + virtual int GetRunnerUpScore(); + virtual int GetHighScore(); + virtual bool ScoreLimitReached(); + virtual int GetPlayerScore(const idGameChallenge::playerData_t *); + virtual void GetScoringData(const idGameChallenge::playerData_t *, int *, int *, int *, int *); + virtual int GetTeamScore(gameTeam_t); + virtual int GetScoreLimit(); + virtual bool DidPlayerWin(int); + virtual void BroadcastKillMessage(int, int, const idDeclDamage *, bool, int, int); + virtual bool FriendlyFireEnabled(); + virtual bool PlayerReviveEnabled(); + virtual void OnTriggerTouched(idTrigger_GameChallenge *, idEntity *, int); + virtual int GetPrimaryScoreboardStat(int); + virtual int GetSecondaryScoreboardStat(int); + virtual void Notify_FlagCaptured(struct idProp_CTF_Flag *, idEntity *); + virtual void PostStatsToLeaderboard(); + virtual const leaderboardDefinition_t *GetLeaderboard(); + virtual int GetSecondaryLeaderboardStat(int); + virtual void LoadMultiplayerDecls(); + virtual void ScorePlayerKill(int, int); + virtual void ScoreTeamKill(int, int); + +}; + +// IDA Local Type ordinal 19901; PDB kind: class. +class idGameChallenge_DM_FFA : public idGameChallenge_DM +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19902. + virtual idTypeInfo *GetType(); + virtual ~idGameChallenge_DM_FFA(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 StartPreGame(); + virtual void BeginGame(); + virtual void EndGame(); + virtual void GameOver(); + virtual void StartRound(); + virtual void EndRound(); + virtual void FinishGame(); + virtual void SetPlayerState(idGameChallenge::playerData_t *, challengePlayerState_t, int); + virtual void ProcessPlayerStates(); + virtual bool Restart(); + virtual void RestartPlayer(idPlayer *); + virtual void SetSpectator(idGameChallenge::playerData_t *, bool); + virtual bool RegisterNewPlayer(idGameChallenge::playerData_t *, idPlayer *, bool); + virtual bool IsTeamGame(); + virtual bool AllowSpectators(); + virtual bool CanScore(); + virtual void ForceScoreboardAll(bool); + virtual bool HasPreGame(); + virtual int GetPreGameDuration(); + virtual void GameLoadingFinished(int); + virtual void SyncMigrationGameDataWithSession(bool); + virtual void SerializeMigrationGameData(idSerializer *); + virtual void SerializeMigrationUserData(idSerializer *, idGameChallenge::playerData_t *); + virtual gameTeam_t GetTeamNumber(const idGameChallenge::playerData_t *); + virtual void SetTeamRenderModel(idGameChallenge::playerData_t *); + virtual bool PlayerStateExpired(idGameChallenge::playerData_t *); + virtual void EnterState_PLAYER_STATE_VDM_SELECT_LOADOUT(idGameChallenge::playerData_t *); + virtual void EnterState_PLAYER_STATE_VDM_FORCE_SELECT_LOADOUT(idGameChallenge::playerData_t *); + virtual void EnterState_PLAYER_STATE_SPECTATE_AFTER_DEATH(idGameChallenge::playerData_t *); + virtual void EnterState_PLAYER_STATE_RESPAWNING(idGameChallenge::playerData_t *); + virtual void StateExpired_PLAYER_STATE_VDM_GAME_MODE_INFO(idGameChallenge::playerData_t *); + virtual void StateExpired_PLAYER_STATE_VDM_SELECT_LOADOUT(idGameChallenge::playerData_t *); + virtual void StateExpired_PLAYER_STATE_WAITING_TO_RESPAWN_FROM_DEATH(idGameChallenge::playerData_t *); + virtual void StateExpired_PLAYER_STATE_SPECTATE_AFTER_DEATH(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_NONE(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_VDM_SELECT_LOADOUT(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_VDM_FORCE_SELECT_LOADOUT(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_WAITING_TO_RESPAWN_FROM_DEATH(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_SPECTATE_AFTER_DEATH(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_RESPAWNING(idGameChallenge::playerData_t *); + virtual void RespawnPlayer(idGameChallenge::playerData_t *, idDoomSpawnManager::commandType_t); + virtual void FinalizeRespawnPlayer(idGameChallenge::playerData_t *, const idVec3 *, const idAngles *); + virtual void DebugAllSpawnPoints(); + virtual const idDeclMD6 *GetPlayerModelMD6(const idPlayer *); + virtual bool IsLeaderTied(); + virtual int GetLeaderPlayerIndex(); + virtual int GetLeaderEntityNumber(); + virtual int GetRunnerUpScore(); + virtual int GetHighScore(); + virtual bool ScoreLimitReached(); + virtual int GetPlayerScore(const idGameChallenge::playerData_t *); + virtual void GetScoringData(const idGameChallenge::playerData_t *, int *, int *, int *, int *); + virtual int GetTeamScore(gameTeam_t); + virtual int GetScoreLimit(); + virtual bool DidPlayerWin(int); + virtual void BroadcastKillMessage(int, int, const idDeclDamage *, bool, int, int); + virtual bool FriendlyFireEnabled(); + virtual bool PlayerReviveEnabled(); + virtual void OnTriggerTouched(idTrigger_GameChallenge *, idEntity *, int); + virtual int GetPrimaryScoreboardStat(int); + virtual int GetSecondaryScoreboardStat(int); + virtual void Notify_FlagCaptured(struct idProp_CTF_Flag *, idEntity *); + virtual void PostStatsToLeaderboard(); + virtual const leaderboardDefinition_t *GetLeaderboard(); + virtual int GetSecondaryLeaderboardStat(int); + virtual void LoadMultiplayerDecls(); + virtual void ScorePlayerKill(int, int); + virtual void ScoreTeamKill(int, int); + +}; + +// IDA Local Type ordinal 19903; PDB kind: class. +class idGameChallenge_DM_TDM : public idGameChallenge_DM +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19904. + virtual idTypeInfo *GetType(); + virtual ~idGameChallenge_DM_TDM(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 StartPreGame(); + virtual void BeginGame(); + virtual void EndGame(); + virtual void GameOver(); + virtual void StartRound(); + virtual void EndRound(); + virtual void FinishGame(); + virtual void SetPlayerState(idGameChallenge::playerData_t *, challengePlayerState_t, int); + virtual void ProcessPlayerStates(); + virtual bool Restart(); + virtual void RestartPlayer(idPlayer *); + virtual void SetSpectator(idGameChallenge::playerData_t *, bool); + virtual bool RegisterNewPlayer(idGameChallenge::playerData_t *, idPlayer *, bool); + virtual bool IsTeamGame(); + virtual bool AllowSpectators(); + virtual bool CanScore(); + virtual void ForceScoreboardAll(bool); + virtual bool HasPreGame(); + virtual int GetPreGameDuration(); + virtual void GameLoadingFinished(int); + virtual void SyncMigrationGameDataWithSession(bool); + virtual void SerializeMigrationGameData(idSerializer *); + virtual void SerializeMigrationUserData(idSerializer *, idGameChallenge::playerData_t *); + virtual gameTeam_t GetTeamNumber(const idGameChallenge::playerData_t *); + virtual void SetTeamRenderModel(idGameChallenge::playerData_t *); + virtual bool PlayerStateExpired(idGameChallenge::playerData_t *); + virtual void EnterState_PLAYER_STATE_VDM_SELECT_LOADOUT(idGameChallenge::playerData_t *); + virtual void EnterState_PLAYER_STATE_VDM_FORCE_SELECT_LOADOUT(idGameChallenge::playerData_t *); + virtual void EnterState_PLAYER_STATE_SPECTATE_AFTER_DEATH(idGameChallenge::playerData_t *); + virtual void EnterState_PLAYER_STATE_RESPAWNING(idGameChallenge::playerData_t *); + virtual void StateExpired_PLAYER_STATE_VDM_GAME_MODE_INFO(idGameChallenge::playerData_t *); + virtual void StateExpired_PLAYER_STATE_VDM_SELECT_LOADOUT(idGameChallenge::playerData_t *); + virtual void StateExpired_PLAYER_STATE_WAITING_TO_RESPAWN_FROM_DEATH(idGameChallenge::playerData_t *); + virtual void StateExpired_PLAYER_STATE_SPECTATE_AFTER_DEATH(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_NONE(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_VDM_SELECT_LOADOUT(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_VDM_FORCE_SELECT_LOADOUT(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_WAITING_TO_RESPAWN_FROM_DEATH(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_SPECTATE_AFTER_DEATH(idGameChallenge::playerData_t *); + virtual void HandleState_PLAYER_STATE_RESPAWNING(idGameChallenge::playerData_t *); + virtual void RespawnPlayer(idGameChallenge::playerData_t *, idDoomSpawnManager::commandType_t); + virtual void FinalizeRespawnPlayer(idGameChallenge::playerData_t *, const idVec3 *, const idAngles *); + virtual void DebugAllSpawnPoints(); + virtual const idDeclMD6 *GetPlayerModelMD6(const idPlayer *); + virtual bool IsLeaderTied(); + virtual int GetLeaderPlayerIndex(); + virtual int GetLeaderEntityNumber(); + virtual int GetRunnerUpScore(); + virtual int GetHighScore(); + virtual bool ScoreLimitReached(); + virtual int GetPlayerScore(const idGameChallenge::playerData_t *); + virtual void GetScoringData(const idGameChallenge::playerData_t *, int *, int *, int *, int *); + virtual int GetTeamScore(gameTeam_t); + virtual int GetScoreLimit(); + virtual bool DidPlayerWin(int); + virtual void BroadcastKillMessage(int, int, const idDeclDamage *, bool, int, int); + virtual bool FriendlyFireEnabled(); + virtual bool PlayerReviveEnabled(); + virtual void OnTriggerTouched(idTrigger_GameChallenge *, idEntity *, int); + virtual int GetPrimaryScoreboardStat(int); + virtual int GetSecondaryScoreboardStat(int); + virtual void Notify_FlagCaptured(struct idProp_CTF_Flag *, idEntity *); + virtual void PostStatsToLeaderboard(); + virtual const leaderboardDefinition_t *GetLeaderboard(); + virtual int GetSecondaryLeaderboardStat(int); + virtual void LoadMultiplayerDecls(); + virtual void ScorePlayerKill(int, int); + virtual void ScoreTeamKill(int, int); + +}; diff --git a/source/tungsten/game/entities/info.h b/source/tungsten/game/entities/info.h new file mode 100644 index 0000000..02319b8 --- /dev/null +++ b/source/tungsten/game/entities/info.h @@ -0,0 +1,189 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\info.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17159; PDB kind: class. +class idInfo : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17160. + virtual idTypeInfo *GetType(); + virtual ~idInfo(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + +}; + +// IDA Local Type ordinal 25706; PDB kind: struct. +struct __declspec(align(8)) ioinfo +{ + int osfhnd; + char osfile; + char pipech; + int lockinitflag; + _RTL_CRITICAL_SECTION lock; + __int8 unicode : 1; + __int8 textmode : 7; + char pipech2[2]; + __int64 startpos; + int utf8translations; + char dbcsBuffer; + int dbcsBufferUsed; +}; diff --git a/source/tungsten/game/entities/lasergate.h b/source/tungsten/game/entities/lasergate.h new file mode 100644 index 0000000..889f4b3 --- /dev/null +++ b/source/tungsten/game/entities/lasergate.h @@ -0,0 +1,231 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\lasergate.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1887; PDB kind: enum. +enum laserGateState_t : __int32 +{ + LASERGATE_OPENING = 0x0, + LASERGATE_OPENED = 0x1, + LASERGATE_CLOSING = 0x2, + LASERGATE_CLOSED = 0x3, +}; + +// IDA Local Type ordinal 19801; PDB kind: class. +class idDeclLaserGate : public idDeclTypeInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19802. + virtual ~idDeclLaserGate(); + 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(); + + const idMaterial *laserBeamMtr; + float laserBeamHeight; + int timeBetweenPoweringUpBeams; + int beamPowerUpTime; + const idSoundShader *activationSound; + const idSoundShader *deactivationSound; + const idSoundShader *gatePassThroughSound; + const idDeclFX *fxDecl; +}; + +// IDA Local Type ordinal 19803; PDB kind: class. +class __declspec(align(2)) idLaserGate : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19804. + virtual idTypeInfo *GetType(); + virtual ~idLaserGate(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + idList laserEndPoints; + const idDeclLaserGate *laserGateInfo; + const idDeclFX *overrideFXDecl; + laserGateState_t gateState; + idBounds gateBounds; + bool startsOn; + bool moveable; + bool firstThink; +}; + +// IDA Local Type ordinal 20314; PDB kind: class. +class idLaserGateBeam +{ +public: + idLaserBeam beam; + idVec3 point1; + idVec3 point2; + laserGateState_t state; +}; diff --git a/source/tungsten/game/entities/ledge.h b/source/tungsten/game/entities/ledge.h new file mode 100644 index 0000000..fb9dd27 --- /dev/null +++ b/source/tungsten/game/entities/ledge.h @@ -0,0 +1,401 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\ledge.h +// Recovered logical types: 7 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1253; PDB kind: enum. +enum idLedge::ledgeEdgeType_t : __int32 +{ + EDGETYPE_NONE = 0x0, + EDGETYPE_LEFTEDGE = 0x1, + EDGETYPE_RIGHTEDGE = 0x2, + EDGETYPE_LEFTEDGE_HASTURN = 0x3, + EDGETYPE_RIGHTEDGE_HASTURN = 0x4, +}; + +// IDA Local Type ordinal 1254; PDB kind: enum. +enum idLedge::ledgeType_t : __int32 +{ + LEDGETYPE_CLOCKWISE = 0x0, + LEDGETYPE_ANTICLOCKWISE = 0x1, +}; + +// IDA Local Type ordinal 1255; PDB kind: enum. +enum idLedge::ledgeBitFlags_t : __int32 +{ + CONNECTED_NONE = 0x0, + CONNECTED_FIRST_90_INLEFT = 0x1, + CONNECTED_FIRST_90_OUTLEFT = 0x2, + CONNECTED_FIRST_90_INRIGHT = 0x4, + CONNECTED_FIRST_90_OUTRIGHT = 0x8, + CONNECTED_SECOND_90_INLEFT = 0x10, + CONNECTED_SECOND_90_OUTLEFT = 0x20, + CONNECTED_SECOND_90_INRIGHT = 0x40, + CONNECTED_SECOND_90_OUTRIGHT = 0x80, +}; + +// IDA Local Type ordinal 17961; PDB kind: class. +class idLedge::idLedgeBit +{ +public: + idVec3 firstPoint; + idVec3 secondPoint; + idVec3 direction; + idVec3 normal; + float length; + int flags; +}; + +// IDA Local Type ordinal 17963; PDB kind: class. +class __declspec(align(8)) idLedge : public idSplinePath +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34114. + virtual idTypeInfo *GetType(); + virtual ~idLedge(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + idList ledgeBits; + idLedge::ledgeType_t ledgeNormalHint; + float maxDeltaYaw; + float maxDeltaPitch; +}; + +// IDA Local Type ordinal 17966; PDB kind: class. +class idUseLedge : public idUse +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17967. + virtual idTypeInfo *GetType(); + virtual ~idUseLedge(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + idPlayer::idPlayerBehaviorContextualShimmyState_t mountType; + idEntityPtr targetPositionEntity; + idEntityPtr endPositionEntity; + idAnimAliasRef customLegsAnimation; + idAnimAliasRef customHandsAnimation; + idHandle customLegsAnimationHandle; + idHandle customHandsAnimationHandle; +}; + +// IDA Local Type ordinal 22817; PDB kind: struct. +struct silEdge_t +{ + float length; + int t1; + int t2; + unsigned __int16 v1; + unsigned __int16 v2; +}; diff --git a/source/tungsten/game/entities/light.h b/source/tungsten/game/entities/light.h new file mode 100644 index 0000000..937e168 --- /dev/null +++ b/source/tungsten/game/entities/light.h @@ -0,0 +1,232 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\light.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1115; PDB kind: enum. +enum alignH_t : __int32 +{ + ALIGNH_LEFT = 0x0, + ALIGNH_RIGHT = 0x1, + ALIGNH_CENTER = 0x2, + ALIGNH_CUSTOM = 0x3, +}; + +// IDA Local Type ordinal 19789; PDB kind: struct. +struct idLight::idSpotLight +{ + idVec3 lightTarget; + idVec3 lightRight; + idVec3 lightUp; + idVec3 lightStart; + idVec3 lightEnd; +}; + +// IDA Local Type ordinal 19790; PDB kind: struct. +struct __declspec(align(4)) idLight::idSoundInfo +{ + const idSoundShader *shader; + bool waitForTrigger; +}; + +// IDA Local Type ordinal 19791; PDB kind: class. +class __declspec(align(4)) idLight : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19792. + virtual idTypeInfo *GetType(); + virtual ~idLight(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + idColor lightColor; + idVec3 lightRadius; + idVec3 lightCenter; + idVec3 lightOffset; + idMat3 lightOrientation; + idLight::idSpotLight spotLight; + bool noShadows; + lightType_t lightType; + lightClass_t lightClass; + lightFallOff_t lightFalloff; + bool startOff; + const idMaterial *lightMaterial; + const idIESfile *lightIesFile; + float iesPowerScale; + float iesAreaScale; + const idDeclEnv *envEffectsDecl; + idLight::idSoundInfo soundInfo; + float dimShadowStretch; + float lightGenAreaScale; + idVec3 dynamicModelLightingScale; + bool slowLight; + float staticSpecularScale; + idVec3 staticSpecularVector; + bool additiveBlendLight; + bool bakedParallelShadows; + int slowMultiPass; + idRenderLight *renderLight; + idEntity *lightParent; + idColor fadeFrom; + idColor fadeTo; + idColor originalColor; + int fadeStart; + int fadeEnd; + bool soundWasPlaying; +}; diff --git a/source/tungsten/game/entities/miscalarm.h b/source/tungsten/game/entities/miscalarm.h new file mode 100644 index 0000000..a1dc96b --- /dev/null +++ b/source/tungsten/game/entities/miscalarm.h @@ -0,0 +1,191 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\miscalarm.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19713; PDB kind: class. +class idAlarm : public idDynamicEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19714. + virtual idTypeInfo *GetType(); + virtual ~idAlarm(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + idStrRenderModel breakModel; + const idSoundShader *alarmSound; + const idSoundShader *alarmBreakSound; + const idSoundShader *breakSound; + idColor colorInactive; + idColor colorActive; + idSimpleHealth alarmHealth; + const idDeclFX *fxDecl; + fxCondition_t fxConditionActivate; + fxCondition_t fxConditionBreak; + const idDeclImpactSound *impactSoundTable; + float pieceMinBounceVelocity; + idMat3 soundTransform; + bool alarmActive; + int brokenTime; + int brokenFrame; + idEffectPhysicsBreakable *breakablePhysics; + idRenderModel *brokenModel; + idPresentableBreakable *breakablePresentable; +}; diff --git a/source/tungsten/game/entities/modifiedplayermovement.h b/source/tungsten/game/entities/modifiedplayermovement.h new file mode 100644 index 0000000..18f3676 --- /dev/null +++ b/source/tungsten/game/entities/modifiedplayermovement.h @@ -0,0 +1,187 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\modifiedplayermovement.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19711; PDB kind: class. +class __declspec(align(8)) idModifiedPlayerMovement : public idAnimatedSimple +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19712. + virtual idTypeInfo *GetType(); + virtual ~idModifiedPlayerMovement(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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(); + + float strengthModifier; + float maxSpeedDiff; + float baseAngle; + bool useFixedDirection; + idEntityPtr playerEntity; +}; diff --git a/source/tungsten/game/entities/mover.h b/source/tungsten/game/entities/mover.h new file mode 100644 index 0000000..47bbc31 --- /dev/null +++ b/source/tungsten/game/entities/mover.h @@ -0,0 +1,657 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\mover.h +// Recovered logical types: 22 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1397; PDB kind: enum. +enum idNpMover::moverOrientMode_t : __int32 +{ + Orient_InDirection = 0x0, + Orient_ToPoint = 0x1, + Orient_InTravelDirection = 0x2, + Orient_StrictlyInTravelDirection = 0x3, +}; + +// IDA Local Type ordinal 1398; PDB kind: enum. +enum idNpMover::moveInDirFlags_t : __int32 +{ + MoveInDir_StopWhenBlocked = 0x1, + MoveInDir_PushableByConstraintSolver = 0x2, +}; + +// IDA Local Type ordinal 1859; PDB kind: enum. +enum moverDir_t : __int32 +{ + DIR_UP = 0xFFFFFFFF, + DIR_DOWN = 0xFFFFFFFE, + DIR_BACK = 0xFFFFFFFA, + DIR_REL_UP = 0xFFFFFFF9, + DIR_REL_DOWN = 0xFFFFFFF8, + DIR_REL_LEFT = 0xFFFFFFF7, + DIR_REL_RIGHT = 0xFFFFFFF6, + DIR_REL_FORWARD = 0xFFFFFFF5, + DIR_REL_BACK = 0xFFFFFFF4, +}; + +// IDA Local Type ordinal 1861; PDB kind: enum. +typedef idMoverMM::moveStage_t idMover::moveStage_t; + +// IDA Local Type ordinal 1862; PDB kind: enum. +typedef idMoverMM::moverCommand_t idMover::moverCommand_t; + +// IDA Local Type ordinal 1868; PDB kind: enum. +enum idMoverMM::moveStage_t : __int32 +{ + ACCELERATION_STAGE = 0x0, + LINEAR_STAGE = 0x1, + DECELERATION_STAGE = 0x2, + FINISHED_STAGE = 0x3, +}; + +// IDA Local Type ordinal 1869; PDB kind: enum. +enum idMoverMM::moverCommand_t : __int32 +{ + MOVER_NONE = 0x0, + MOVER_ROTATING = 0x1, + MOVER_MOVING = 0x2, + MOVER_SPLINE = 0x3, +}; + +// IDA Local Type ordinal 18232; PDB kind: struct. +struct __declspec(align(2)) idNpMover::idGotoParms +{ + idVec3 goalPos; + float stopDistAllowed; + float stopDistDesired; + idVec3 orientAtGoalDir; + bool orientAtGoalEnabled; + bool stopAtGoal; + bool pushThroughCrowd; +}; + +// IDA Local Type ordinal 18233; PDB kind: class. +class idNpMover +{ +public: + idNpMoverImpl *impl; +}; + +// IDA Local Type ordinal 18234; PDB kind: struct. +struct idNpMover::idFollowParms +{ + int formation; + float followDistance; + float arcSpread; +}; + +// IDA Local Type ordinal 18236; PDB kind: struct. +struct __declspec(align(4)) idNpMover::idProbeResults +{ + idVec3 endPos; + float distTotal; + float distFraction; + float distTravelled; + idNpAreaHandle endArea; + int collisionEdge; + bool collided; +}; + +// IDA Local Type ordinal 18239; PDB kind: struct. +struct idNpMover::idProbeInput +{ + navLayer_t layer; + navObstacleFlags_t obstacleMask; + navCustomFlags_t surfacesUsable; + int debugDrawTime; +}; + +// IDA Local Type ordinal 18240; PDB kind: struct. +struct __declspec(align(4)) idNpMover::idLinkUseParms +{ + navLinkFlags_t linkFlags; + idEntityPtr linkEntityStart; + idEntityPtr linkEntityEnd; + idVec3 startPos; + idVec3 startNormal; + idVec3 endPos; + idVec3 endNormal; + float mustUseDist; + float mayUseDist; + float jumpTimeRemaining; + unsigned __int8 : 6; + __int8 customLinkMode : 1; + __int8 isJumpLink : 1; +}; + +// IDA Local Type ordinal 18241; PDB kind: struct. +struct idNpMover::idTurnInPlaceInfo +{ + idVec3 finalDirection; + float degreesToTarget; + float turnTimeLeft; +}; + +// IDA Local Type ordinal 18812; PDB kind: class. +class idMover : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18816. + virtual idTypeInfo *GetType(); + virtual ~idMover(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 usableState_t GetOnlineUsableState(); + virtual void DoneMoving(); + virtual void DoneRotating(); + virtual void BeginMove(idThread *); + virtual void BeginRotation(idThread *, bool); + + idPhysics_Parametric physicsObj; + idMover::moveState_t move; + int soundFlags; + idMover::rotationState_t rot; + idHandle move_thread; + idHandle rotate_thread; + idAngles dest_angles; + idAngles angle_delta; + idVec3 dest_position; + idVec3 move_delta; + float move_speed; + int move_time; + int deceltime; + int acceltime; + bool resetPathOnCompletion; + bool stopRotation; + bool useSplineAngles; + idMover::moverCommand_t lastCommand; + int crunchSoundTime; + const idDeclDamage *crushDamage; + const idSoundShader *sndCrush; + float health; + bool solid; + bool noPush; + const idSoundShader *sndAccel; + const idSoundShader *sndDecel; + const idSoundShader *sndMove; + const idSoundShader *sndFoliage; + idEntityInfluenceTrail influence; + bool impaleEntity; + float impaleDepth; + idStr constraintName; + idEntityPtr impaledEntity; + bool needsReset; + int savedAFContents; + idVec3 lastOrigin; + float smoothMovement; + idVec3 averageModelOrigin; + idMat3 averageModelAxis; + highlightColor_t highlightColor; + idList,5> guiTargets; + idMover::navSpace_t navigationSpace; +}; + +// IDA Local Type ordinal 18813; PDB kind: struct. +struct idMover::moveState_t +{ + idMover::moveStage_t stage; + idMover::moveStage_t currentStage; + int acceleration; + int movetime; + int deceleration; + idVec3 dir; +}; + +// IDA Local Type ordinal 18814; PDB kind: struct. +struct idMover::rotationState_t +{ + idMover::moveStage_t stage; + idMover::moveStage_t currentStage; + int acceleration; + int movetime; + int deceleration; + idAngles rot; +}; + +// IDA Local Type ordinal 18815; PDB kind: struct. +struct idMover::navSpace_t +{ + navLayerMask_t navSpaceLayers; + idNavigationSpace navSpace; +}; + +// IDA Local Type ordinal 19684; PDB kind: class. +class __declspec(align(8)) idMoverMM : public idAnimatedEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19705. + virtual idTypeInfo *GetType(); + virtual ~idMoverMM(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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 Damage_2(idEntity *, idEntity *, const idDeclDamage *, const float, const idVec3 *, const trace_t *); + virtual bool IsUsable(const idEntity *); + virtual void SpawnModifierEntity(const splineMoverModifier_t *, idPhysics_ParametricMM *); + virtual void DoneMoving(); + virtual void DoneRotating(); + virtual void BeginMove(); + virtual void BeginRotation(bool); + virtual bool TravelSpline(idEntity *, float, bool, bool); + virtual void ReverseDirection(); + virtual void SetSplineOffset(idVec3, float); + virtual void SetSplineOffsetScale(idVec3, float); + virtual bool StartSpline(idEntity *, bool, float); + virtual bool StartSplineExplicit(idCurve_Spline *, bool, float); + virtual bool HandleInitialModifiers(const idList *); + virtual void UpdateMoverModifier(idPhysics_ParametricMM *, int *, moverModifierFunction_t, float, bool); + virtual void HandleMoverModifier(const splineMoverModifier_t *, idPhysics_ParametricMM *, moverModifierFunction_t, float, float, float, bool); + virtual void HandleNextMoverModifier_Speed(idPhysics_ParametricMM *, float, float); + virtual void HandleNextMoverModifier_Orientation(idPhysics_ParametricMM *, float, float); + virtual void HandleNextMoverModifier_Offset(idPhysics_ParametricMM *, float, float); + virtual void HandleNextMoverModifier_BlendToAnimSpeed(idPhysics_ParametricMM *, float, float); + virtual void HandleMoverModifier_Sound(const splineMoverModifier_t *, idPhysics_ParametricMM *, float, float); + virtual void HandleMoverModifier_Script(const splineMoverModifier_t *, idPhysics_ParametricMM *, float, float); + virtual void HandleMoverModifier_Pause(const splineMoverModifier_t *, idPhysics_ParametricMM *, float, float); + virtual void HandleMoverModifier_Spline(const splineMoverModifier_t *, idPhysics_ParametricMM *, float, float); + virtual void HandleMoverModifier_Target(const splineMoverModifier_t *, idPhysics_ParametricMM *, float, float); + virtual void HandleMoverModifier_Reverse(const splineMoverModifier_t *, idPhysics_ParametricMM *, float, float); + virtual void HandleMoverModifier_Oscillation(const splineMoverModifier_t *, idPhysics_ParametricMM *, float, float); + virtual void HandleMoverModifier_SpawnEntity(const splineMoverModifier_t *, idPhysics_ParametricMM *, float, float); + virtual void HandleMoverModifier_Anim(const splineMoverModifier_t *, idPhysics_ParametricMM *, float, float); + virtual void HandleMoverModifier_Vehicle(const splineMoverModifier_t *, idPhysics_ParametricMM *, float, float); + virtual void HandleMoverModifier_Ai(const splineMoverModifier_t *, idPhysics_ParametricMM *, float, float); + virtual void HandleMoverModifier_RailEvent(const splineMoverModifier_t *, idPhysics_ParametricMM *, float, float); + virtual void HandleMoverModifier_MeleeEvent(const splineMoverModifier_t *, idPhysics_ParametricMM *, float, float); + virtual void HandleMoverModifier_SwarmEvent(const splineMoverModifier_t *, idPhysics_ParametricMM *, float, float); + + idPhysics_ParametricMM physicsObj; + idMoverMM::moveState_t move; + moverModifierFunction_t modifierIgnoreFlags; + int soundFlags; + contentsFlags_t contentsFlags; + bool forwardSpline; + float move_speed; + int move_time; + int deceltime; + int acceltime; + float initialSpeed; + idAngles dest_angles; + idQuat dest_quat; + idVec3 dest_position; + idCurve_Spline *spline; + idSplinePathMM *splinePath; + const idList *splineMoverModifiers; + int splineModifierIndex; + float splineModifierLengthOffset; + float splineTotalLength; + bool useSplineAngles; + bool ignoreSplinePitch; + idVec3 move_delta; + bool stopRotation; + idMoverMM::moverCommand_t lastCommand; + bool skipInitialForcedModifiers; + bool applyAnimationOffsetOnNextFrame; + idMat3 animationOffsetAxis; + idVec3 animationOffsetTranslation; + float health; + idMoverMM::rotationState_t rot; + int crunchSoundTime; + const idDeclDamage *crushDamage; + const idSoundShader *sndCrush; + bool noPush; + const idSoundShader *sndAccel; + const idSoundShader *sndDecel; + const idSoundShader *sndMove; + idList sndVolumeInterpolaters; + idList sndPitchInterpolaters; + idList,5> guiTargets; +}; + +// IDA Local Type ordinal 19695; PDB kind: struct. +struct idMoverMM::moveState_t +{ + idMoverMM::moveStage_t stage; + int acceleration; + int movetime; + int deceleration; + idVec3 dir; + idVec3 endPos; + idAngles endAngles; +}; + +// IDA Local Type ordinal 19702; PDB kind: struct. +struct idMoverMM::rotationState_t +{ + idMoverMM::moveStage_t stage; + int acceleration; + int movetime; + int deceleration; + idVec3 vec; + float speed; +}; + +// IDA Local Type ordinal 19703; PDB kind: struct. +struct idMoverMM::moverSoundInterpolater_t +{ + idEntityPtr targetEmitter; + soundChannel_t channel; + idInterpolate interpolater; +}; diff --git a/source/tungsten/game/entities/multiplayertrigger.h b/source/tungsten/game/entities/multiplayertrigger.h new file mode 100644 index 0000000..2a2d350 --- /dev/null +++ b/source/tungsten/game/entities/multiplayertrigger.h @@ -0,0 +1,358 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\multiplayertrigger.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15440; PDB kind: class. +class idMultiplayerTriggerStrategy : public idClass +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15441. + virtual idTypeInfo *GetType(); + virtual ~idMultiplayerTriggerStrategy(); + virtual void Touch(idPresentableMultiplayerTrigger *, idPresentable *); + virtual void Think(idPresentableMultiplayerTrigger *); + virtual void Serialize(idSerializer *); + virtual mpTriggerType_t GetTriggerType(); + +}; + +// IDA Local Type ordinal 19623; PDB kind: class. +class idMultiplayerTrigger : public idTrigger +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19624. + virtual idTypeInfo *GetType(); + virtual ~idMultiplayerTrigger(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 bool CanActivate(idEntity *); + +}; + +// IDA Local Type ordinal 19627; PDB kind: class. +class __declspec(align(8)) idMultiplayerTrigger_BoostPad : public idMultiplayerTrigger +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19628. + virtual idTypeInfo *GetType(); + virtual ~idMultiplayerTrigger_BoostPad(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 bool CanActivate(idEntity *); + + const idDeclFX *fxDecl; + idEntityPtr fxInfo; + float acceleration; + int time; + idMultiplayerTriggerStrategy_BoostPad *strategy; +}; diff --git a/source/tungsten/game/entities/panzerhund.h b/source/tungsten/game/entities/panzerhund.h new file mode 100644 index 0000000..b63806d --- /dev/null +++ b/source/tungsten/game/entities/panzerhund.h @@ -0,0 +1,182 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\panzerhund.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19621; PDB kind: class. +class idPanzerHund : public idAnimated_AnimWeb +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19622. + virtual idTypeInfo *GetType(); + virtual ~idPanzerHund(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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(); + +}; diff --git a/source/tungsten/game/entities/pieceemitter.h b/source/tungsten/game/entities/pieceemitter.h new file mode 100644 index 0000000..5879e1c --- /dev/null +++ b/source/tungsten/game/entities/pieceemitter.h @@ -0,0 +1,182 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\pieceemitter.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15274; PDB kind: class. +class __declspec(align(8)) idPieceEmitter : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15275. + virtual idTypeInfo *GetType(); + virtual ~idPieceEmitter(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + const idDeclImpactSound *impactSoundTable; + int pieceLifeSpan; + float pieceAngularVelocity; + float pieceFriction; + float pieceMinBounceVelocity; + float pieceCollisionAgeDecay; + float pieceCollisionVolumeDecay; + idEffectPhysicsPieceEmitter piecePhysics; + float emitFovScale; + float emitModelDepthHack; +}; diff --git a/source/tungsten/game/entities/playercontrolled.h b/source/tungsten/game/entities/playercontrolled.h new file mode 100644 index 0000000..64dcea1 --- /dev/null +++ b/source/tungsten/game/entities/playercontrolled.h @@ -0,0 +1,270 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\playercontrolled.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1856; PDB kind: enum. +enum idPlayerControlled::moveMode_t : __int32 +{ + MOVEMODE_FREE = 0x0, + MOVEMODE_ANIMATEDTRANSITION = 0x1, + MOVEMODE_PICKEDUP = 0x2, + MOVEMODE_KILLING = 0x3, +}; + +// IDA Local Type ordinal 19605; PDB kind: struct. +struct __declspec(align(4)) idPlayerControlled::weapon_t +{ + const idDeclWeapon *weaponDecl; + idStr muzzleTagName; + idStr secondarymuzzleTagName; + idWeapon *weapon; + int weaponTagIndexPrimary; + int weaponTagIndexSecondary; + bool inSecondaryMode; +}; + +// IDA Local Type ordinal 19606; PDB kind: struct. +struct __declspec(align(4)) idPlayerControlled::specialAttack_t +{ + idHandle attackAnim; + idHandle attackMH; + idHandle killAnim; + idStr attachJoint; + idAnimAliasRef responseAnim; + idAnimAliasRef responseAnimMH; + idAnimAliasRef responseKillAnim; + const idDeclMD6 *responseDecl; + int blendMS; + idHandle responseHandle; + idHandle responseHandleMH; + idHandle responseKillAnimHandle; + idIndex attachJointIndex; + idVec3 attachOffset; + idMat3 attachAxis; + bool initialized; +}; + +// IDA Local Type ordinal 19608; PDB kind: class. +class __declspec(align(4)) idPlayerControlled : public idAnimatedEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19609. + virtual idTypeInfo *GetType(); + virtual ~idPlayerControlled(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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(); + + idStr cameraTagName; + float mass; + float damageScale; + float speed; + idPlayerControlled::weapon_t primaryWeapon; + idPlayerControlled::weapon_t secondaryWeapon; + idMeleeTrace::meleeBounds_t meleeTraceBoundsType; + idMeleeTrace::meleeDamage_t meleeTraceDamageType; + idHandle animMovement; + idList,5> animAttacks; + idList specialAttacks; + idHandle handsAnimMH; + idStr pitchJoint; + const idMD6Anim *movementAnim; + idFaction *currentFaction; + idPhysics_Player physicsObj; + idMeleeTrace meleeTrace; + idAnimator_Proxy movementAnimator; + idMD6LeafPause movementLeaf; + idAnimator_Channel leftArmAnimator; + idAnimator_Channel specialAnimator; + idAnimator_Channel targetAnimator; + idVec3 viewOrigin; + idMat3 viewAxis; + idAngles viewAngles; + idVec3 specialAttackStartPos; + idQuat specialAttackStartRotation; + idVec3 aiAttackStartPos; + idQuat aiAttackStartRotation; + idVec3 specialAttackTargetPos; + idQuat specialAttackTargetRotation; + idVec3 aiAttackTargetPos; + idQuat aiAttackTargetRotation; + float specialAttackStartPitch; + float movementAnimFrame; + idEntityPtr specialAttackTarget; + int specialAttackIndex; + int specialAttackStartTime; + int infoPropIndex; + int cameraTagIndex; + int animStartFrame; + int animUpdatedFrame; + idIndex pitchJointIndex; + idPlayerControlled::moveMode_t curMoveMode; + idPlayer *playerUser; + bool specialAttackHasBoundAI; +}; diff --git a/source/tungsten/game/entities/progressionentity.h b/source/tungsten/game/entities/progressionentity.h new file mode 100644 index 0000000..5e57842 --- /dev/null +++ b/source/tungsten/game/entities/progressionentity.h @@ -0,0 +1,197 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\progressionentity.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19600; PDB kind: class. +class idProgressionEntity::idProgressionParms +{ +public: + float timeAtState; + bool changeStateInView; + bool incrementsOnOwnerTrigger; + bool incrementsOnMapLoad; + idList entityDefs; + idList,5> entities; + idList,5> triggers; +}; + +// IDA Local Type ordinal 19603; PDB kind: class. +class idProgressionEntity : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19604. + virtual idTypeInfo *GetType(); + virtual ~idProgressionEntity(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + idList progressionParms; + int defaultState; + bool changeStateWithinMap; + bool forcePrespawnAll; + bool wrappable; + bool reusable; + bool initiallyHideEntities; + idList,5> spawnedEntities; + bool preSpawnAll; + bool waitUntilNextMapLoad; + int spawnedState; + idEntityRetainedState *retainedState; +}; diff --git a/source/tungsten/game/entities/prop.h b/source/tungsten/game/entities/prop.h new file mode 100644 index 0000000..4f60e8d --- /dev/null +++ b/source/tungsten/game/entities/prop.h @@ -0,0 +1,185 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\prop.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15878; PDB kind: class. +class idProp : public idAnimatedEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15879. + virtual idTypeInfo *GetType(); + virtual ~idProp(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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(); + +}; + +// IDA Local Type ordinal 31641; PDB kind: typedef. +typedef unsigned int PROPID; diff --git a/source/tungsten/game/entities/racespectator.h b/source/tungsten/game/entities/racespectator.h new file mode 100644 index 0000000..0721197 --- /dev/null +++ b/source/tungsten/game/entities/racespectator.h @@ -0,0 +1,196 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\racespectator.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19528; PDB kind: struct. +struct idRaceSpectator::spectatorAttachment_t +{ + const idDeclInventory *inventoryItem; + idStr tagName; +}; + +// IDA Local Type ordinal 19531; PDB kind: class. +class __declspec(align(8)) idRaceSpectator : public idAnimatedEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19532. + virtual idTypeInfo *GetType(); + virtual ~idRaceSpectator(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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(); + + const idDeclAnimWeb *animWeb; + idAnimWebPath idleAnim; + idAnimWebPath triggerAnim; + bool alwaysUpdate; + idAttachmentCollection attachments; + idAnimWebSpectator animWebAnimator; + idStaticList attachedItems; +}; diff --git a/source/tungsten/game/entities/robot.h b/source/tungsten/game/entities/robot.h new file mode 100644 index 0000000..15e4930 --- /dev/null +++ b/source/tungsten/game/entities/robot.h @@ -0,0 +1,215 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\robot.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19517; PDB kind: class. +class __declspec(align(8)) idRobot : public idAnimatedEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19518. + virtual idTypeInfo *GetType(); + virtual ~idRobot(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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(); + + idStrClipModel traceModel; + idStrRenderModel lowerBodyModel; + idStrRenderModel upperBodyModel; + idList cockpitSeatInfo; + controlSettings_t pilotSettings; + const idDeclWeapon *primaryWeaponDecl; + const idDeclWeapon *secondaryWeaponDecl; + idVec3 primaryMuzzleOffset; + idVec3 secondaryMuzzleOffset; + float maxHealth; + float startHealth; + idWeapon *primaryWeapon; + idWeapon *secondaryWeapon; + float currentSpeed; + float currentTurnSpeed; + idPhysics_RigidBody physicsObjectRB; + idPhysics_AF physicsObjectAF; + idList cockpitSeatState; + idAngles fpsLastViewAngles; + idAngles fpsCurrViewAngles; + int fpsLastUpdate; + idMat3 upperAxis; + idMat3 lowerAxis; + idVec3 lowerOrigin; + idVec3 currentViewPos; + idMat3 currentViewAxis; + int primaryFireTime; + int secondaryFireTime; + float health; + idList,5> enterTargets; + idList,5> exitTargets; + idList,5> secondaryFireTargets; + idList,5> primaryFireTargets; +}; diff --git a/source/tungsten/game/entities/savegame.h b/source/tungsten/game/entities/savegame.h new file mode 100644 index 0000000..bdc79a7 --- /dev/null +++ b/source/tungsten/game/entities/savegame.h @@ -0,0 +1,106 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\savegame.h +// Recovered logical types: 7 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 963; PDB kind: enum. +enum saveGameType_t : __int32 +{ + SAVEGAMEFILE_NONE = 0x0, + SAVEGAMEFILE_TEXT = 0x1, + SAVEGAMEFILE_BINARY = 0x2, + SAVEGAMEFILE_COMPRESSED = 0x4, + SAVEGAMEFILE_PIPELINED = 0x8, + SAVEGAMEFILE_THUMB = 0x10, + SAVEGAMEFILE_BKGRND_IMAGE = 0x20, + SAVEGAMEFILE_AUTO_DELETE = 0x40, + SAVEGAMEFILE_OPTIONAL = 0x80, +}; + +// IDA Local Type ordinal 1526; PDB kind: enum. +enum saveGameError_t : __int32 +{ + SAVEGAME_E_NONE = 0x0, + SAVEGAME_E_CANCELLED = 0x1, + SAVEGAME_E_INSUFFICIENT_ROOM = 0x2, + SAVEGAME_E_CORRUPTED = 0x4, + SAVEGAME_E_UNABLE_TO_SELECT_STORAGE_DEVICE = 0x8, + SAVEGAME_E_UNKNOWN = 0x10, + SAVEGAME_E_INVALID_FILENAME = 0x20, + SAVEGAME_E_STEAM_ERROR = 0x40, + SAVEGAME_E_FOLDER_NOT_FOUND = 0x80, + SAVEGAME_E_FILE_NOT_FOUND = 0x100, + SAVEGAME_E_DLC_NOT_FOUND = 0x200, + SAVEGAME_E_INVALID_USER = 0x400, + SAVEGAME_E_PROFILE_TOO_BIG = 0x800, + SAVEGAME_E_DISC_SWAP = 0x1000, + SAVEGAME_E_INCOMPATIBLE_NEWER_VERSION = 0x2000, + SAVEGAME_E_BITS_USED = 0xE, + SAVEGAME_E_NUM = 0xF, +}; + +// IDA Local Type ordinal 2528; PDB kind: enum. +enum idSaveGameManager::packageType_t : __int32 +{ + PACKAGE_PROFILE = 0x0, + PACKAGE_GAME = 0x1, + PACKAGE_RAW = 0x2, + PACKAGE_NUM = 0x3, +}; + +// IDA Local Type ordinal 17404; PDB kind: class. +class __declspec(align(4)) idSaveGameThread : public idSysThread +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17405. + virtual ~idSaveGameThread(); + virtual int Run(); + + saveGameThreadArgs_t data; + volatile bool cancel; +}; + +// IDA Local Type ordinal 17406; PDB kind: class. +class __declspec(align(8)) idSaveGameManager +{ +public: + idSaveGameProcessor *processor; + idStaticList processorQueue; + bool cancel; + idSaveGameThread saveThread; + int delayStart; + int startTime; + bool continueProcessing; + int submittedProcessorHandle; + int executingProcessorHandle; + int lastExecutedProcessorHandle; + idStaticList enumeratedSaveGames; + bool storageAvailable; +}; + +// IDA Local Type ordinal 21721; PDB kind: struct. +struct saveGameCheck_t +{ + bool exists; + bool autosaveExists; + const char *autosaveFolder; +}; + +// IDA Local Type ordinal 22666; PDB kind: class. +class idSaveGameManager::Pump::__l47::idSWFScriptFunction_TryAgain : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22667. + virtual ~idSWFScriptFunction_TryAgain(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idSaveGameManager *manager; + idSaveGameProcessor *processor; +}; diff --git a/source/tungsten/game/entities/scenepoint.h b/source/tungsten/game/entities/scenepoint.h new file mode 100644 index 0000000..49acb49 --- /dev/null +++ b/source/tungsten/game/entities/scenepoint.h @@ -0,0 +1,1073 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\scenepoint.h +// Recovered logical types: 11 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1643; PDB kind: enum. +enum __bitmask scenePointType_t : __int32 +{ + ROAM = 0x1, + LOOK = 0x2, +}; + +// IDA Local Type ordinal 2423; PDB kind: enum. +enum scenePointFlags_t : __int32 +{ + SP_NONE = 0x0, + SP_LOW_PRIO = 0x1, +}; + +// IDA Local Type ordinal 17229; PDB kind: class. +class __declspec(align(8)) idScenePoint : public idInfo +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17231. + virtual idTypeInfo *GetType(); + virtual ~idScenePoint(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 bool IsInArc(const idAIPos *); + virtual bool IsInArc_2(const idVec3 *); + + idEntityPtr userGroup; + float duration; + float radius; + scenePointScriptFlags_t scriptFlags; + scenePointType_t type; + const idAI2 *currentUser; + int requestTime; + idList relatedScenePoints; +}; + +// IDA Local Type ordinal 19493; PDB kind: class. +class __declspec(align(8)) idScenePoint_Arc : public idScenePoint +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19494. + virtual idTypeInfo *GetType(); + virtual ~idScenePoint_Arc(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 bool IsInArc(const idAIPos *); + virtual bool IsInArc_2(const idVec3 *); + + idVec3 arcDir; + float arcCosAngle; + float minRange; + float maxRange; + float arcAngle; + float arcOffset; + float maxAbove; + float maxBelow; + idEntityPtr arcVolume; +}; + +// IDA Local Type ordinal 19495; PDB kind: struct. +struct idScenePoint_Combat::scenePointCustomSet_t +{ + idAnimWebPath customCoverSet; + idAnimWebPath hurtAnim; + idAnimWebPath deathAnim; +}; + +// IDA Local Type ordinal 19496; PDB kind: struct. +struct idScenePoint_Combat::scenePointEnterAnim_t +{ + bool forced; + idAnimWebPath enterAnim; +}; + +// IDA Local Type ordinal 19497; PDB kind: struct. +struct idScenePoint_Combat::scenePointExitAnim_t +{ + idAnimWebPath exitAnim_Timeout; + idAnimWebPath exitAnim_SectorNear; + idAnimWebPath exitAnim_SectorLeft; + idAnimWebPath exitAnim_SectorRight; + idAnimWebPath exitAnim_SectorFar; +}; + +// IDA Local Type ordinal 19498; PDB kind: class. +class __declspec(align(8)) idScenePoint_Combat : public idScenePoint_Arc +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19499. + virtual idTypeInfo *GetType(); + virtual ~idScenePoint_Combat(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 bool IsInArc(const idAIPos *); + virtual bool IsInArc_2(const idVec3 *); + + idProp_WeaponStatic *scenePointTurret; + scenePointTacFlags_t tacFlags; + idScenePoint_Combat::scenePointCustomSet_t customSet; + idScenePoint_Combat::scenePointEnterAnim_t enterAnimSet; + idScenePoint_Combat::scenePointExitAnim_t exitAnimSet; +}; + +// IDA Local Type ordinal 19500; PDB kind: class. +class __declspec(align(8)) idScenePoint_Search : public idScenePoint_Arc +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19501. + virtual idTypeInfo *GetType(); + virtual ~idScenePoint_Search(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 bool IsInArc(const idAIPos *); + virtual bool IsInArc_2(const idVec3 *); + + scenePointSearchFlags_t searchFlags; +}; + +// IDA Local Type ordinal 19502; PDB kind: class. +class __declspec(align(8)) idScenePoint_Look : public idScenePoint_Arc +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19503. + virtual idTypeInfo *GetType(); + virtual ~idScenePoint_Look(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 bool IsInArc(const idAIPos *); + virtual bool IsInArc_2(const idVec3 *); + + scenePointLookFlags_t lookFlags; +}; + +// IDA Local Type ordinal 19504; PDB kind: class. +class idScenePoint_Roam : public idScenePoint +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19505. + virtual idTypeInfo *GetType(); + virtual ~idScenePoint_Roam(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 bool IsInArc(const idAIPos *); + virtual bool IsInArc_2(const idVec3 *); + + idAnimWebPath scenePointAnimation; +}; diff --git a/source/tungsten/game/entities/scriptmapentity.h b/source/tungsten/game/entities/scriptmapentity.h new file mode 100644 index 0000000..24a3089 --- /dev/null +++ b/source/tungsten/game/entities/scriptmapentity.h @@ -0,0 +1,174 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\scriptmapentity.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19491; PDB kind: class. +class idScriptMapEntity : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19492. + virtual idTypeInfo *GetType(); + virtual ~idScriptMapEntity(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + bool startActive; + idStateThread *stateThread; +}; diff --git a/source/tungsten/game/entities/sound.h b/source/tungsten/game/entities/sound.h new file mode 100644 index 0000000..7dcd673 --- /dev/null +++ b/source/tungsten/game/entities/sound.h @@ -0,0 +1,208 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\sound.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 12096; PDB kind: class. +class CXuiSound : public CXuiElement +{ +public: +}; + +// IDA Local Type ordinal 13495; PDB kind: class. +class idStrSound : public idAtomicString +{ +public: +}; + +// IDA Local Type ordinal 19477; PDB kind: class. +class __declspec(align(8)) idSound : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19478. + virtual idTypeInfo *GetType(); + virtual ~idSound(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 ModifyVolume(float, bool); + + const idSoundShader *soundShader; + const idDeclVoiceOver *voiceOver; + idStrId voiceOverTalkerName; + soundShaderParms_t parms; + float random; + float wait; + bool waitForTrigger; + idBounds bounds; + idVec3 offset; + bool timerOn; +}; + +// IDA Local Type ordinal 22702; PDB kind: struct. +struct soundLog_t +{ + int totalEmitterChannels; + int totalHardwareChannels; + int activeEmitterChannels; + int activeHardwareChannels; + float maxDB; + float minDB; + int activeBuffers; + int freeBuffers; +}; diff --git a/source/tungsten/game/entities/spawnablepropmanager.h b/source/tungsten/game/entities/spawnablepropmanager.h new file mode 100644 index 0000000..f9dc933 --- /dev/null +++ b/source/tungsten/game/entities/spawnablepropmanager.h @@ -0,0 +1,21 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\spawnablepropmanager.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16494; PDB kind: struct. +struct idSpawnablePropManager::spawnables_t +{ + idStaticList entity; + int next; +}; + +// IDA Local Type ordinal 16497; PDB kind: class. +class idSpawnablePropManager +{ +public: + idStaticList spawnable; +}; diff --git a/source/tungsten/game/entities/splinefollower.h b/source/tungsten/game/entities/splinefollower.h new file mode 100644 index 0000000..2ea4af0 --- /dev/null +++ b/source/tungsten/game/entities/splinefollower.h @@ -0,0 +1,268 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\splinefollower.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1818; PDB kind: enum. +enum idSplineFollower::splineFollowerPhase_t : __int32 +{ + SFP_HIDDEN = 0x0, + SFP_STARTING = 0x1, + SFP_MOVING = 0x2, + SFP_STARTED_POP = 0x3, + SFP_FALLING = 0x4, + SFP_PLAYED_WARNING_SOUND = 0x5, + SFP_STARTED_EXPLOSION = 0x6, + SFP_DONE = 0x7, + SFP_COUNT = 0x8, +}; + +// IDA Local Type ordinal 19475; PDB kind: class. +class idSplineFollower : public idAnimatedEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19476. + virtual idTypeInfo *GetType(); + virtual ~idSplineFollower(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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 usableState_t GetOnlineUsableState(); + + idPhysics_RigidBody physicsObj; + float startupSetAngleOverride; + float moveSpeed; + float moveSpeedVariancePercent; + float minMoveSpeed; + float maxMoveSpeed; + float currentMoveSpeed; + float health; + int popJointHits; + bool solid; + idVec3 lastOrigin; + highlightColor_t highlightColor; + const idDeclAiEvent *attachedEventDecl; + float maxWindSpeed; + float maxHorizontalSplineDistance; + float maxVerticalSplineDistance; + float maxSpinSpeed; + float deltaRotationSpeed; + float rotationFriction; + float bottomWeightPercent; + float windRotationAmount; + const idDeclParticle *balloonPopParticle[2]; + const idDeclParticle *smokeParticles[2]; + const idDeclParticle *sparkParticle[2]; + bool explodeAtEndOfSplineFlag; + float minDetonationHeight; + float maxDetonationHeight; + float detonationPlayerDistance; + float immediateDetonationPlayerDistance; + float drawnToPlayerSpeed; + float drawnToPlayerDistance; + float drawnToPlayerByBottomPercent; + int minPopJoint; + int maxPopJoint; + int hidePopMesh; + int numPopTags; + int delayToHidePopMesh; + int delayToExplodeAfterPop; + idCurve_Spline *spline; + float splineDistance; + idVec3 lastSplinePosition; + float lastDeltaSplineDistance; + const idSoundShader *preExplosionSound; + int preExplosionTime; + const idSoundShader *explosionSound; + fxCondition_t preExplosionFxCondition; + fxCondition_t explosionFxCondition; + int delayToHideEntity; + int delayToRemoveEntity; + const idDeclDamage *damageDecl; + int bendJointMin; + int bendJointMax; + float blendDownAxisScaler; + idQuat averageDown; + idSplineFollower::splineFollowerPhase_t phaseOn; + int nextPhaseTime; + idVec3 driftLocation; + idVec3 driftSpeed; + float actualMaxWindSpeed; + idVec3 windDirection; + idVec3 lastMovement; + idQuat rotation; + float spinAmount; + float bottomSpinAmount; + float spinSpeed; + float bottomSpinSpeed; + idQuat facing; + float actualDetonationHeight; + idHandle eventHandle; + int nextSmokeTime; + int nextSparkTime; +}; diff --git a/source/tungsten/game/entities/splines/navspline.h b/source/tungsten/game/entities/splines/navspline.h new file mode 100644 index 0000000..261459e --- /dev/null +++ b/source/tungsten/game/entities/splines/navspline.h @@ -0,0 +1,53 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\splines\navspline.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1522; PDB kind: enum. +enum navSplineType_t : __int32 +{ + NAV_SPLINE_TYPE_DEFAULT = 0x0, + NAV_SPLINE_TYPE_VEHICLE_AI = 0x1, + NAV_SPLINE_TYPE_QUEST = 0x2, +}; + +// IDA Local Type ordinal 15650; PDB kind: class. +class idNavSpline +{ +public: + idNavSplinePath *splinePath; + idCurve_Spline *curve; + float width; + float length; + bool traversed; + bool isTempSpline; + idList next; + idList prev; + idList,5> entityList; + navSplinePathNode_t *startNode; + navSplinePathNode_t *endNode; + idNavSpline *bestNext; + idNavSpline *bestPrev; + idBounds bounds; + int drawtime; +}; + +// IDA Local Type ordinal 15654; PDB kind: struct. +struct navSplineLink_t +{ + navSplinePathNode_t *node; + float nodeDistance; + idNavSpline *navSpline; + float splineDistance; +}; + +// IDA Local Type ordinal 19467; PDB kind: struct. +struct navSplineTrav_t +{ + idNavSplinePosition pathPos; + float traversalDist; + int dir; +}; diff --git a/source/tungsten/game/entities/splines/navsplinegraph.h b/source/tungsten/game/entities/splines/navsplinegraph.h new file mode 100644 index 0000000..e1f41b6 --- /dev/null +++ b/source/tungsten/game/entities/splines/navsplinegraph.h @@ -0,0 +1,21 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\splines\navsplinegraph.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15675; PDB kind: class. +class idNavSplineGraph : public idClass +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15676. + virtual idTypeInfo *GetType(); + virtual ~idNavSplineGraph(); + + idStaticList nodes; + idList nodes_BuildGame; + navSplinePathNode_t tempNode[2]; + navSplineType_t navSplineType; +}; diff --git a/source/tungsten/game/entities/splines/navsplinepathmgr.h b/source/tungsten/game/entities/splines/navsplinepathmgr.h new file mode 100644 index 0000000..dea4f5b --- /dev/null +++ b/source/tungsten/game/entities/splines/navsplinepathmgr.h @@ -0,0 +1,84 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\splines\navsplinepathmgr.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15647; PDB kind: class. +class idNavSplinePathMgr +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15659. + virtual ~idNavSplinePathMgr(); + virtual void Update(); + virtual void SpecialSetup(); + virtual idNavSplinePosition *GetClosestPathPosition(idNavSplinePosition *result, idVec3, idNavSpline *, float, float, idVec3, bool); + virtual float GetNextRecalcTime(); + + __declspec(align(8)) int nextRecalcTime; + float updatetime; + idTimer navSplineTrackerTimer; + int navSplineTrackerCount; + idTimer navSplineClosestPosTimer; + int navSplineClosestPosCount; + idTimer navSplineClosestPosSectionTimer; + int navSplineClosestPosSectionCount; + idNavSplinePathMgr::navSplineFloodBits_t *floodBits; + int floodBitSize; + idNavPathPosTrackerPool trackerPool; + idStaticList,256> usedTrackers; + idHashIndex trackerHash; + idStaticList navSplineList; + idList navSplineList_BuildGame; + navSplinePath_t splinePath; + int cleanupIndex; + idEntityPtr tempNavSplinePath; + idNavSpline tempNavSpline; + navSplineType_t navSplineType; + idStr tempNavSplinePathName; + idTimer navSplinePathTimer; + int navSplinePathCount; + int navSplinePathCount2; + idNavSplineGraph splineGraph; + idNavPathPosTracker *debugTracker; + idAngles freeAngles; + idAngles currentViewAngles; + idAngles lastCarAngles; + int wildSpinTime; + float viewAnglesDeltaPerc; + int lastDrawTime; + bool isStaticPathPos; + idList segListTable; +}; + +// IDA Local Type ordinal 15660; PDB kind: struct. +struct idNavSplinePathMgr::navSplineFloodBits_t +{ + unsigned __int32 : 29; + __int32 queued : 2; + __int32 traversed : 1; +}; + +// IDA Local Type ordinal 16555; PDB kind: class. +class idQuestNavSplinePathMgr : public idNavSplinePathMgr +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16556. + virtual ~idQuestNavSplinePathMgr(); + virtual void Update(); + virtual void SpecialSetup(); + virtual idNavSplinePosition *GetClosestPathPosition(idNavSplinePosition *result, idVec3, idNavSpline *, float, float, idVec3, bool); + virtual float GetNextRecalcTime(); + + float splineDistanceToJob; + float totalDistanceToJob; +}; + +// IDA Local Type ordinal 19464; PDB kind: struct. +struct idNavSplinePathMgr::posInfo_t +{ + idVec3 pos; + float widthSqr; +}; diff --git a/source/tungsten/game/entities/splines/navsplinepathpos.h b/source/tungsten/game/entities/splines/navsplinepathpos.h new file mode 100644 index 0000000..ef8ab7f --- /dev/null +++ b/source/tungsten/game/entities/splines/navsplinepathpos.h @@ -0,0 +1,24 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\splines\navsplinepathpos.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15653; PDB kind: struct. +struct navSplinePathNode_t +{ + idVec3 position; + idStaticList links; + int index; + navSplinePathNode_t::navSplineSearch_t search; +}; + +// IDA Local Type ordinal 15657; PDB kind: struct. +struct navSplinePathNode_t::navSplineSearch_t +{ + float distance; + navSplinePathNode_t *parent; + idNavSpline *spline; +}; diff --git a/source/tungsten/game/entities/springcamera.h b/source/tungsten/game/entities/springcamera.h new file mode 100644 index 0000000..ffc1d76 --- /dev/null +++ b/source/tungsten/game/entities/springcamera.h @@ -0,0 +1,277 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\springcamera.h +// Recovered logical types: 6 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1244; PDB kind: enum. +enum idSpringCamera::duration_t : __int32 +{ + DURATION_NEVER = 0x0, + DURATION_ALWAYS = 0x1, + DURATION_ANIM = 0x2, + DURATION_MAX = 0x3, +}; + +// IDA Local Type ordinal 1245; PDB kind: enum. +enum idSpringCamera::lookMode_t : __int32 +{ + LOOK_NONE = 0x0, + LOOK_HEADING = 0x1, + LOOK_POSITION = 0x2, + LOOK_ADD_HEADING = 0x3, + LOOK_ADD_HEADING_AUTOCENTER = 0x4, + LOOK_ADD_DELTAANGLES = 0x5, +}; + +// IDA Local Type ordinal 1246; PDB kind: enum. +enum idSpringCamera::blendMode_t : __int32 +{ + BLEND_SMOOTH = 0x0, + BLEND_SMOOTH_SNAP_SMOOTH = 0x1, + BLEND_SNAP_SNAP_SMOOTH = 0x2, + BLEND_SNAP = 0x3, + BLEND_FOLLOW_SNAP_LOOK_SMOOTH_SNAP_SMOOTH = 0x4, + BLEND_MAX = 0x5, +}; + +// IDA Local Type ordinal 1250; PDB kind: enum. +enum idSpringCamera::state_t : __int32 +{ + STATE_INACTIVE = 0x0, + STATE_BLEND_IN = 0x1, + STATE_REACTIVATE = 0x2, + STATE_ACTIVE = 0x3, + STATE_ACTIVE_READY_TO_BLEND_OUT = 0x4, + STATE_BLEND_OUT = 0x5, + STATE_MAX = 0x7, +}; + +// IDA Local Type ordinal 1251; PDB kind: enum. +enum idSpringCamera::calculateViewStage_t : __int32 +{ + STAGE_DEFAULT = 0x0, + STAGE_UPDATE = 0x1, + STAGE_DRAW = 0x2, +}; + +// IDA Local Type ordinal 14989; PDB kind: class. +class __declspec(align(8)) idSpringCamera : public idCamera +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34055. + virtual idTypeInfo *GetType(); + virtual ~idSpringCamera(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 HandleUserCmds(const usercmd_t *, const usercmd_t *); + virtual int InhibitFlags(); + virtual int InhibitButtons(); + virtual bool CanShowCrosshair(); + virtual bool InternalActivate(idEntity *); + virtual bool InternalDeactivate(); + + idSpring followBlendSpring; + idSpring lookBlendSpring; + idSpring springFollowPos; + idSpring springLookFwdDir; + idSpring springLookUpDir; + idSpring springFOV; + idSpring springAutoCenter; + idEntityPtr followEntity; + idTreeAnimator *followAnimator; + idIndex followJointIndex; + idEntityPtr lookEntity; + idTreeAnimator *lookAnimator; + idIndex lookJointIndex; + const idMD6Skel *lookSkeleton; + idSpringCamera::duration_t followDuration; + idSpringCamera::duration_t lookDuration; + idSpringCamera::lookMode_t lookMode; + idSpringCamera::blendMode_t lookBlendMode; + idSpringCamera::blendMode_t followBlendMode; + idIndex fovUserChannel; + idSpringCamera::state_t followState; + idSpringCamera::state_t lookState; + idSpringCamera::state_t state; + int lastUpdateFrame; + idVec3 viewOrigin; + idMat3 viewAxis; + float viewFov; + idVec3 viewVelocity; + int viewTimestamp; + idVec3 fromViewOrigin; + idMat3 fromViewAxis; + idEntityPtr activatorParent; + idVec3 activatorParentPos; + bool calculateViewInDraw; + bool manualUpdate; + bool calculatedView; + bool calculatedViewOrigin; + bool usesUserChannelFov; + bool resetManualUpdate; + bool getPlayerLookFromView; + idSpringCamera::calculateViewStage_t forceCalculateViewStage; + float constraintConeDegs; + float autoCenterSpringK; + bool clipTestMovement; + float clipTestRadius; + float clipTestHeight; + idVec3 clipTestResult; + bool inhibitControl; +}; diff --git a/source/tungsten/game/entities/springentity.h b/source/tungsten/game/entities/springentity.h new file mode 100644 index 0000000..bfc05dd --- /dev/null +++ b/source/tungsten/game/entities/springentity.h @@ -0,0 +1,183 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\springentity.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19460; PDB kind: class. +class __declspec(align(8)) idSpringEntity : public idAnimatedEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19461. + virtual idTypeInfo *GetType(); + virtual ~idSpringEntity(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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(); + + idPonytail ponytail; +}; diff --git a/source/tungsten/game/entities/target.h b/source/tungsten/game/entities/target.h new file mode 100644 index 0000000..50bc27a --- /dev/null +++ b/source/tungsten/game/entities/target.h @@ -0,0 +1,722 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\target.h +// Recovered logical types: 8 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1774; PDB kind: enum. +enum idTarget_Job::targetJob_t : __int32 +{ + TARGETJOB_ACCEPTED = 0x0, + TARGETJOB_READYTOTURNIN = 0x1, + TARGETJOB_COMPLETED = 0x2, + TARGETJOB_FAILED = 0x3, +}; + +// IDA Local Type ordinal 1788; PDB kind: enum. +enum idTarget_Door::setting_t : __int32 +{ + SET_FALSE = 0x0, + SET_TRUE = 0x1, + KEEP = 0x2, + TOGGLE = 0x3, +}; + +// IDA Local Type ordinal 2425; PDB kind: enum. +enum progTarget_t : __int32 +{ + PT_PC = 0x0, + PT_PC_D3D = 0x1, + PT_360 = 0x2, + PT_PS3 = 0x3, + PT_NUM_TARGETS = 0x4, +}; + +// IDA Local Type ordinal 19236; PDB kind: class. +class idTarget_Door : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19237. + virtual idTypeInfo *GetType(); + virtual ~idTarget_Door(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + idTarget_Door::setting_t playerUsable; + idTarget_Door::setting_t forceUnusable; + idTarget_Door::setting_t open; + idTarget_Door::setting_t locked; +}; + +// IDA Local Type ordinal 19378; PDB kind: class. +class __declspec(align(8)) idTarget_Show : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19379. + virtual idTypeInfo *GetType(); + virtual ~idTarget_Show(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + bool reuseable; +}; + +// IDA Local Type ordinal 19384; PDB kind: class. +class __declspec(align(8)) idTarget_Use : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19385. + virtual idTypeInfo *GetType(); + virtual ~idTarget_Use(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + usableState_t usableState; +}; + +// IDA Local Type ordinal 19386; PDB kind: class. +class __declspec(align(8)) idTarget_Job : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19387. + virtual idTypeInfo *GetType(); + virtual ~idTarget_Job(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + const idDeclJob *jobDecl; + bool completeTree; + bool giveJob; + bool markGivenJobUnknown; + bool treatAsDebug; + bool HACK_noitemrewards; + bool HACK_nolayerchanges; + bool clearJobNotesForThisJob; + idTarget_Job::targetJob_t action; + bool playerOnly; + const idDeclJobNote *jobNoteOverride; + bool clearJobStateFirst; + bool activateCinematicCam; +}; + +// IDA Local Type ordinal 23643; PDB kind: struct. +struct genTarget_t +{ + char mapName[128]; + char virtualTextureMaterialName[64]; + int virtualTexelsWide; +}; diff --git a/source/tungsten/game/entities/target_level.h b/source/tungsten/game/entities/target_level.h new file mode 100644 index 0000000..a31ca4e --- /dev/null +++ b/source/tungsten/game/entities/target_level.h @@ -0,0 +1,173 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\target_level.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19376; PDB kind: class. +class __declspec(align(8)) idTarget_Remove : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19377. + virtual idTypeInfo *GetType(); + virtual ~idTarget_Remove(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + bool markUniquePropsRemoved; +}; diff --git a/source/tungsten/game/entities/target_player.h b/source/tungsten/game/entities/target_player.h new file mode 100644 index 0000000..09a7604 --- /dev/null +++ b/source/tungsten/game/entities/target_player.h @@ -0,0 +1,688 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\target_player.h +// Recovered logical types: 5 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2634; PDB kind: enum. +enum idTarget_PlayVideo::screenNumber_t : __int32 +{ + VIDEO1 = 0x0, + VIDEO2 = 0x1, + VIDEO3 = 0x2, + VIDEO4 = 0x3, +}; + +// IDA Local Type ordinal 19228; PDB kind: class. +class idTarget_PlayVideo : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19229. + virtual idTypeInfo *GetType(); + virtual ~idTarget_PlayVideo(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + idTarget_PlayVideo::screenNumber_t screenNumber; + int timeOffset; + bool looping; + bool paused; + bool startOn; + const idInGameVideoFile *videoFile; +}; + +// IDA Local Type ordinal 19250; PDB kind: class. +class __declspec(align(4)) idTarget_PlayVoiceOver : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19251. + virtual idTypeInfo *GetType(); + virtual ~idTarget_PlayVoiceOver(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + const idDeclVoiceOver *voiceOver; + bool playInCombat; +}; + +// IDA Local Type ordinal 19294; PDB kind: class. +class idTarget_PlayerWhiplash : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19295. + virtual idTypeInfo *GetType(); + virtual ~idTarget_PlayerWhiplash(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + float radius; + float magnitude; +}; + +// IDA Local Type ordinal 19341; PDB kind: class. +class __declspec(align(8)) idTarget_PlayerCrouch : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19342. + virtual idTypeInfo *GetType(); + virtual ~idTarget_PlayerCrouch(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + bool crouch; + bool instantCrouchChange; +}; diff --git a/source/tungsten/game/entities/testentities.h b/source/tungsten/game/entities/testentities.h new file mode 100644 index 0000000..fd31e57 --- /dev/null +++ b/source/tungsten/game/entities/testentities.h @@ -0,0 +1,22 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\testentities.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16033; PDB kind: class. +class idEditEntities +{ +public: + int nextSelectTime; + bool lastSelectResult; + idList selectableEntityClasses; + idList selectedEntities; + bool dragging; + int dragTime; + int dragAxis; + idVec3 lastViewDir; + idVec3 lastDragPos; +}; diff --git a/source/tungsten/game/entities/testentity.h b/source/tungsten/game/entities/testentity.h new file mode 100644 index 0000000..5b9d4da --- /dev/null +++ b/source/tungsten/game/entities/testentity.h @@ -0,0 +1,406 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\testentity.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16023; PDB kind: struct. +struct idTestEntity::testFlags_t +{ + unsigned __int8 : 2; + __int8 flag6 : 1; + __int8 flag5 : 1; + __int8 flag4 : 1; + __int8 flag3 : 1; + __int8 flag2 : 1; + __int8 flag1 : 1; +}; + +// IDA Local Type ordinal 16026; PDB kind: struct. +struct idTestEntity::test_t +{ + idVec3 vector; + idAngles angles; +}; + +// IDA Local Type ordinal 16028; PDB kind: class. +class idTestEntity : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16029. + virtual idTypeInfo *GetType(); + virtual ~idTestEntity(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + bool bool_; + char char_; + unsigned __int8 unsignedchar; + __int16 short_; + unsigned __int16 unsignedshort; + int int_; + unsigned int unsignedint; + int long_; + unsigned int unsignedlong; + float float_; + long double double_; + idBoundedInt<0,4> boundedInt; + idBoundedFloat<0,0,1,0> boundedFloat; + idVec2 vec2; + idVec3 vec3; + idVec4 vec4; + idMat3 mat3; + idAngles angles; + testEnum_t enum_; + idTestEntity::testFlags_t testFlags; + idStr string; + idColor color; + idCollisionModel *collisionModel; + idRenderModel *renderModel; + const idDeclTable *table; + const idMaterial *material; + const idSoundShader *soundShader; + const idDeclEntityDef *testEntityDef; + const idDeclFX *fx; + const idDeclParticle *particle; + const idDeclAF *af; + const idDeclRenderParm *renderParm; + const idDeclRenderProg *renderProg; + const idDeclDamage *damageDef; + const idDeclInventory *inventoryDef; + const idDeclWeapon *weaponDef; + const idDeclProjectile *projectileDef; + idEntityPtr otherEntity; + int intArray[10]; + idList intList; + idList strList; + idList soundList; + idList spawnRenderParmBlock; + idSpawnRenderParm spawnRenderParmArray[10]; + idList structList; + int test1; + float test2; + idVec3 test3; +}; + +// IDA Local Type ordinal 19135; PDB kind: class. +class __declspec(align(8)) idTarget_TestEntity : public idTarget_Test +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19136. + virtual idTypeInfo *GetType(); + virtual ~idTarget_TestEntity(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 ReportResults(); + + idEntityPtr testEntity; +}; diff --git a/source/tungsten/game/entities/testmodel2.h b/source/tungsten/game/entities/testmodel2.h new file mode 100644 index 0000000..ec25eda --- /dev/null +++ b/source/tungsten/game/entities/testmodel2.h @@ -0,0 +1,217 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\testmodel2.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1762; PDB kind: enum. +enum idTestModel2::translation_t : __int32 +{ + TRANSLATE_FIXED = 0x0, + TRANSLATE_RESET = 0x1, + TRANSLATE_CONTINUOUS = 0x2, + TRANSLATE_MAX = 0x3, +}; + +// IDA Local Type ordinal 1763; PDB kind: enum. +enum idTestModel2::parseFlags_t : __int32 +{ + PF_WRAPMODE = 0x1, + PF_WEIGHTGROUP = 0x2, + PF_RATE = 0x4, + PF_ANIM = 0x8, +}; + +// IDA Local Type ordinal 19150; PDB kind: class. +class __declspec(align(8)) idTestModel2 : public idAnimatedEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19151. + virtual idTypeInfo *GetType(); + virtual ~idTestModel2(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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(); + + idAnimator_BlendEq blendEqAnimator; + idList namedAnims; + idList blendVariables; + idScalarMemBlock scalarMem; + idAnimator_Channel channelAnimator; + idFaceMgr faceMgr; + idMat3 resetAxis; + idVec3 resetOrigin; + idTestModel2::translation_t translationMode; + idAttachmentCollection attachments; + int curLoopCount; + int curAliasIndex; + float curFrame; + idAngles rotationAngles; + idVec3 accumulatedDeltaTrans; + idQuat accumulatedDeltaRot; + bool ignoreFirstDelta; +}; diff --git a/source/tungsten/game/entities/timeline/entityvalueaccess.h b/source/tungsten/game/entities/timeline/entityvalueaccess.h new file mode 100644 index 0000000..f12b44c --- /dev/null +++ b/source/tungsten/game/entities/timeline/entityvalueaccess.h @@ -0,0 +1,13 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\timeline\entityvalueaccess.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19105; PDB kind: class. +class mgEntityValueAccess +{ +public: +}; diff --git a/source/tungsten/game/entities/timeline/timelinecontroller.h b/source/tungsten/game/entities/timeline/timelinecontroller.h new file mode 100644 index 0000000..140e25a --- /dev/null +++ b/source/tungsten/game/entities/timeline/timelinecontroller.h @@ -0,0 +1,219 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\timeline\timelinecontroller.h +// Recovered logical types: 5 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19108; PDB kind: struct. +struct __declspec(align(4)) mgTimelineController::tlEvent_t : tlEventData_t +{ + idHandle animHandle; +}; + +// IDA Local Type ordinal 19110; PDB kind: struct. +struct mgTimelineController::tlTrack_t::grouping_t +{ + int groupId; + int belongsToId; +}; + +// IDA Local Type ordinal 19112; PDB kind: struct. +struct mgTimelineController::tlTrack_t +{ + idEntityPtr target; + idList events; + mgTimelineController::tlTrack_t::grouping_t grouping; + mgTimeSpan timeSpan; + idAnimator_Channel *animator; + idAnimator_FaceTracks *faceAnimator; + idVec3 pos; +}; + +// IDA Local Type ordinal 19114; PDB kind: class. +class mgTimelineController : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19115. + virtual idTypeInfo *GetType(); + virtual ~mgTimelineController(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + idList tracks; + mgTimeSpan timeSpan; + bool initDone; + bool timeLeap; + int startTime; + int prevTime; + idEntityPtr activator; +}; + +// IDA Local Type ordinal 19116; PDB kind: struct. +struct mgTimelineController::runContext_t +{ + const mgTimelineController::tlTrack_t *track; + const mgTimelineController::tlEvent_t *event; + idEntity *entity; + idPlayer *player; + int deltaTime; + int eventTime; + bool eventStop; + bool eventStart; + bool timeLeap; + bool updateVisibility; +}; diff --git a/source/tungsten/game/entities/timeline/timespan.h b/source/tungsten/game/entities/timeline/timespan.h new file mode 100644 index 0000000..7cfb851 --- /dev/null +++ b/source/tungsten/game/entities/timeline/timespan.h @@ -0,0 +1,15 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\timeline\timespan.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19111; PDB kind: class. +class mgTimeSpan +{ +public: + int min; + int max; +}; diff --git a/source/tungsten/game/entities/trigger.h b/source/tungsten/game/entities/trigger.h new file mode 100644 index 0000000..33d4bf9 --- /dev/null +++ b/source/tungsten/game/entities/trigger.h @@ -0,0 +1,522 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\trigger.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15547; PDB kind: class. +class idTrigger : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15548. + virtual idTypeInfo *GetType(); + virtual ~idTrigger(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 bool CanActivate(idEntity *); + + float wait; + float delay; + bool triggerOnce; + bool triggerFirst; + idStr call; + idStr userData; + idEntityPtr entityCanActivate; + bool playerCanActivate; + bool playerVehicleCanActivate; + bool vehicleOccupantCanActivate; + bool anyVehicleCanActivate; + bool aiCanActivate; + bool turretCanActivate; + int nextTriggerTime; + int extraContents; +}; + +// IDA Local Type ordinal 19068; PDB kind: class. +class idTrigger_Exit : public idTrigger +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19069. + virtual idTypeInfo *GetType(); + virtual ~idTrigger_Exit(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 bool CanActivate(idEntity *); + + idEntityPtr activator; + int lastTouchTime; +}; + +// IDA Local Type ordinal 21818; PDB kind: class. +class idSoundTrigger : public idTrigger +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21819. + virtual idTypeInfo *GetType(); + virtual ~idSoundTrigger(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 bool CanActivate(idEntity *); + +}; diff --git a/source/tungsten/game/entities/tumbleweed.h b/source/tungsten/game/entities/tumbleweed.h new file mode 100644 index 0000000..a47ca37 --- /dev/null +++ b/source/tungsten/game/entities/tumbleweed.h @@ -0,0 +1,182 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\tumbleweed.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 19023; PDB kind: class. +class __declspec(align(8)) idTumbleWeed : public idDynamicEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19024. + virtual idTypeInfo *GetType(); + virtual ~idTumbleWeed(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + const idMaterial *shadow; + float windOffset; + float scale; + float radius; + idVec3 center; + idMat3 modelAxis; + idVec3 velocity; + idClipQuery moveQuery; + idDeferredShadow deferredDropShadow; + idRecycledTraceModel *dropShadowTrm; +}; diff --git a/source/tungsten/game/entities/turret.h b/source/tungsten/game/entities/turret.h new file mode 100644 index 0000000..324ef88 --- /dev/null +++ b/source/tungsten/game/entities/turret.h @@ -0,0 +1,539 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\turret.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1702; PDB kind: enum. +enum idTurret::turretStates : __int32 +{ + TS_WARNING = 0x0, + TS_WARMUP = 0x1, + TS_NORMAL = 0x2, + TS_SEARCHING = 0x3, + TS_WOBBLY = 0x4, + TS_HAYWIRE = 0x5, + TS_SILENCED = 0x6, + TS_DISABLED = 0x7, + TS_DYING = 0x8, + TS_SUPPRESSING_FIRE = 0x9, + TS_INACTIVE = 0xA, +}; + +// IDA Local Type ordinal 19001; PDB kind: class. +class __declspec(align(8)) idTurret : public idAnimatedEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19008. + virtual idTypeInfo *GetType(); + virtual ~idTurret(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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 usableState_t GetOnlineUsableState(); + virtual const idSimpleHealth *GetTurretHealthComponent(); + virtual idSimpleHealth *GetTurretHealthComponent_2(); + virtual bool IsTargetLockable_2(const idAmmoItem *); + virtual bool StartRagdoll(); + + idList,5> triggerOnDestroy; + idList damageGroups; + idAtomicString searchMeshKit; + idAtomicString nonSearchMeshKit; + idAtomicString disabledMeshKit; + idAnimator_AF afProperties; + const idDeclDamage *explodeDamage; + const idDeclParticle *destroyedParticle; + const idDeclParticle *ondestroyedParticle; + const idDeclParticle *explodeParticle; + const idSoundShader *soundHaywire; + const idSoundShader *soundDoneInit; + const idSoundShader *soundDying; + const idSoundShader *soundTargetAquired; + const idSoundShader *soundTurnstart; + const idSoundShader *soundTurning; + const idSoundShader *soundIdle; + const idMaterial *laserBeamMtrSearch; + const idMaterial *laserBeamMtrHostile; + const idDeclTrackingParms *declTrackingParms; + int destroyedParticleRate; + float destroyedParticleRateStart; + const idDeclTable *destroyedParticleRateCurve; + float density; + idSimpleHealth turretHealth; + float maxRange; + float minRange; + float maxFireRange; + float maxFireAngle; + float maxFirePitch; + float maxTurnAngle; + float heightOffFloor; + float pitchSpeed; + float spinwheelSpeed; + float turnSpeed; + float windupTime; + idRenderModel *destroyedModel; + idStr nameRotation; + idStr namePitch; + idStr nameSpinwheel; + const idDeclWeapon *weaponDecl; + int haywireOnKnockdownChance; + int dyingTime; + int haywireTime; + int initTime; + int maxProjectiles; + int regimeGridTime; + int foundTargetToActivateTime; + int foundTargetToFireTime; + idDisassembleLoot disassembleLoot; + idFaction faction; + bool isStatic; + bool noKnockback; + bool targetable; + bool useStartFacing; + bool dontRemoveAfterDying; + bool startOff; + bool invertedTurret; + bool trackOnlyPlayer; + bool EMPSilenced; + bool hasSphereModel; + bool searchFromLastTarget; + bool showLaserDuringAttack; + bool useOrgHeadingAsSearchDir; + bool silenceWhenDamaged; + bool saveDestroyedState; + bool usingFiringControl; + int timeToBeSilenced; + idHandle dropAnimAlias; + idHandle acquiredTargetAnimAlias; + idHandle lostTargetAnimAlias; + idHandle breakAnimAlias; + idHandle shootAnimAlias; + idHandle SilencedAnimAlias; + idHandle SilencedIdleAnimAlias; + idHandle disabledAnimAlias; + idHandle UnSilencedAnimAlias; + idHandle aquiredMhAnimAlias; + idHandle destroyedAnimAlias; + idHandle destroyedMhAnimAlias; + idWeapon *turretWeapon; + int slinecedIntoTime; + idMat3 slinecedJointRot; + idMat3 slinecedJointPitch; + idVec3 startForwardDir; + idVec3 startPos; + idVec3 lastPos; + bool isFiring; + int nextShotTimer; + idEntity *turretOwner; + int propinfoIndex; + int muzzleTagIndex; + idAIWorldState worldState; + idEntityPtr enemy; + idEntityPtr lastTarget; + idEntityPtr attackedByTarget; + idVec3 goalPos; + float searchTime; + float searchSpeed; + float turretFOV; + float startFOV; + bool returnToCenter; + float searchAngle; + idVec3 startSearchDir; + float startSearchTime; + float timeSearched; + int searchDirScale; + float currentSearchAngle; + int randomFireTime; + int stopThinkTime; + int lastStartTurnSound; + float cosMaxFireAngle; + float cosMaxFirePitch; + float suppresingFireTime; + float startSuppressingFire; + float timeSuppressed; + idVec3 suppressionFirePoint; + bool canGoInactive; + bool setStartingInfo; + bool randomFire; + bool turningSound; + bool idleSoundPlaying; + bool hasCheckedDestroyedState; + bool allowedToFire; + int idleSkin; + int alarmSkin; + bool isClipModelEnabled; + idPhysics_Static clipModel; + idIndex jointRotation; + idIndex jointPitch; + idIndex jointSpinwheel; + idQuat lastYawRot; + idQuat lastPitchRot; + idAnimator_Channel movingHoldAnimator; + idAnimator_Channel channelAnimator; + idAnimator_JointMod jointModAnimator; + const idDeclInventory *inventoryDecl; + float interceptSpeed; + idInventoryCollection inventoryCollection; + idList,5> activeProjectiles; + idPhysics_RigidBody physicsObj; + int spinTimer; + int stateTimer; + int foundTargetTime; + idTurret::turretStates currentState; + const idDeclEntityDef *flareDecl; + idStr flareBindToTag; + idEntityPtr flare; + idMat3 soundTransform; +}; + +// IDA Local Type ordinal 19016; PDB kind: class. +class idRailTurret : public idTurret +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19017. + virtual idTypeInfo *GetType(); + virtual ~idRailTurret(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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 usableState_t GetOnlineUsableState(); + virtual const idSimpleHealth *GetTurretHealthComponent(); + virtual idSimpleHealth *GetTurretHealthComponent_2(); + virtual bool IsTargetLockable_2(const idAmmoItem *); + virtual bool StartRagdoll(); + + float trackSpeed; + idEntityPtr startTrack; + idList,5> plannedPath; + int plannedPathIndex; + idCurve_Spline *startSpline; + idCurve_Spline *currentSpline; + idEntityPtr currentSplinePath; +}; diff --git a/source/tungsten/game/entities/turretgunner.h b/source/tungsten/game/entities/turretgunner.h new file mode 100644 index 0000000..fbb5436 --- /dev/null +++ b/source/tungsten/game/entities/turretgunner.h @@ -0,0 +1,305 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\turretgunner.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1692; PDB kind: enum. +enum idTurretGunner::triggerPhaseOn_t : __int32 +{ + TRIGGERPHASE_IDLE = 0x0, + TRIGGERPHASE_START_PULL = 0x1, + TRIGGERPHASE_WINDING_UP = 0x2, + TRIGGERPHASE_FIRING = 0x3, + TRIGGERPHASE_WINDING_DOWN = 0x4, + TRIGGERPHASE_MAX = 0x5, +}; + +// IDA Local Type ordinal 1696; PDB kind: enum. +enum idTurretGunner::firingPhaseOn_t : __int32 +{ + FIRINGPHASE_SHOOTING_AT_PLAYER = 0x0, + FIRINGPHASE_SHOOTING_AT_PLAYERS_LAST_POSITION = 0x1, + FIRINGPHASE_SUPPRESSING_NEAR_PLAYER = 0x2, + FIRINGPHASE_SUPPRESSING_AT_ANTICIPATED_POSITION = 0x3, + FIRINGPHASE_SUPPRESSING_NEAR_PLAYER_AGAIN = 0x4, + FIRINGPHASE_SUPPRESSING_RANDOM = 0x5, + FIRINGPHASE_MAX = 0x6, +}; + +// IDA Local Type ordinal 18986; PDB kind: class. +class idTurretGunner : public idAnimatedEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18988. + virtual idTypeInfo *GetType(); + virtual ~idTurretGunner(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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(); + virtual void SetHealth(const float); + virtual float GetMaxBaseHealth(); + virtual void SetMaxHealth(const float); + + const idDeclAnimWeb *webDecl; + const idDeclTrackingParms *declTrackingParms; + float minMinionHeadStartTime; + float maxMinionHeadStartTime; + idFaction faction; + const idMaterial *aiPortrait; + idList radiusDamageJointNames; + const idDeclGore *goreDef; + idGoreComponent goreComponent; + idTurretSpawnerControlGroup *spawnerControlGroup; + bool isGunnerInitialized; + bool canFire; + idVec3 gunnerAimPoint; + __unaligned __declspec(align(1)) idAnimWeb_TurretGunner animWeb; + idAnimator_Channel painAnimator; + idFaceMgr faceMgr; + idAIWorldState worldState; + idEntityPtr enemy; + int oldNumKilled; + idEntityPtr randomLivingMinion; + int numSkippedPinatas; + idEntityPtr pinataMinion; + int forgivePinataMinionTime; + float maxHealth; + float health; + bool didBonusDamageForThisTaunt; + int nextFireTime; + int pullTriggerTime; + int releaseTriggerTime; + int launchInitialMinionTime; + int launchMinionTime; + int minionEscalationLevel; + int overheatTime; + float currTriggerDownAdjust; + float currFireIntervalAdjust; + idTurretGunner::firingPhaseOn_t currentFiringPhaseOn; + int endPhaseTime; + idTurretGunner::triggerPhaseOn_t pullTriggerPhase; + int pullTriggerPhaseEndTime; + idEntityPtr closestFireHint; + idEntityPtr anticipatedFireHint; + idList,5> otherFireHintsList; + int otherFireHintOn; + idEntityPtr lastFireHintUsed; + idEntityPtr currentSuppressionFireHint; + int startStrafeTime; + int endStrafeTime; + int thisStrafeTime; + idVec3 startStrafePoint; + idVec3 endStrafePoint; +}; + +// IDA Local Type ordinal 18987; PDB kind: class. +class idAnimWeb_TurretGunner : public idAnimator_AnimWeb +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18989. + virtual ~idAnimWeb_TurretGunner(); + virtual idAnimator_Base::priority_t GetStackPriority(); + virtual serializeType_t GetSerializeType(); + virtual void SerializeSnapshot(idSerializer *); + virtual void PreBlendSnapshot(idAnimStack *, int, const int, float); + virtual void PreSerializeInit(idAnimStack *, idClip *, idGameTimeManager *); + virtual bool InternalInit(const idAnimatorParms_Base *); + virtual bool InternalPostInit(const idAnimatorParms_Base *); + virtual void InternalShutdown(idAnimStack *); + virtual void InternalPreBlendTree(const idAnimStack *, const int, const int); + virtual void InternalPostBlendTree(const idAnimStack *, const int); + virtual void InternalStart(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalEnd(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalBlend(const idAnimStack *, const int, const float, const idTypesafeNumber); + virtual bool InternalIsContributing(); + virtual const idMD6Branch *InternalGetMergeBranch(); + virtual idMD6Branch *InternalGetMergeBranch_2(); + virtual void InternalPause(const idAnimStack *, const idTypesafeNumber); + virtual void InternalUnpause(const idAnimStack *, const idTypesafeNumber); + virtual const idMD6Branch *InternalGetEndBranch(); + virtual idMD6Branch *InternalGetEndBranch_2(); + virtual const idHandle *GetHandle(); + virtual void InternalInitWeb(); + virtual void InternalUpdate(const int); + virtual idDeclAnimWebNode::animDelta_t InternalGetCurrentAnimDeltaMode(); + virtual void InternalSetAnimDelta(const idIndex, const idDeclAnimWebNode *); + virtual int InternalGetEdgeCost(const idIndex, const idIndex); + virtual void InternalStartPath(); + virtual void InternalUpdateScalars(const int); + virtual void InternalStartBlend(const idDeclAnimWebNode *, const idDeclAnimWebNode *, const int); + virtual void InternalFinishBlend(const idDeclAnimWebNode *, const idDeclAnimWebNode *, const int); + virtual awCheckPathResult_t CheckNextNode(const idDeclAnimWebNode *, const idDeclAnimWebNode *); + virtual bool InternalShouldStartNextNode(const idIndex, const idIndex, const int, const int, const blendParms_t *, idIndex, const bool, animWebEvent_t *); + virtual void InternalTriggerEvent(const idDeclAnimWebNode *, const animWebEvent_t, const idHandle *, const int, const int); + virtual void InternalTriggerBlendEvent(int, idIndex, idIndex, idIndex, const int); + virtual bool InternalRemapNames(idStr *, idStr *); + virtual void InternalUpdateBlendEvents(const idAnimStack *, const int, const int); + + idTurretGunner *gunner; +}; diff --git a/source/tungsten/game/entities/turretspawnercontrolgroup.h b/source/tungsten/game/entities/turretspawnercontrolgroup.h new file mode 100644 index 0000000..9f70ed6 --- /dev/null +++ b/source/tungsten/game/entities/turretspawnercontrolgroup.h @@ -0,0 +1,187 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\turretspawnercontrolgroup.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 18973; PDB kind: class. +class __declspec(align(8)) idTurretSpawnerControlGroup : public idAIHintGroup +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18974. + virtual idTypeInfo *GetType(); + virtual ~idTurretSpawnerControlGroup(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + float gunnerStartingHitPoints; + float bonusDamageWhenTaunting; + float damageScaleFromTank; + float visibleSightTime; + float minTriggerDownDuration; + float maxTriggerDownDuration; + float minFireInterval; + float maxFireInterval; + float minPostTauntWaitToFire; + float maxPostTauntWaitToFire; + int maxLivingMinions; + const idSoundShader *startTurretSound; + const idSoundShader *endTurretSound; + idEntityPtr deathTrigger; + int spawnerOn; +}; diff --git a/source/tungsten/game/entities/utilitycamera.h b/source/tungsten/game/entities/utilitycamera.h new file mode 100644 index 0000000..1c9a2a7 --- /dev/null +++ b/source/tungsten/game/entities/utilitycamera.h @@ -0,0 +1,386 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\utilitycamera.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14759; PDB kind: class. +class __declspec(align(8)) idUtilityCamera : public idCamera +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34062. + virtual idTypeInfo *GetType(); + virtual ~idUtilityCamera(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 HandleUserCmds(const usercmd_t *, const usercmd_t *); + virtual int InhibitFlags(); + virtual int InhibitButtons(); + virtual bool CanShowCrosshair(); + virtual bool InternalActivate(idEntity *); + virtual bool InternalDeactivate(); + virtual idEntity *GetTargetEntity(); + virtual void SetTargetEntity(idEntity *); + virtual void GetTargetPos(idVec3 *); + virtual void SetTargetPos(const idVec3 *); + virtual float GetDistance(); + virtual void SetDistance(float); + virtual void GetOffset(idVec3 *); + virtual void SetOffset(const idVec3 *); + virtual const idAngles *GetAngles(); + virtual void SetAngles(const idAngles *); + virtual void CalculateViewParms(); + + idVec3 targetPos; + float distance; + idVec3 offset; + idAngles angles; + idAngles lastAngles; + int oldBindSet; + int numFrames; + idVec3 lastPos; + idVec3 lastTargetPos; + idVec3 cachedViewOrg; + idMat3 cachedViewAxis; +}; + +// IDA Local Type ordinal 14760; PDB kind: class. +class idEntityCamera : public idUtilityCamera +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34112. + virtual idTypeInfo *GetType(); + virtual ~idEntityCamera(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 HandleUserCmds(const usercmd_t *, const usercmd_t *); + virtual int InhibitFlags(); + virtual int InhibitButtons(); + virtual bool CanShowCrosshair(); + virtual bool InternalActivate(idEntity *); + virtual bool InternalDeactivate(); + virtual idEntity *GetTargetEntity(); + virtual void SetTargetEntity(idEntity *); + virtual void GetTargetPos(idVec3 *); + virtual void SetTargetPos(const idVec3 *); + virtual float GetDistance(); + virtual void SetDistance(float); + virtual void GetOffset(idVec3 *); + virtual void SetOffset(const idVec3 *); + virtual const idAngles *GetAngles(); + virtual void SetAngles(const idAngles *); + virtual void CalculateViewParms(); + + idEntityPtr targetEnt; + bool useViewOffset; + idVec3 viewOffset; + idVec3 lastEntityOrigin; +}; diff --git a/source/tungsten/game/entities/vehicle.h b/source/tungsten/game/entities/vehicle.h new file mode 100644 index 0000000..8c12d02 --- /dev/null +++ b/source/tungsten/game/entities/vehicle.h @@ -0,0 +1,818 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\vehicle.h +// Recovered logical types: 19 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1219; PDB kind: enum. +enum vehicleSeat_t : __int32 +{ + SEAT_DRIVER = 0x0, + SEAT_GUNNER = 0x1, + SEAT_MAX = 0x2, +}; + +// IDA Local Type ordinal 1644; PDB kind: enum. +enum vehicleType_t : __int32 +{ + VEHICLE_TYPE_NONE = 0x0, + VEHICLE_TYPE_BUGGY = 0x1, + VEHICLE_TYPE_MONARCH = 0x2, + VEHICLE_TYPE_CUPRINO = 0x3, + VEHICLE_TYPE_REGIME = 0x4, + VEHICLE_TYPE_ALL = 0x5, + VEHICLE_TYPE_MAX = 0x6, +}; + +// IDA Local Type ordinal 1665; PDB kind: enum. +typedef idAIScriptedAnimWeb::stateMarker_t idVehicle::animStateMarker_t; + +// IDA Local Type ordinal 14636; PDB kind: class. +class idVehicle : public idAnimatedEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34079. + virtual idTypeInfo *GetType(); + virtual ~idVehicle(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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 void Respawn(); + virtual bool EnterVehicle(idEntity *, vehicleSeat_t); + virtual bool ExitVehicle(int, bool, bool); + virtual float GetMaxSpeed(); + virtual float GetMaxReverseSpeed(); + virtual void UseAiProperties(bool); + virtual void UpdateDriverViewAngles(const usercmd_t *, const usercmd_t *); + virtual void InventoryAdded_Server(idInventoryItem *, int); + virtual idEntity *ThrowAttachedItem(idInventoryItem *); + virtual float GetHealth(); + virtual void SetHealth(const float); + virtual float GetMaxHealth(); + virtual void SetMaxHealth(const float); + virtual bool IncreaseHealth(const float); + virtual bool ZoomIn(); + virtual bool ZoomOut(); + + int lastDrawTime; + idList detachableItemsBaseList; + idStaticList detachableItems; + vehicleMaterialTheme_t materialTheme; + idStr normalSkin; + vehicleClass_t vehicleClass; + int respawnInGarageTime; + bool allowWeaponChange; + const idDeclInventory *inventoryItem; + float collisionImpulse; + float collisionVerticalImpulse; + int lastAiDifficultyRating; + idList eventAnimList; + idStaticList itemSkinList; + bool isUsable; + idList seatInfo; + idStr forceEntryTagName; + tagData_t forceEntryTagData; + idStr driverName; + idEntityPtr cachedPlayerDriver; + const idDeclInventory *keys; + idVehicleKey *playerKey; + __unaligned __declspec(align(1)) idVehicleKey tempPlayerKey; + idList playerRewardsForKilling; + idEntityPtr targetToActivateOnDeath; + idList startingInventory; + const idDeclVehicleUpgrade *tiresSpiked; + const idDeclVehicleUpgrade *tiresUpgraded; + const idDeclVehicleUpgrade *tiresUpgradedSpiked; + float damageAiSpeed; + bool provideDynamicCover; + const idMaterial *enterIcon; + idList startingWeapons; + bool hasInfiniteAmmo; + idAttachmentCollection attachments; + vehicleClan_t vehicleClan; + float health; + float maxHealth; + float mpMaxHealth; + float healthScaledDamage; + float overallDamageScale; + float maxArmoredHealth; + bool lastMaxArmoredHealthFromKey; + damageInfo_t lastDamage; + idArray aiTargetPos; + const idDeclEntityDef *armorPropDef; + const idDeclEntityDef *occupantDef; + const idDeclEntityDef *passengerOccupantDef; + bool allowExit; + bool giveRewardWhenKilled; + const idDeclInventory *alternateEngine; + int spikeDetachableFound; + idArray spikeDetachableIndex; + idAngles freeAngles; + idAngles currentViewAngles; + idAngles lastCarAngles; + idAngles minDriverViewAngles; + idAngles maxDriverViewAngles; + int wildSpinTime; + float viewAnglesDeltaPerc; + int quickTurnLastPressed; + int quickTurnTotalTime; + int quickTurnStartTime; + bool quickTurnActive; + int quickTurnDir; + int quickTurnLastSteerDir; + idAngles driverViewAngles; + idList,5> touching; + const idDeclAiEvent *attachedEventDecl[2]; + idHandle eventHandles[2]; + bool removeWhenDead; + idLinkList controlNode; + float rolloverForce; + idEntityPtr collisionDamageAttacker; + const idDeclDamage *collisionDamage; + int collisionDamageTime; + bool allowAmmoTransfer; + bool allowQuickItemTransfer; + const idDeclVehicleProps *vehicleProps; + bool cleanUpVehicleProps; + const idDeclVehicleDecalDamage *vehicleDecalDamage; + const idDeclVehicleWindowKit *vehicleWindowKit; + idVehicleWindow vehicleWindow; + float exitVehicleZDelta; + float zoom_fov_x; + idHandle influenceTrail; + idAnimator_VehicleCar vehicleAnimator; + idAnimator_Channel eventAnimator; + idAnimator_Channel eventAnimatorHands; + idAnimator_Channel eventAnimatorLegs; + idVehicleCoverMgr vehicleCover; + idVehicle::eventAnimSupport_t eventAnimSupport; + bool exitButtonDownOnEnter; + const idDeclRenderParm *rp_modelAngles; + float windowMovement; + float windowMovementScale; +}; + +// IDA Local Type ordinal 14674; PDB kind: struct. +struct __declspec(align(4)) idVehicle::eventAnimEntry_t +{ + idHandle animationHandle; + idHandle animationHandleHands; + idHandle animationHandleLegs; + idVehicleOccupant *legsOccupantDummy; + idAnimAliasRef animation; + idAnimAliasRef animationHands; + idAnimAliasRef animationLegs; + idEntityPtr perfectOriginRef; + idList,5> triggerEnter; + idList,5> triggerLeave; + idAtomicString cameraJoint; + const idDeclMD6 *handsModelDecl; + const idDeclMD6 *legsModelDecl; + const idDeclEntityDef *legsDummyDef; + int jumpToState; + int blendTime; + unsigned __int8 : 4; + __int8 turnOffPhysics : 1; + __int8 loop : 1; + __int8 useDeltaMovement : 1; + __int8 useAnimationOrigin : 1; +}; + +// IDA Local Type ordinal 14676; PDB kind: struct. +struct idVehicle::itemSkinRef_t +{ + const idDeclInventory *declInventory; + const idDeclSkins *declSkin; +}; + +// IDA Local Type ordinal 14680; PDB kind: struct. +struct idVehicle::seatInfo_t +{ + idStr tagName; + idRenderModel *model; + bool weaponAttach; + bool playerCanOccupy; + bool isEasilyThrown; + bool isFake; + idList,5> enterAnim; + idStr enterViaAnimRefStr; + idStr enterDstAnimRefStr; + idList,5> exitAnim; + idStr exitViaAnimRefStr; + idStr exitDstAnimRefStr; + idEntityPtr exitSnapToEntity; + bool exitHideEntity; + idEntityPtr vehicleOccupant; +}; + +// IDA Local Type ordinal 14687; PDB kind: struct. +struct idVehicleKey::armorInfo_t +{ + const idDeclInventory *decl; + float health; +}; + +// IDA Local Type ordinal 14690; PDB kind: class. +class idVehicleKey : public idInventoryItem +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34063. + virtual idTypeInfo *GetType(); + virtual ~idVehicleKey(); + 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 Init(const idDeclInventory *); + virtual void Merge(idPresentable *, idInventoryCollection *, const idDeclInventory *); + virtual void Hide(); + virtual void Show(); + virtual void OnEquip(const idPresentable *, idFXManager *); + virtual void OnUnequip(const idPresentable *, idFXManager *); + virtual void OnClone(const idInventoryItem *); + virtual int GetCount(); + virtual bool CanUse(idActor *); + virtual bool Use(idActor *); + virtual bool CanUseInVehicle(idActor *); + virtual bool ClientUse(idPresentablePlayer *); + virtual void Serialize(idSerializer *, idInventoryCollection *); + virtual void SerializeNonPrediction(idSerializer *, idInventoryCollection *); + virtual void ClientUpdate(); + virtual void GetPickupHudInfo(const idEntity *, idPickupHudInfo *); + + bool initArmorFromVehicle; + bool doTotalRepairOnSpawn; + float repairCost; + float health; + float maxHealth; + prestige_t prestige; + performanceStats_t performanceStats; + bool upgradeAvailable; + idList equippedUpgrades; + int currentWeaponGroup; + int numVehicleKills; + idList,5> validUpgrades; + idList baseParts; + garageList_t vehicleGarage; + bool enterVehicle; + bool shouldGarageView; + idVec3 position; + idMat3 orientation; + idStr referenceVehicleName; + idEntityPtr garageBay; + idStaticList armorInfo; + idStaticList upgradedArmorList; +}; + +// IDA Local Type ordinal 14691; PDB kind: struct. +struct idVehicle::playerRewardForKilling_t +{ + const idDeclInventory *reward; + const idDeclJob *job; +}; + +// IDA Local Type ordinal 14731; PDB kind: struct. +struct idVehicle::eventAnimSupport_t +{ + idQuat orgRotation; + idVec3 orgOrigin; + idQuat nextRotation; + idVec3 nextOrigin; + int animStartFrame; + int animUpdatedFrame; + int currentState; + int queuedAnimState; + int queuedBlendTime; + idList prevContents; + idList prevClipMasks; + idList prevWheelClipMasks; +}; + +// IDA Local Type ordinal 15982; PDB kind: struct. +struct idVehicle_Car::vquInfo_t +{ + int numActive; + int deactivateTime; +}; + +// IDA Local Type ordinal 15983; PDB kind: struct. +struct idVehicle_Car::vehicleSoundState_t +{ + bool engineRunning; + int nextZoomTime; + int nextBackfireTime; + int nextBurpTime; + bool isCruising; + int fadeMusicTime; +}; + +// IDA Local Type ordinal 15984; PDB kind: struct. +struct idVehicle_Car::vehicleDamage_t +{ + const idDeclDamage *vehicle; + const idDeclDamage *runOver; + const idDeclDamage *world; + const idDeclDamage *prop; + const idDeclDamage *explode; + const idDeclDamage *fire; + const idDeclDamage *rcbombDecl; + const idDeclDamage *rcbombSplashDecl; + const idDeclDamage *spikeDamage; + const idDeclDamage *collisionDeathDecl; +}; + +// IDA Local Type ordinal 15985; PDB kind: struct. +struct idVehicle_Car::vehicleHitData_t +{ + idEntityPtr otherCar; + int nextCollisionTime; +}; + +// IDA Local Type ordinal 15987; PDB kind: class. +class idVehicle_Car : public idVehicle +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34138. + virtual idTypeInfo *GetType(); + virtual ~idVehicle_Car(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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 void Respawn(); + virtual bool EnterVehicle(idEntity *, vehicleSeat_t); + virtual bool ExitVehicle(int, bool, bool); + virtual float GetMaxSpeed(); + virtual float GetMaxReverseSpeed(); + virtual void UseAiProperties(bool); + virtual void UpdateDriverViewAngles(const usercmd_t *, const usercmd_t *); + virtual void InventoryAdded_Server(idInventoryItem *, int); + virtual idEntity *ThrowAttachedItem(idInventoryItem *); + virtual float GetHealth(); + virtual void SetHealth(const float); + virtual float GetMaxHealth(); + virtual void SetMaxHealth(const float); + virtual bool IncreaseHealth(const float); + virtual bool ZoomIn(); + virtual bool ZoomOut(); + + idStrId voiceOverNameString; + int damageSandwichFunTime[2]; + idVehicle_Car::aiProperties_t aiProperties; + idVehicle_Car::aiProperties_t savedProperties; + bool savedPropertiesUpdated; + bool isWasteland2; + idVec3 baseCOG; + int frictionOverrideTime; + float frictionOverrideFront; + float frictionOverrideRear; + idVehicle_Car::vquInfo_t vquInfo[11]; + idEntityPtr enterTarget; + int ghostEndTime; + int pitStartTime; + idEntity *pitLastEntity; + idVec3 lastOrigin; + float magnetRange; + float previousCompression; + idVehicle_Car::vehicleSoundState_t soundState; + bool hideSteeringWheel; + bool dropItemsWhenKilled; + bool ghostCollision; + const idDeclEntityDef *boostItem; + const idDeclEntityDef *ammoItem; + const idDeclEntityDef *healthItem; + idVehicle_Car::vehicleDamage_t damages; + bool playerWasOccupant; + int attackOverTime; + const idDeclEntityDef *rcBombDropItem; + const idDeclAiEvent *vehicleSoundEventDecl; + const idDeclAiEvent *explosionEventDecl; + idEntityPtr cinimaticViewPoint; + bool reducedRCFadeBack; + int savedSurfaceType; + bool canBePitted; + bool specialDeathActive; + int specialDeathStartTime; + bool destroyed; + bool specialDeathCollision; + specialDeath_t specialDeath; + idEntityPtr specialDeathAttacker; + bool forceInstantDeath; + idStr callOnCollision; + const idDeclVehicleUnlock *equippedUnlocks[6]; + vehicleType_t vehicleType; + idVehicle_Megabooster boostpad; + int boostlevel; + int movePlayerToVehicle; + idAngles cameraBreath; + idAngles cameraBreathPrev; + int cameraBreathNextUpdate; + float lastThinkHealth; + float constantCollisionScale; + idList hitList; + bool droppedByPlayer; + idEntityPtr controllingPlayer; + idLinkList rcControlNode; +}; + +// IDA Local Type ordinal 17521; PDB kind: class. +class idVehicle_Jump : public idVehicleQuickItem +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34072. + virtual idTypeInfo *GetType(); + virtual ~idVehicle_Jump(); + 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 Init(const idDeclInventory *); + virtual void Merge(idPresentable *, idInventoryCollection *, const idDeclInventory *); + virtual void Hide(); + virtual void Show(); + virtual void OnEquip(const idPresentable *, idFXManager *); + virtual void OnUnequip(const idPresentable *, idFXManager *); + virtual void OnClone(const idInventoryItem *); + virtual int GetCount(); + virtual bool CanUse(idActor *); + virtual bool Use(idActor *); + virtual bool CanUseInVehicle(idActor *); + virtual bool ClientUse(idPresentablePlayer *); + virtual void Serialize(idSerializer *, idInventoryCollection *); + virtual void SerializeNonPrediction(idSerializer *, idInventoryCollection *); + virtual void ClientUpdate(); + virtual void GetPickupHudInfo(const idEntity *, idPickupHudInfo *); + virtual bool Use(idPresentableVehicle *); + virtual void Think(idPresentable *); + virtual void Think(); + virtual void VehicleDied(); + virtual int GetCooldown(); + +}; + +// IDA Local Type ordinal 17539; PDB kind: class. +class idVehicle_EMP : public idVehicleQuickItem +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34069. + virtual idTypeInfo *GetType(); + virtual ~idVehicle_EMP(); + 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 Init(const idDeclInventory *); + virtual void Merge(idPresentable *, idInventoryCollection *, const idDeclInventory *); + virtual void Hide(); + virtual void Show(); + virtual void OnEquip(const idPresentable *, idFXManager *); + virtual void OnUnequip(const idPresentable *, idFXManager *); + virtual void OnClone(const idInventoryItem *); + virtual int GetCount(); + virtual bool CanUse(idActor *); + virtual bool Use(idActor *); + virtual bool CanUseInVehicle(idActor *); + virtual bool ClientUse(idPresentablePlayer *); + virtual void Serialize(idSerializer *, idInventoryCollection *); + virtual void SerializeNonPrediction(idSerializer *, idInventoryCollection *); + virtual void ClientUpdate(); + virtual void GetPickupHudInfo(const idEntity *, idPickupHudInfo *); + virtual bool Use(idPresentableVehicle *); + virtual void Think(idPresentable *); + virtual void Think(); + virtual void VehicleDied(); + virtual int GetCooldown(); + +}; + +// IDA Local Type ordinal 18919; PDB kind: struct. +struct idVehicle::SetExitPosition::__l2::exit_spots +{ + idVec2 pos; + vehicleSeat_t seat; +}; diff --git a/source/tungsten/game/entities/vehiclemountedturret.h b/source/tungsten/game/entities/vehiclemountedturret.h new file mode 100644 index 0000000..ea4e55d --- /dev/null +++ b/source/tungsten/game/entities/vehiclemountedturret.h @@ -0,0 +1,225 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\vehiclemountedturret.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1654; PDB kind: enum. +enum idVehicleMountedTurret::weapon_t : __int32 +{ + WEAPON_MACHINEGUN = 0x0, + WEAPON_ROCKETLAUNCHER = 0x1, + WEAPON_MAX = 0x2, +}; + +// IDA Local Type ordinal 1655; PDB kind: enum. +enum idVehicleMountedTurret::seatState_t : __int32 +{ + SEATSTATE_LOWERED = 0x0, + SEATSTATE_RAISED = 0x1, + SEATSTATE_MAX = 0x2, +}; + +// IDA Local Type ordinal 18912; PDB kind: class. +class idVehicleMountedTurret : public idAnimatedEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18913. + virtual idTypeInfo *GetType(); + virtual ~idVehicleMountedTurret(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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(); + + const idDeclAnimWeb *webDecl; + const idDeclEntityDef *gunnerDef; + float slerpRate; + idJointName yawJointName; + idJointName pitchJointName; + const idDeclWeapon *weaponDecl; + idFaction faction; + idStrRenderModel shieldModels[2]; + idStr shieldModelTags[2]; + idClipModel *shieldClipModels[2]; + float heatGainPerShot; + float heatLostPerFrame; + idAnimator_AnimWeb animWeb; + idEntityPtr gunner; + idVec3 targetPos; + idQuat lastYawRot; + idQuat lastPitchRot; + idIndex yawJoint; + idIndex pitchJoint; + idInventoryCollection inventory; + idWeapon *weapon; + idVehicleMountedTurret::weapon_t selectedWeapon; + idVehicleMountedTurret::seatState_t seatState; + bool hasValidTarget; + bool safeFireMode; + idAttachmentCollection attachments; + float currentHeat; +}; diff --git a/source/tungsten/game/entities/vehicleoccupants.h b/source/tungsten/game/entities/vehicleoccupants.h new file mode 100644 index 0000000..700d9dc --- /dev/null +++ b/source/tungsten/game/entities/vehicleoccupants.h @@ -0,0 +1,875 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\vehicleoccupants.h +// Recovered logical types: 9 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1649; PDB kind: enum. +enum idVehicleOccupant_ATV::bumpAnims_t : __int32 +{ + BUMPANIM_FORWARD = 0x0, + BUMPANIM_BACK = 0x1, + BUMPANIM_LEFT = 0x2, + BUMPANIM_RIGHT = 0x3, + BUMPANIM_UP = 0x4, + BUMPANIM_DOWN = 0x5, + BUMPANIM_MAX = 0x6, +}; + +// IDA Local Type ordinal 1652; PDB kind: enum. +enum idVehicleOccupant::lookAnim_t : __int32 +{ + LOOK_LEFT = 0x0, + LOOK_CENTER = 0x1, + LOOK_RIGHT = 0x2, + LOOK_MAX = 0x3, +}; + +// IDA Local Type ordinal 1653; PDB kind: enum. +enum idVehicleOccupant_Car::reactionAnimType_t : __int32 +{ + REACTION_FORWARD = 0x0, + REACTION_BACK = 0x1, + REACTION_LEFT = 0x2, + REACTION_RIGHT = 0x3, + REACTION_MAX = 0x4, +}; + +// IDA Local Type ordinal 14598; PDB kind: struct. +struct vehicleOccupant_t::flags_t +{ + unsigned __int8 : 6; + __int8 allowSeatSwap : 1; + __int8 allowExit : 1; +}; + +// IDA Local Type ordinal 14599; PDB kind: struct. +struct __declspec(align(4)) vehicleOccupant_t +{ + idPresentablePtr presentable; + idPresentablePtr visual; + idPresentablePtr npc; + vehicleOccupant_t::flags_t flags; +}; + +// IDA Local Type ordinal 14639; PDB kind: class. +class __declspec(align(8)) idVehicleOccupant : public idAnimatedEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34064. + virtual idTypeInfo *GetType(); + virtual ~idVehicleOccupant(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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 void WasTeleported(); + virtual void SetLookHeadTrackingGroup(const char *, const int); + virtual bool IsLooking(); + virtual void ClearLook(const int); + virtual void SetLookPoint(const idVec3 *, const int); + virtual const idVec3 *GetLookPoint(); + virtual void SetLookEntity(const idEntity *, const aimPoint_t, const int); + virtual const idEntity *GetLookEntity(); + virtual aimPoint_t GetLookAimPoint(); + virtual void GetView(idVec3 *, idMat3 *); + virtual void InternalInitAnimation(); + virtual void InternalEnterVehicle(idVehicle *, idTreeAnimator *, const char *); + virtual void InternalExitVehicle(); + virtual void InternalUpdateAnimations(const float); + + idEntityPtr vehicle; + idFaceMgr faceMgr; + int nextVoiceTime; + int exitDelayTime; + idEntityPtr lookingAt; + int lookAtTime; + float lookAtWeight; + int forceLookAtTime; + idTreeAnimator *tagAnimator; + tagData_t tagData; + idAnimator_AF afProperties; + idEntityPtr thrownEntity; + idPlayer *linkedPlayer; + bool thrown; + bool usesFaceManager; + int timeStartThrown; + idStrId subtitleName; + idVehicleOccupantPhysicsCallbacks vehicleOccupantPhysicsCallbacks; +}; + +// IDA Local Type ordinal 18902; PDB kind: class. +class __declspec(align(8)) idVehicleOccupant_Car : public idVehicleOccupant +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34136. + virtual idTypeInfo *GetType(); + virtual ~idVehicleOccupant_Car(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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 void WasTeleported(); + virtual void SetLookHeadTrackingGroup(const char *, const int); + virtual bool IsLooking(); + virtual void ClearLook(const int); + virtual void SetLookPoint(const idVec3 *, const int); + virtual const idVec3 *GetLookPoint(); + virtual void SetLookEntity(const idEntity *, const aimPoint_t, const int); + virtual const idEntity *GetLookEntity(); + virtual aimPoint_t GetLookAimPoint(); + virtual void GetView(idVec3 *, idMat3 *); + virtual void InternalInitAnimation(); + virtual void InternalEnterVehicle(idVehicle *, idTreeAnimator *, const char *); + virtual void InternalExitVehicle(); + virtual void InternalUpdateAnimations(const float); + + idAnimator_Synced headAnimator; + idAnimator_Paused steeringAnimator; + idAnimator_Channel passengerAnimator; + idAnimator_EndAdditiveChannels additiveShakeAnimator; + idAnimator_Paused bumpLeftAnimator; + idAnimator_Paused bumpForwardAnimator; + idAnimator_TorsoTracker torsoAnimator; + idAnimator_Pain painAnimator; + idList,5> painAnimations; + idHandle headAnims[3]; + idHandle steeringAnim; + idHandle passengerAnim; + idHandle gunnerIdleAnim; + idHandle additiveShakeAnim; + idHandle reactionAnimHandles[4]; + idAtomicString cameraJointName; + float steeringMaxAngle; + idDeclDamage::damageType_t painReactionDamagetypes; + float numSteeringFrames; + idVec3 lookPoint; + idEntityPtr lookEntity; + idSpring reactionSpring; + aimPoint_t lookAimPoint; + const idMD6Anim *reactionAnims[4]; + idIndex cameraJointIndex; + unsigned __int8 : 4; + __int8 painAnimsEnabled : 1; + __int8 additiveShakeEnabled : 1; + __int8 reactionEnabled : 1; + __int8 isLooking : 1; +}; + +// IDA Local Type ordinal 18906; PDB kind: class. +class __declspec(align(4)) idVehicleOccupant_ATV : public idVehicleOccupant +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34135. + virtual idTypeInfo *GetType(); + virtual ~idVehicleOccupant_ATV(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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 void WasTeleported(); + virtual void SetLookHeadTrackingGroup(const char *, const int); + virtual bool IsLooking(); + virtual void ClearLook(const int); + virtual void SetLookPoint(const idVec3 *, const int); + virtual const idVec3 *GetLookPoint(); + virtual void SetLookEntity(const idEntity *, const aimPoint_t, const int); + virtual const idEntity *GetLookEntity(); + virtual aimPoint_t GetLookAimPoint(); + virtual void GetView(idVec3 *, idMat3 *); + virtual void InternalInitAnimation(); + virtual void InternalEnterVehicle(idVehicle *, idTreeAnimator *, const char *); + virtual void InternalExitVehicle(); + virtual void InternalUpdateAnimations(const float); + + idHandle sweepLeftRightAlias; + idHandle sweepUpDownAlias; + idHandle bumpAnimAliases[6]; + const idDeclReachIK *declReachIK; + idAnimator_Paused steeringAnimator; + idAnimator_Paused speedAnimator; + idAnimator_Paused bumpLeftAnimator; + idAnimator_Paused bumpForwardAnimator; + idAnimator_Paused bumpUpAnimator; + idAnimator_Paused boostAnimator; + idAnimator_ReachIK reachIKAnimator; + idAnimator_AF ragdollAnimator; + tagData_t leftTagData; + tagData_t rightTagData; + idSpring bumpSpring; + bool wasBoosting; +}; + +// IDA Local Type ordinal 21600; PDB kind: class. +class idVehicleOccupant_Event : public idVehicleOccupant +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34137. + virtual idTypeInfo *GetType(); + virtual ~idVehicleOccupant_Event(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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 void WasTeleported(); + virtual void SetLookHeadTrackingGroup(const char *, const int); + virtual bool IsLooking(); + virtual void ClearLook(const int); + virtual void SetLookPoint(const idVec3 *, const int); + virtual const idVec3 *GetLookPoint(); + virtual void SetLookEntity(const idEntity *, const aimPoint_t, const int); + virtual const idEntity *GetLookEntity(); + virtual aimPoint_t GetLookAimPoint(); + virtual void GetView(idVec3 *, idMat3 *); + virtual void InternalInitAnimation(); + virtual void InternalEnterVehicle(idVehicle *, idTreeAnimator *, const char *); + virtual void InternalExitVehicle(); + virtual void InternalUpdateAnimations(const float); + +}; diff --git a/source/tungsten/game/entities/vehicleweapon.h b/source/tungsten/game/entities/vehicleweapon.h new file mode 100644 index 0000000..32f5292 --- /dev/null +++ b/source/tungsten/game/entities/vehicleweapon.h @@ -0,0 +1,213 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\vehicleweapon.h +// Recovered logical types: 7 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1648; PDB kind: enum. +enum vehicleWeaponAnimState_t : __int32 +{ + VW_ANIM_NONE = 0x0, + VW_ANIM_IDLE = 0x1, + VW_FIRST_WEAPON_CHANGE_ANIM = 0x2, + VW_ANIM_ENTRY = 0x2, + VW_ANIM_EXIT = 0x3, + VW_ANIM_MANNED_IDLE = 0x4, + VW_ANIM_MANNED_ENTRY = 0x5, + VW_ANIM_MANNED_EXIT = 0x6, + VW_ANIM_GUNNER_ENTER = 0x7, + VW_ANIM_GUNNER_EXIT = 0x8, + VW_LAST_WEAPON_CHANGE_ANIM = 0x9, + VW_ANIM_FIRE = 0xA, + VW_ANIM_MAX = 0xB, +}; + +// IDA Local Type ordinal 2081; PDB kind: enum. +enum idDeclVehicleWeapon::vehicleWeaponType_t : __int32 +{ + VEHICLEWEAPON_NONE = 0x0, + VEHICLEWEAPON_MG = 0x1, + VEHICLEWEAPON_MISSILE = 0x2, + VEHICLEWEAPON_HEAVY_MG = 0x3, + VEHICLEWEAPON_ROCKET = 0x4, + VEHICLEWEAPON_NAIL_GUN = 0x5, + VEHICLEWEAPON_RAIL_GUN = 0x6, + VEHICLEWEAPON_PULSE_CANNON = 0x7, + VEHICLEWEAPON_CLUSTER_BOMB = 0x8, +}; + +// IDA Local Type ordinal 14733; PDB kind: class. +class idVehicleWeapon : public idClass +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14740. + virtual idTypeInfo *GetType(); + virtual ~idVehicleWeapon(); + + idPresentableVehicle *presentableVehicleCar; + idVehicle *vehicle; + idTreeAnimator *treeAnimator; + idMD6LeafPlay leafPlay; + idWeapon *weapon; + idVehicleWeapon *dependentWeapon; + idMat3 targetAxis; + idVec3 jointOrigin; + idMat3 jointMat; + idVec3 spinJointOrigin; + idMat3 spinJointMat; + idIndex pitchJointIndex; + idIndex yawJointIndex; + idIndex rollJointIndex; + idVec3 lastTargetPos; + idMat3 lastWeaponAxis; + idAngles targetAngles; + idHandle attachHandle; + float rollDelta; + bool spinupFire; + bool yawLockedToVehicle; + int animCount; + idArray animQueue; + idVehicleWeapon::animInfo_t animState; + idArray animTable; + int launchDelayTime; + float rollAngle; + float maxRollSpeed; + int firingTime; + int sequenceFired; + soundChannel_t fireSoundChannel; + idPresentablePtr presentable; + idPresentablePtr lastPresentable; + idVehicleWeapon *remoteFireWeapon; + int remoteFireTime; + idPresentablePtr remoteFireAttacker; + bool remoteFireLockedOn; + idPresentablePtr remoteFireTarget; + float remoteFireDamageScale; + float remoteFireAddSpread; + bool remoteFireInfiniteAmmo; + idLaserSight laserSight; + bool hasClearShot; + idClipQuery deferredWeaponTrace; +}; + +// IDA Local Type ordinal 14734; PDB kind: struct. +struct __declspec(align(2)) idVehicleWeapon::animInfo_t +{ + vehicleWeaponAnimState_t state; + idHandle aliasHandle; + bool looping; +}; + +// IDA Local Type ordinal 17533; PDB kind: class. +class idVehicle_QuickUseWeapon : public idVehicleQuickItem +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34074. + virtual idTypeInfo *GetType(); + virtual ~idVehicle_QuickUseWeapon(); + 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 Init(const idDeclInventory *); + virtual void Merge(idPresentable *, idInventoryCollection *, const idDeclInventory *); + virtual void Hide(); + virtual void Show(); + virtual void OnEquip(const idPresentable *, idFXManager *); + virtual void OnUnequip(const idPresentable *, idFXManager *); + virtual void OnClone(const idInventoryItem *); + virtual int GetCount(); + virtual bool CanUse(idActor *); + virtual bool Use(idActor *); + virtual bool CanUseInVehicle(idActor *); + virtual bool ClientUse(idPresentablePlayer *); + virtual void Serialize(idSerializer *, idInventoryCollection *); + virtual void SerializeNonPrediction(idSerializer *, idInventoryCollection *); + virtual void ClientUpdate(); + virtual void GetPickupHudInfo(const idEntity *, idPickupHudInfo *); + virtual bool Use(idPresentableVehicle *); + virtual void Think(idPresentable *); + virtual void Think(); + virtual void VehicleDied(); + virtual int GetCooldown(); + +}; + +// IDA Local Type ordinal 18316; PDB kind: struct. +struct idDeclVehicleWeapon::anims_t +{ + idStr idle; + idStr entry; + idStr exit; + idStr fire; + idStr mannedIdle; + idStr mannedEntry; + idStr mannedExit; + idStr gunnerEnter; + idStr gunnerExit; +}; + +// IDA Local Type ordinal 18317; PDB kind: class. +class idDeclVehicleWeapon : public idDeclWeapon +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34110. + virtual ~idDeclVehicleWeapon(); + 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(); + + idDeclVehicleWeapon::anims_t anims; + idStr pitchJointName; + idStr yawJointName; + idStr spinJointName; + float spinDir; + int spinAxis; + bool isDependent; + idStr playerSeatWeapon; + idStr transitionSeat; + idStr zoomSeat; + idStr npcSeatWeapon; + const idSoundShader *switchToSound; + const idSoundShader *beginFireSound; + const idSoundShader *endFireSound; + const idSoundShader *beginDryFireSound; + const idSoundShader *dryFireSound; + const idSoundShader *quadFireLoop; + bool canAttackActors; + bool useLaserSight; + idDeclVehicleWeapon *remoteFireWeapon; + float remoteWeaponDelay; + bool isRemoteFired; + float aiMinDelayTimeSecs; + float aiMaxDelayTimeSecs; + float aiMinFireTimeSecs; + float aiMaxFireTimeSecs; + idAngles minAngles; + idAngles maxAngles; + idAngles minAnglesAtWeapon; + idAngles maxAnglesAtWeapon; + idAngles aiMinAngles; + idAngles aiMaxAngles; + bool playerRotatable; + float rotateSpeed; + idVec3 viewOffset; + idDeclVehicleWeapon::vehicleWeaponType_t vehicleWeaponType; + float lockAimAssist; + bool disableHudTarget; + idVec3 positionOffsetHack; +}; diff --git a/source/tungsten/game/entities/volume.h b/source/tungsten/game/entities/volume.h new file mode 100644 index 0000000..b06f413 --- /dev/null +++ b/source/tungsten/game/entities/volume.h @@ -0,0 +1,185 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\volume.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 4542; PDB kind: struct. +struct D3DVolume : D3DResource +{ + D3DBaseTexture *Parent; + unsigned __int32 : 22; + unsigned __int32 ArrayIndex : 6; + unsigned __int32 MipLevel : 4; +}; + +// IDA Local Type ordinal 14361; PDB kind: class. +class __declspec(align(8)) idVolume : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34080. + virtual idTypeInfo *GetType(); + virtual ~idVolume(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + idList,5> touching; + unsigned __int8 : 7; + __int8 touchable : 1; + bool startEnabled; +}; diff --git a/source/tungsten/game/entities/wallclimb.h b/source/tungsten/game/entities/wallclimb.h new file mode 100644 index 0000000..19d7122 --- /dev/null +++ b/source/tungsten/game/entities/wallclimb.h @@ -0,0 +1,355 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\wallclimb.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1238; PDB kind: enum. +enum idWallClimb::wallClimbEndPointType_t : __int32 +{ + WALLCLIMB_ENDPOINT_NONE = 0x0, + WALLCLIMB_ENDPOINT_UP = 0x1, + WALLCLIMB_ENDPOINT_DOWN = 0x2, +}; + +// IDA Local Type ordinal 17959; PDB kind: class. +class idWallClimb : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17960. + virtual idTypeInfo *GetType(); + virtual ~idWallClimb(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + idEntityPtr anchorPoint; + idEntityPtr climbOffTarget; + float maxMoveAngle; + float sidewaysSpeed; + float maxDeltaYaw; + float maxDeltaPitch; + idList,5> climbOffTriggers; + idVec3 direction; + float tanMaxMoveAngle; +}; + +// IDA Local Type ordinal 18871; PDB kind: class. +class __declspec(align(8)) idUseWallClimb : public idUse +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18872. + virtual idTypeInfo *GetType(); + virtual ~idUseWallClimb(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + idEntityPtr targetPositionEntity; +}; diff --git a/source/tungsten/game/entities/waterentity.h b/source/tungsten/game/entities/waterentity.h new file mode 100644 index 0000000..6b35f5b --- /dev/null +++ b/source/tungsten/game/entities/waterentity.h @@ -0,0 +1,600 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\waterentity.h +// Recovered logical types: 10 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1634; PDB kind: enum. +enum idDynamicWaterEntity::idDisturbanceType_t : __int32 +{ + DISTURBANCE_RANDOM_DROPS = 0x0, + DISTURBANCE_WAVES = 0x1, + DISTURBANCE_NONE = 0x2, +}; + +// IDA Local Type ordinal 18846; PDB kind: class. +class idWaterEntity : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18847. + virtual idTypeInfo *GetType(); + virtual ~idWaterEntity(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + float density; + float viscosity; + idVec3 current; + const idDeclDamage *damage; + idEntityPtr loot; + const idDeclEnv *envWaterEffects; + surfTypes_t surfTypeOverride; + const idDeclDamage *damageDecl; + idBuoyancy buoyancy; +}; + +// IDA Local Type ordinal 18848; PDB kind: struct. +struct idStaticWaterEntity::wave_t +{ + float startTime; + float life; + float fade; + float angleX; + float angleY; +}; + +// IDA Local Type ordinal 18849; PDB kind: struct. +struct idStaticWaterEntity::waveProperties_t +{ + bool useWave; + float amplitude; + float waveLength; + float speed; + float angle; +}; + +// IDA Local Type ordinal 18850; PDB kind: struct. +struct idStaticWaterEntity::waveParms_t +{ + float lifeMin; + float lifeMax; + float fade; +}; + +// IDA Local Type ordinal 18851; PDB kind: class. +class __declspec(align(8)) idStaticWaterEntity : public idWaterEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18852. + virtual idTypeInfo *GetType(); + virtual ~idStaticWaterEntity(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + idStaticWaterEntity::wave_t waves[4]; + idRandom2 waveRandom; + idStaticWaterEntity::waveProperties_t waveProperties[4]; + idStaticWaterEntity::waveParms_t waveParms; + const idDeclRenderParm *rp_waveDirX; + const idDeclRenderParm *rp_waveDirY; + const idDeclRenderParm *rp_waveFreq; + const idDeclRenderParm *rp_waveAmp; + const idDeclRenderParm *rp_wavePhase; +}; + +// IDA Local Type ordinal 18856; PDB kind: struct. +struct idDynamicWaterEntity::waterInteraction_t +{ + float maxMagnitude; + float maxRadius; +}; + +// IDA Local Type ordinal 18857; PDB kind: struct. +struct idDynamicWaterEntity::waveParms_t +{ + bool useWave; + float amplitude; + float waveLength; + float speed; + float angle; + float exponent; +}; + +// IDA Local Type ordinal 18868; PDB kind: struct. +struct idDynamicWaterEntity::waterIlluminationTest_t +{ + idVec3 pos; + float radius; + int startTime; + int endTime; +}; + +// IDA Local Type ordinal 18869; PDB kind: class. +class __declspec(align(4)) idDynamicWaterEntity : public idWaterEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18870. + virtual idTypeInfo *GetType(); + virtual ~idDynamicWaterEntity(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + float spacing; + float speed; + float damping; + const idMaterial *material; + idStr imgName; + idDynamicWaterEntity::waterInteraction_t waterInteraction; + idDynamicWaterEntity::idDisturbanceType_t disturbanceType; + int numDisturbances; + float disturbanceAmount; + idDynamicWaterEntity::waveParms_t waveParms[4]; + idRenderModelWaterSurface *waterModel; + float angleX[4]; + float angleY[4]; + float frequency[4]; + idDynamicWaterEntity::waterIlluminationTest_t waterIllumination[4]; + int nextWaterIlluminationTest; + bool allowDormancy; +}; diff --git a/source/tungsten/game/entities/weaponstatic.h b/source/tungsten/game/entities/weaponstatic.h new file mode 100644 index 0000000..e1abf09 --- /dev/null +++ b/source/tungsten/game/entities/weaponstatic.h @@ -0,0 +1,308 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\weaponstatic.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15533; PDB kind: struct. +struct weaponStats_t +{ + const idDecl *decl; + int fired; + int accHits; + int hitEnemy; + int killedEnemy; + float damageEnemy; + int headshotEnemy; + int headshotEnemyKills; + int hitFriendly; + int killedFriendly; + float damageFriendly; + int headshotFriendly; + int headshotFriendlyKills; + int actorsKilled; + int vehiclesKilled; + int breakablesDestroyed; + int directHit; + int hitObject; + int damageGeneral; + int hitVehicle; + int hitVehicleInAir; +}; + +// IDA Local Type ordinal 18835; PDB kind: class. +class __declspec(align(8)) idProp_WeaponStatic : public idProp_Static +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18838. + virtual idTypeInfo *GetType(); + virtual ~idProp_WeaponStatic(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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 void GetUseLocation(const idActor *, idVec3 *); + virtual usableState_t GetOnlineUsableState(); + virtual void Shoot(bool, bool); + virtual float GetHealth(); + virtual void SetHealth(const float); + virtual float GetMaxHealth(); + virtual void SetMaxHealth(const float); + + idStr nameYawJoint; + idStr namePitchJoint; + const idDeclWeapon *weaponDecl; + const idDeclAmmo *playerAmmoDecl; + const idDeclAmmo *aiAmmoDecl; + float turnSpeed; + float minPitch; + float maxPitch; + float minYaw; + float maxYaw; + float maxAIYaw; + float maxRange; + float minRange; + float lookConeDegrees; + float travelSafetyMargin; + float rangeSafetyMargin; + float reserveRadiusFeet; + float viewFov; + bool playerDeferredFire; + idList armourPieces; + idWeapon *weapon; + idEntityPtr user; + idIndex jointYaw; + idIndex jointPitch; + idMat3 lookAt; + idMat3 prevLookAt; + idVec3 anglesOffset; + idAnimator_JointMod jointModAnimator; + int turning; + bool shooting; + bool enabled; + bool blockCoolDown; + int coolDownTime; + float windupTimer; + float currentHealth; + int barrelIndex; + int infopropIndex; + int muzzleTagIndex; + int cameraTagIndex; + int ironSightTagIndex; + int useTagIndex; + float windupTime; + float health; + idList barrels; + bool fireInOrder; + const idSoundShader *sndTurning; + const idSoundShader *sndFireLoop; + const idSoundShader *sndFireStop; + const idSoundShader *sndOverheat; + idRenderModel *deadModel; + float clipForwardAmount; + int heatPerSecFiring; + int heatCooledPerSec; + int maxHeat; + int coolHeat; + float coolDownDelay; + int blockCoolDownUntil; + int aiHeatPerSecFiring; + int aiHeatCooledPerSec; + int aiMaxHeat; + int aiCoolHeat; + const idDeclParticle *overheatParticle; + idList attachmentDefs; + unsigned __int8 : 3; + __int8 useEllipticLimit : 1; + __int8 disableCrosshair : 1; + __int8 noManualExit : 1; + __int8 removeUser : 1; + __int8 damageOccupant : 1; + idAttachmentCollection attachments; + idList,5> exitTargets; + idEntityPtr splinePath; + idCurve_Spline *spline; + float currentSplinePos; + int lastUpdateTime; +}; + +// IDA Local Type ordinal 18836; PDB kind: class. +class idWeaponStatic_Armour +{ +public: + idRenderModel *renderModel; + idRenderModel *brokenModel; + idStrClipModel clipModel; + idJointName joint; + float health; + bool takesDamage; + bool causesImmunity; + idPhysics *physicsObj; + idPresentable *presentable; + idIndex jointIndex; + float currentHealth; + int brokenTimestamp; +}; diff --git a/source/tungsten/game/entities/worlddestructibleentity.h b/source/tungsten/game/entities/worlddestructibleentity.h new file mode 100644 index 0000000..e7c0b90 --- /dev/null +++ b/source/tungsten/game/entities/worlddestructibleentity.h @@ -0,0 +1,197 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\worlddestructibleentity.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 18820; PDB kind: struct. +struct idWorldDestructibleEntity::destructiblePiece_t +{ + float health; + int timeWhenBroken; + const idDeclDestructiblePieceInfo::pieceInfo_t *pieceInfo; +}; + +// IDA Local Type ordinal 18831; PDB kind: class. +class __declspec(align(8)) idWorldDestructibleEntity : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18832. + virtual idTypeInfo *GetType(); + virtual ~idWorldDestructibleEntity(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + float health; + float firstBreakHealthPercentage; + float totalBreakHealthPercentage; + float noClipHealthPercentage; + bool canBeDamagedByPlayer; + idList destructiblePieces; + const idDeclDestructiblePieceInfo *destructiblePieceDef; + float maxHealth; + int numPiecesBroken; + int numPiecesBrokenThisFrame; + int numPiecesThatUseOverallHealth; + float nextPieceBreakHealth; + idList,5> activeDecals; + idPhysics_StaticMulti physicsObj; + idClipModel *staticBaseClipModel; + idEffectPhysicsBreakable breakablePhysics; + idRenderModelDiscreteAnimation *breakableModel; +}; diff --git a/source/tungsten/game/entities/worldspawn.h b/source/tungsten/game/entities/worldspawn.h new file mode 100644 index 0000000..db34b51 --- /dev/null +++ b/source/tungsten/game/entities/worldspawn.h @@ -0,0 +1,201 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\worldspawn.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1100; PDB kind: enum. +enum idWorldspawn::mapType_t : __int32 +{ + MAPTYPE_INSTANCE = 0x0, + MAPTYPE_OUTDOOR = 0x1, + MAPTYPE_RACETRACK = 0x2, + MAPTYPE_TOWN = 0x3, + MAPTYPE_MERGEMAP = 0x4, + MAPTYPE_MAX = 0x5, +}; + +// IDA Local Type ordinal 15626; PDB kind: class. +class __declspec(align(8)) idWorldspawn : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15627. + virtual idTypeInfo *GetType(); + virtual ~idWorldspawn(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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(); + + float gravity; + float aiSenseScale; + float aiGunfireRadius; + float playerAimDistance; + idList callList; + idWorldspawn::mapType_t mapType; + idList includedMaps; + idStr entityPrefix; + const idDeclEnv *envSettings; + idList initialLayers; + idList initialDeactiveLayers; + idList devmapStartInventory; + bool devmapGiveAll; + bool devmapNotarget; + bool devmapGodMode; + const idDeclSpecialEvent_Area *areaDecl; + idList aasTypes; + bool aiUsesCover; +}; diff --git a/source/tungsten/game/entities/zipline.h b/source/tungsten/game/entities/zipline.h new file mode 100644 index 0000000..2168480 --- /dev/null +++ b/source/tungsten/game/entities/zipline.h @@ -0,0 +1,407 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\entities\zipline.h +// Recovered logical types: 13 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1617; PDB kind: enum. +enum idProp_Zipline::ziplineState_t : __int32 +{ + ZIPLINE_START_ATTACH = 0x0, + ZIPLINE_ANIMATE_TO_ATTACH = 0x1, + ZIPLINE_READY = 0x2, + ZIPLINE_MOVE_DOWN = 0x3, + ZIPLINE_WAIT_FOR_UP = 0x4, + ZIPLINE_MOVE_UP = 0x5, +}; + +// IDA Local Type ordinal 1618; PDB kind: enum. +enum idProp_Zipline::ziplineSpeedState_t : __int32 +{ + ZIPLINE_STARTED = 0x0, + ZIPLINE_ACCEL = 0x1, + ZIPLINE_CONSTANT_VEL = 0x2, + ZIPLINE_DECEL = 0x3, + ZIPLINE_STOPPED = 0x4, +}; + +// IDA Local Type ordinal 1619; PDB kind: enum. +enum idProp_Zipline::ziplinePhysicsState_t : __int32 +{ + ZIPLINE_PHYSICS_ACCEL = 0x0, + ZIPLINE_PHYSICS_DECEL = 0x1, + ZIPLINE_PHYSICS_DONE = 0x2, +}; + +// IDA Local Type ordinal 18795; PDB kind: class. +class idProp_Zipline::idProp_ZiplinePathParams +{ +public: + idEntityPtr startMover; + idEntityPtr endMover; + const idDeclEntityDef *endpointMoverDecl; + const idDeclEntityDef *splinePathDef; + idSplinePath *implicitTravelPath; + idSplinePath *implicitReversePath; + idSplinePath *implicitSlackPath; + idEntityPtr travelPath; + idEntityPtr reversePath; + idEntityPtr slackPath; + float travelSag; + float reverseSag; + float slackSag; + const idMaterial *cableMaterial; + float splineLerpingPower; + float diameter; + int cableDivisions; + int unitsPerSplinePoints; + float tautFraction; + float startDist; + float endDist; +}; + +// IDA Local Type ordinal 18796; PDB kind: class. +class idProp_Zipline::idProp_ZiplineOscillationParams +{ +public: + float fwdMagMin; + float fwdMagMax; + float fwdMag; + float fwdFreqMin; + float fwdFreqMax; + float fwdFreq; + float rtMagMin; + float rtMagMax; + float rtMag; + float rtFreqMin; + float rtFreqMax; + float rtFreq; + float upMagMin; + float upMagMax; + float upMag; + float upFreqMin; + float upFreqMax; + float upFreq; +}; + +// IDA Local Type ordinal 18797; PDB kind: class. +class idProp_Zipline::idProp_ZiplineSoundParams +{ +public: + const idSoundShader *sndStart; + const idSoundShader *sndAccel; + float sndAccelMinVolume; + float sndAccelMinVolumeSpeed; + float sndAccelMaxVolume; + float sndAccelMaxVolumeSpeed; + float sndAccelMinPitch; + float sndAccelMinPitchSpeed; + float sndAccelMaxPitch; + float sndAccelMaxPitchSpeed; + const idSoundShader *sndMoveUp; + const idSoundShader *sndMoveDown; + float sndMoveMinVolume; + float sndMoveMinVolumeSpeed; + float sndMoveMaxVolume; + float sndMoveMaxVolumeSpeed; + const idSoundShader *sndWind; + const idDeclTable *sndWindVolumeTable; + const idDeclTable *sndWindPitchTable; + const idSoundShader *sndDecel; + const idSoundShader *sndStop; + const idSoundShader *sndAttach; + const idSoundShader *sndDetach; +}; + +// IDA Local Type ordinal 18798; PDB kind: class. +class idProp_Zipline::idProp_ZiplineFXParams +{ +public: + float fxSpeedSlow; + float fxSpeedMed; + float fxSpeedFast; + float fxSpeedLudicrous; + int currentSpeedFX; +}; + +// IDA Local Type ordinal 18799; PDB kind: class. +class __declspec(align(4)) idProp_Zipline::idProp_ZiplineViewParams +{ +public: + bool applyCameraShakeFx; + float viewDegreesPerSecond; + float maxSpeedForFx; + idAngles maxCameraShakeAngle; + float maxFov; + float maxPitch; + float maxYaw; + int returnToCenterTime; + float fxPower; + bool hideHandleWithPlayer; +}; + +// IDA Local Type ordinal 18800; PDB kind: class. +class idProp_Zipline::idProp_ZiplineTimings +{ +public: + int downMoveTime; + int upMoveTime; + int waitTime; + int dropOffTime; + int attachAnimationTime; + int accelTime; + int decelTime; +}; + +// IDA Local Type ordinal 18801; PDB kind: class. +class idProp_Zipline::idProp_ZiplinePhysicsParams +{ +public: + bool usePhysicsDescent; + float gravity; + float acceleration; + int accelerationTime; + float maxSpeed; + float brakingDecel; + float friction; + float curSpeed; + float curDist; + idVec3 curVel; + int accelerationTimeRemaining; + idProp_Zipline::ziplinePhysicsState_t state; +}; + +// IDA Local Type ordinal 18802; PDB kind: class. +class idZiplinePoint +{ +public: + idVec3 point; + idVec3 slackDelta; +}; + +// IDA Local Type ordinal 18804; PDB kind: class. +class idZipline +{ +public: + idList points; + float totalLength; +}; + +// IDA Local Type ordinal 18810; PDB kind: class. +class idProp_Zipline : public idProp_Usable +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18811. + virtual idTypeInfo *GetType(); + virtual ~idProp_Zipline(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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 void GetUseLocation(const idActor *, idVec3 *); + virtual usableState_t GetOnlineUsableState(); + + idProp_Zipline::idProp_ZiplinePathParams ziplinePathParams; + idProp_Zipline::idProp_ZiplineOscillationParams ziplineOscillationParams; + idProp_Zipline::idProp_ZiplineSoundParams ziplineSounds; + idProp_Zipline::idProp_ZiplineFXParams ziplineFXParams; + idProp_Zipline::idProp_ZiplineViewParams ziplineViewParams; + idProp_Zipline::idProp_ZiplineTimings ziplineTimings; + idProp_Zipline::idProp_ZiplinePhysicsParams ziplinePhysicsParams; + idEntityPtr ownerEntity; + idProp_Zipline::ziplineState_t state; + idProp_Zipline::ziplineState_t nextState; + idProp_Zipline::ziplineSpeedState_t speedState; + idProp_Zipline::ziplineSpeedState_t speedNextState; + int speedStateDuration; + int speedStateTimeLeft; + int soundFlags; + int currentMoveTime; + int startTime; + int attachStartTime; + int waitingStartTime; + int dropOffStartTime; + int animationDoneTime; + bool manualUpdate; + int useBufferTime; + idVec3 attachOrigin; + idIndex eyeJoint; + float swayMult; + idAngles anglesOffset; + idVec3 initialPlayerPos; + idQuat initialPlayerRot; + idVec3 destPlayerPos; + idQuat destPlayerRot; + idVec3 prevPlayerPos; + idVec3 prevHandlePos; + idAngles prevViewAngles; + idZipline ziplines[2]; + int currentZipline; + idCurve_Spline *currentDrawnSpline; + float currentDrawnSplineLength; + idSpring slackSpring; + idRenderModelZipline *cableModel; +}; diff --git a/source/tungsten/game/game_local.h b/source/tungsten/game/game_local.h new file mode 100644 index 0000000..f693d82 --- /dev/null +++ b/source/tungsten/game/game_local.h @@ -0,0 +1,479 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\game_local.h +// Recovered logical types: 9 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 12277; PDB kind: class. +class idMemLocal : public idMem +{ +public: + int numAllocs; + int hashWalks; + memAllocData_t hashTable[1]; + bool (__fastcall *oomCallback)(); + bool isOutOfMemory; + idSysMutex idMemMutex; + void *currentHeap; + void *mapHeap; + void *pushedHeap; + int mem_heapStack; +}; + +// IDA Local Type ordinal 16472; PDB kind: class. +class __declspec(align(8)) idGameLocal : public idGame +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17371. + virtual ~idGameLocal(); + virtual int GetGameVersion(); + virtual void MinimalCleanup(); + virtual bool IsGameActive(); + virtual idRenderWorld *GetRenderWorld(); + virtual idSoundWorld *GetSoundWorld(); + virtual idSoundWorld *GetMenuSoundWorld(); + virtual const char *GetMapName(); + virtual const idGameSpawnInfo *GetGameSpawnInfo(); + virtual void LoadDevMenuDataGame(); + virtual idPlayerProfile *CreatePlayerProfile(int); + virtual void Playtest_SaveAndClear(); + virtual void Playtest_SaveNoClear(); + virtual void Playtest_CreateMeta(); + virtual void GetTransitionInformation(idList *); + virtual void RunFrame(idUserCmdMgr *, gameReturn_t *, bool); + virtual void UpdateAimAssist(const int, idAngles *); + virtual void UpdateWeaponKick(const int, idAngles *); + virtual void NetReceiveReliable(int, idBitMsg *, int); + virtual bool HandleGuiEvent(const sysEvent_t *, int); + virtual bool LoadGame(const char *); + virtual bool SaveGame(const char *, bool, bool); + virtual bool NextMap(const idCmdArgs *); + virtual bool GetGameStartInfoFromSaveLoadParms(idSaveLoadParms *, idFile **, idGameSpawnInfo *); + virtual void OnSaveCompleted(idSaveLoadParms *); + virtual void OnLoadCompleted(idSaveLoadParms *, const idStr *); + virtual void OnEnumerationCompleted(idSaveLoadParms *); + virtual void OnDeleteCompleted(idSaveLoadParms *); + virtual void LoadMostRecentGame(idSWF *); + virtual idFile_SaveGame *GetCheckpointInfoFile(); + virtual idFile_SaveGame *GetMapStartInfoFile(); + virtual void SaveCheckpointInfo(idFile *, const idGameSpawnInfo *); + virtual void LoadCheckpointInfo(idFile *, idGameSpawnInfo *); + virtual void CancelLevelTransition(); + virtual void RestartPassMainMenu(const idCmdArgs *); + virtual idGameTimeManager *GetGameTimeManager(); + virtual int GetGameHz(const gameTimeType_t); + virtual int GetGameFrame(); + virtual void SetGameMs(const int); + virtual int GetGameMs(const gameTimeType_t); + virtual int GetPreviousGameMs(const gameTimeType_t); + virtual int GetGameMsPerFrame(const gameTimeType_t); + virtual float GetGameSecPerFrame(const gameTimeType_t); + virtual float GetRealMsPerFrame(const gameTimeType_t); + virtual float GetRealSecPerFrame(const gameTimeType_t); + virtual int GetGameMsPerRealSec(); + virtual void SetServerGameTimeMs(const int); + virtual int GetServerGameTimeMs(); + virtual void SetSSTimes(int, int); + virtual int GetSSEndTime(); + virtual int GetSSStartTime(); + virtual void SetLastInputTime(int); + virtual int GetLastInputTime(); + virtual void Shell_Init(const char *); + virtual void Shell_Show(bool); + virtual void Shell_CreateMenu(bool); + virtual struct idMenuManager_Shell *Shell_GetShell(); + virtual bool Shell_IsActive(); + virtual bool Shell_HandleGuiEvent(const sysEvent_t *); + virtual idRenderModelGui *Shell_Render(); + virtual void Shell_ResetMenu(); + virtual void Shell_SyncWithSession(); + virtual bool Shell_CanSave(const bool); + virtual void Shell_ShowNewContentAvailable(); + virtual void Shell_RestartMenuMusic(); + virtual void Shell_AddSaveGameItem(const idSaveGameDetails *); + virtual void Shell_WarningShown(const bool); + virtual void Shell_RefreshMapNameForLoadScreen(); + virtual void Shell_ClearBenchmarkCheck(); + virtual void Shell_SetupMultiplayerMenu(); + virtual bool Shell_IgnoreSplitScreenEvent(const sysEvent_t *); + virtual bool GetGamePaused(); + virtual void WriteToSnapshot(idSnapShot *, const idSnapShot *); + virtual void ReadFromSnapshot(idSnapShot *, const idSnapShot *); + virtual bool ForceNonDeferred(); + virtual void SetInterpolation(const float, const int, const int, const int); + virtual const netInterpolationInfo_t *GetInterpolationInfo(); + virtual void OnCloseSnapshot(); + virtual idRenderModelGui *RenderLocalViewForPlayer(int, int, const renderView_t *, idRenderWorld *); + virtual idRenderModelGui *RenderLocalViewForGame(int, idRenderWorld *); + virtual bool IsPlayerControlInhibited(int); + virtual int GenerateInputToPlayerIndexRouting(); + virtual int GetPlayerIndexFromInputDevice(int); + virtual int GetPlayerPresentableCmds(int, usercmd_t **, const int); + virtual void GetPlayerPredictionData(int, usercmd_t **, const int, bool *); + virtual void SmoothIncomingUserCmds(usercmd_t *, usercmd_t *, const int); + virtual const idList *GetViewCallbacks(); + virtual void DrawClientGameDebugHUD(); + virtual const idTypeInfoTools *GetTypeInfoTools(); + virtual void GetEntityEditState(idEntity *, idTypeInfoFile *, bool); + virtual void SetEntityEditState(idEntity *, idTypeInfoFile *, bool); + virtual void GetLayerList(idList *); + virtual void AddNewLayer(idDecl *, const char *); + virtual idEntityInterface *AllocEntityInterface(idEntity *); + virtual void FreeEntityInterface(idEntityInterface *); + virtual void UnloadDLL(); + virtual void LoadDLL(); + virtual void GetSuperScriptObjectNames(idList *); + virtual const classMetaDataInfo_t *GetSuperScriptMetaDataForType(const char *); + virtual void GetScriptObjectNames(idList *); + virtual bool LoadScriptForMapFile(const char *); + virtual bool CompileScriptText(const char *, const char *, const bool, const bool); + virtual idStr *GetScriptCompileError(idStr *result); + virtual bool FunctionExists(const char *, const char *); + virtual bool TracePoint(trace_t *, const idVec3 *, const idVec3 *, int, const idEntity *); + virtual void GetBinaryAnimationStates(idList *, idList *); + virtual idRenderLight *GetEntityRenderLight(idEntity *); + virtual const idDeclEnv *GetEnvSettings(); + virtual bool AF_SpawnEntity(const char *); + virtual void AF_UpdateEntities(const char *); + virtual void AF_UndoChanges(); + virtual void ClearEntitySelection(); + virtual int GetSelectedEntities(idEntity **, int); + virtual void AddSelectedEntity(idEntity *); + virtual void TriggerSelected(); + virtual idEntity *CreateClass(const char *); + virtual bool CanCreateClass(const char *); + virtual void InitEntityWithDef(idEntity *, const idDeclEntityDef *, const idTypeInfoSettings *); + virtual idEntity *CreateEntityFromDef(const idDeclEntityDef *, const idTypeInfoSettings *); + virtual idEntity *SpawnEntityFromDef(const idDeclEntityDef *, int, int, int); + virtual idEntity *RespawnEntityFromDef(idEntity *, const idDeclEntityDef *); + virtual bool ActivateEntityFromEditor(idEntity *); + virtual void SpawnEntity(idEntity *, int, int, int); + virtual void DeleteEntity(idEntity *); + virtual void DeleteEntityAndSubEntities(idEntity *); + virtual idEntity *FindEntity(const char *); + virtual idEntity *GetEntity(int); + virtual const char *GetEntityName(idEntity *); + virtual void SetEntityName(idEntity *, const char *); + virtual const char *GetEntityType(idEntity *); + virtual const char *GetUniqueEntityName(const char *); + virtual idEntity *FindEntityUsingClass(idEntity *, const char *); + virtual void EntityGetOrigin(idEntity *, idVec3 *); + virtual void EntitySetOrigin(idEntity *, const idVec3 *); + virtual void EntitySetAxis(idEntity *, const idMat3 *); + virtual void EntityGetViewAngles(idEntity *, idAngles *); + virtual void EntityGetEyePosition(idEntity *, idVec3 *); + virtual void EntitySetViewPosition(idEntity *, const idVec3 *, const idAngles *); + virtual void EntityTranslate(idEntity *, const idVec3 *, bool); + virtual void EntityUpdateVisuals(idEntity *); + virtual void EntityUpdateModifiedProperties(idEntity *); + virtual bool EntityGetSoundDistances(idEntity *, float *, float *); + virtual void EntityStopSound(idEntity *); + virtual const idColor *EntityGetColor(const idColor *result, idEntity *); + virtual idSoundEmitter *EntityGetSoundEmitter(idEntity *); + virtual idRenderModel *EntityGetRenderModel(idEntity *); + virtual bool EntityIsNameUnique(const char *, const idEntity *); + virtual const idVec3 *EntityGetSpawnPosition(idEntity *); + virtual const idMat3 *EntityGetSpawnOrientation(idEntity *); + virtual idVec3 *EntityGetScale(idVec3 *result, idEntity *); + virtual void EntitySetScale(idEntity *, const idVec3 *); + virtual idStr *EntitySetScriptObject(idStr *result, idEntity *, const char *, int, bool); + virtual bool EntityIsHidden(idEntity *); + virtual const idDeclEntityDef *EntityGetEntityDef(idEntity *); + virtual void MapAddEntity(idEntity *); + virtual void MapUpdateEntity(idEntity *, bool, idList *); + virtual void MapRemoveEntity(const char *); + virtual bool MapSave(const char *, bool); + virtual bool MapSaveReference(const char *, const char *, bool); + virtual idMapEntity *MapFindEntity(const char *); + virtual idMapEntity *MapFindEntity_2(idEntity *); + virtual void MapGetEntityLayers(idList *); + virtual void MapSetEntityReferenceId(idEntity *, const char *); + virtual idMapFile *GetLevelMap(); + virtual void UpdateMapFileEntity(idMapFile *, idEntity *, bool, idList *); + virtual int SP_BuildGuardSplineList(idVec3, float, float *); + virtual void SP_GetGuardSplineEntry(int, idStr *, float *, float *); + virtual float SP_GetSplineLength(idStr); + virtual const enumTypeInfo_t *SS_FindEnumTypeInfo(const char *); + virtual int GetGameDifficulty(); + virtual void GetGameDifficultySettingsForTransition(int *, int *); + virtual void SetGameDifficultySettingsForTransition(const int, const int); + virtual void SetPlayerLoadedGameDifficulty(bool); + virtual bool GetPlayerLoadedGameDifficulty(); + virtual __int64 GetMinSaveStorageRequired(bool); + virtual void OnReloadDecls(); + virtual bool GetConsoleUsed(); + virtual void SetConsoleUsed(const bool); + virtual bool LoadMap(idFile *); + virtual int GetGameFlags(); + virtual idEntity *GetEntityForSpawnId(const idSpawnId); + virtual idEntity *GetEntityForSpawnId_2(const int); + virtual idEntity *FindEntityForName(const char *, idEntity *, idEntity *, idStr *); + virtual void SP_Init(); + virtual void MainMenu_Init(); + virtual bool MainMenu_Load(const char *); + virtual void MainMenu_Show(bool); + virtual bool MainMenu_IsActive(); + virtual bool MainMenu_IgnoreSplitScreenEvent(const sysEvent_t *); + virtual bool MainMenu_HandleGuiEvent(const sysEvent_t *); + virtual idRenderModelGui *MainMenu_Render(); + virtual void MainMenu_LoadMainMenu(); + virtual void MainMenu_MultiplayerMenu(); + virtual void MainMenu_SetupMultiplayerMenu(); + virtual void MainMenu_GoToGameLobby(); + virtual void MainMenu_GoToPartyLobby(); + virtual void MainMenu_GoToRoot(); + virtual bool MainMenu_CanSave(const bool); + virtual idSoundWorld *MainMenu_GetSoundWorld(); + virtual void MainMenu_ShowNewContentAvailable(); + virtual void MainMenu_RestartMenuMusic(); + virtual void MainMenu_AddSaveGameItem(const idSaveGameDetails *); + virtual void MainMenu_WarningShown(const bool); + virtual void MainMenu_RefreshMapNameForLoadScreen(); + virtual void MainMenu_ClearBenchmarkCheck(); + + idGameSpawnInfo gameSpawnInfo; + idList allLayers; + idList activeLayers; + idList deactiveLayers; + idArray entities; + idArray spawnIds; + int firstFreeEntityIndex; + idHashIndex entityHash; + idWorldspawn *world; + idLinkList spawnedEntities; + idLinkList activeEntities; + idLinkList removeEntities; + idLinkList actorEntities; + idLinkList coverBlockerEntities; + idLinkList waypointEntities; + idLinkList vehicleAIEntities; + idLinkList vehicleEntities; + idLinkList splinePathEntities; + idLinkList propMoveableEntities; + idLinkList propVehiclePickupEntities; + idLinkList globalWindEntities; + idLinkList cuttableEntities; + idLinkList scriptTypes; + idLinkList regimePowerSources; + idLinkList regimeDrones; + idLinkList playerRCCars; + idList,5> guiEntities; + idList,5> jobTriggeredTargets; + idList,5> infoGarageBays; + idList,5> lookTargetGroups; + idList,5> deadAI; + idList,5> pauseThinkers; + idList,5> activeAI; + idList,5> dyingAI; + idList,5> aiWorldStateUsers; + idList,5> playerEntities; + idList,5> botEntities; + idList spawnedTargetDefs; + int numEntitiesToDeactivate; + bool sortPushers; + bool sortTeamMasters; + idParmBlock renderParmBlock; + idSuperScriptSystem superScript; + idProgram program; + idThread *frameCommandThread; + idTestEntity *testEntity; + idEditEntities editEntities; + idEffectPhysicsBoxFountain effectPhysics; + idEntityPtr challengeEntity; + challengeState_t challengeState; + idEntityPtr coopStartingInventory; + idClientGame clientGame; + idMainMenu *mainMenu; + struct idMenuManager_Shell *shellMgr; + idRenderModelGui *shellGuiModel; + idSoundWorld *menuSoundWorld; + idParallelJobList *parallelJobList; + bool forceSingleView; + idList extraBehaviorAnimsToLoad; + idList splineSegmentList; + idBreakableManager breakableManager; + idSpawnablePropManager spawnablePropManager; + idClothSimManager clothSimManager; + idDevGui *devGUI; + idGameLocal::idBotSystems *botSystems; + idTestFireResults lastTestFireResult; + idFinishFireResults lastFinishFireResult; + bool enableStatTracking; + idList statsData; + bool ranOnceAfterMapLoad; + globStats_t globStats; + netInterpolationInfo_t netInterpolationInfo; + idStr mapFileName; + idMapFile *mapFile; + idFile_SaveGame *checkpointInfoFile; + idFile_SaveGame *mapStartInfoFile; + int spawnCount; + int mapSpawnCount; + int scriptTypeCount; + idAAS2 *aasList[8]; + bool allowAASLoading; + bool allowLazyAASClipLinking; + gameState_t gamestate; + int nextAIGreetingTime; + int nextPlayerGreetingTime; + int lastInputTime; + pvsHandle_t playerPVSHandle; + idList gameStack; + idAIEventManager aiEventManager; + idAIGameState aiGameState; + bool savesEnabled; + bool inEncounterGroup; + idList delayedUse; + idList,5> streamAreas; + idGameLocal::idStreamAreaQuery streamAreaQueries[32]; + int numStreamAreaQueries; + int currentGameDifficulty; + int lowestGameDifficulty; + bool playerLoadedGameDifficulty; + bool enableVehicleSplineUpdates; + int currentCoopGameDifficulty; + int lowestCoopGameDifficulty; + idEntityPtr debugCam; + idEntityPtr debugEntity; + idEntityPtr freeCam; + idEntityPtr curTestModel; + idAISplinePathMgr aiSplinePathMgr; + idQuestNavSplinePathMgr questNavSplinePathMgr; + const idDeclCredits *rageCredits; + const idDeclDamage *damageFatalFall; + const idDeclDamage *damageHardFall; + const idDeclDamage *damageSoftFall; + const idDeclDamage *damageSuicide; + const idDeclDamage *damageCrush; + const idDeclDamage *damageMoverCrush; + const idDeclDamage *damageVehicleExplode; + const idDeclDamage *damageVehicleSpExplode; + const idDeclDamage *damageStunOnly; + const idDeclDamage *damageGib; + const idDeclDamage *damageTelefrag; + const idDeclDamage *damageDecl; + idAIStateError *errorState; + idAIStateDone *doneState; + idEncounterGroupManager encounterGroupManager; + idAIVoiceController globalVoiceController; + idAASVisCache aasVisCache; + idDeferredVisCache deferredVisCache; + idAIBlackboard aiBlackboard; + idClassFactory stateDataFactory; + idClassFactory stateTransitionFactory; + idAIGUI aiGUI; + idAnimationGUI animationGUI; + idASDebugGUI asGUI; + idEntityPtr interactVolumeOverrideAi; + int interactVolumeFinishTime; + idVec3 directionVector[8]; + idNavPowerInstance *navPowerInstance; + idEntityPtr bossEntity; + idGameLocal::idDeferredRadiusDamage deferredRadiusDamage[32]; + int firstDeferredRadiusDamage; + int lastDeferredRadiusDamage; + bool forceNonDeferred; + bool serializedRead; + idList debugPoints; + bool gameWasStopTimeDebugMode; + idHandle consoleScriptThreadHandle; + int numSpawnedPlayerVehicles; + idThrowableSelector_Grenade grenadeSelector; + idAmmoSelector_DualMutant dualMutantAmmoSelector; + idAmmoSelector_ClubMutant clubMutantAmmoSelector; + idAmmoSelector_ScoopMutant scoopMutantAmmoSelector; + idAmmoSelector_LargeRangedMutant largeRangedMutantAmmoSelector; + idAmmoSelector_HeavyBandit heavyBanditAmmoSelector; + idAmmoSelector_PipeBandit pipeBanditAmmoSelector; + idAmmoSelector_Imp impAmmoSelector; + idItemSelector *itemSelectors[9]; + idCutterGraphManager graphManager; + idCutterClip clipHelper; + idCuttableManager cuttableManager; + idList delayedProjectiles; + int numSnapshotsSerialized; + idList simulatingEffectPhysics; + float aiIncomingDamageScale[4]; + float playerIncomingDamageScale[4]; + float vendorSalePriceScale[4]; + float aiStuckDistanceFraction; + bool consoleUsed; + int nextMenuMarqueeTime; + int menuMarqueeIndex; + bool waitingOnVideoSettingsConfirm; + idTarget_ShowGui::showGui_SpecialCase_t targetGuiSpecialCase; +}; + +// IDA Local Type ordinal 16527; PDB kind: class. +class idGameLocal::idBotSystems +{ +public: + int nextBotPopulationCheckTime; + idBotTraceManager botTraceManager; + idBotEntityManager botEntityManager; + idBotGoalManager *botGoalManager; + idBotGUI *botDebugGUI; + idEntityPtr botDebugEntity; +}; + +// IDA Local Type ordinal 16547; PDB kind: struct. +struct idGameLocal::delayedUse_t +{ + idSpawnId activator; + idSpawnId usable; + usableState_t usableState; + int addedFrame; +}; + +// IDA Local Type ordinal 16551; PDB kind: class. +class idGameLocal::idStreamAreaQuery +{ +public: + idEntityPtr activator; + idEntityPtr streamArea; + idCollisionQuery query; +}; + +// IDA Local Type ordinal 17311; PDB kind: class. +class idGameLocal::idDeferredRadiusDamage +{ +public: + idStaticList queries; + idEntityPtr attacker; + idEntityPtr inflictor; + idEntityPtr victim; + const idDeclDamage *damageDef; + float damageScale; + float radiusScale; + idVec3 origin; + weaponStatsTag_t statsTag; +}; + +// IDA Local Type ordinal 17368; PDB kind: struct. +struct __declspec(align(4)) idGameLocal::delayedProjectile_t +{ + const idDeclProjectile *projectile; + int hitTime; + int hitEntityNum; + idIndex hitJointIndex; + idPresentablePtr attacker; + trace_t trace; + float damageScale; + bool forceSkipDecal; + bool forceSkipSound; +}; + +// IDA Local Type ordinal 17934; PDB kind: class. +class idGameLock +{ +public: + const idGame *prevGame; +}; + +// IDA Local Type ordinal 18654; PDB kind: struct. +struct idGameLocal::NextMap::__l3::local_t +{ + idSaveLoadParms *parms; +}; diff --git a/source/tungsten/game/gameplayfilter.h b/source/tungsten/game/gameplayfilter.h new file mode 100644 index 0000000..6946949 --- /dev/null +++ b/source/tungsten/game/gameplayfilter.h @@ -0,0 +1,45 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\gameplayfilter.h +// Recovered logical types: 5 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1614; PDB kind: enum. +enum idGameplayFilter::Element::flagState_t : __int32 +{ + FS_FALSE = 0x0, + FS_TRUE = 0x1, + FS_IGNORE = 0x2, +}; + +// IDA Local Type ordinal 1615; PDB kind: enum. +enum idGameplayFilter::Element::elementType_t : __int32 +{ + ET_AND = 0x0, + ET_OR = 0x1, +}; + +// IDA Local Type ordinal 15568; PDB kind: class. +class idGameplayFilterTarget +{ +public: + unsigned int bits; +}; + +// IDA Local Type ordinal 18788; PDB kind: class. +class idGameplayFilter::Element +{ +public: + unsigned int desiredBits; + unsigned int activeBits; + idGameplayFilter::Element::elementType_t elementType; +}; + +// IDA Local Type ordinal 22274; PDB kind: class. +class idGameplayFilter +{ +public: + idList elements; +}; diff --git a/source/tungsten/game/gamesys/circularbuffer.h b/source/tungsten/game/gamesys/circularbuffer.h new file mode 100644 index 0000000..6268a60 --- /dev/null +++ b/source/tungsten/game/gamesys/circularbuffer.h @@ -0,0 +1,34 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\gamesys\circularbuffer.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14496; PDB kind: class. +class idCircularBuffer +{ +public: + idVec3 buffer[5]; + int num; + int head; +}; + +// IDA Local Type ordinal 15576; PDB kind: class. +class idCircularBuffer +{ +public: + idSpawnManager::Command buffer[128]; + int num; + int head; +}; + +// IDA Local Type ordinal 24084; PDB kind: class. +class CircularBuffer +{ +public: + unsigned int size; + void **buffer; + void *unalignedPointer; +}; diff --git a/source/tungsten/game/gamesys/classfactory.h b/source/tungsten/game/gamesys/classfactory.h new file mode 100644 index 0000000..f5fc4c2 --- /dev/null +++ b/source/tungsten/game/gamesys/classfactory.h @@ -0,0 +1,57 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\gamesys\classfactory.h +// Recovered logical types: 5 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 4821; PDB kind: struct. +struct IClassFactory : IUnknown +{ + // Recovered virtual interface; IDA vtable ordinal 4822. + virtual HRESULT QueryInterface(const _GUID *, void **); + virtual unsigned int AddRef(); + virtual unsigned int Release(); + virtual HRESULT CreateInstance(IUnknown *, const _GUID *, void **); + virtual HRESULT LockServer(int); + + +}; + +// IDA Local Type ordinal 10489; PDB kind: struct. +struct /*VFT*/ IClassFactoryVtbl +{ + HRESULT (__fastcall *QueryInterface)(IClassFactory *, const _GUID *const, void **); + unsigned int (__fastcall *AddRef)(IClassFactory *); + unsigned int (__fastcall *Release)(IClassFactory *); + HRESULT (__fastcall *CreateInstance)(IClassFactory *, IUnknown *, const _GUID *const, void **); + HRESULT (__fastcall *LockServer)(IClassFactory *, int); +}; + +// IDA Local Type ordinal 17299; PDB kind: class. +class idClassFactory +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17300. + virtual ~idClassFactory(); + + idList list; + idList keyList; + idHashIndex hashIndex; +}; + +// IDA Local Type ordinal 17302; PDB kind: class. +class idClassFactory +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17303. + virtual ~idClassFactory(); + + idList list; + idList keyList; + idHashIndex hashIndex; +}; + +// IDA Local Type ordinal 26320; PDB kind: typedef. +typedef IClassFactory *LPCLASSFACTORY; diff --git a/source/tungsten/game/gamesys/counter.h b/source/tungsten/game/gamesys/counter.h new file mode 100644 index 0000000..b1c8d9c --- /dev/null +++ b/source/tungsten/game/gamesys/counter.h @@ -0,0 +1,66 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\gamesys\counter.h +// Recovered logical types: 6 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 117; PDB kind: enum. +enum _D3DCOUNTER : __int32 +{ + D3DCOUNTER_FRAMETIME = 0x0, + D3DCOUNTER_FRAMESPERSECOND = 0x1, + D3DCOUNTER_FRAMECOUNT = 0x2, + D3DCOUNTER_FRAME_BLOCKED_PERCENT = 0x3, + D3DCOUNTER_FRAME_THROTTLED_PERCENT = 0x4, + D3DCOUNTER_FRAME_ACTIVE_PERCENT = 0x5, + D3DCOUNTER_XAM_GPU_PERCENT = 0x6, + D3DCOUNTER_FRAME_GPU_IDLE_PERCENT = 0x7, + D3DCOUNTER_PRIMITIVES_CULLED_PERCENT = 0x8, + D3DCOUNTER_PRIMITIVES_CLIPPED_PERCENT = 0x9, + D3DCOUNTER_PRIMITIVES_VISIBLE_PERCENT = 0xA, + D3DCOUNTER_BANDWIDTH_SYSTEM = 0xB, + D3DCOUNTER_BANDWIDTH_INDICES = 0xC, + D3DCOUNTER_BANDWIDTH_TEXTURE = 0xD, + D3DCOUNTER_BANDWIDTH_VERTEX = 0xE, + D3DCOUNTER_BANDWIDTH_RESOLVE = 0xF, + D3DCOUNTER_BANDWIDTH_MEMEXPORT = 0x10, + D3DCOUNTER_XAM_COMMAND_BUFFER_SIZE = 0x11, + D3DCOUNTER_FRAME_GPU_WASTED_PERCENT = 0x12, + D3DCOUNTER_MAX = 0x13, +}; + +// IDA Local Type ordinal 5462; PDB kind: struct. +struct _IO_COUNTERS +{ + unsigned __int64 ReadOperationCount; + unsigned __int64 WriteOperationCount; + unsigned __int64 OtherOperationCount; + unsigned __int64 ReadTransferCount; + unsigned __int64 WriteTransferCount; + unsigned __int64 OtherTransferCount; +}; + +// IDA Local Type ordinal 21692; PDB kind: class. +class idCounter +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21693. + virtual ~idCounter(); + virtual void BeginFrame(); + virtual void EndFrame(); + virtual void Init(); + + int high; + int cur; +}; + +// IDA Local Type ordinal 28933; PDB kind: typedef. +typedef _D3DCOUNTER D3DCOUNTER; + +// IDA Local Type ordinal 30460; PDB kind: typedef. +typedef _IO_COUNTERS IO_COUNTERS; + +// IDA Local Type ordinal 31786; PDB kind: typedef. +typedef _IO_COUNTERS *PIO_COUNTERS; diff --git a/source/tungsten/game/gamesys/eventarg.h b/source/tungsten/game/gamesys/eventarg.h new file mode 100644 index 0000000..598f9b0 --- /dev/null +++ b/source/tungsten/game/gamesys/eventarg.h @@ -0,0 +1,70 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\gamesys\eventarg.h +// Recovered logical types: 5 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1046; PDB kind: enum. +enum eventArgType_t : __int32 +{ + D_EVENT_VOID = 0x0, + D_EVENT_INTEGER = 0x69, + D_EVENT_FLOAT = 0x66, + D_EVENT_VECTOR = 0x76, + D_EVENT_QUAT = 0x71, + D_EVENT_COLOR = 0x63, + D_EVENT_ANGLES = 0x61, + D_EVENT_STRING = 0x73, + D_EVENT_ENTITY = 0x65, + D_EVENT_DECL = 0x64, + D_EVENT_ANIMWEBPATH = 0x31, + D_EVENT_JOINTNAME = 0x32, + D_EVENT_ANIMALIAS = 0x33, + D_EVENT_ANIM = 0x34, + D_EVENT_JOINTTAG = 0x35, + D_EVENT_FSM = 0x36, + D_EVENT_TRACE = 0x74, + D_EVENT_VARIABLEARGS = 0x78, + D_EVENT_BOOLEAN = 0x62, + D_EVENT_SCRIPTLIST = 0x6C, + D_EVENT_RECEIVER = 0x72, +}; + +// IDA Local Type ordinal 14182; PDB kind: class. +class idEventArg +{ +public: + char type; + idEventArg:: value; +}; + +// IDA Local Type ordinal 14191; PDB kind: unknown. +union idEventArg:: +{ + int i; + float f; + float v[3]; + float q[4]; + float c[4]; + const char *s; + const unsigned __int8 *x; + const idDecl *d; + const idMD6Anim *anim; + unsigned int h; + const idScriptList *l; + idEventReceiver *er; +}; + +// IDA Local Type ordinal 17104; PDB kind: class. +class idEventArgs +{ +public: + idArray args; + idArray strings; + int argsNumber; +}; + +// IDA Local Type ordinal 29871; PDB kind: typedef. +typedef idVarArgs<4> eventArgs_t; diff --git a/source/tungsten/game/gamesys/eventdef.h b/source/tungsten/game/gamesys/eventdef.h new file mode 100644 index 0000000..cd80a01 --- /dev/null +++ b/source/tungsten/game/gamesys/eventdef.h @@ -0,0 +1,32 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\gamesys\eventdef.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13476; PDB kind: class. +class idEventDef +{ +public: + const char *name; + const char *formatspec; + const char *argTypes; + const char *argNames; + int returnType; + int numargs; + int numstrings; + int eventnum; + bool canSkip; + bool isClientSafe; + eventType_t type; + const idEventDef *noticeEvent; +}; + +// IDA Local Type ordinal 18786; PDB kind: class. +class eventDecl +{ +public: + const idDecl *value; +}; diff --git a/source/tungsten/game/gamesys/eventreceiver.h b/source/tungsten/game/gamesys/eventreceiver.h new file mode 100644 index 0000000..b6aab91 --- /dev/null +++ b/source/tungsten/game/gamesys/eventreceiver.h @@ -0,0 +1,23 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\gamesys\eventreceiver.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14183; PDB kind: class. +class idEventReceiver : public idClass +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14185. + virtual idTypeInfo *GetType(); + virtual ~idEventReceiver(); + 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 *); + + idList *listenerList; + idList *listeningToList; +}; diff --git a/source/tungsten/game/gamesys/eventsystem.h b/source/tungsten/game/gamesys/eventsystem.h new file mode 100644 index 0000000..7d8f95a --- /dev/null +++ b/source/tungsten/game/gamesys/eventsystem.h @@ -0,0 +1,14 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\gamesys\eventsystem.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14196; PDB kind: class. +class idEventSystem +{ +public: + idList eventQueue; +}; diff --git a/source/tungsten/game/gamesys/gamestate.h b/source/tungsten/game/gamesys/gamestate.h new file mode 100644 index 0000000..c8b6530 --- /dev/null +++ b/source/tungsten/game/gamesys/gamestate.h @@ -0,0 +1,236 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\gamesys\gamestate.h +// Recovered logical types: 6 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1334; PDB kind: enum. +enum gameDLCState_t : __int32 +{ + GAME_DLC_STATE_DEFAULT = 0x0, + GAME_DLC_STATE_AUTHORITY = 0x1, + GAME_DLC_STATE_SEWERS = 0x2, +}; + +// IDA Local Type ordinal 1532; PDB kind: enum. +enum gameState_t : __int32 +{ + GAMESTATE_UNINITIALIZED = 0x0, + GAMESTATE_NOMAP = 0x1, + GAMESTATE_STARTUP = 0x2, + GAMESTATE_ACTIVE = 0x3, + GAMESTATE_SHUTDOWN = 0x4, +}; + +// IDA Local Type ordinal 1717; PDB kind: enum. +enum idGameStateInt::gameStateIntCompare_t : __int32 +{ + GAMESTATEINT_LESS_THAN = 0x0, + GAMESTATEINT_EQUAL = 0x1, + GAMESTATEINT_GREATER_THAN = 0x2, +}; + +// IDA Local Type ordinal 14445; PDB kind: class. +class idGameStateInt : public idClass +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14446. + virtual idTypeInfo *GetType(); + virtual ~idGameStateInt(); + + const idDeclGameStateInt *decl; + int gameStateValue; +}; + +// IDA Local Type ordinal 18784; PDB kind: class. +class idGameState +{ +public: +}; + +// IDA Local Type ordinal 19546; PDB kind: class. +class __declspec(align(8)) idProp_GameStateInt : public idProp_Moveable +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19547. + virtual idTypeInfo *GetType(); + virtual ~idProp_GameStateInt(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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 void GetUseLocation(const idActor *, idVec3 *); + virtual usableState_t GetOnlineUsableState(); + virtual void InitPropPhysics(); + virtual void Pickup(idEntity *, const bool); + virtual const idMaterial *GetIcon(); + virtual const char *GetIconName(); + virtual void Respawn(); + + const idDeclGameStateInt *gameStateInt; + int gameStateValue; + float angle; +}; diff --git a/source/tungsten/game/gamesys/handlearray.h b/source/tungsten/game/gamesys/handlearray.h new file mode 100644 index 0000000..4fb874d --- /dev/null +++ b/source/tungsten/game/gamesys/handlearray.h @@ -0,0 +1,17 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\gamesys\handlearray.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15578; PDB kind: class. +class idHandleArray +{ +public: + idSpawnResult *data; + unsigned int *handles; + unsigned int maxHandles; + unsigned int counter; +}; diff --git a/source/tungsten/game/gamesys/playtestlog.h b/source/tungsten/game/gamesys/playtestlog.h new file mode 100644 index 0000000..ea58c02 --- /dev/null +++ b/source/tungsten/game/gamesys/playtestlog.h @@ -0,0 +1,16 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\gamesys\playtestlog.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 21585; PDB kind: class. +class idPlayTestLog +{ +public: + int lastTimeStamp; + int nextInventoryRecordTime; + idPlaytestStorage storage; +}; diff --git a/source/tungsten/game/gamesys/regressiontest.h b/source/tungsten/game/gamesys/regressiontest.h new file mode 100644 index 0000000..75fa944 --- /dev/null +++ b/source/tungsten/game/gamesys/regressiontest.h @@ -0,0 +1,22 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\gamesys\regressiontest.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 18726; PDB kind: class. +class idRegressionTest +{ +public: + idTestReport *testReport; + recordState_t recordState; + idStr testPath; + idStr testName; + bool fastExit; + bool testFailed; + int imageNum; + char imageNumStr[5]; + int testCount; +}; diff --git a/source/tungsten/game/lbcache.h b/source/tungsten/game/lbcache.h new file mode 100644 index 0000000..5d1e16e --- /dev/null +++ b/source/tungsten/game/lbcache.h @@ -0,0 +1,25 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\lbcache.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16063; PDB kind: class. +class idLBCache +{ +public: + idLBRowBlock rowBlocks[5]; + const leaderboardDefinition_t *def; + leaderboardFilterMode_t filter; + const leaderboardDefinition_t *pendingDef; + leaderboardFilterMode_t pendingFilter; + bool requestingRows; + bool loadingNewLeaderboard; + int numRowsInLeaderboard; + int entryIndex; + int rowOffset; + int localIndex; + leaderboardDisplayError_t errorCode; +}; diff --git a/source/tungsten/game/lobbycontroller.h b/source/tungsten/game/lobbycontroller.h new file mode 100644 index 0000000..a6a8f4f --- /dev/null +++ b/source/tungsten/game/lobbycontroller.h @@ -0,0 +1,52 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\lobbycontroller.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1469; PDB kind: enum. +enum idLobbyController::skipVoteState_t : __int32 +{ + SKIPVOTE_NONE = 0x0, + SKIPVOTE_STARTED = 0x1, + SKIPVOTE_PASSED = 0x2, +}; + +// IDA Local Type ordinal 1480; PDB kind: enum. +enum idLobbyController::state_t : __int32 +{ + INTERMISSION = 0x1, + FINAL_COUNTDOWN = 0x2, + IN_GAME = 0x3, +}; + +// IDA Local Type ordinal 16068; PDB kind: class. +class __declspec(align(4)) idLobbyController::idCountdown +{ +public: + int intervalMs; + int startMs; + int pauseStartMs; + int pauseAccumulationMs; + bool isPaused; +}; + +// IDA Local Type ordinal 16070; PDB kind: class. +class __declspec(align(4)) idLobbyController +{ +public: + idLobbyController::state_t state; + idLobbyController::idCountdown intermissionCountdown; + idLobbyController::idCountdown finalCountdown; + int nextPeerUpdateMs; + idMainMenu *mainMenu; + int serverRemainingSecUntilLaunch; + int skipVotes; + int skipVotesNeeded; + int votePerPeer; + int numPlayers; + idLobbyController::skipVoteState_t skipVoteState; + bool didVote; +}; diff --git a/source/tungsten/game/mainmenulocal.h b/source/tungsten/game/mainmenulocal.h new file mode 100644 index 0000000..ac2a5d5 --- /dev/null +++ b/source/tungsten/game/mainmenulocal.h @@ -0,0 +1,3771 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\mainmenulocal.h +// Recovered logical types: 243 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1456; PDB kind: enum. +enum idMainMenu::mainmenuState_t : __int32 +{ + SELECTING_MAP = 0x1, + SELECTING_GAMEMODE = 0x2, + VIEWING_LEADERBOARD = 0x3, + LOADING_LEADERBOARD = 0x4, +}; + +// IDA Local Type ordinal 1487; PDB kind: enum. +enum idMainMenu::popupResult_t : __int32 +{ + POPUP_RESULT_NONE = 0xFFFFFFFF, + POPUP_RESULT_OPTION1 = 0x0, + POPUP_RESULT_OPTION2 = 0x1, + POPUP_RESULT_OPTION3 = 0x2, +}; + +// IDA Local Type ordinal 16051; PDB kind: struct. +struct __declspec(align(4)) idMainMenu::actionRepeater_t +{ + idMenuWidget *widget; + idWidgetEvent event; + idWidgetAction action; + int numRepetitions; + int nextRepeatTime; + mainMenuScreens_t menu; + bool isActive; +}; + +// IDA Local Type ordinal 16069; PDB kind: class. +class idMainMenu +{ +public: + idMainMenu::actionRepeater_t actionRepeater; + mainMenuScreens_t activeMenu; + mainMenuScreens_t nextMenu; + mainMenuTransition_t menuTransition; + idMenuScreen *menuScreens[7]; + int menuIndex[7]; + int numOptions[7]; + bool scrollingMenu; + int scrollCounter; + idStr btn1Text; + idStr btn2Text; + idStr btn3Text; + idStr btn4Text; + int devMenuDepth; + const idDeclDevMenuList *devMenuList; + idList devMapListNames; + idList devMapListIndexes; + idList optionTypes; + float audioMasterVolume; + float audioMasterVolume_Restore; + float audioVoiceVolume; + float audioVoiceVolume_Restore; + float audioMusicVolume; + float audioMusicVolume_Restore; + float audioAmbientVolume; + float audioAmbientVolume_Restore; + bool audioSubtitles; + bool audioSubtitles_Restore; + idRenderModelGui *guiModel; + idSoundWorld *soundWorld; + idSWF *loadMostRecentCallingGui; + idSWF *testGui; + idSWF *mainMenu; + idSWF *popupGui; + int currentDeviceIndex; + int savegameEnumHandle; + bool closePopupGui; + int popupResult; + idStr popupCallback; + bool showingMatchResults; + int showingUnlockedItemIndex; + int nextScrollTime; + int scrollSpeed; + bool waitForBinding; + bool finishBinding; + int bindWaitKey; + idStr bindAction; + int bindSet; + bool savedGamesUpdateRequested; + bool isDeletingGame; + bool needsSaveInfoEnumerate; + pauseMenuState_t pauseMenuState; + bool askedForSignIn; + idSysSignal deviceRequestedSignal; + bool singlePlayerSelected; + bool requestingDevice; + bool saveAfterDeviceRequest; + idStr saveAfterDeviceRequestFolder; + bool autosaveWarningShown; + bool autosaveWarningShownAllowsAutosave; + bool requestingDLC; + bool ps3MenuRequested; + bool returnToPressStartWaitSaveComplete; + int matchMapIndex; + int matchModeIndex; + int matchSearchIndex; + int matchTypeIndex; + bool privateMatch; + bool localMatch; + int coopDifficulty; + int scoreLimit; + int timeLimit; + bool coopInviteOnly; + bool vdmInviteOnly; + int deferredActivateMsec; + int deferredDeactivateMsec; + int menuState; + int lastMenuState; + bool installMessageShown; + bool diskSwapInputLock; + bool storageDialogActivated; + bool askToDeleteAutosaveOnNewGame; + idLBCache *lbCache; + bool vdmLeaderboard; + int coopLBIndex; + int vdmLBIndex; + bool refreshLeaderboard; + bool refreshWhenMasterIsOnline; + bool moveToCampaign; + bool isScrolling; + bool refreshing; + int scrollDelay; + bool pausedOnEnter; + bool isProfileScreenOpenBool; + idList displayResolutions; + bool onLoadMenu; + menuSwitchRequest_t menuRequest; + idStrStatic<2048> chatHistory; + idList raceDescriptions; + idLobbyController *lobbyController; + idStaticList roadRageLeaderboards; + idList coopLeaderboards; + bool viewCoopNightmareLeaderboard; + bool wasViewingMpConfig; + idList mpMaps; + idList chapters; + idList secretTypes; + menuArea_t menuArea; + menuArea_t desiredMenuArea; + idSession::sessionState_t oldSessionState; + int showingMigratingTime; + idMainMenu::idSWFScriptFunction_setState scriptFunction_setState; + idMainMenu::idSWFScriptFunction_registerUserMouse scriptFunction_registerUserMouse; + idMainMenu::idSWFScriptFunction_quitGame scriptFunction_quitGame; + idMainMenu::idSWFScriptFunction_waitForCredits scriptFunction_waitForCredits; + idMainMenu::idSWFScriptFunction_clearWaitForCredits scriptFunction_clearWaitForCredits; + idMainMenu::idSWFScriptFunction_updateScrolling scriptFunction_updateScrolling; + idMainMenu::idSWFScriptFunction_checkCanPlayOnline scriptFunction_checkCanPlayOnline; + idMainMenu::idSWFScriptFunction_isMpDisc scriptFunction_isMpDisc; + idMainMenu::idSWFScriptFunction_moveBetweenSPAndMP scriptFunction_moveBetweenSPAndMP; + idMainMenu::idSWFScriptFunction_setGameDifficulty scriptFunction_setGameDifficulty; + idMainMenu::idSWFScriptFunction_setNewGameDifficulty scriptFunction_setNewGameDifficulty; + idMainMenu::idSWFScriptFunction_getGameDifficulty scriptFunction_getGameDifficulty; + idMainMenu::idSWFScriptFunction_closeMenu scriptFunction_closeMenu; + idMainMenu::idSWFScriptFunction_setNewGame scriptFunction_setNewGame; + idMainMenu::idSWFScriptFunction_needsDiskSwap scriptFunction_needsDiskSwap; + idMainMenu::idSWFScriptFunction_isProfileScreenOpen scriptFunction_isProfileScreenOpen; + idMainMenu::idSWFScriptFunction_createTeamLobby scriptFunction_createTeamLobby; + idMainMenu::idSWFScriptFunction_createGameLobby scriptFunction_createGameLobby; + idMainMenu::idSWFScriptFunction_autoJoinGameLobby scriptFunction_autoJoinGameLobby; + idMainMenu::idSWFScriptFunction_isInGameLobby scriptFunction_isInGameLobby; + idMainMenu::idSWFScriptFunction_needSpDiscSwap scriptFunction_needSpDiscSwap; + idMainMenu::idSWFScriptFunction_setBindingWait scriptFunction_setBindingWait; + idMainMenu::idSWFScriptFunction_canScroll scriptFunction_canScroll; + idMainMenu::idSWFScriptFunction_setScrollSpeed scriptFunction_setScrollSpeed; + idMainMenu::idSWFScriptFunction_startMatch scriptFunction_startMatch; + idMainMenu::idSWFScriptFunction_startMatchCountdown scriptFunction_startMatchCountdown; + idMainMenu::idSWFScriptFunction_cancelMatch scriptFunction_cancelMatch; + idMainMenu::idSWFScriptFunction_cancelMatchCountdown scriptFunction_cancelMatchCountdown; + idMainMenu::idSWFScriptFunction_joinMatch scriptFunction_joinMatch; + idMainMenu::idSWFScriptFunction_showServerGamerCardUI scriptFunction_showServerGamerCardUI; + idMainMenu::idSWFScriptFunction_inviteFriends scriptFunction_inviteFriends; + idMainMenu::idSWFScriptFunction_showPartySessions scriptFunction_showPartySessions; + idMainMenu::idSWFScriptFunction_getMatchType scriptFunction_getMatchType; + idMainMenu::idSWFScriptFunction_setMatchType scriptFunction_setMatchType; + idMainMenu::idSWFScriptFunction_isPeer scriptFunction_isPeer; + idMainMenu::idSWFScriptFunction_isPartyPeer scriptFunction_isPartyPeer; + idMainMenu::idSWFScriptFunction_updateLanServerList scriptFunction_updateLanServerList; + idMainMenu::idSWFScriptFunction_isLobbyFull scriptFunction_isLobbyFull; + idMainMenu::idSWFScriptFunction_getChapterList scriptFunction_getChapterList; + idMainMenu::idSWFScriptFunction_showVoteResults scriptFunction_showVoteResults; + idMainMenu::idSWFScriptFunction_voteToSkipMap scriptFunction_voteToSkipMap; + idMainMenu::idSWFScriptFunction_getMapList scriptFunction_getMapList; + idMainMenu::idSWFScriptFunction_getGameMapAvailable scriptFunction_getGameMapAvailable; + idMainMenu::idSWFScriptFunction_getMatchMap scriptFunction_getMatchMap; + idMainMenu::idSWFScriptFunction_setMatchMap scriptFunction_setMatchMap; + idMainMenu::idSWFScriptFunction_updateMapSelection scriptFunction_updateMapSelection; + idMainMenu::idSWFScriptFunction_getModeList scriptFunction_getModeList; + idMainMenu::idSWFScriptFunction_getGameModeAvailable scriptFunction_getGameModeAvailable; + idMainMenu::idSWFScriptFunction_getMatchMode scriptFunction_getMatchMode; + idMainMenu::idSWFScriptFunction_setMatchMode scriptFunction_setMatchMode; + idMainMenu::idSWFScriptFunction_joinQuickMatch scriptFunction_joinQuickMatch; + idMainMenu::idSWFScriptFunction_setPrivateMatch scriptFunction_setPrivateMatch; + idMainMenu::idSWFScriptFunction_isPrivateMatch scriptFunction_isPrivateMatch; + idMainMenu::idSWFScriptFunction_setLocalMatch scriptFunction_setLocalMatch; + idMainMenu::idSWFScriptFunction_isLocalMatch scriptFunction_isLocalMatch; + idMainMenu::idSWFScriptFunction_sendChatText scriptFunction_sendChatText; + idMainMenu::idSWFScriptFunction_togglePlayerMute scriptFunction_togglePlayerMute; + idMainMenu::idSWFScriptFunction_showGamerCardUI scriptFunction_showGamerCardUI; + idMainMenu::idSWFScriptFunction_kickPlayer scriptFunction_kickPlayer; + idMainMenu::idSWFScriptFunction_isInPlatformParty scriptFunction_isInPlatformParty; + idMainMenu::idSWFScriptFunction_invitePlatformParty scriptFunction_invitePlatformParty; + idMainMenu::idSWFScriptFunction_loadProfileData scriptFunction_loadProfileData; + idMainMenu::idSWFScriptFunction_setMenuArea scriptFunction_setMenuArea; + idMainMenu::idSWFScriptFunction_forceMenuArea scriptFunction_forceMenuArea; + idMainMenu::idSWFScriptFunction_getPostGameResults scriptFunction_getPostGameResults; + idMainMenu::idSWFScriptFunction_updateModeSelection scriptFunction_updateModeSelection; + idMainMenu::idSWFScriptFunction_changeTeam scriptFunction_changeTeam; + idMainMenu::idSWFScriptFunction_isGameModeTeam scriptFunction_isGameModeTeam; + idMainMenu::idSWFScriptFunction_showMatchResultsPopup scriptFunction_showMatchResultsPopup; + idMainMenu::idSWFScriptFunction_showNextUnlockPopup scriptFunction_showNextUnlockPopup; + idMainMenu::idSWFScriptFunction_showPopupDialog scriptFunction_showPopupDialog; + idMainMenu::idSWFScriptFunction_closePopup scriptFunction_closePopup; + idMainMenu::idSWFScriptFunction_loadMap scriptFunction_loadMap; + idMainMenu::idSWFScriptFunction_getDefaultDevMenuOption scriptFunction_getDefaultDevMenuOption; + idMainMenu::idSWFScriptFunction_restartMap scriptFunction_restartMap; + idMainMenu::idSWFScriptFunction_returnToMainMenu scriptFunction_returnToMainMenu; + idMainMenu::idSWFScriptFunction_confirmExitGame scriptFunction_confirmExitGame; + idMainMenu::idSWFScriptFunction_restartFromPause scriptFunction_restartFromPause; + idMainMenu::idSWFScriptFunction_cancelSaveEnumeration scriptFunction_cancelSaveEnumeration; + idMainMenu::idSWFScriptFunction_GetSaveGame scriptFunction_GetSaveGame; + idMainMenu::idSWFScriptFunction_CanSaveGame scriptFunction_CanSaveGame; + idMainMenu::idSWFScriptFunction_SaveGame scriptFunction_SaveGame; + idMainMenu::idSWFScriptFunction_LoadGame scriptFunction_LoadGame; + idMainMenu::idSWFScriptFunction_deleteGame scriptFunction_deleteGame; + idMainMenu::idSWFScriptFunction_select360Storage scriptFunction_select360Storage; + idMainMenu::idSWFScriptFunction_canContinueGame scriptFunction_canContinueGame; + idMainMenu::idSWFScriptFunction_canLoadGame scriptFunction_canLoadGame; + idMainMenu::idSWFScriptFunction_canStartNewGame scriptFunction_canStartNewGame; + idMainMenu::idSWFScriptFunction_startDeviceSignal scriptFunction_startDeviceSignal; + idMainMenu::idSWFScriptFunction_endDeviceSignal scriptFunction_endDeviceSignal; + idMainMenu::idSWFScriptFunction_setSaveLoadUpdate scriptFunction_setSaveLoadUpdate; + idMainMenu::idSWFScriptFunction_isEnumerating scriptFunction_isEnumerating; + idMainMenu::idSWFScriptFunction_continueGame scriptFunction_continueGame; + idMainMenu::idSWFScriptFunction_continueFromMostRecentSave scriptFunction_continueFromMostRecentSave; + idMainMenu::idSWFScriptFunction_loadDamagedFile scriptFunction_loadDamagedFile; + idMainMenu::idSWFScriptFunction_isLookInverted scriptFunction_isLookInverted; + idMainMenu::idSWFScriptFunction_invertLook scriptFunction_invertLook; + idMainMenu::idSWFScriptFunction_updateSafeFrameScale scriptFunction_updateSafeFrameScale; + idMainMenu::idSWFScriptFunction_GetSafeFrameScale scriptFunction_GetSafeFrameScale; + idMainMenu::idSWFScriptFunction_updateGammaValue scriptFunction_updateGammaValue; + idMainMenu::idSWFScriptFunction_getGammaValue scriptFunction_getGammaValue; + idMainMenu::idSWFScriptFunction_setInvertLook scriptFunction_setInvertLook; + idMainMenu::idSWFScriptFunction_subtitlesEnabled scriptFunction_subtitlesEnabled; + idMainMenu::idSWFScriptFunction_setSubtitlesEnabled scriptFunction_setSubtitlesEnabled; + idMainMenu::idSWFScriptFunction_calculateBenchmark scriptFunction_calculateBenchmark; + idMainMenu::idSWFScriptFunction_getBenchmarkValue scriptFunction_getBenchmarkValue; + idMainMenu::idSWFScriptFunction_getAudioVolume scriptFunction_getAudioVolume; + idMainMenu::idSWFScriptFunction_setAudioVolume scriptFunction_setAudioVolume; + idMainMenu::idSWFScriptFunction_updateJoyYawSpeed scriptFunction_updateJoyYawSpeed; + idMainMenu::idSWFScriptFunction_GetJoyYawSpeed scriptFunction_GetJoyYawSpeed; + idMainMenu::idSWFScriptFunction_updateJoyPitchSpeed scriptFunction_updateJoyPitchSpeed; + idMainMenu::idSWFScriptFunction_GetJoyPitchSpeed scriptFunction_GetJoyPitchSpeed; + idMainMenu::idSWFScriptFunction_getBinding scriptFunction_getBinding; + idMainMenu::idSWFScriptFunction_confirmRestoreBindings scriptFunction_confirmRestoreBindings; + idMainMenu::idSWFScriptFunction_getGamepadEnabled scriptFunction_getGamepadEnabled; + idMainMenu::idSWFScriptFunction_setGamepadEnabled scriptFunction_setGamepadEnabled; + idMainMenu::idSWFScriptFunction_getUseAimAssist scriptFunction_getUseAimAssist; + idMainMenu::idSWFScriptFunction_setUseAimAssist scriptFunction_setUseAimAssist; + idMainMenu::idSWFScriptFunction_setUseVibrate scriptFunction_setUseVibrate; + idMainMenu::idSWFScriptFunction_getUseVibrate scriptFunction_getUseVibrate; + idMainMenu::idSWFScriptFunction_setMouseSensitivity scriptFunction_setMouseSensitivity; + idMainMenu::idSWFScriptFunction_getMouseSensitivity scriptFunction_getMouseSensitivity; + idMainMenu::idSWFScriptFunction_getConfig scriptFunction_getConfig; + idMainMenu::idSWFScriptFunction_setConfig scriptFunction_setConfig; + idMainMenu::idSWFScriptFunction_changeConfig scriptFunction_changeConfig; + idMainMenu::idSWFScriptFunction_getConfigText scriptFunction_getConfigText; + idMainMenu::idSWFScriptFunction_hidePauseMenu scriptFunction_hidePauseMenu; + idMainMenu::idSWFScriptFunction_getCoopDifficulty scriptFunction_getCoopDifficulty; + idMainMenu::idSWFScriptFunction_setCoopDifficulty scriptFunction_setCoopDifficulty; + idMainMenu::idSWFScriptFunction_getSessionCoopDifficulty scriptFunction_getSessionCoopDifficulty; + idMainMenu::idSWFScriptFunction_loadScrollingControlValues scriptFunction_loadScrollingControlValues; + idMainMenu::idSWFScriptFunction_getTimeLimit scriptFunction_getTimeLimit; + idMainMenu::idSWFScriptFunction_setTimeLimit scriptFunction_setTimeLimit; + idMainMenu::idSWFScriptFunction_getScoreLimit scriptFunction_getScoreLimit; + idMainMenu::idSWFScriptFunction_setScoreLimit scriptFunction_setScoreLimit; + idMainMenu::idSWFScriptFunction_getCOOPPrivacy scriptFunction_getCOOPPrivacy; + idMainMenu::idSWFScriptFunction_setCOOPPrivacy scriptFunction_setCOOPPrivacy; + idMainMenu::idSWFScriptFunction_shouldPrivacyBeVisible scriptFunction_shouldPrivacyBeVisible; + idMainMenu::idSWFScriptFunction_getAllowFriendlyFire scriptFunction_getAllowFriendlyFire; + idMainMenu::idSWFScriptFunction_setAllowFriendlyFire scriptFunction_setAllowFriendlyFire; + idMainMenu::idSWFScriptFunction_getAllowSpectators scriptFunction_getAllowSpectators; + idMainMenu::idSWFScriptFunction_setAllowSpectators scriptFunction_setAllowSpectators; + idMainMenu::idSWFScriptFunction_getAllowPowerups scriptFunction_getAllowPowerups; + idMainMenu::idSWFScriptFunction_setAllowPowerups scriptFunction_setAllowPowerups; + idMainMenu::idSWFScriptFunction_getAllowQuickUse scriptFunction_getAllowQuickUse; + idMainMenu::idSWFScriptFunction_setAllowQuickUse scriptFunction_setAllowQuickUse; + idMainMenu::idSWFScriptFunction_getAllowSponsors scriptFunction_getAllowSponsors; + idMainMenu::idSWFScriptFunction_setAllowSponsors scriptFunction_setAllowSponsors; + idMainMenu::idSWFScriptFunction_getAllowBoost scriptFunction_getAllowBoost; + idMainMenu::idSWFScriptFunction_setAllowBoost scriptFunction_setAllowBoost; + idMainMenu::idSWFScriptFunction_suicide scriptFunction_suicide; + idMainMenu::idSWFScriptFunction_getPlayerLevelTitle scriptFunction_getPlayerLevelTitle; + idMainMenu::idSWFScriptFunction_getAccoladeInfo scriptFunction_getAccoladeInfo; + idMainMenu::idSWFScriptFunction_getAccoladeCount scriptFunction_getAccoladeCount; + idMainMenu::idSWFScriptFunction_selectAccolade scriptFunction_selectAccolade; + idMainMenu::idSWFScriptFunction_drawPlayerInfo scriptFunction_drawPlayerInfo; + idMainMenu::idSWFScriptFunction_getMissionMapList scriptFunction_getMissionMapList; + idMainMenu::idSWFScriptFunction_hasNewAccolade scriptFunction_hasNewAccolade; + idMainMenu::idSWFScriptFunction_loadMenuItems scriptFunction_loadMenuItems; + idMainMenu::idSWFScriptFunction_saveSettings scriptFunction_saveSettings; + idMainMenu::idSWFScriptFunction_clearLeaderboard scriptFunction_clearLeaderboard; + idMainMenu::idSWFScriptFunction_refreshLeaderboard scriptFunction_refreshLeaderboard; + idMainMenu::idSWFScriptFunction_scrollLeaderboard scriptFunction_scrollLeaderboard; + idMainMenu::idSWFScriptFunction_nextLeaderboard scriptFunction_nextLeaderboard; + idMainMenu::idSWFScriptFunction_prevLeaderboard scriptFunction_prevLeaderboard; + idMainMenu::idSWFScriptFunction_selectLeaderboardIndex scriptFunction_selectLeaderboardIndex; + idMainMenu::idSWFScriptFunction_showLeaderboardGamerCardUI scriptFunction_showLeaderboardGamerCardUI; + idMainMenu::idSWFScriptFunction_toggleCoopNightmareLeaderboard scriptFunction_toggleCoopNightmareLeaderboard; + idMainMenu::idSWFScriptFunction_isCoopNightmareLeaderboard scriptFunction_isCoopNightmareLeaderboard; + idMainMenu::idSWFScriptFunction_filterList scriptFunction_filterList; + idMainMenu::idSWFScriptFunction_setScrolling scriptFunction_setScrolling; + idMainMenu::idSWFScriptFunction_updateScroll scriptFunction_updateScroll; + idMainMenu::idSWFScriptFunction_updateLbScroll scriptFunction_updateLbScroll; + idMainMenu::idSWFScriptFunction_stopPlaytestRenderDemoRecord scriptFunction_stopPlaytestRenderDemoRecord; + idMainMenu::idSWFScriptFunction_setPlaytestSessionName scriptFunction_setPlaytestSessionName; + idMainMenu::idSWFScriptFunction_checkActivatePlaytestLogging scriptFunction_checkActivatePlaytestLogging; + idMainMenu::idSWFScriptFunction_checkActivateRenderDemo scriptFunction_checkActivateRenderDemo; + idMainMenu::idSWFScriptFunction_loadDevMenuOption scriptFunction_loadDevMenuOption; + idMainMenu::idSWFScriptFunction_isDemoMode scriptFunction_isDemoMode; + idMainMenu::idSWFScriptFunction_showDLCOption scriptFunction_showDLCOption; + idMainMenu::idSWFScriptFunction_hasNewDLC scriptFunction_hasNewDLC; + idMainMenu::idSWFScriptFunction_showDLCMenu scriptFunction_showDLCMenu; + idMainMenu::idSWFScriptFunction_isGameInstalled scriptFunction_isGameInstalled; + idMainMenu::idSWFScriptFunction_showCredits scriptFunction_showCredits; + idMainMenu::idSWFScriptFunction_ps3ShowFriends scriptFunction_ps3ShowFriends; + idMainMenu::idSWFScriptFunction_ps3ShowNotifications scriptFunction_ps3ShowNotifications; + idMainMenu::idSWFScriptFunction_ps3CheckInvites scriptFunction_ps3CheckInvites; + idMainMenu::idSWFScriptFunction_hasContentPack scriptFunction_hasContentPack; + idMainMenu::idSWFScriptFunction_isMpHandsOnDemo scriptFunction_isMpHandsOnDemo; +}; + +// IDA Local Type ordinal 16071; PDB kind: struct. +struct idMainMenu::roadRageLeaderboard_t +{ + const leaderboardDefinition_t *lb; + idStrId name; +}; + +// IDA Local Type ordinal 16074; PDB kind: struct. +struct idMainMenu::coopLeaderboard_t +{ + idStrId name; + int leaderboardId; + int nightmareLeaderboardId; +}; + +// IDA Local Type ordinal 16094; PDB kind: class. +class idMainMenu::idSWFScriptFunction_setState : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16095. + virtual ~idSWFScriptFunction_setState(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16096; PDB kind: class. +class idMainMenu::idSWFScriptFunction_registerUserMouse : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16097. + virtual ~idSWFScriptFunction_registerUserMouse(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16098; PDB kind: class. +class idMainMenu::idSWFScriptFunction_quitGame : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16099. + virtual ~idSWFScriptFunction_quitGame(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16100; PDB kind: class. +class idMainMenu::idSWFScriptFunction_waitForCredits : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16101. + virtual ~idSWFScriptFunction_waitForCredits(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16102; PDB kind: class. +class idMainMenu::idSWFScriptFunction_clearWaitForCredits : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16103. + virtual ~idSWFScriptFunction_clearWaitForCredits(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16104; PDB kind: class. +class idMainMenu::idSWFScriptFunction_updateScrolling : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16105. + virtual ~idSWFScriptFunction_updateScrolling(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16106; PDB kind: class. +class idMainMenu::idSWFScriptFunction_checkCanPlayOnline : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16107. + virtual ~idSWFScriptFunction_checkCanPlayOnline(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16108; PDB kind: class. +class idMainMenu::idSWFScriptFunction_isMpDisc : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16109. + virtual ~idSWFScriptFunction_isMpDisc(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16110; PDB kind: class. +class idMainMenu::idSWFScriptFunction_moveBetweenSPAndMP : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16111. + virtual ~idSWFScriptFunction_moveBetweenSPAndMP(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16112; PDB kind: class. +class idMainMenu::idSWFScriptFunction_setGameDifficulty : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16113. + virtual ~idSWFScriptFunction_setGameDifficulty(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16114; PDB kind: class. +class idMainMenu::idSWFScriptFunction_setNewGameDifficulty : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16115. + virtual ~idSWFScriptFunction_setNewGameDifficulty(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16116; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getGameDifficulty : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16117. + virtual ~idSWFScriptFunction_getGameDifficulty(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16118; PDB kind: class. +class idMainMenu::idSWFScriptFunction_closeMenu : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16119. + virtual ~idSWFScriptFunction_closeMenu(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16120; PDB kind: class. +class idMainMenu::idSWFScriptFunction_setNewGame : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16121. + virtual ~idSWFScriptFunction_setNewGame(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16122; PDB kind: class. +class idMainMenu::idSWFScriptFunction_needsDiskSwap : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16123. + virtual ~idSWFScriptFunction_needsDiskSwap(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16124; PDB kind: class. +class idMainMenu::idSWFScriptFunction_isProfileScreenOpen : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16125. + virtual ~idSWFScriptFunction_isProfileScreenOpen(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16126; PDB kind: class. +class idMainMenu::idSWFScriptFunction_createTeamLobby : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16127. + virtual ~idSWFScriptFunction_createTeamLobby(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16128; PDB kind: class. +class idMainMenu::idSWFScriptFunction_createGameLobby : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16129. + virtual ~idSWFScriptFunction_createGameLobby(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16130; PDB kind: class. +class idMainMenu::idSWFScriptFunction_autoJoinGameLobby : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16131. + virtual ~idSWFScriptFunction_autoJoinGameLobby(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16132; PDB kind: class. +class idMainMenu::idSWFScriptFunction_isInGameLobby : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16133. + virtual ~idSWFScriptFunction_isInGameLobby(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16134; PDB kind: class. +class idMainMenu::idSWFScriptFunction_needSpDiscSwap : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16135. + virtual ~idSWFScriptFunction_needSpDiscSwap(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16136; PDB kind: class. +class idMainMenu::idSWFScriptFunction_setBindingWait : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16137. + virtual ~idSWFScriptFunction_setBindingWait(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16138; PDB kind: class. +class idMainMenu::idSWFScriptFunction_canScroll : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16139. + virtual ~idSWFScriptFunction_canScroll(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16140; PDB kind: class. +class idMainMenu::idSWFScriptFunction_setScrollSpeed : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16141. + virtual ~idSWFScriptFunction_setScrollSpeed(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16142; PDB kind: class. +class idMainMenu::idSWFScriptFunction_startMatch : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16143. + virtual ~idSWFScriptFunction_startMatch(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16144; PDB kind: class. +class idMainMenu::idSWFScriptFunction_startMatchCountdown : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16145. + virtual ~idSWFScriptFunction_startMatchCountdown(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16146; PDB kind: class. +class idMainMenu::idSWFScriptFunction_cancelMatch : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16147. + virtual ~idSWFScriptFunction_cancelMatch(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16148; PDB kind: class. +class idMainMenu::idSWFScriptFunction_cancelMatchCountdown : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16149. + virtual ~idSWFScriptFunction_cancelMatchCountdown(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16150; PDB kind: class. +class idMainMenu::idSWFScriptFunction_joinMatch : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16151. + virtual ~idSWFScriptFunction_joinMatch(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16152; PDB kind: class. +class idMainMenu::idSWFScriptFunction_showServerGamerCardUI : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16153. + virtual ~idSWFScriptFunction_showServerGamerCardUI(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16154; PDB kind: class. +class idMainMenu::idSWFScriptFunction_inviteFriends : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16155. + virtual ~idSWFScriptFunction_inviteFriends(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16156; PDB kind: class. +class idMainMenu::idSWFScriptFunction_showPartySessions : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16157. + virtual ~idSWFScriptFunction_showPartySessions(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16158; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getMatchType : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16159. + virtual ~idSWFScriptFunction_getMatchType(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16160; PDB kind: class. +class idMainMenu::idSWFScriptFunction_setMatchType : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16161. + virtual ~idSWFScriptFunction_setMatchType(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16162; PDB kind: class. +class idMainMenu::idSWFScriptFunction_isPeer : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16163. + virtual ~idSWFScriptFunction_isPeer(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16164; PDB kind: class. +class idMainMenu::idSWFScriptFunction_isPartyPeer : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16165. + virtual ~idSWFScriptFunction_isPartyPeer(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16166; PDB kind: class. +class idMainMenu::idSWFScriptFunction_updateLanServerList : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16167. + virtual ~idSWFScriptFunction_updateLanServerList(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16168; PDB kind: class. +class idMainMenu::idSWFScriptFunction_isLobbyFull : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16169. + virtual ~idSWFScriptFunction_isLobbyFull(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16170; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getChapterList : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16171. + virtual ~idSWFScriptFunction_getChapterList(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16172; PDB kind: class. +class idMainMenu::idSWFScriptFunction_showVoteResults : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16173. + virtual ~idSWFScriptFunction_showVoteResults(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16174; PDB kind: class. +class idMainMenu::idSWFScriptFunction_voteToSkipMap : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16175. + virtual ~idSWFScriptFunction_voteToSkipMap(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16176; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getMapList : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16177. + virtual ~idSWFScriptFunction_getMapList(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16178; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getGameMapAvailable : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16179. + virtual ~idSWFScriptFunction_getGameMapAvailable(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16180; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getMatchMap : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16181. + virtual ~idSWFScriptFunction_getMatchMap(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16182; PDB kind: class. +class idMainMenu::idSWFScriptFunction_setMatchMap : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16183. + virtual ~idSWFScriptFunction_setMatchMap(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16184; PDB kind: class. +class idMainMenu::idSWFScriptFunction_updateMapSelection : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16185. + virtual ~idSWFScriptFunction_updateMapSelection(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16186; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getModeList : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16187. + virtual ~idSWFScriptFunction_getModeList(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16188; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getGameModeAvailable : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16189. + virtual ~idSWFScriptFunction_getGameModeAvailable(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16190; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getMatchMode : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16191. + virtual ~idSWFScriptFunction_getMatchMode(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16192; PDB kind: class. +class idMainMenu::idSWFScriptFunction_setMatchMode : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16193. + virtual ~idSWFScriptFunction_setMatchMode(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16194; PDB kind: class. +class idMainMenu::idSWFScriptFunction_joinQuickMatch : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16195. + virtual ~idSWFScriptFunction_joinQuickMatch(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16196; PDB kind: class. +class idMainMenu::idSWFScriptFunction_setPrivateMatch : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16197. + virtual ~idSWFScriptFunction_setPrivateMatch(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16198; PDB kind: class. +class idMainMenu::idSWFScriptFunction_isPrivateMatch : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16199. + virtual ~idSWFScriptFunction_isPrivateMatch(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16200; PDB kind: class. +class idMainMenu::idSWFScriptFunction_setLocalMatch : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16201. + virtual ~idSWFScriptFunction_setLocalMatch(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16202; PDB kind: class. +class idMainMenu::idSWFScriptFunction_isLocalMatch : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16203. + virtual ~idSWFScriptFunction_isLocalMatch(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16204; PDB kind: class. +class idMainMenu::idSWFScriptFunction_sendChatText : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16205. + virtual ~idSWFScriptFunction_sendChatText(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16206; PDB kind: class. +class idMainMenu::idSWFScriptFunction_togglePlayerMute : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16207. + virtual ~idSWFScriptFunction_togglePlayerMute(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16208; PDB kind: class. +class idMainMenu::idSWFScriptFunction_showGamerCardUI : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16209. + virtual ~idSWFScriptFunction_showGamerCardUI(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16210; PDB kind: class. +class idMainMenu::idSWFScriptFunction_kickPlayer : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16211. + virtual ~idSWFScriptFunction_kickPlayer(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16212; PDB kind: class. +class idMainMenu::idSWFScriptFunction_isInPlatformParty : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16213. + virtual ~idSWFScriptFunction_isInPlatformParty(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16214; PDB kind: class. +class idMainMenu::idSWFScriptFunction_invitePlatformParty : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16215. + virtual ~idSWFScriptFunction_invitePlatformParty(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16216; PDB kind: class. +class idMainMenu::idSWFScriptFunction_loadProfileData : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16217. + virtual ~idSWFScriptFunction_loadProfileData(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16218; PDB kind: class. +class idMainMenu::idSWFScriptFunction_setMenuArea : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16219. + virtual ~idSWFScriptFunction_setMenuArea(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16220; PDB kind: class. +class idMainMenu::idSWFScriptFunction_forceMenuArea : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16221. + virtual ~idSWFScriptFunction_forceMenuArea(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16222; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getPostGameResults : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16223. + virtual ~idSWFScriptFunction_getPostGameResults(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16224; PDB kind: class. +class idMainMenu::idSWFScriptFunction_updateModeSelection : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16225. + virtual ~idSWFScriptFunction_updateModeSelection(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16226; PDB kind: class. +class idMainMenu::idSWFScriptFunction_changeTeam : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16227. + virtual ~idSWFScriptFunction_changeTeam(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16228; PDB kind: class. +class idMainMenu::idSWFScriptFunction_isGameModeTeam : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16229. + virtual ~idSWFScriptFunction_isGameModeTeam(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16230; PDB kind: class. +class idMainMenu::idSWFScriptFunction_showMatchResultsPopup : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16231. + virtual ~idSWFScriptFunction_showMatchResultsPopup(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16232; PDB kind: class. +class idMainMenu::idSWFScriptFunction_showNextUnlockPopup : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16233. + virtual ~idSWFScriptFunction_showNextUnlockPopup(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16234; PDB kind: class. +class idMainMenu::idSWFScriptFunction_showPopupDialog : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16235. + virtual ~idSWFScriptFunction_showPopupDialog(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16236; PDB kind: class. +class idMainMenu::idSWFScriptFunction_closePopup : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16237. + virtual ~idSWFScriptFunction_closePopup(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16238; PDB kind: class. +class idMainMenu::idSWFScriptFunction_loadMap : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16239. + virtual ~idSWFScriptFunction_loadMap(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16240; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getDefaultDevMenuOption : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16241. + virtual ~idSWFScriptFunction_getDefaultDevMenuOption(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16242; PDB kind: class. +class idMainMenu::idSWFScriptFunction_restartMap : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16243. + virtual ~idSWFScriptFunction_restartMap(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16244; PDB kind: class. +class idMainMenu::idSWFScriptFunction_returnToMainMenu : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16245. + virtual ~idSWFScriptFunction_returnToMainMenu(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16246; PDB kind: class. +class idMainMenu::idSWFScriptFunction_confirmExitGame : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16247. + virtual ~idSWFScriptFunction_confirmExitGame(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16248; PDB kind: class. +class idMainMenu::idSWFScriptFunction_restartFromPause : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16249. + virtual ~idSWFScriptFunction_restartFromPause(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16250; PDB kind: class. +class idMainMenu::idSWFScriptFunction_cancelSaveEnumeration : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16251. + virtual ~idSWFScriptFunction_cancelSaveEnumeration(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16252; PDB kind: class. +class idMainMenu::idSWFScriptFunction_GetSaveGame : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16253. + virtual ~idSWFScriptFunction_GetSaveGame(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16254; PDB kind: class. +class idMainMenu::idSWFScriptFunction_CanSaveGame : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16255. + virtual ~idSWFScriptFunction_CanSaveGame(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16256; PDB kind: class. +class idMainMenu::idSWFScriptFunction_SaveGame : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16257. + virtual ~idSWFScriptFunction_SaveGame(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16258; PDB kind: class. +class idMainMenu::idSWFScriptFunction_LoadGame : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16259. + virtual ~idSWFScriptFunction_LoadGame(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16260; PDB kind: class. +class idMainMenu::idSWFScriptFunction_deleteGame : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16261. + virtual ~idSWFScriptFunction_deleteGame(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16262; PDB kind: class. +class idMainMenu::idSWFScriptFunction_select360Storage : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16263. + virtual ~idSWFScriptFunction_select360Storage(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16264; PDB kind: class. +class idMainMenu::idSWFScriptFunction_canContinueGame : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16265. + virtual ~idSWFScriptFunction_canContinueGame(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16266; PDB kind: class. +class idMainMenu::idSWFScriptFunction_canLoadGame : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16267. + virtual ~idSWFScriptFunction_canLoadGame(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16268; PDB kind: class. +class idMainMenu::idSWFScriptFunction_canStartNewGame : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16269. + virtual ~idSWFScriptFunction_canStartNewGame(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16270; PDB kind: class. +class idMainMenu::idSWFScriptFunction_startDeviceSignal : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16271. + virtual ~idSWFScriptFunction_startDeviceSignal(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16272; PDB kind: class. +class idMainMenu::idSWFScriptFunction_endDeviceSignal : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16273. + virtual ~idSWFScriptFunction_endDeviceSignal(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16274; PDB kind: class. +class idMainMenu::idSWFScriptFunction_setSaveLoadUpdate : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16275. + virtual ~idSWFScriptFunction_setSaveLoadUpdate(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16276; PDB kind: class. +class idMainMenu::idSWFScriptFunction_isEnumerating : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16277. + virtual ~idSWFScriptFunction_isEnumerating(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16278; PDB kind: class. +class idMainMenu::idSWFScriptFunction_continueGame : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16279. + virtual ~idSWFScriptFunction_continueGame(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16280; PDB kind: class. +class idMainMenu::idSWFScriptFunction_continueFromMostRecentSave : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16281. + virtual ~idSWFScriptFunction_continueFromMostRecentSave(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16282; PDB kind: class. +class idMainMenu::idSWFScriptFunction_loadDamagedFile : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16283. + virtual ~idSWFScriptFunction_loadDamagedFile(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16284; PDB kind: class. +class idMainMenu::idSWFScriptFunction_isLookInverted : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16285. + virtual ~idSWFScriptFunction_isLookInverted(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16286; PDB kind: class. +class idMainMenu::idSWFScriptFunction_invertLook : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16287. + virtual ~idSWFScriptFunction_invertLook(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16288; PDB kind: class. +class idMainMenu::idSWFScriptFunction_updateSafeFrameScale : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16289. + virtual ~idSWFScriptFunction_updateSafeFrameScale(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16290; PDB kind: class. +class idMainMenu::idSWFScriptFunction_GetSafeFrameScale : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16291. + virtual ~idSWFScriptFunction_GetSafeFrameScale(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16292; PDB kind: class. +class idMainMenu::idSWFScriptFunction_updateGammaValue : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16293. + virtual ~idSWFScriptFunction_updateGammaValue(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16294; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getGammaValue : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16295. + virtual ~idSWFScriptFunction_getGammaValue(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16296; PDB kind: class. +class idMainMenu::idSWFScriptFunction_setInvertLook : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16297. + virtual ~idSWFScriptFunction_setInvertLook(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16298; PDB kind: class. +class idMainMenu::idSWFScriptFunction_subtitlesEnabled : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16299. + virtual ~idSWFScriptFunction_subtitlesEnabled(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16300; PDB kind: class. +class idMainMenu::idSWFScriptFunction_setSubtitlesEnabled : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16301. + virtual ~idSWFScriptFunction_setSubtitlesEnabled(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16302; PDB kind: class. +class idMainMenu::idSWFScriptFunction_calculateBenchmark : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16303. + virtual ~idSWFScriptFunction_calculateBenchmark(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16304; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getBenchmarkValue : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16305. + virtual ~idSWFScriptFunction_getBenchmarkValue(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16306; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getAudioVolume : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16307. + virtual ~idSWFScriptFunction_getAudioVolume(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16308; PDB kind: class. +class idMainMenu::idSWFScriptFunction_setAudioVolume : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16309. + virtual ~idSWFScriptFunction_setAudioVolume(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16310; PDB kind: class. +class idMainMenu::idSWFScriptFunction_updateJoyYawSpeed : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16311. + virtual ~idSWFScriptFunction_updateJoyYawSpeed(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16312; PDB kind: class. +class idMainMenu::idSWFScriptFunction_GetJoyYawSpeed : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16313. + virtual ~idSWFScriptFunction_GetJoyYawSpeed(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16314; PDB kind: class. +class idMainMenu::idSWFScriptFunction_updateJoyPitchSpeed : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16315. + virtual ~idSWFScriptFunction_updateJoyPitchSpeed(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16316; PDB kind: class. +class idMainMenu::idSWFScriptFunction_GetJoyPitchSpeed : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16317. + virtual ~idSWFScriptFunction_GetJoyPitchSpeed(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16318; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getBinding : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16319. + virtual ~idSWFScriptFunction_getBinding(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16320; PDB kind: class. +class idMainMenu::idSWFScriptFunction_confirmRestoreBindings : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16321. + virtual ~idSWFScriptFunction_confirmRestoreBindings(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16322; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getGamepadEnabled : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16323. + virtual ~idSWFScriptFunction_getGamepadEnabled(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16324; PDB kind: class. +class idMainMenu::idSWFScriptFunction_setGamepadEnabled : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16325. + virtual ~idSWFScriptFunction_setGamepadEnabled(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16326; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getUseAimAssist : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16327. + virtual ~idSWFScriptFunction_getUseAimAssist(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16328; PDB kind: class. +class idMainMenu::idSWFScriptFunction_setUseAimAssist : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16329. + virtual ~idSWFScriptFunction_setUseAimAssist(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16330; PDB kind: class. +class idMainMenu::idSWFScriptFunction_setUseVibrate : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16331. + virtual ~idSWFScriptFunction_setUseVibrate(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16332; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getUseVibrate : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16333. + virtual ~idSWFScriptFunction_getUseVibrate(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16334; PDB kind: class. +class idMainMenu::idSWFScriptFunction_setMouseSensitivity : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16335. + virtual ~idSWFScriptFunction_setMouseSensitivity(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16336; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getMouseSensitivity : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16337. + virtual ~idSWFScriptFunction_getMouseSensitivity(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16338; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getConfig : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16339. + virtual ~idSWFScriptFunction_getConfig(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16340; PDB kind: class. +class idMainMenu::idSWFScriptFunction_setConfig : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16341. + virtual ~idSWFScriptFunction_setConfig(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16342; PDB kind: class. +class idMainMenu::idSWFScriptFunction_changeConfig : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16343. + virtual ~idSWFScriptFunction_changeConfig(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16344; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getConfigText : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16345. + virtual ~idSWFScriptFunction_getConfigText(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16346; PDB kind: class. +class idMainMenu::idSWFScriptFunction_hidePauseMenu : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16347. + virtual ~idSWFScriptFunction_hidePauseMenu(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16348; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getCoopDifficulty : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16349. + virtual ~idSWFScriptFunction_getCoopDifficulty(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16350; PDB kind: class. +class idMainMenu::idSWFScriptFunction_setCoopDifficulty : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16351. + virtual ~idSWFScriptFunction_setCoopDifficulty(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16352; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getSessionCoopDifficulty : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16353. + virtual ~idSWFScriptFunction_getSessionCoopDifficulty(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16354; PDB kind: class. +class idMainMenu::idSWFScriptFunction_loadScrollingControlValues : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16355. + virtual ~idSWFScriptFunction_loadScrollingControlValues(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16356; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getTimeLimit : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16357. + virtual ~idSWFScriptFunction_getTimeLimit(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16358; PDB kind: class. +class idMainMenu::idSWFScriptFunction_setTimeLimit : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16359. + virtual ~idSWFScriptFunction_setTimeLimit(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16360; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getScoreLimit : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16361. + virtual ~idSWFScriptFunction_getScoreLimit(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16362; PDB kind: class. +class idMainMenu::idSWFScriptFunction_setScoreLimit : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16363. + virtual ~idSWFScriptFunction_setScoreLimit(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16364; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getCOOPPrivacy : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16365. + virtual ~idSWFScriptFunction_getCOOPPrivacy(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16366; PDB kind: class. +class idMainMenu::idSWFScriptFunction_setCOOPPrivacy : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16367. + virtual ~idSWFScriptFunction_setCOOPPrivacy(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16368; PDB kind: class. +class idMainMenu::idSWFScriptFunction_shouldPrivacyBeVisible : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16369. + virtual ~idSWFScriptFunction_shouldPrivacyBeVisible(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16370; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getAllowFriendlyFire : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16371. + virtual ~idSWFScriptFunction_getAllowFriendlyFire(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16372; PDB kind: class. +class idMainMenu::idSWFScriptFunction_setAllowFriendlyFire : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16373. + virtual ~idSWFScriptFunction_setAllowFriendlyFire(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16374; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getAllowSpectators : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16375. + virtual ~idSWFScriptFunction_getAllowSpectators(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16376; PDB kind: class. +class idMainMenu::idSWFScriptFunction_setAllowSpectators : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16377. + virtual ~idSWFScriptFunction_setAllowSpectators(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16378; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getAllowPowerups : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16379. + virtual ~idSWFScriptFunction_getAllowPowerups(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16380; PDB kind: class. +class idMainMenu::idSWFScriptFunction_setAllowPowerups : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16381. + virtual ~idSWFScriptFunction_setAllowPowerups(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16382; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getAllowQuickUse : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16383. + virtual ~idSWFScriptFunction_getAllowQuickUse(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16384; PDB kind: class. +class idMainMenu::idSWFScriptFunction_setAllowQuickUse : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16385. + virtual ~idSWFScriptFunction_setAllowQuickUse(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16386; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getAllowSponsors : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16387. + virtual ~idSWFScriptFunction_getAllowSponsors(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16388; PDB kind: class. +class idMainMenu::idSWFScriptFunction_setAllowSponsors : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16389. + virtual ~idSWFScriptFunction_setAllowSponsors(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16390; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getAllowBoost : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16391. + virtual ~idSWFScriptFunction_getAllowBoost(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16392; PDB kind: class. +class idMainMenu::idSWFScriptFunction_setAllowBoost : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16393. + virtual ~idSWFScriptFunction_setAllowBoost(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16394; PDB kind: class. +class idMainMenu::idSWFScriptFunction_suicide : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16395. + virtual ~idSWFScriptFunction_suicide(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16396; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getPlayerLevelTitle : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16397. + virtual ~idSWFScriptFunction_getPlayerLevelTitle(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16398; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getAccoladeInfo : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16399. + virtual ~idSWFScriptFunction_getAccoladeInfo(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16400; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getAccoladeCount : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16401. + virtual ~idSWFScriptFunction_getAccoladeCount(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16402; PDB kind: class. +class idMainMenu::idSWFScriptFunction_selectAccolade : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16403. + virtual ~idSWFScriptFunction_selectAccolade(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16404; PDB kind: class. +class idMainMenu::idSWFScriptFunction_drawPlayerInfo : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16405. + virtual ~idSWFScriptFunction_drawPlayerInfo(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16406; PDB kind: class. +class idMainMenu::idSWFScriptFunction_getMissionMapList : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16407. + virtual ~idSWFScriptFunction_getMissionMapList(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16408; PDB kind: class. +class idMainMenu::idSWFScriptFunction_hasNewAccolade : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16409. + virtual ~idSWFScriptFunction_hasNewAccolade(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16410; PDB kind: class. +class idMainMenu::idSWFScriptFunction_loadMenuItems : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16411. + virtual ~idSWFScriptFunction_loadMenuItems(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16412; PDB kind: class. +class idMainMenu::idSWFScriptFunction_saveSettings : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16413. + virtual ~idSWFScriptFunction_saveSettings(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16414; PDB kind: class. +class idMainMenu::idSWFScriptFunction_clearLeaderboard : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16415. + virtual ~idSWFScriptFunction_clearLeaderboard(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16416; PDB kind: class. +class idMainMenu::idSWFScriptFunction_refreshLeaderboard : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16417. + virtual ~idSWFScriptFunction_refreshLeaderboard(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16418; PDB kind: class. +class idMainMenu::idSWFScriptFunction_scrollLeaderboard : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16419. + virtual ~idSWFScriptFunction_scrollLeaderboard(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16420; PDB kind: class. +class idMainMenu::idSWFScriptFunction_nextLeaderboard : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16421. + virtual ~idSWFScriptFunction_nextLeaderboard(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16422; PDB kind: class. +class idMainMenu::idSWFScriptFunction_prevLeaderboard : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16423. + virtual ~idSWFScriptFunction_prevLeaderboard(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16424; PDB kind: class. +class idMainMenu::idSWFScriptFunction_selectLeaderboardIndex : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16425. + virtual ~idSWFScriptFunction_selectLeaderboardIndex(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16426; PDB kind: class. +class idMainMenu::idSWFScriptFunction_showLeaderboardGamerCardUI : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16427. + virtual ~idSWFScriptFunction_showLeaderboardGamerCardUI(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16428; PDB kind: class. +class idMainMenu::idSWFScriptFunction_toggleCoopNightmareLeaderboard : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16429. + virtual ~idSWFScriptFunction_toggleCoopNightmareLeaderboard(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16430; PDB kind: class. +class idMainMenu::idSWFScriptFunction_isCoopNightmareLeaderboard : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16431. + virtual ~idSWFScriptFunction_isCoopNightmareLeaderboard(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16432; PDB kind: class. +class idMainMenu::idSWFScriptFunction_filterList : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16433. + virtual ~idSWFScriptFunction_filterList(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16434; PDB kind: class. +class idMainMenu::idSWFScriptFunction_setScrolling : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16435. + virtual ~idSWFScriptFunction_setScrolling(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16436; PDB kind: class. +class idMainMenu::idSWFScriptFunction_updateScroll : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16437. + virtual ~idSWFScriptFunction_updateScroll(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16438; PDB kind: class. +class idMainMenu::idSWFScriptFunction_updateLbScroll : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16439. + virtual ~idSWFScriptFunction_updateLbScroll(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16440; PDB kind: class. +class idMainMenu::idSWFScriptFunction_stopPlaytestRenderDemoRecord : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16441. + virtual ~idSWFScriptFunction_stopPlaytestRenderDemoRecord(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16442; PDB kind: class. +class idMainMenu::idSWFScriptFunction_setPlaytestSessionName : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16443. + virtual ~idSWFScriptFunction_setPlaytestSessionName(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16444; PDB kind: class. +class idMainMenu::idSWFScriptFunction_checkActivatePlaytestLogging : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16445. + virtual ~idSWFScriptFunction_checkActivatePlaytestLogging(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16446; PDB kind: class. +class idMainMenu::idSWFScriptFunction_checkActivateRenderDemo : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16447. + virtual ~idSWFScriptFunction_checkActivateRenderDemo(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16448; PDB kind: class. +class idMainMenu::idSWFScriptFunction_loadDevMenuOption : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16449. + virtual ~idSWFScriptFunction_loadDevMenuOption(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16450; PDB kind: class. +class idMainMenu::idSWFScriptFunction_isDemoMode : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16451. + virtual ~idSWFScriptFunction_isDemoMode(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16452; PDB kind: class. +class idMainMenu::idSWFScriptFunction_showDLCOption : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16453. + virtual ~idSWFScriptFunction_showDLCOption(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16454; PDB kind: class. +class idMainMenu::idSWFScriptFunction_hasNewDLC : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16455. + virtual ~idSWFScriptFunction_hasNewDLC(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16456; PDB kind: class. +class idMainMenu::idSWFScriptFunction_showDLCMenu : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16457. + virtual ~idSWFScriptFunction_showDLCMenu(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16458; PDB kind: class. +class idMainMenu::idSWFScriptFunction_isGameInstalled : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16459. + virtual ~idSWFScriptFunction_isGameInstalled(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16460; PDB kind: class. +class idMainMenu::idSWFScriptFunction_showCredits : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16461. + virtual ~idSWFScriptFunction_showCredits(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16462; PDB kind: class. +class idMainMenu::idSWFScriptFunction_ps3ShowFriends : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16463. + virtual ~idSWFScriptFunction_ps3ShowFriends(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16464; PDB kind: class. +class idMainMenu::idSWFScriptFunction_ps3ShowNotifications : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16465. + virtual ~idSWFScriptFunction_ps3ShowNotifications(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16466; PDB kind: class. +class idMainMenu::idSWFScriptFunction_ps3CheckInvites : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16467. + virtual ~idSWFScriptFunction_ps3CheckInvites(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16468; PDB kind: class. +class idMainMenu::idSWFScriptFunction_hasContentPack : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16469. + virtual ~idSWFScriptFunction_hasContentPack(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 16470; PDB kind: class. +class idMainMenu::idSWFScriptFunction_isMpHandsOnDemo : public idSWFScriptFunction_Nested +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16471. + virtual ~idSWFScriptFunction_isMpHandsOnDemo(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 18371; PDB kind: class. +class idMainMenu::UpdateMenu_Settings::__l21::idSWFScriptFunction_accept : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18372. + virtual ~idSWFScriptFunction_accept(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idSWF *gui; + idMainMenu *menu; + int listing; +}; + +// IDA Local Type ordinal 18373; PDB kind: class. +class idMainMenu::UpdateMenu_Root::__l21::idSWFScriptFunction_accept : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18374. + virtual ~idSWFScriptFunction_accept(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idSWF *gui; + idMainMenu *menu; + int listing; +}; + +// IDA Local Type ordinal 18375; PDB kind: class. +class idMainMenu::HandleMenu_Root::__l26::idSWFScriptFunction_DeclineQuit : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18376. + virtual ~idSWFScriptFunction_DeclineQuit(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idMainMenu *menu; +}; + +// IDA Local Type ordinal 18377; PDB kind: class. +class idMainMenu::HandleMenu_Root::__l25::idSWFScriptFunction_AcceptQuit : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18378. + virtual ~idSWFScriptFunction_AcceptQuit(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 18451; PDB kind: class. +class idMainMenu::SetupMPMenuBindings::__l12::idSWFScriptFunction_ShowPauseGamerCardUI : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18452. + virtual ~idSWFScriptFunction_ShowPauseGamerCardUI(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 18453; PDB kind: class. +class idMainMenu::idSWFScriptFunction_startMatch::Call::__l2::idSWFScriptFunction_Accept : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18454. + virtual ~idSWFScriptFunction_Accept(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + gameDialogMessages_t msg; +}; + +// IDA Local Type ordinal 18455; PDB kind: class. +class idMainMenu::idSWFScriptFunction_startMatch::Call::__l3::idSWFScriptFunction_Cancel : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18456. + virtual ~idSWFScriptFunction_Cancel(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + gameDialogMessages_t msg; +}; + +// IDA Local Type ordinal 18457; PDB kind: class. +class idMainMenu::idSWFScriptFunction_inviteFriends::Call::__l5::idSWFScriptFunction_Accept : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18458. + virtual ~idSWFScriptFunction_Accept(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 18459; PDB kind: class. +class idMainMenu::idSWFScriptFunction_invitePlatformParty::Call::__l8::idSWFScriptFunction_Accept : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18460. + virtual ~idSWFScriptFunction_Accept(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 18461; PDB kind: class. +class idMainMenu::ShowLeaveLobbyDialog::__l2::idSWFScriptFunction_LeaveWithParty : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18462. + virtual ~idSWFScriptFunction_LeaveWithParty(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idMainMenu *menu; +}; + +// IDA Local Type ordinal 18463; PDB kind: class. +class idMainMenu::ShowLeaveLobbyDialog::__l3::idSWFScriptFunction_LeaveWithoutParty : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18464. + virtual ~idSWFScriptFunction_LeaveWithoutParty(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idMainMenu *menu; +}; + +// IDA Local Type ordinal 18465; PDB kind: class. +class idMainMenu::ShowLeaveLobbyDialog::__l4::idSWFScriptFunction_LeaveCancel : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18466. + virtual ~idSWFScriptFunction_LeaveCancel(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idMainMenu *menu; +}; + +// IDA Local Type ordinal 18467; PDB kind: class. +class idMainMenu::ShowLeaveLobbyDialog::__l5::idSWFScriptFunction_LeaveLobbyYes : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18468. + virtual ~idSWFScriptFunction_LeaveLobbyYes(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idMainMenu *menu; + gameDialogMessages_t msg; +}; + +// IDA Local Type ordinal 18469; PDB kind: class. +class idMainMenu::ShowLeaveLobbyDialog::__l6::idSWFScriptFunction_LeaveLobbyNo : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18470. + virtual ~idSWFScriptFunction_LeaveLobbyNo(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idMainMenu *menu; + gameDialogMessages_t msg; +}; + +// IDA Local Type ordinal 18471; PDB kind: class. +class idMainMenu::UpdateMenu_Dev::__l24::idSWFScriptFunction_accept : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18472. + virtual ~idSWFScriptFunction_accept(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idSWF *gui; + idMainMenu *menu; + int listing; +}; + +// IDA Local Type ordinal 18473; PDB kind: class. +class idMainMenu::UpdateMenu_Audio::__l18::idSWFScriptFunction_accept : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18474. + virtual ~idSWFScriptFunction_accept(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idSWF *gui; + idMainMenu *menu; + int listing; +}; + +// IDA Local Type ordinal 18475; PDB kind: class. +class idMainMenu::UpdateAdjustmentCmds::__l25::idSWFScriptFunction_adjustSetting : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18476. + virtual ~idSWFScriptFunction_adjustSetting(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idMainMenu *menu; + bool less; + int speed; +}; + +// IDA Local Type ordinal 18477; PDB kind: class. +class idMainMenu::UpdateAdjustmentCmds::__l26::idSWFScriptFunction_release : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18478. + virtual ~idSWFScriptFunction_release(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idSWF *gui; + idMainMenu *menu; +}; + +// IDA Local Type ordinal 18545; PDB kind: class. +class idMainMenu::SetupBindings::__l7::idSWFScriptFunction_GetKeyBindings : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18546. + virtual ~idSWFScriptFunction_GetKeyBindings(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idSWFScriptObject *binding; +}; + +// IDA Local Type ordinal 18547; PDB kind: class. +class idMainMenu::SetupBindings::__l8::idSWFScriptFunction_updateMenuDisplay : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18548. + virtual ~idSWFScriptFunction_updateMenuDisplay(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idSWF *gui; + idMainMenu *menu; +}; + +// IDA Local Type ordinal 18549; PDB kind: class. +class idMainMenu::SetupBindings::__l9::idSWFScriptFunction_updateMenuCmds : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18550. + virtual ~idSWFScriptFunction_updateMenuCmds(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idSWF *gui; + idMainMenu *menu; +}; + +// IDA Local Type ordinal 18551; PDB kind: class. +class idMainMenu::ShowOverwriteSavingDialog::__l6::idSWFScriptFunction_AcceptOverwrite : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18552. + virtual ~idSWFScriptFunction_AcceptOverwrite(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idMainMenu *menu; + int index; +}; + +// IDA Local Type ordinal 18553; PDB kind: class. +class idMainMenu::ShowOverwriteSavingDialog::__l7::idSWFScriptFunction_DeclineOverwrite : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18554. + virtual ~idSWFScriptFunction_DeclineOverwrite(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idMainMenu *menu; +}; + +// IDA Local Type ordinal 18555; PDB kind: class. +class idMainMenu::DeleteSaveGameConfirm::__l2::idSWFScriptFunction_CancelDelete : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18556. + virtual ~idSWFScriptFunction_CancelDelete(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idMainMenu *menu; +}; + +// IDA Local Type ordinal 18557; PDB kind: class. +class idMainMenu::DeleteSaveGameConfirm::__l3::idSWFScriptFunction_AcceptDelete : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18558. + virtual ~idSWFScriptFunction_AcceptDelete(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idMainMenu *menu; + int saveIndex; +}; + +// IDA Local Type ordinal 18559; PDB kind: class. +class idMainMenu::ExitGameConfirm::__l2::idSWFScriptFunction_CancelExit : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18560. + virtual ~idSWFScriptFunction_CancelExit(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idSWF *gui; + int option; + gameDialogMessages_t msg; +}; + +// IDA Local Type ordinal 18561; PDB kind: class. +class idMainMenu::ExitGameConfirm::__l3::idSWFScriptFunction_AcceptExit : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18562. + virtual ~idSWFScriptFunction_AcceptExit(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idSWF *gui; + int option; + gameDialogMessages_t msg; + int *currentDeviceIndex; +}; + +// IDA Local Type ordinal 18563; PDB kind: class. +class idMainMenu::CanStartNewGame::__l9::idSWFScriptFunction_SelectDevice : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18564. + virtual ~idSWFScriptFunction_SelectDevice(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idMainMenu *menu; +}; + +// IDA Local Type ordinal 18565; PDB kind: class. +class idMainMenu::CanStartNewGame::__l19::idSWFScriptFunction_AcceptExit : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18566. + virtual ~idSWFScriptFunction_AcceptExit(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idMainMenu *mainMenu; + gameDialogMessages_t msg; + bool *askToDeleteAutosaveOnNewGame; +}; + +// IDA Local Type ordinal 18567; PDB kind: class. +class idMainMenu::CanStartNewGame::__l20::idSWFScriptFunction_CancelExit : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18568. + virtual ~idSWFScriptFunction_CancelExit(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idSWF *gui; + gameDialogMessages_t msg; + bool *askToDeleteAutosaveOnNewGame; +}; + +// IDA Local Type ordinal 18569; PDB kind: class. +class idMainMenu::LoadDamagedGame::__l5::idSWFScriptFunction_AcceptDelete : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18570. + virtual ~idSWFScriptFunction_AcceptDelete(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idMainMenu *mainMenu; + gameDialogMessages_t msg; + int saveIndex; +}; + +// IDA Local Type ordinal 18571; PDB kind: class. +class idMainMenu::LoadDamagedGame::__l6::idSWFScriptFunction_CancelDelete : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18572. + virtual ~idSWFScriptFunction_CancelDelete(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + gameDialogMessages_t msg; + idSWF *gui; +}; + +// IDA Local Type ordinal 18573; PDB kind: class. +class idMainMenu::RebindAction::__l52::idSWFScriptFunction_AcceptBind : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18574. + virtual ~idSWFScriptFunction_AcceptBind(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idMainMenu *menu; + idSWF *swf; + idPlayerProfile *profile; + idStr action; + idStr oldAction; + keyNum_t keyNum; + int bindSet; + int inputDevice; +}; + +// IDA Local Type ordinal 18575; PDB kind: class. +class idMainMenu::RebindAction::__l53::idSWFScriptFunction_ConfirmUnbind : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18576. + virtual ~idSWFScriptFunction_ConfirmUnbind(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idMainMenu *menu; + idSWF *swf; + idPlayerProfile *profile; + idStr action; + int bindSet; + int keyNum; + int inputDevice; +}; + +// IDA Local Type ordinal 18577; PDB kind: class. +class idMainMenu::RebindAction::__l11::idSWFScriptFunction_CancelInvalidBind : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18578. + virtual ~idSWFScriptFunction_CancelInvalidBind(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idMainMenu *menu; + idSWF *swf; +}; + +// IDA Local Type ordinal 18579; PDB kind: class. +class idMainMenu::RebindAction::__l51::idSWFScriptFunction_CancelBind : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18580. + virtual ~idSWFScriptFunction_CancelBind(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idMainMenu *menu; + idSWF *swf; + gameDialogMessages_t msg; +}; + +// IDA Local Type ordinal 18581; PDB kind: class. +class idMainMenu::ConfirmBindingReset::__l2::idSWFScriptFunction_CancelRestore : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18582. + virtual ~idSWFScriptFunction_CancelRestore(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idSWF *swf; +}; + +// IDA Local Type ordinal 18583; PDB kind: class. +class idMainMenu::ConfirmBindingReset::__l3::idSWFScriptFunction_AcceptRestore : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18584. + virtual ~idSWFScriptFunction_AcceptRestore(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idSWF *swf; + idPlayerProfileGame *profile; +}; + +// IDA Local Type ordinal 18585; PDB kind: class. +class idMainMenu::idSWFScriptFunction_quitGame::Call::__l2::idSWFScriptFunction_AcceptQuit : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18586. + virtual ~idSWFScriptFunction_AcceptQuit(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 18587; PDB kind: class. +class idMainMenu::idSWFScriptFunction_quitGame::Call::__l3::idSWFScriptFunction_DeclineQuit : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18588. + virtual ~idSWFScriptFunction_DeclineQuit(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 18589; PDB kind: class. +class idMainMenu::idSWFScriptFunction_isGameInstalled::Call::__l8::idSWFScriptFunction_Accept : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18590. + virtual ~idSWFScriptFunction_Accept(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + gameDialogMessages_t msg; +}; + +// IDA Local Type ordinal 18591; PDB kind: class. +class idMainMenu::CalculateBenchmark::__l5::idSWFScriptFunction_BenchmarkComplete : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18592. + virtual ~idSWFScriptFunction_BenchmarkComplete(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 18593; PDB kind: class. +class idMainMenu::ShowDisplaySettingFailedMessage::__l5::idSWFScriptFunction_AcceptFailedChanges : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18594. + virtual ~idSWFScriptFunction_AcceptFailedChanges(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idSWF *gui; + gameDialogMessages_t msg; +}; + +// IDA Local Type ordinal 18595; PDB kind: class. +class idMainMenu::UpdateCmds_Start::__l5::idSWFScriptFunction_startPress : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18596. + virtual ~idSWFScriptFunction_startPress(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idSWF *gui; + idMainMenu *menu; +}; + +// IDA Local Type ordinal 18597; PDB kind: class. +class __declspec(align(4)) idMainMenu::UpdateScrollCmds::__l2::idSWFScriptFunction_scroll : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18598. + virtual ~idSWFScriptFunction_scroll(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idSWF *gui; + idMainMenu *menu; + bool up; +}; + +// IDA Local Type ordinal 18599; PDB kind: class. +class __declspec(align(4)) idMainMenu::UpdateScrollCmds::__l3::idSWFScriptFunction_scrollWheel : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18600. + virtual ~idSWFScriptFunction_scrollWheel(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idSWF *gui; + idMainMenu *menu; + bool up; +}; + +// IDA Local Type ordinal 18601; PDB kind: class. +class idMainMenu::UpdateAcceptBackCmds::__l2::idSWFScriptFunction_accept : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18602. + virtual ~idSWFScriptFunction_accept(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idSWF *gui; + idMainMenu *menu; +}; + +// IDA Local Type ordinal 18603; PDB kind: class. +class idMainMenu::UpdateAcceptBackCmds::__l14::idSWFScriptFunction_back : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18604. + virtual ~idSWFScriptFunction_back(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idSWF *gui; + idMainMenu *menu; +}; diff --git a/source/tungsten/game/matchresults.h b/source/tungsten/game/matchresults.h new file mode 100644 index 0000000..18859dc --- /dev/null +++ b/source/tungsten/game/matchresults.h @@ -0,0 +1,34 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\matchresults.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 3762; PDB kind: typedef. +typedef LONG HRESULT; + +// IDA Local Type ordinal 18369; PDB kind: class. +class idMatchResults +{ +public: + int playerId; + lobbyUserID_t lobbyUserID; + int xpGained; + int totalXp; + int xpToNextLevel; + int levelsGained; + int cashGained; + int score; + int matchTime; + idList,5> accoladesEarned; + idList itemsUnlocked; + int matchMapIndex; + int matchModeIndex; + bool shouldShowMatchResults; + int challengeMode; + int statValues[7]; + float miles; + int screenMode; +}; diff --git a/source/tungsten/game/menus/menuscreen.h b/source/tungsten/game/menus/menuscreen.h new file mode 100644 index 0000000..b72c830 --- /dev/null +++ b/source/tungsten/game/menus/menuscreen.h @@ -0,0 +1,107 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\menus\menuscreen.h +// Recovered logical types: 6 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1438; PDB kind: enum. +enum mainMenuScreens_t : __int32 +{ + MENU_AREA_INVALID = 0xFFFFFFFF, + MENU_START = 0x0, + MENU_ROOT = 0x1, + MENU_DEV = 0x2, + MENU_CAMPAIGN = 0x3, + MENU_MULTIPLAYER = 0x4, + MENU_SETTINGS = 0x5, + MENU_AUDIO = 0x6, + MENU_NUM_SCREENS = 0x7, +}; + +// IDA Local Type ordinal 16052; PDB kind: class. +class idMenuScreen : public idMenuWidget +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16053. + virtual ~idMenuScreen(); + virtual void Initialize(); + virtual void Update(); + virtual void ObserveEvent(const idMenuWidget *, const idWidgetEvent *); + virtual bool ExecuteEvent(const idWidgetEvent *); + virtual bool HandleAction(idWidgetAction *, const idWidgetEvent *); + virtual void HandleMenu(const mainMenuTransition_t); + virtual void ShowScreen(const mainMenuTransition_t); + virtual void HideScreen(const mainMenuTransition_t); + +}; + +// IDA Local Type ordinal 18346; PDB kind: class. +class idMenuScreen_Start : public idMenuScreen +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18347. + virtual ~idMenuScreen_Start(); + virtual void Initialize(); + virtual void Update(); + virtual void ObserveEvent(const idMenuWidget *, const idWidgetEvent *); + virtual bool ExecuteEvent(const idWidgetEvent *); + virtual bool HandleAction(idWidgetAction *, const idWidgetEvent *); + virtual void HandleMenu(const mainMenuTransition_t); + virtual void ShowScreen(const mainMenuTransition_t); + virtual void HideScreen(const mainMenuTransition_t); + +}; + +// IDA Local Type ordinal 18348; PDB kind: class. +class idMenuScreen_Settings : public idMenuScreen +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18349. + virtual ~idMenuScreen_Settings(); + virtual void Initialize(); + virtual void Update(); + virtual void ObserveEvent(const idMenuWidget *, const idWidgetEvent *); + virtual bool ExecuteEvent(const idWidgetEvent *); + virtual bool HandleAction(idWidgetAction *, const idWidgetEvent *); + virtual void HandleMenu(const mainMenuTransition_t); + virtual void ShowScreen(const mainMenuTransition_t); + virtual void HideScreen(const mainMenuTransition_t); + +}; + +// IDA Local Type ordinal 18350; PDB kind: class. +class idMenuScreen_Root : public idMenuScreen +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18351. + virtual ~idMenuScreen_Root(); + virtual void Initialize(); + virtual void Update(); + virtual void ObserveEvent(const idMenuWidget *, const idWidgetEvent *); + virtual bool ExecuteEvent(const idWidgetEvent *); + virtual bool HandleAction(idWidgetAction *, const idWidgetEvent *); + virtual void HandleMenu(const mainMenuTransition_t); + virtual void ShowScreen(const mainMenuTransition_t); + virtual void HideScreen(const mainMenuTransition_t); + +}; + +// IDA Local Type ordinal 18353; PDB kind: class. +class idMenuScreen_Dev : public idMenuScreen +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18354. + virtual ~idMenuScreen_Dev(); + virtual void Initialize(); + virtual void Update(); + virtual void ObserveEvent(const idMenuWidget *, const idWidgetEvent *); + virtual bool ExecuteEvent(const idWidgetEvent *); + virtual bool HandleAction(idWidgetAction *, const idWidgetEvent *); + virtual void HandleMenu(const mainMenuTransition_t); + virtual void ShowScreen(const mainMenuTransition_t); + virtual void HideScreen(const mainMenuTransition_t); + + idMenuWidget_DevList *listWidget; +}; diff --git a/source/tungsten/game/menus/menuwidget.h b/source/tungsten/game/menus/menuwidget.h new file mode 100644 index 0000000..e05a20e --- /dev/null +++ b/source/tungsten/game/menus/menuwidget.h @@ -0,0 +1,207 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\menus\menuwidget.h +// Recovered logical types: 13 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1436; PDB kind: enum. +enum idMenuWidget::widgetState_t : __int32 +{ + WIDGET_STATE_HIDDEN = 0x0, + WIDGET_STATE_NORMAL = 0x1, + WIDGET_STATE_SELECTING = 0x2, + WIDGET_STATE_SELECTED = 0x3, + WIDGET_STATE_DISABLED = 0x4, + WIDGET_STATE_MAX = 0x5, +}; + +// IDA Local Type ordinal 1437; PDB kind: enum. +enum idMenuWidget_Button::animState_t : __int32 +{ + ANIM_STATE_UP = 0x0, + ANIM_STATE_DOWN = 0x1, + ANIM_STATE_OVER = 0x2, + ANIM_STATE_MAX = 0x3, +}; + +// IDA Local Type ordinal 2363; PDB kind: enum. +enum widget_t::actionResult_t : __int32 +{ + ACTION_IGNORED = 0x0, + ACTION_HANDLED = 0x1, + ACTION_HANDLED_STATECHANGED = 0x2, +}; + +// IDA Local Type ordinal 14932; PDB kind: struct. +struct __declspec(align(4)) widget_t +{ + // Recovered virtual interface; IDA vtable ordinal 14939. + virtual ~widget_t(); + virtual float CalcWidth(idDeviceContext *); + virtual float CalcHeight(idDeviceContext *); + virtual void Render(idDeviceContext *, float, float, float, float); + virtual widget_t::actionResult_t DoEvent(const sysEvent_t *, int); + + + widget_t::actionResult_t actionResult; + bool selectedRow; + bool selectedColumn; +}; + +// IDA Local Type ordinal 16041; PDB kind: class. +class idMenuWidget +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16044. + virtual ~idMenuWidget(); + virtual void Initialize(); + virtual void Update(); + virtual void ObserveEvent(const idMenuWidget *, const idWidgetEvent *); + virtual bool ExecuteEvent(const idWidgetEvent *); + virtual bool HandleAction(idWidgetAction *, const idWidgetEvent *); + + idSWFSpriteInstance *boundSprite; + idMenuWidget *parent; + idList spritePath; + idList children; + idList observers; + idList,5> eventActions; + idStaticList eventActionLookup; + idMenuDataSource *dataSource; + int dataSourceFieldIndex; + int focusIndex; + idMenuWidget::widgetState_t widgetState; +}; + +// IDA Local Type ordinal 18320; PDB kind: class. +class __declspec(align(4)) idMenuWidget_List : public idMenuWidget +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18321. + virtual ~idMenuWidget_List(); + virtual void Initialize(); + virtual void Update(); + virtual void ObserveEvent(const idMenuWidget *, const idWidgetEvent *); + virtual bool ExecuteEvent(const idWidgetEvent *); + virtual bool HandleAction(idWidgetAction *, const idWidgetEvent *); + virtual void Scroll(const int); + virtual void ScrollOffset(const int); + virtual int GetTotalNumberOfOptions(); + virtual bool PrepareListElement(idMenuWidget *, const int); + + int numVisibleOptions; + int viewOffset; + int viewIndex; + bool allowWrapping; +}; + +// IDA Local Type ordinal 18322; PDB kind: struct. +struct idMenuWidget_DevList::indexInfo_t +{ + const char *name; + int focusIndex; + int viewIndex; + int viewOffset; +}; + +// IDA Local Type ordinal 18324; PDB kind: class. +class idMenuWidget_DevList : public idMenuWidget_List +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18325. + virtual ~idMenuWidget_DevList(); + virtual void Initialize(); + virtual void Update(); + virtual void ObserveEvent(const idMenuWidget *, const idWidgetEvent *); + virtual bool ExecuteEvent(const idWidgetEvent *); + virtual bool HandleAction(idWidgetAction *, const idWidgetEvent *); + virtual void Scroll(const int); + virtual void ScrollOffset(const int); + virtual int GetTotalNumberOfOptions(); + virtual bool PrepareListElement(idMenuWidget *, const int); + + const idDeclDevMenuList *devMenuList; + idList devMapListInfos; +}; + +// IDA Local Type ordinal 18326; PDB kind: class. +class idMenuWidget_Help : public idMenuWidget +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18327. + virtual ~idMenuWidget_Help(); + virtual void Initialize(); + virtual void Update(); + virtual void ObserveEvent(const idMenuWidget *, const idWidgetEvent *); + virtual bool ExecuteEvent(const idWidgetEvent *); + virtual bool HandleAction(idWidgetAction *, const idWidgetEvent *); + + idStr lastFocusedMessage; + idStr lastHoveredMessage; +}; + +// IDA Local Type ordinal 18338; PDB kind: class. +class idMenuWidget_Button : public idMenuWidget +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18339. + virtual ~idMenuWidget_Button(); + virtual void Initialize(); + virtual void Update(); + virtual void ObserveEvent(const idMenuWidget *, const idWidgetEvent *); + virtual bool ExecuteEvent(const idWidgetEvent *); + virtual bool HandleAction(idWidgetAction *, const idWidgetEvent *); + + idStr label; + idStr description; + menuOption_t optionType; + idMenuWidget_Button::animState_t animState; +}; + +// IDA Local Type ordinal 18341; PDB kind: class. +class idMenuWidget::HandleAction::__l31::DeclineQuit : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18342. + virtual ~DeclineQuit(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idMainMenu *menu; +}; + +// IDA Local Type ordinal 18343; PDB kind: class. +class idMenuWidget::HandleAction::__l30::AcceptQuit : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18344. + virtual ~AcceptQuit(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 18360; PDB kind: class. +class idMenuWidget::WrapWidgetSWFEvent : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18361. + virtual ~WrapWidgetSWFEvent(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idMenuWidget *targetWidget; + widgetEvent_t targetEvent; + int targetEventArg; +}; diff --git a/source/tungsten/game/metrics/ragemetrics.h b/source/tungsten/game/metrics/ragemetrics.h new file mode 100644 index 0000000..78b95a0 --- /dev/null +++ b/source/tungsten/game/metrics/ragemetrics.h @@ -0,0 +1,44 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\metrics\ragemetrics.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 12825; PDB kind: class. +class idGaugeMetric : public idMetricRecord +{ +public: + // Recovered virtual interface; IDA vtable ordinal 12826. + virtual ~idGaugeMetric(); + virtual void WriteHeader(idMetricFile *); + virtual void SerializeEntry(idMetricFile *); + + int count; + float min; + float max; + float mean; + float mean2; + float m2; + int handle; + int lastPushFrame; + int gameState; +}; + +// IDA Local Type ordinal 15593; PDB kind: class. +class __declspec(align(4)) idRageMetrics : public idEventReceiver +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15594. + virtual idTypeInfo *GetType(); + virtual ~idRageMetrics(); + 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 *); + + idRagePlayerMetrics players[6]; + const idGameChallenge *gameChallenge; + bool gameEnded; +}; diff --git a/source/tungsten/game/metrics/rageplayermetrics.h b/source/tungsten/game/metrics/rageplayermetrics.h new file mode 100644 index 0000000..b4ca16a --- /dev/null +++ b/source/tungsten/game/metrics/rageplayermetrics.h @@ -0,0 +1,42 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\metrics\rageplayermetrics.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15539; PDB kind: class. +class idRagePlayerMetrics : public idEventReceiver +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15540. + virtual idTypeInfo *GetType(); + virtual ~idRagePlayerMetrics(); + 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 *); + + idStaticList stats; + idEventReceiver *eventListener; + int entityNumber; + int lastKillTimestamp; + int currentKillStreak; + int killsThisLife; + int currentRallyStreak; + float kdr; + int shieldActivationTime; + bool inGame; + bool isAchievementReady; + int spawnTimestamp; + int bullyTimestamp; + int maxChainTimestamp; + idVec3 origin; + bool allowSpecialKill; + idList weaponQueue; + weaponQueueEntry_t lastHit; + int shotId; + int timeBucket; + idLevelStats levelStats; +}; diff --git a/source/tungsten/game/metrics/ragestat.h b/source/tungsten/game/metrics/ragestat.h new file mode 100644 index 0000000..4ff9447 --- /dev/null +++ b/source/tungsten/game/metrics/ragestat.h @@ -0,0 +1,287 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\metrics\ragestat.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1111; PDB kind: enum. +enum rageStat_t : __int32 +{ + RAGE_STAT_INVALID = 0xFFFFFFFF, + RAGE_STAT_VEHICLE_KILLS = 0x0, + RAGE_STAT_VEHICLE_DEATHS = 0x1, + RAGE_STAT_VEHICLE_SUICIDES = 0x2, + RAGE_STAT_VEHICLE_DOUBLEKILLS = 0x3, + RAGE_STAT_VEHICLE_TRIPLEKILLS = 0x4, + RAGE_STAT_VEHICLE_QUADKILLS = 0x5, + RAGE_STAT_VEHICLE_KILLINGSPREES = 0x6, + RAGE_STAT_VEHICLE_SHOTS = 0x7, + RAGE_STAT_VEHICLE_HITS = 0x8, + RAGE_STAT_VEHICLE_DAMAGEDEALT = 0x9, + RAGE_STAT_VEHICLE_IMPRESSIVES = 0xA, + RAGE_STAT_VEHICLE_AIRSHOTS = 0xB, + RAGE_STAT_VEHICLE_ODOMETER = 0xC, + RAGE_STAT_VEHICLE_ODOMETER_ON_GROUND = 0xD, + RAGE_STAT_VEHICLE_ODOMETER_ON_TWOWHEELS = 0xE, + RAGE_STAT_VEHICLE_ODOMETER_IN_AIR = 0xF, + RAGE_STAT_VEHICLE_TIME_IN_AIR = 0x10, + RAGE_STAT_VEHICLE_QUAD_PICKUPS = 0x11, + RAGE_STAT_VEHICLE_PERK_BOOSTUP_SP = 0x12, + RAGE_STAT_VEHICLE_PERK_JUMPMAN_SP = 0x13, + RAGE_STAT_VEHICLE_PERK_DURABUMP_SP = 0x14, + RAGE_STAT_CASH_MP = 0x15, + RAGE_STAT_SP_XP = 0x16, + RAGE_STAT_MP_XP = 0x17, + RAGE_STAT_VEHICLE_FLAG_CAPTURES = 0x18, + RAGE_STAT_VEHICLE_PERK_OVERAMMO_SP = 0x19, + RAGE_STAT_VEHICLE_PERK_LOCKJACK_SP = 0x1A, + RAGE_STAT_VEHICLE_PERK_FASTERFASTER_SP = 0x1B, + RAGE_STAT_VEHICLE_PERK_THESNAPPER_SP = 0x1C, + RAGE_STAT_VEHICLE_PERK_OVERLOAD_SP = 0x1D, + RAGE_STAT_VEHICLE_TEAMKILLS = 0x1E, + RAGE_STAT_SP_LEVEL = 0x1F, + RAGE_STAT_MP_LEVEL = 0x20, + RAGE_STAT_VEHICLE_POWERUPS = 0x21, + RAGE_STAT_SCORE_COOP = 0x22, + RAGE_STAT_SCORE_VDM = 0x23, + RAGE_STAT_TIME_PLAYED = 0x24, + RAGE_STAT_WINS = 0x25, + RAGE_STAT_VEHICLE_LEADERKILLS = 0x26, + RAGE_STAT_VEHICLE_SKULL_CAPTURES = 0x27, + RAGE_STAT_VEHICLE_ROAD_KILLS = 0x28, + RAGE_STAT_VEHICLE_RALLY_CAPTURES = 0x29, + RAGE_STAT_VEHICLE_RALLY_AIR_CAPTURES = 0x2A, + RAGE_STAT_VEHICLE_RALLY_CLOSECALLS = 0x2B, + RAGE_STAT_VEHICLE_RALLY_DENIALS = 0x2C, + RAGE_STAT_VEHICLE_METEOR_CAPTURES = 0x2D, + RAGE_STAT_VEHICLE_METEORS_DROPPED = 0x2E, + RAGE_STAT_VEHICLE_METEORS_STOLEN = 0x2F, + RAGE_STAT_VEHICLE_TRIADS_COMPLETED = 0x30, + RAGE_STAT_VEHICLE_TRIADS_MISSED = 0x31, + RAGE_STAT_CHALLENGE_UNLOCK_WELLSPRING_1 = 0x32, + RAGE_STAT_CHALLENGE_UNLOCK_WELLSPRING_2 = 0x33, + RAGE_STAT_CHALLENGE_UNLOCK_PRISON = 0x34, + RAGE_STAT_CHALLENGE_UNLOCK_DAM = 0x35, + RAGE_STAT_CHALLENGE_UNLOCK_BASH = 0x36, + RAGE_STAT_CHALLENGE_UNLOCK_BASH_INFESTATION = 0x37, + RAGE_STAT_CHALLENGE_UNLOCK_RCBOMB = 0x38, + RAGE_STAT_CHALLENGE_UNLOCK_PLAZA = 0x39, + RAGE_STAT_CHALLENGE_UNLOCK_MUTANT_CAVES = 0x3A, + RAGE_STAT_CHALLENGE_COMPLETE_WELLSPRING_1 = 0x3B, + RAGE_STAT_CHALLENGE_COMPLETE_WELLSPRING_2 = 0x3C, + RAGE_STAT_CHALLENGE_COMPLETE_PRISON = 0x3D, + RAGE_STAT_CHALLENGE_COMPLETE_DAM = 0x3E, + RAGE_STAT_CHALLENGE_COMPLETE_BASH = 0x3F, + RAGE_STAT_CHALLENGE_COMPLETE_BASH_INFESTATION = 0x40, + RAGE_STAT_CHALLENGE_COMPLETE_RCBOMB = 0x41, + RAGE_STAT_CHALLENGE_COMPLETE_PLAZA = 0x42, + RAGE_STAT_CHALLENGE_COMPLETE_MUTANT_CAVES = 0x43, + RAGE_STAT_CHALLENGE_NIGHTMARE_COMPLETE_WELLSPRING_1 = 0x44, + RAGE_STAT_CHALLENGE_NIGHTMARE_COMPLETE_WELLSPRING_2 = 0x45, + RAGE_STAT_CHALLENGE_NIGHTMARE_COMPLETE_PRISON = 0x46, + RAGE_STAT_CHALLENGE_NIGHTMARE_COMPLETE_DAM = 0x47, + RAGE_STAT_CHALLENGE_NIGHTMARE_COMPLETE_BASH = 0x48, + RAGE_STAT_CHALLENGE_NIGHTMARE_COMPLETE_BASH_INFESTATION = 0x49, + RAGE_STAT_CHALLENGE_NIGHTMARE_COMPLETE_RCBOMB = 0x4A, + RAGE_STAT_CHALLENGE_NIGHTMARE_COMPLETE_PLAZA = 0x4B, + RAGE_STAT_CHALLENGE_NIGHTMARE_COMPLETE_MUTANT_CAVES = 0x4C, + RAGE_STAT_CHALLENGE_COLLECTION_WELLSPRING_1 = 0x4D, + RAGE_STAT_CHALLENGE_COLLECTION_WELLSPRING_2 = 0x4E, + RAGE_STAT_CHALLENGE_COLLECTION_PRISON = 0x4F, + RAGE_STAT_CHALLENGE_COLLECTION_DAM = 0x50, + RAGE_STAT_CHALLENGE_COLLECTION_BASH = 0x51, + RAGE_STAT_CHALLENGE_COLLECTION_BASH_INFESTATION = 0x52, + RAGE_STAT_CHALLENGE_COLLECTION_RCBOMB = 0x53, + RAGE_STAT_CHALLENGE_COLLECTION_PLAZA = 0x54, + RAGE_STAT_CHALLENGE_COLLECTION_MUTANT_CAVES = 0x55, + RAGE_STAT_CHALLENGE_SPECIAL_COLLECTION_01 = 0x56, + RAGE_STAT_CHALLENGE_SPECIAL_COLLECTION_02 = 0x57, + RAGE_STAT_CHALLENGE_SPECIAL_COLLECTION_03 = 0x58, + RAGE_STAT_CHALLENGE_SPECIAL_COLLECTION_04 = 0x59, + RAGE_STAT_CHALLENGE_SPECIAL_COLLECTION_05 = 0x5A, + RAGE_STAT_CHALLENGE_SPECIAL_COLLECTION_06 = 0x5B, + RAGE_STAT_CHALLENGE_SPECIAL_COLLECTION_07 = 0x5C, + RAGE_STAT_CHALLENGE_SPECIAL_COLLECTION_08 = 0x5D, + RAGE_STAT_WINNING_KILL = 0x5E, + RAGE_STAT_WINNING_FLAG_CAPTURE = 0x5F, + RAGE_STAT_WINNING_SCORE = 0x60, + RAGE_STAT_SHIELD_ABSORBED_DAMAGE = 0x61, + RAGE_STAT_AIR_KILLS = 0x62, + RAGE_STAT_AERIAL_KILLS = 0x63, + RAGE_STAT_NO_VEHICLE_DEATHS = 0x64, + RAGE_STAT_AFTERLIFE_KILLS = 0x65, + RAGE_STAT_REVENGE_KILLS = 0x66, + RAGE_STAT_SHIELD_USE = 0x67, + RAGE_STAT_LONGEST_KILLSTREAK = 0x68, + RAGE_STAT_LONGEST_LIFE = 0x69, + RAGE_STAT_LONGEST_BULLY = 0x6A, + RAGE_STAT_LONGEST_RALLY_CHAIN = 0x6B, + RAGE_STAT_LONGEST_RALLY_CHAIN_MAX_TIME = 0x6C, + RAGE_STAT_MOST_LONGEST_RALLY_CHAIN = 0x6D, + RAGE_STAT_MOST_LONGEST_RALLY_CHAIN_MAX_TIME = 0x6E, + RAGE_STAT_MOST_KILLS = 0x6F, + RAGE_STAT_MOST_RALLYCAPS = 0x70, + RAGE_STAT_MOST_TRIADS_COMPLETED = 0x71, + RAGE_STAT_MOST_TRIADS_BROKEN = 0x72, + RAGE_STAT_MOST_TRIADS_MISSED = 0x73, + RAGE_STAT_MOST_METEORCAPS = 0x74, + RAGE_STAT_MOST_METEOR_DROPS = 0x75, + RAGE_STAT_MOST_POWERUPS = 0x76, + RAGE_STAT_MOST_DEATHS = 0x77, + RAGE_STAT_MOST_LONGEST_KILLSTREAK = 0x78, + RAGE_STAT_MOST_MULTIKILLS = 0x79, + RAGE_STAT_MATCH_WINNER = 0x7A, + RAGE_STAT_MOST_LONGEST_LIFE = 0x7B, + RAGE_STAT_MOST_LONGEST_BULLY = 0x7C, + RAGE_STAT_MOST_KILLS_AS_BULLY = 0x7D, + RAGE_STAT_MOST_BULLIES_KILLED = 0x7E, + RAGE_STAT_MOST_SHIELD_USE = 0x7F, + RAGE_STAT_HARD_DRIVER = 0x80, + RAGE_STAT_MOST_SKULLS = 0x81, + RAGE_STAT_MOST_FLAG_CAPS = 0x82, + RAGE_STAT_MOST_AIR_KILLS = 0x83, + RAGE_STAT_MOST_SUICIDES = 0x84, + RAGE_STAT_LEAST_KILLS = 0x85, + RAGE_STAT_LEAST_DEATHS = 0x86, + RAGE_STAT_BEST_KDR = 0x87, + RAGE_STAT_MOST_LEADER_KILLS = 0x88, + RAGE_STAT_MOST_CHAIN_BREAKS = 0x89, + RAGE_STAT_MOST_RALLY_CHAIN_OWNER_KILLS = 0x8A, + RAGE_STAT_MOST_MILES_DRIVEN = 0x8B, + RAGE_STAT_MOST_SPECIAL_KILLS = 0x8C, + RAGE_STAT_ACCURACY = 0x8D, + RAGE_STAT_TWO_QUAD_PICKUPS = 0x8E, + RAGE_STAT_AI_ASSISTS = 0x8F, + RAGE_STAT_VEHICLE_ASSISTS = 0x90, + RAGE_STAT_HEADSHOT_KILLS = 0x91, + RAGE_STAT_HEADSHOT_KILLS_SNIPER = 0x92, + RAGE_STAT_BANDIT_KILLS = 0x93, + RAGE_STAT_MUTANT_KILLS = 0x94, + RAGE_STAT_AUTHORITY_KILLS = 0x95, + RAGE_STAT_VEHICLE_KILLS_BY_CLASS_1 = 0x96, + RAGE_STAT_VEHICLE_KILLS_BY_CLASS_2 = 0x97, + RAGE_STAT_VEHICLE_KILLS_BY_CLASS_3 = 0x98, + RAGE_STAT_VEHICLE_KILLS_BY_CLASS_4 = 0x99, + RAGE_STAT_SEWER_LEVELS_COMPLETE = 0x9A, + RAGE_STAT_LEVELS_COMPLETE = 0x9B, + RAGE_STAT_TIME_IN_GAME = 0x9C, + RAGE_STAT_AI_KILLS = 0x9D, + RAGE_STAT_PLAYER_KILLS = 0x9E, + RAGE_STAT_SHOTS = 0x9F, + RAGE_STAT_ITEMS_TAKEN = 0xA0, + RAGE_STAT_CLIENT_DAMAGE = 0xA1, + RAGE_STAT_WEAPON_HIT_ENEMY = 0xA2, + RAGE_STAT_WEAPON_HIT_FRIENDLY = 0xA3, + RAGE_STAT_WEAPON_HIT_OBJECT = 0xA4, + RAGE_STAT_WEAPON_HIT_DIRECT = 0xA5, + RAGE_STAT_WEAPON_HIT_BREAKABLE = 0xA6, + RAGE_STAT_WEAPON_HITS_FOR_ACCURACY = 0xA7, + RAGE_STAT_WEAPON_BREAKABLE_DESTROYED = 0xA8, + RAGE_STAT_WEAPON_DAMAGE_TO_GENERAL = 0xA9, + RAGE_STAT_WEAPON_KILLED_ENEMY = 0xAA, + RAGE_STAT_WEAPON_KILLED_FRIENDLY = 0xAB, + RAGE_STAT_WEAPON_DAMAGE_ENEMY = 0xAC, + RAGE_STAT_WEAPON_DAMAGE_FRIENDLY = 0xAD, + RAGE_STAT_WEAPON_HEADSHOT_ENEMY = 0xAE, + RAGE_STAT_WEAPON_HEADSHOT_FRIENDLY = 0xAF, + RAGE_STAT_WEAPON_ACTORS_KILLED = 0xB0, + RAGE_STAT_WEAPON_VEHICLES_KILLED = 0xB1, + RAGE_STAT_FIST_KILLS = 0xB2, + RAGE_STAT_PISTOL_KILLS = 0xB3, + RAGE_STAT_CROSSBOW_KILLS = 0xB4, + RAGE_STAT_RIFLE_KILLS = 0xB5, + RAGE_STAT_REGIME_MACHINEGUN_KILLS = 0xB6, + RAGE_STAT_REGIME_SHOTGUN_KILLS = 0xB7, + RAGE_STAT_SETTLER_MACHINEGUN = 0xB8, + RAGE_STAT_REGIME_ROCKETLAUNCHER = 0xB9, + RAGE_STAT_PLASMA_KILLS = 0xBA, + RAGE_STAT_DOUBLEBARREL_SHOTGUN_KILLS = 0xBB, + RAGE_STAT_DEPLOYABLETURRET_KILLS = 0xBC, + RAGE_STAT_DEPLOYABLETURRET_REGIME_KILLS = 0xBD, + RAGE_STAT_DEPLOYABLETURRET_PLACEABLE_KILLS = 0xBE, + RAGE_STAT_DEPLOYABLETURRET_BARRICADE_KILLS = 0xBF, + RAGE_STAT_DEPLOYABLETURRET_BARRICADE_MC_KILLS = 0xC0, + RAGE_STAT_SENTRYBOT_CHAINUPDRADE_KILLS = 0xC1, + RAGE_STAT_INCREASE_RALLY_CHAIN = 0xC2, + RAGE_STAT_MAX_RALLY_CHAIN = 0xC3, + RAGE_STAT_KILL_RALLY_CHAIN_OWNER = 0xC4, + RAGE_STAT_BREAK_RALLY_CHAIN = 0xC5, + RAGE_STAT_BREAK_TRIAD = 0xC6, + RAGE_STAT_KILL_TRIAD_OWNER = 0xC7, + RAGE_STAT_ONE_SHOT_KILL = 0xC8, + RAGE_STAT_VDM_COMPLETED_RALLY = 0xC9, + RAGE_STAT_VDM_COMPLETED_RALLY_FIRST = 0xCA, + RAGE_STAT_VDM_COMPLETED_RALLY_SECOND = 0xCB, + RAGE_STAT_VDM_COMPLETED_RALLY_THIRD = 0xCC, + RAGE_STAT_COOP_SCORE_MULTIPLIER = 0xCD, + RAGE_STAT_REVIVES = 0xCE, + RAGE_STAT_PARTNER_REVIVES = 0xCF, + RAGE_STAT_COOP_NO_INCAPACITATE = 0xD0, + RAGE_STAT_COOP_NO_INCAPACITATE_NIGHTMARE = 0xD1, + RAGE_STAT_COOP_NO_DEFIB = 0xD2, + RAGE_STAT_COOP_NO_DEFIB_NIGHTMARE = 0xD3, + RAGE_STAT_INCAPACITATES = 0xD4, + RAGE_STAT_STEALTH_KILLS = 0xD5, + RAGE_STAT_COMBO_KILLS = 0xD6, + RAGE_STAT_DEFEND_KILLS = 0xD7, + RAGE_STAT_VDM_SPECIAL_KILLS = 0xD8, + RAGE_STAT_COOP_KILLS = 0xD9, + RAGE_STAT_COOP_REVENGE_KILLS = 0xDA, + RAGE_STAT_COOP_LEGENDS_COMPLETED = 0xDB, + RAGE_STAT_COOP_BEST_SCORE = 0xDC, + RAGE_STAT_COOP_SHOTS_FIRED = 0xDD, + RAGE_STAT_COOP_HEADSHOTS = 0xDE, + RAGE_STAT_COOP_HEADSHOT_KILLS = 0xDF, + RAGE_STAT_COOP_COLLECTIBLES_FOUND = 0xE0, + RAGE_STAT_COOP_SCORE_HIGHEST_RANK = 0xE1, + RAGE_STAT_COOP_SCORE_HIGHEST_RANK_NIGHTMARE = 0xE2, + RAGE_STAT_COOP_BOMBCAR_SINGLE_MAX_KILLS = 0xE3, + RAGE_STAT_RR_KILLS = 0xE4, + RAGE_STAT_RR_AWARDS_EARNED = 0xE5, + RAGE_STAT_RR_ODO_GROUND = 0xE6, + RAGE_STAT_BULLIES_KILLED = 0xE7, + RAGE_STAT_KILLS_AS_BULLY = 0xE8, + RAGE_STAT_BECAME_BULLY = 0xE9, + RAGE_STAT_SKILL_JUMPS = 0xEA, + RAGE_STAT_GAME_COMPLETED = 0xEB, + RAGE_STAT_GAME_COMPLETED_DIFFICULTY_0 = 0xEC, + RAGE_STAT_GAME_COMPLETED_DIFFICULTY_1 = 0xED, + RAGE_STAT_GAME_COMPLETED_DIFFICULTY_2 = 0xEE, + RAGE_STAT_GAME_COMPLETED_DIFFICULTY_3 = 0xEF, + RAGE_STAT_ITEMS_ENGINEERED = 0xF0, + RAGE_STAT_KILLS_WITH_ENGINEERED_ITEM = 0xF1, + RAGE_STAT_STEALTH_KILLS_CROSSBOW = 0xF2, + RAGE_STAT_SENTRY_BOT_KILLS = 0xF3, + RAGE_STAT_SENTRY_BOT_SINGLE_MAX_KILLS = 0xF4, + RAGE_STAT_TURRET_KILLS = 0xF5, + RAGE_STAT_TURRET_SINGLE_MAX_KILLS = 0xF6, + RAGE_STAT_MIND_CONTROLLED_KILLS = 0xF7, + RAGE_STAT_MIND_CONTROLLED_SINGLE_MAX_KILLS = 0xF8, + RAGE_STAT_PERSONAL_DEATHS = 0xF9, + RAGE_STAT_PLAYER_SUICIDES = 0xFA, + RAGE_STAT_PUNCHES_THROWN = 0xFB, + RAGE_STAT_PUNCHES_HIT = 0xFC, + RAGE_STAT_JETPACKER_SHOT = 0xFD, + RAGE_STAT_FIELD_GOALS_FROM_ATV = 0xFE, + RAGE_STAT_CASH_SP = 0xFF, + NUM_RAGE_STATS = 0x100, + MAX_RAGE_STATS = 0x1F4, +}; + +// IDA Local Type ordinal 15529; PDB kind: union. +union idRageStat::statValue_t +{ + int i; + float f; +}; + +// IDA Local Type ordinal 15530; PDB kind: class. +class idRageStat +{ +public: + const idDeclMetric *decl; + idRageStat::statValue_t sessionValue; + idRageStat::statValue_t aggregatedValue; +}; diff --git a/source/tungsten/game/navpower/navpower.h b/source/tungsten/game/navpower/navpower.h new file mode 100644 index 0000000..ef2a0ac --- /dev/null +++ b/source/tungsten/game/navpower/navpower.h @@ -0,0 +1,25 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\navpower\navpower.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 18282; PDB kind: class. +class idGuiNavPower : public idGuiPage +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18283. + virtual ~idGuiNavPower(); + virtual bool IsEnabled(); + virtual void SetIsActive(const bool); + virtual void Update(); + virtual void SetupChildRowLink(const int, const idStr *); + virtual void InternalRender(idDeviceContext *, const float, const float); + virtual void InternalRender_2(idEntity *, idDeviceContext *); + virtual bool InternalHandleEvent(const sysEvent_t *); + + int selectedRow; + int selectedPane; +}; diff --git a/source/tungsten/game/navpower/navpowermover.h b/source/tungsten/game/navpower/navpowermover.h new file mode 100644 index 0000000..ea5ceb9 --- /dev/null +++ b/source/tungsten/game/navpower/navpowermover.h @@ -0,0 +1,164 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\navpower\navpowermover.h +// Recovered logical types: 13 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16567; PDB kind: struct. +struct __declspec(align(2)) idAINavPowerMoverParms::idAINavPowerMover +{ + const idDeclNavigation *navDecl; + float moverSpeed; + float moverSpeedWalk; + float moverSpeedRun; + float moverSpeedSprint; + float moverSpeedCreep; + float moverSpeedStep; + float moverSpeedCrouchWalk; + float moverSpeedWater; + float overSpeedFraction; + float bulk; + float cruiseAcceleration; + float startStopAcceleration; + float pathAcceleration; + float backPedalFraction; + float sidestepFraction; + float pathSharePenalty; + float pathSharePenaltyMax; + float turnSpeed; + float turnAccelAngle; + float turnInPlaceWhenMovingAngle; + float turnInPlaceWhenStoppedAngle; + bool turnInPlaceUTurn; + float circleApproachRadius; + bool circleApproach; + bool pathProbeStraightFirst; + bool pathAdditionalSmoothing; + bool allowDetour; + bool clientMotionEnabled; + bool useVelocityToScaleAnimationRate; + bool ignoreFlippedMovers; +}; + +// IDA Local Type ordinal 16568; PDB kind: struct. +struct idAINavPowerMoverParms::idAINavPowerRepulsor +{ + navRepulsorFlags_t repulsorType; + navRepulsorFlags_t repulsorTypeBlockedBy; + float repulsorRadius; + float repulsorInnerCushion; + float repulsorOuterCushion; + float repulsorInitialAcceleration; + float repulsorOuterCushionAcceleration; + float repulsorInnerCushionAcceleration; +}; + +// IDA Local Type ordinal 16569; PDB kind: struct. +struct __declspec(align(4)) idAINavPowerMoverParms::idAINavPowerObstacle +{ + navObstacleFlags_t obstacleType; + navObstacleFlags_t obstaclesBlockedBy; + navLayerMask_t obstacleLayers; + float obstaclePenaltyMultiplier; + float obstacleWhenStoppedDelay; + bool obstacleWhenStopped; +}; + +// IDA Local Type ordinal 16570; PDB kind: struct. +struct idAINavPowerMoverParms::idAINavPowerFlocking +{ + int flockId; + float flockAcceleration; + float flockAccelerationDistance; +}; + +// IDA Local Type ordinal 16571; PDB kind: struct. +struct idAINavPowerMoverParms::idAINavPowerCaution +{ + float cautionTurnDegrees; + float cautionSpeedFraction; +}; + +// IDA Local Type ordinal 16573; PDB kind: struct. +struct __declspec(align(4)) idAINavPowerMoverParms::idAINavPowerJumper +{ + float jumpSpeed; + float jumpArcFraction; + float jumpTurnAngle; + bool onlyToEndPoint; +}; + +// IDA Local Type ordinal 16574; PDB kind: struct. +struct __declspec(align(4)) idAINavPowerMoverParms::idAINavPowerProbe +{ + contentsFlags_t probeMask; + float probeDropHeight; + float probeInterval; + bool probeForGround; +}; + +// IDA Local Type ordinal 16575; PDB kind: struct. +struct idAINavPowerMoverParms::idAINavPowerIdle +{ + float idleTetherDistance; + float idleReturnDelay; +}; + +// IDA Local Type ordinal 16576; PDB kind: struct. +struct __declspec(align(4)) idAINavPowerMoverParms::idAINavPowerSurfaces +{ + navCustomFlags_t surfacesUsable; + float surfaceOrientAngle; + float surfaceOrientSlerpTime; + bool surfaceOrientUpOnAutoNav; +}; + +// IDA Local Type ordinal 16577; PDB kind: struct. +struct __declspec(align(4)) idAINavPowerMoverParms::idAINavPowerFollower +{ + float followStartupSpeedFraction; + float followStartupBulk; + float followPadding; + float formationChangeMinTime; + float formationChangeMaxTime; + bool formationChangeEnabled; +}; + +// IDA Local Type ordinal 16580; PDB kind: struct. +struct __declspec(align(4)) idAINavPowerMoverParms::idAINavPowerDeath +{ + float deathObstacleLifetime; + idNpObstacleData deathObstacleParms; + float deathRepulsorLifetime; + idNpRepulsorData deathRepulsorParms; + bool waitForSettle; + bool trackObjects; +}; + +// IDA Local Type ordinal 16581; PDB kind: struct. +struct idAINavPowerMoverParms::idAINavPowerArrivals +{ + bool createGoalObstacle; + idNpObstacleData goalObstacleParms; + float goalObstacleLifetime; +}; + +// IDA Local Type ordinal 16582; PDB kind: struct. +const struct idAINavPowerMoverParms +{ + idAINavPowerMoverParms::idAINavPowerMover mover; + idAINavPowerMoverParms::idAINavPowerRepulsor repulsor; + idAINavPowerMoverParms::idAINavPowerObstacle obstacle; + idAINavPowerMoverParms::idAINavPowerFlocking flocking; + idAINavPowerMoverParms::idAINavPowerCaution caution; + idAINavPowerLinks links; + idAINavPowerMoverParms::idAINavPowerJumper jump; + idAINavPowerMoverParms::idAINavPowerProbe probe; + idAINavPowerMoverParms::idAINavPowerIdle idle; + idAINavPowerMoverParms::idAINavPowerSurfaces surface; + idAINavPowerMoverParms::idAINavPowerFollower follow; + idAINavPowerMoverParms::idAINavPowerDeath death; + idAINavPowerMoverParms::idAINavPowerArrivals arrival; +}; diff --git a/source/tungsten/game/navpower/navpowermover3d.h b/source/tungsten/game/navpower/navpowermover3d.h new file mode 100644 index 0000000..388247b --- /dev/null +++ b/source/tungsten/game/navpower/navpowermover3d.h @@ -0,0 +1,61 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\navpower\navpowermover3d.h +// Recovered logical types: 5 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1381; PDB kind: enum. +enum idAINavPowerMover3DParms::idMover3DParms::idMover3DTurnMode : __int32 +{ + TURN_ONLY_MOVING_FWD = 0x0, + TURN_IN_PLACE = 0x1, + TURN_SLIP_SLIDE = 0x2, +}; + +// IDA Local Type ordinal 16583; PDB kind: struct. +struct idAINavPowerMover3DParms::idMover3DParms +{ + const idDeclNavigation *navDecl; + navVolumeFlags_t useVolumes; + float goalRadius; + float speedCruise; + float accelerationTime; + float turnRadius; + float turnSpeedMax; + float turnRollSpeed; + bool turnStayUpright; + idAINavPowerMover3DParms::idMover3DParms::idMover3DTurnMode turnMode; +}; + +// IDA Local Type ordinal 16584; PDB kind: struct. +struct idAINavPowerMover3DParms::idMover3DRepulsorParms +{ + navRepulsorFlags_t repulsorType; + navRepulsorFlags_t repulsorTypeBlockedBy; + float repulsorRadius; + float repulsorOuterCushion; + float repulsorInnerCushion; + float repulsorInitialAcceleration; + float repulsorOuterCushionAcceleration; + float repulsorInnerCushionAcceleration; + float repulsorBulk; +}; + +// IDA Local Type ordinal 16585; PDB kind: struct. +struct __declspec(align(4)) idAINavPowerMover3DParms::idMover3DIdleParms +{ + float idleSpeedScale; + float idleOrbitRadius; + float idleOrbitHeight; + bool idleOrbit; +}; + +// IDA Local Type ordinal 16586; PDB kind: struct. +const struct idAINavPowerMover3DParms +{ + idAINavPowerMover3DParms::idMover3DParms mover; + idAINavPowerMover3DParms::idMover3DRepulsorParms repulsor; + idAINavPowerMover3DParms::idMover3DIdleParms idle; +}; diff --git a/source/tungsten/game/navpower/navpowerresource.h b/source/tungsten/game/navpower/navpowerresource.h new file mode 100644 index 0000000..943a9b4 --- /dev/null +++ b/source/tungsten/game/navpower/navpowerresource.h @@ -0,0 +1,14 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\navpower\navpowerresource.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17443; PDB kind: struct. +struct powerSource_t +{ + idRegimeTile *closestEnt; + float closestDist; +}; diff --git a/source/tungsten/game/player/achievements.h b/source/tungsten/game/player/achievements.h new file mode 100644 index 0000000..59f949c --- /dev/null +++ b/source/tungsten/game/player/achievements.h @@ -0,0 +1,163 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\player\achievements.h +// Recovered logical types: 8 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1196; PDB kind: enum. +enum achievementId_t : __int32 +{ + GAME_ACHIEVEMENT_NONE = 0x0, + GAME_ACHIEVEMENT_01 = 0x1, + GAME_ACHIEVEMENT_02 = 0x2, + GAME_ACHIEVEMENT_03 = 0x3, + GAME_ACHIEVEMENT_04 = 0x4, + GAME_ACHIEVEMENT_05 = 0x5, + GAME_ACHIEVEMENT_06 = 0x6, + GAME_ACHIEVEMENT_07 = 0x7, + GAME_ACHIEVEMENT_08 = 0x8, + GAME_ACHIEVEMENT_09 = 0x9, + GAME_ACHIEVEMENT_10 = 0xA, + GAME_ACHIEVEMENT_11 = 0xB, + GAME_ACHIEVEMENT_12 = 0xC, + GAME_ACHIEVEMENT_13 = 0xD, + GAME_ACHIEVEMENT_14 = 0xE, + GAME_ACHIEVEMENT_15 = 0xF, + GAME_ACHIEVEMENT_16 = 0x10, + GAME_ACHIEVEMENT_17 = 0x11, + GAME_ACHIEVEMENT_18 = 0x12, + GAME_ACHIEVEMENT_19 = 0x13, + GAME_ACHIEVEMENT_20 = 0x14, + GAME_ACHIEVEMENT_21 = 0x15, + GAME_ACHIEVEMENT_22 = 0x16, + GAME_ACHIEVEMENT_23 = 0x17, + GAME_ACHIEVEMENT_24 = 0x18, + GAME_ACHIEVEMENT_25 = 0x19, + GAME_ACHIEVEMENT_26 = 0x1A, + GAME_ACHIEVEMENT_27 = 0x1B, + GAME_ACHIEVEMENT_28 = 0x1C, + GAME_ACHIEVEMENT_29 = 0x1D, + GAME_ACHIEVEMENT_30 = 0x1E, + GAME_ACHIEVEMENT_31 = 0x1F, + GAME_ACHIEVEMENT_32 = 0x20, + GAME_ACHIEVEMENT_33 = 0x21, + GAME_ACHIEVEMENT_34 = 0x22, + GAME_ACHIEVEMENT_35 = 0x23, + GAME_ACHIEVEMENT_36 = 0x24, + GAME_ACHIEVEMENT_37 = 0x25, + GAME_ACHIEVEMENT_38 = 0x26, + GAME_ACHIEVEMENT_39 = 0x27, + GAME_ACHIEVEMENT_40 = 0x28, + GAME_ACHIEVEMENT_41 = 0x29, + GAME_ACHIEVEMENT_42 = 0x2A, + GAME_ACHIEVEMENT_43 = 0x2B, + GAME_ACHIEVEMENT_44 = 0x2C, + GAME_ACHIEVEMENT_45 = 0x2D, + GAME_ACHIEVEMENT_46 = 0x2E, + GAME_ACHIEVEMENT_47 = 0x2F, + GAME_ACHIEVEMENT_48 = 0x30, + GAME_ACHIEVEMENT_49 = 0x31, + GAME_ACHIEVEMENT_50 = 0x32, + GAME_ACHIEVEMENT_END = 0x33, + GAME_ACHIEVEMENT_NUM = 0x32, +}; + +// IDA Local Type ordinal 1494; PDB kind: enum. +enum __bitmask idAchievementSystemXbox::state_t : __int32 +{ + STATE_WRITING = 0x1, +}; + +// IDA Local Type ordinal 15003; PDB kind: struct. +struct idAchievement::eventAchievementInfo_t +{ + int count; +}; + +// IDA Local Type ordinal 15004; PDB kind: struct. +struct idAchievement::raceAchievementInfo_t +{ + raceMemoryPlace_t place; +}; + +// IDA Local Type ordinal 15005; PDB kind: class. +class idAchievement : public idClass +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15006. + virtual idTypeInfo *GetType(); + virtual ~idAchievement(); + + const idDeclAchievement *decl; + bool itemsFulfilled; + bool jobsFulfilled; + bool triggersFulfilled; + bool eventsFulfilled; + bool racesFulfilled; + bool achievementsFulfilled; + bool triggersActivated[6]; + bool achievementsGained[49]; + idAchievement::eventAchievementInfo_t eventInfo[30]; + idAchievement::raceAchievementInfo_t racesInfo[30]; +}; + +// IDA Local Type ordinal 17407; PDB kind: class. +class idAchievementSystem +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17410. + virtual ~idAchievementSystem(); + virtual void Init(); + virtual void Shutdown(); + virtual bool IsInitialized(); + virtual void RegisterLocalUser(idLocalUser *); + virtual void RemoveLocalUser(idLocalUser *); + virtual void AchievementUnlock(idLocalUser *, const int); + virtual void AchievementLock(idLocalUser *, const int); + virtual void AchievementLockAll(idLocalUser *, const int); + virtual void Pump(); + virtual void Reset(idLocalUser *); + virtual void Cancel(idLocalUser *); + virtual bool GetAchievementDescription(idLocalUser *, const int, achievementDescription_t *); + virtual bool GetRequiredStorage(unsigned __int64 *); + virtual bool GetAchievementState(idLocalUser *, idArray *); + virtual bool SetAchievementState(idLocalUser *, idArray *); + + idStaticList users; +}; + +// IDA Local Type ordinal 18522; PDB kind: struct. +struct idAchievementSystemXbox::achievementAction_t +{ + idStaticList pendingAchievments; + idStaticList achievements; + idAchievementSystemXbox::state_t state; + _XOVERLAPPED overlapped; +}; + +// IDA Local Type ordinal 18524; PDB kind: class. +class idAchievementSystemXbox : public idAchievementSystem +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18525. + virtual ~idAchievementSystemXbox(); + virtual void Init(); + virtual void Shutdown(); + virtual bool IsInitialized(); + virtual void RegisterLocalUser(idLocalUser *); + virtual void RemoveLocalUser(idLocalUser *); + virtual void AchievementUnlock(idLocalUser *, const int); + virtual void AchievementLock(idLocalUser *, const int); + virtual void AchievementLockAll(idLocalUser *, const int); + virtual void Pump(); + virtual void Reset(idLocalUser *); + virtual void Cancel(idLocalUser *); + virtual bool GetAchievementDescription(idLocalUser *, const int, achievementDescription_t *); + virtual bool GetRequiredStorage(unsigned __int64 *); + virtual bool GetAchievementState(idLocalUser *, idArray *); + virtual bool SetAchievementState(idLocalUser *, idArray *); + + idArray achievementAction; +}; diff --git a/source/tungsten/game/player/aimassist.h b/source/tungsten/game/player/aimassist.h new file mode 100644 index 0000000..bc36a93 --- /dev/null +++ b/source/tungsten/game/player/aimassist.h @@ -0,0 +1,76 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\player\aimassist.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15391; PDB kind: class. +class idAimAssist : public idClass +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15392. + virtual idTypeInfo *GetType(); + virtual ~idAimAssist(); + + idPresentablePtr player; + idAngles angleCorrection; + float frictionScalar; + float desiredFrictionScalar; + float weaponTraceDistance; + bool lastZoomSnap; + bool allowZoomSnap; + bool zoomSnapThisFrame; + idVec3 zoomSnapAimPoint; + idPresentablePtr thisFrameEntity; + idPresentablePtr lastFrameEntity; + idVec3 thisFrameHitLoc; + idVec3 lastFrameHitLoc; + __int16 savedAngle[3]; + __int16 currentAngle[3]; + __int16 savedYaw; + __int16 savedPitch; + __int16 currentYaw; + __int16 currentPitch; + idClipQuery deferredAimPoint; + idClipQuery deferredHeadPoint; +}; + +// IDA Local Type ordinal 20211; PDB kind: struct. +struct aimAssistData_t +{ + bool targetAdhesionEnable; + bool targetFrictionEnable; + bool targetAdhesionEnableWhileMoving; + bool targetZoomSnapEnable; + float targetValidFovDot; + float targetMaxDistance; + float targetSelectionRadius; + float targetZoomSelectionRadius; + float targetCoverZoomSelectionRadius; + float targetHeadShotZoomSelectionRadius; + float targetAdhesionRadius; + float targetAdhesionYawSpeedMax; + float targetAdhesionPitchSpeedMax; + float targetAdhesionContributionPctMax; + float targetAdhesionContributionPctMaxZoom; + float targetAdhesionZoomYawSpeedMax; + float targetAdhesionZoomPitchSpeedMax; + float targetFrictionMaxDistance; + float targetFrictionOptimalDistance; + float targetFrictionOptimalRadius; + float targetFrictionRadius; + float targetFrictionMultiplierMin; + float targetFrictionMultiplierMax; + float targetFrictionMultiplierMinZoom; + float targetFrictionMultiplierMaxZoom; + bool meleeSnapEnable; + bool meleeLeftHandEnable; + int meleeEquipWindow; + bool meleeLungeEnable; + float meleeLungeMinDist; + float meleeLungeMaxDist; + float meleeLungeMinSpeed; + float meleeLungeMaxSpeed; +}; diff --git a/source/tungsten/game/player/animwebhands.h b/source/tungsten/game/player/animwebhands.h new file mode 100644 index 0000000..45a6375 --- /dev/null +++ b/source/tungsten/game/player/animwebhands.h @@ -0,0 +1,57 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\player\animwebhands.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15368; PDB kind: class. +class idAnimWebHands : public idAnimator_AnimWebHands +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15370. + virtual ~idAnimWebHands(); + virtual idAnimator_Base::priority_t GetStackPriority(); + virtual serializeType_t GetSerializeType(); + virtual void SerializeSnapshot(idSerializer *); + virtual void PreBlendSnapshot(idAnimStack *, int, const int, float); + virtual void PreSerializeInit(idAnimStack *, idClip *, idGameTimeManager *); + virtual bool InternalInit(const idAnimatorParms_Base *); + virtual bool InternalPostInit(const idAnimatorParms_Base *); + virtual void InternalShutdown(idAnimStack *); + virtual void InternalPreBlendTree(const idAnimStack *, const int, const int); + virtual void InternalPostBlendTree(const idAnimStack *, const int); + virtual void InternalStart(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalEnd(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalBlend(const idAnimStack *, const int, const float, const idTypesafeNumber); + virtual bool InternalIsContributing(); + virtual const idMD6Branch *InternalGetMergeBranch(); + virtual idMD6Branch *InternalGetMergeBranch_2(); + virtual void InternalPause(const idAnimStack *, const idTypesafeNumber); + virtual void InternalUnpause(const idAnimStack *, const idTypesafeNumber); + virtual const idMD6Branch *InternalGetEndBranch(); + virtual idMD6Branch *InternalGetEndBranch_2(); + virtual const idHandle *GetHandle(); + virtual void InternalInitWeb(); + virtual void InternalUpdate(const int); + virtual idDeclAnimWebNode::animDelta_t InternalGetCurrentAnimDeltaMode(); + virtual void InternalSetAnimDelta(const idIndex, const idDeclAnimWebNode *); + virtual int InternalGetEdgeCost(const idIndex, const idIndex); + virtual void InternalStartPath(); + virtual void InternalUpdateScalars(const int); + virtual void InternalStartBlend(const idDeclAnimWebNode *, const idDeclAnimWebNode *, const int); + virtual void InternalFinishBlend(const idDeclAnimWebNode *, const idDeclAnimWebNode *, const int); + virtual awCheckPathResult_t CheckNextNode(const idDeclAnimWebNode *, const idDeclAnimWebNode *); + virtual bool InternalShouldStartNextNode(const idIndex, const idIndex, const int, const int, const blendParms_t *, idIndex, const bool, animWebEvent_t *); + virtual void InternalTriggerEvent(const idDeclAnimWebNode *, const animWebEvent_t, const idHandle *, const int, const int); + virtual void InternalTriggerBlendEvent(int, idIndex, idIndex, idIndex, const int); + virtual bool InternalRemapNames(idStr *, idStr *); + virtual void InternalUpdateBlendEvents(const idAnimStack *, const int, const int); + virtual void InternalUpdateTriggerEvent(const idDeclAnimWebNode *, const animWebEvent_t); + + idHands *hands; +}; + +// IDA Local Type ordinal 33122; PDB kind: typedef. +typedef idHandle animWebHandle_t; diff --git a/source/tungsten/game/player/animwebplayer.h b/source/tungsten/game/player/animwebplayer.h new file mode 100644 index 0000000..af801ec --- /dev/null +++ b/source/tungsten/game/player/animwebplayer.h @@ -0,0 +1,106 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\player\animwebplayer.h +// Recovered logical types: 5 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1360; PDB kind: enum. +enum idAnimWebPlayer::animDir_t : __int32 +{ + DIR_FWD = 0x0, + DIR_MAX = 0x4, +}; + +// IDA Local Type ordinal 3528; PDB kind: enum. +enum CCalImagePlayer::AnimationDirection : __int32 +{ + e_DirectionNone = 0x0, + e_DirectionNear = 0x1, + e_DirectionFar = 0x2, + s_cDirections = 0x3, +}; + +// IDA Local Type ordinal 21523; PDB kind: struct. +struct idAnimWebPlayer::stopTransitionInfo_t +{ + float lastTime; + float lastValue; + float alpha; + float rate; + float alphaScale; +}; + +// IDA Local Type ordinal 21524; PDB kind: class. +class idAnimWebPlayer : public idAnimator_AnimWeb +{ +public: + // Recovered virtual interface; IDA vtable ordinal 21525. + virtual ~idAnimWebPlayer(); + virtual idAnimator_Base::priority_t GetStackPriority(); + virtual serializeType_t GetSerializeType(); + virtual void SerializeSnapshot(idSerializer *); + virtual void PreBlendSnapshot(idAnimStack *, int, const int, float); + virtual void PreSerializeInit(idAnimStack *, idClip *, idGameTimeManager *); + virtual bool InternalInit(const idAnimatorParms_Base *); + virtual bool InternalPostInit(const idAnimatorParms_Base *); + virtual void InternalShutdown(idAnimStack *); + virtual void InternalPreBlendTree(const idAnimStack *, const int, const int); + virtual void InternalPostBlendTree(const idAnimStack *, const int); + virtual void InternalStart(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalEnd(const idAnimStack *, const int, const idTypesafeNumber); + virtual void InternalBlend(const idAnimStack *, const int, const float, const idTypesafeNumber); + virtual bool InternalIsContributing(); + virtual const idMD6Branch *InternalGetMergeBranch(); + virtual idMD6Branch *InternalGetMergeBranch_2(); + virtual void InternalPause(const idAnimStack *, const idTypesafeNumber); + virtual void InternalUnpause(const idAnimStack *, const idTypesafeNumber); + virtual const idMD6Branch *InternalGetEndBranch(); + virtual idMD6Branch *InternalGetEndBranch_2(); + virtual const idHandle *GetHandle(); + virtual void InternalInitWeb(); + virtual void InternalUpdate(const int); + virtual idDeclAnimWebNode::animDelta_t InternalGetCurrentAnimDeltaMode(); + virtual void InternalSetAnimDelta(const idIndex, const idDeclAnimWebNode *); + virtual int InternalGetEdgeCost(const idIndex, const idIndex); + virtual void InternalStartPath(); + virtual void InternalUpdateScalars(const int); + virtual void InternalStartBlend(const idDeclAnimWebNode *, const idDeclAnimWebNode *, const int); + virtual void InternalFinishBlend(const idDeclAnimWebNode *, const idDeclAnimWebNode *, const int); + virtual awCheckPathResult_t CheckNextNode(const idDeclAnimWebNode *, const idDeclAnimWebNode *); + virtual bool InternalShouldStartNextNode(const idIndex, const idIndex, const int, const int, const blendParms_t *, idIndex, const bool, animWebEvent_t *); + virtual void InternalTriggerEvent(const idDeclAnimWebNode *, const animWebEvent_t, const idHandle *, const int, const int); + virtual void InternalTriggerBlendEvent(int, idIndex, idIndex, idIndex, const int); + virtual bool InternalRemapNames(idStr *, idStr *); + virtual void InternalUpdateBlendEvents(const idAnimStack *, const int, const int); + + idPlayer *player; + float blendBack; + float blendRight; + float blendAngle; + float blendRotatePlayer; + float walkRate; + float runRate; + float deathAnimIndex; + float walkRunAlpha; + float stopTransAlpha; + int lastRunTime; + float lastRunVal; + float adsPct; + float adsPctTarget; + float firePoseAlpha; + int lastFireTime; + float runJumpAlpha; + bool doRunJump; + idInterpolate adsInterpolate; + idAnimWebPlayer::stopTransitionInfo_t stopTrans[4]; +}; + +// IDA Local Type ordinal 25877; PDB kind: struct. +struct CCalImagePlayer::ImageAnimation +{ + CCalImagePlayer::AnimationDirection X; + CCalImagePlayer::AnimationDirection Y; + CCalImagePlayer::AnimationDirection Z; +}; diff --git a/source/tungsten/game/player/bobcycle.h b/source/tungsten/game/player/bobcycle.h new file mode 100644 index 0000000..d033c3f --- /dev/null +++ b/source/tungsten/game/player/bobcycle.h @@ -0,0 +1,63 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\player\bobcycle.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1185; PDB kind: enum. +enum idBobCycle::footStep_t : __int32 +{ + FOOTSTEP_NONE = 0x0, + FOOTSTEP_RIGHT = 0x1, + FOOTSTEP_LEFT = 0x2, +}; + +// IDA Local Type ordinal 15376; PDB kind: class. +class idBobCycle +{ +public: + int stepUpTime; + float stepUpDelta; + int landChange; + int landTime; + int lastUpdateTime; + idAngles viewBobAngles; + idVec3 viewBob; + idAngles surfaceTiltTargetAngles; + idAngles handsAngles; + idVec3 handsOffset; + int currentStep; + float cycle; + float offset_base[2]; + idParametricDecay offset_decay[2]; + bool moving; + idInterpolate idleBlend; + int sideMove; + int bobFoot; + float bobFrac; + float bobfracsin; + int bobCycle; + float lagretain; + idVec3 swayOffset; + int tzero[2]; + float decay[2]; + bool crouching; + bool instantCrouchChange; + bool decay_active; + idParametricDecay crouch_decay; + float accelRotValue; + float strafeRotValue; + float crouchWeaponDip; + float currentScale; + float baseScale; + float targetScale; + float scaleRate; + int scaleStartTime; + int scaleEndTime; + idBobCycle::footStep_t footStep; + float coverIndicationBlender; + float zoomBlendOut; + idVec2 currentLeanScale; +}; diff --git a/source/tungsten/game/player/crosshairinfo.h b/source/tungsten/game/player/crosshairinfo.h new file mode 100644 index 0000000..ba9e7e8 --- /dev/null +++ b/source/tungsten/game/player/crosshairinfo.h @@ -0,0 +1,48 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\player\crosshairinfo.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1234; PDB kind: unknown. +enum idCrosshairCombinerInfo:: : __int32 +{ + MAX_ITEMS = 0x5, +}; + +// IDA Local Type ordinal 2138; PDB kind: unknown. +enum idCrosshairInfo:: : __int32 +{ + MAX_COMBINERS = 0x3, + MAX_ICONS = 0x3, +}; + +// IDA Local Type ordinal 15124; PDB kind: class. +class idCrosshairInfo +{ +public: + idColor color; + idColor textColor; + idStrId text; + crosshairMaterial_t material; + crosshairColorState_t colorState; + crosshairTextColorState_t textColorState; + float useAmount; + bool hideCrossHairInfo; + const idSoundShader *hoverSound; + bool useCheckbox; + idStaticList icons; +}; + +// IDA Local Type ordinal 15353; PDB kind: class. +class idCrosshairCombinerInfo +{ +public: + bool hovered; + int itemCount; + int itemIndex; + int itemState[5]; + const idMaterial *itemIcons[5]; +}; diff --git a/source/tungsten/game/player/environmentanalyzer.h b/source/tungsten/game/player/environmentanalyzer.h new file mode 100644 index 0000000..68a0ef4 --- /dev/null +++ b/source/tungsten/game/player/environmentanalyzer.h @@ -0,0 +1,51 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\player\environmentanalyzer.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1183; PDB kind: enum. +enum idEnvironmentAnalyzer::forceLeanMode_t : __int32 +{ + FORCED_LEANMODE_LEFT = 0x1, + FORCED_LEANMODE_RIGHT = 0x2, + FORCED_LEANMODE_UP = 0x4, + FORCED_LEANMODE_DOWN = 0x8, + FORCED_LEANMODE_ZOOM = 0x10, +}; + +// IDA Local Type ordinal 1353; PDB kind: enum. +enum idEnvironmentAnalyzer::traceTypeIDs_t : __int32 +{ + TRACETYPEID_LEAN_LEFT_FORWARD = 0x0, + TRACETYPEID_LEAN_RIGHT_FORWARD = 0x1, + TRACETYPEID_LEAN_UP_OVER = 0x2, + TRACETYPEID_LEAN_DOWN_UNDER = 0x3, + TRACETYPEID_WALLCHECK = 0x4, + TRACETYPEID_MAX = 0x5, +}; + +// IDA Local Type ordinal 15383; PDB kind: class. +class __declspec(align(8)) idEnvironmentAnalyzer +{ +public: + idClipQuery envCQ[5]; + trace_t envTR[5]; + unsigned __int8 forceLeanMode; + bool forwardCollision; + bool freeLean; + bool resetFreeLean; +}; + +// IDA Local Type ordinal 18101; PDB kind: struct. +struct __declspec(align(4)) idEnvironmentAnalyzer::traceInfo_t +{ + bool doTheTrace; + const idClipModel *clipModel; + idMat3 startAxis; + idVec3 startPos; + idVec3 endPos; + bool hasValidResult; +}; diff --git a/source/tungsten/game/player/focustrace.h b/source/tungsten/game/player/focustrace.h new file mode 100644 index 0000000..ca0bdef --- /dev/null +++ b/source/tungsten/game/player/focustrace.h @@ -0,0 +1,39 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\player\focustrace.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1352; PDB kind: enum. +enum idFocusTrace::focusTraceNum_t : __int32 +{ + MAX_FOCUS_TRACES = 0x4, +}; + +// IDA Local Type ordinal 15119; PDB kind: struct. +struct idFocusTrace::focusTrace_t +{ + idEntityPtr entity; + float distance; + float dot; + idClipQuery pointTrace; +}; + +// IDA Local Type ordinal 15120; PDB kind: class. +class __declspec(align(8)) idFocusTrace +{ +public: + idVec3 start; + idVec3 close; + idVec3 end; + float distance; + bool closeEnough; + idEntityPtr ent; + idClipQuery pointTrace; + idGatherQuery gatherQuery; + idFocusTrace::focusTrace_t focusTraces[4]; + int numFocusTraces; + trace_t tr; +}; diff --git a/source/tungsten/game/player/focustracker.h b/source/tungsten/game/player/focustracker.h new file mode 100644 index 0000000..f38659a --- /dev/null +++ b/source/tungsten/game/player/focustracker.h @@ -0,0 +1,73 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\player\focustracker.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15379; PDB kind: class. +class idFocusTracker +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15380. + virtual ~idFocusTracker(); + virtual float GetTraceDistance(); + virtual bool UpdateCursor(idActor *, idEntity *, const idFocusTrace *); + virtual void UpdateCursorFlash(idActor *); + virtual float GetFocusDistance(const idPresentablePlayer *, const idEntity *); + virtual float GetFocusDistance_2(const idActor *, const idEntity *); + virtual float GetUsableDistance(const idActor *, const idEntity *); + + __declspec(align(8)) float traceDistance; + usercmd_t usercmd; + idEntityPtr focusUsable; + idEntityPtr focusEntity; + idEntityPtr gatherPointEntity; + idEntityPtr focusEntityOverride; + idPresentablePtr focusPresentable; + int cursorId; + int clearFocusTime; + int focusedEntityFlags; + int traceModelIndex; + int useButtonOverride; + idFocusTrace focusTrace; + idCrosshairInfo crosshairInfo; + usableState_t usableState; + bool overFriendly; + takedownMode_t overTakedownTarget; + idVec3 gatherPointEndPos; + trace_t pointTraceResult; + bool validGatherPointResult; + bool validPointResult; +}; + +// IDA Local Type ordinal 15381; PDB kind: class. +class idFocusTracker_Player : public idFocusTracker +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15382. + virtual ~idFocusTracker_Player(); + virtual float GetTraceDistance(); + virtual bool UpdateCursor(idActor *, idEntity *, const idFocusTrace *); + virtual void UpdateCursorFlash(idActor *); + virtual float GetFocusDistance(const idPresentablePlayer *, const idEntity *); + virtual float GetFocusDistance_2(const idActor *, const idEntity *); + virtual float GetUsableDistance(const idActor *, const idEntity *); + +}; + +// IDA Local Type ordinal 22165; PDB kind: class. +class idFocusTracker_AI : public idFocusTracker +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22166. + virtual ~idFocusTracker_AI(); + virtual float GetTraceDistance(); + virtual bool UpdateCursor(idActor *, idEntity *, const idFocusTrace *); + virtual void UpdateCursorFlash(idActor *); + virtual float GetFocusDistance(const idPresentablePlayer *, const idEntity *); + virtual float GetFocusDistance_2(const idActor *, const idEntity *); + virtual float GetUsableDistance(const idActor *, const idEntity *); + +}; diff --git a/source/tungsten/game/player/hands.h b/source/tungsten/game/player/hands.h new file mode 100644 index 0000000..70bfa7c --- /dev/null +++ b/source/tungsten/game/player/hands.h @@ -0,0 +1,261 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\player\hands.h +// Recovered logical types: 13 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1070; PDB kind: enum. +enum idHands::handsAction_t : __int32 +{ + HANDSACTION_NONE = 0x0, + HANDSACTION_FIRE = 0x1, + HANDSACTION_DRYFIRE = 0x2, + HANDSACTION_RELOAD = 0x3, + HANDSACTION_AMMOCHANGE = 0x4, + HANDSACTION_PISTOLWHIP = 0x5, + HANDSACTION_BRINGDOWN = 0x6, + HANDSACTION_BRINGUP = 0x7, + HANDSACTION_THROWITEM = 0x8, + HANDSACTION_COOKITEM = 0x9, + HANDSACTION_RETURNTOIDLE = 0xA, + HANDSACTION_LOWERWEAPON = 0xB, + HANDSACTION_RAISEWEAPON = 0xC, + HANDSACTION_BEGINSPRINT = 0xD, + HANDSACTION_ENDSPRINT = 0xE, + HANDSACTION_TAKEDOWN = 0xF, + HANDSACTION_HIDEMOVE = 0x10, + HANDSACTION_TOGGLEDUALWIELD = 0x11, + HANDSACTION_TOGGLEFIREMODE = 0x12, + HANDSACTION_CHARGEWEAPONBATTERY = 0x13, + HANDSACTION_UPGRADEWEAPON = 0x14, + HANDSACTION_MAX = 0x15, +}; + +// IDA Local Type ordinal 1072; PDB kind: enum. +enum idHands::handsState_t : __int32 +{ + HS_IDLE = 0x0, + HS_ZOOM_IDLE = 0x1, + HS_THROW_IDLE = 0x2, + HS_TRANSITIONING = 0x3, + HS_CHARGING = 0x4, + HS_LASERING = 0x5, + HS_SPRINTING = 0x6, + HS_HIDEMOVE = 0x7, + HS_CHARGEWEAPONBATTERY = 0x8, + HS_SWIMMING = 0x9, + HS_SWIMMING_ENTER = 0xA, + HS_SWIMMING_EXIT = 0xB, + HS_SWIMMING_LEFT = 0xC, + HS_SWIMMING_RIGHT = 0xD, + HS_SWIMMING_UP = 0xE, + HS_SWIMMING_DOWN = 0xF, + HS_SWIMMING_FORWARD = 0x10, + HS_SWIMMING_FORWARD_SPRINT = 0x11, + HS_SWIMMING_TURN_LEFT = 0x12, + HS_SWIMMING_TURN_RIGHT = 0x13, + HS_SWIMMING_SURFACE = 0x14, + HS_SWIMMING_SUBMERGE = 0x15, + HS_SWIMMING_LOCKED = 0x16, + HS_SWIMMING_BACK = 0x17, + HS_SWIMMING_ARMED = 0x18, +}; + +// IDA Local Type ordinal 1102; PDB kind: enum. +enum idHands::setRestStateType_t : __int32 +{ + SET_RESTSTATE_TOGGLE = 0x0, + SET_RESTSTATE_REST = 0x1, + SET_RESTSTATE_COMBAT = 0x2, +}; + +// IDA Local Type ordinal 1211; PDB kind: enum. +enum __bitmask idHands::handHideReason_t : __int32 +{ + HAND_HIDE_GENERIC = 0x1, + HAND_HIDE_VEHICLE = 0x2, + HAND_HIDE_ZOOM = 0x4, + HAND_HIDE_SPECIAL = 0x8, + HAND_HIDE_SERVER_AUTHORITATIVE = 0x10, + HAND_HIDE_SPECTATING = 0x20, + HAND_HIDE_FIRSTPERSONEVENT = 0x40, + HAND_HIDE_TAKEDOWN = 0x80, +}; + +// IDA Local Type ordinal 1338; PDB kind: enum. +enum handsTag_t : __int32 +{ + HANDSTAG_RIGHT = 0x0, + HANDSTAG_LEFT = 0x1, + HANDSTAG_MAX = 0x2, +}; + +// IDA Local Type ordinal 1339; PDB kind: enum. +enum idHands::handsSwimStroke_t : __int32 +{ + SWIMSTROKE_FORWARD = 0x0, + SWIMSTROKE_SPRINT = 0x1, + SWIMSTROKE_BACK = 0x2, + SWIMSTROKE_LEFT = 0x3, + SWIMSTROKE_RIGHT = 0x4, + SWIMSTROKE_UP = 0x5, + SWIMSTROKE_DOWN = 0x6, + SWIMSTROKE_SURFACE = 0x7, + SWIMSTROKE_SUBMERGE = 0x8, + SWIMSTROKE_TURNLEFT = 0x9, + SWIMSTROKE_TURNRIGHT = 0xA, +}; + +// IDA Local Type ordinal 1340; PDB kind: enum. +enum idHands::handsTCAnglesBlendState_t : __int32 +{ + HANDSTCBLENDSTATE_IN = 0x0, + HANDSTCBLENDSTATE_IN_FULL = 0x1, + HANDSTCBLENDSTATE_OUT = 0x2, + HANDSTCBLENDSTATE_OUT_FULL = 0x3, +}; + +// IDA Local Type ordinal 1348; PDB kind: enum. +enum idHands::setWeaponModeType_t : __int32 +{ + SET_WEAPONMODE_TOGGLE = 0x0, + SET_WEAPONMODE_PRIMARY = 0x1, + SET_WEAPONMODE_SECONDARY = 0x2, +}; + +// IDA Local Type ordinal 1349; PDB kind: enum. +enum idHands::setWeaponDualWieldType_t : __int32 +{ + SET_DUALWIELD_TOGGLE = 0x0, + SET_DUALWIELD_ON = 0x1, + SET_DUALWIELD_OFF = 0x2, + SET_DUALWIELD_JUST_CLEAR_LEFT = 0x3, + SET_DUALWIELD_OFF_AND_REMOVE = 0x4, +}; + +// IDA Local Type ordinal 1350; PDB kind: enum. +enum idHands::weaponCondition_t : __int32 +{ + WEAPONCONDITION_EMPTY_CHAMBER_BOLT_FRONT = 0x0, + WEAPONCONDITION_EMPTY_CHAMBER_BOLT_BACK = 0x1, + WEAPONCONDITION_ROUND_IN_CHAMBER = 0x2, +}; + +// IDA Local Type ordinal 15369; PDB kind: class. +class idHands : public idEventReceiver +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15375. + virtual idTypeInfo *GetType(); + virtual ~idHands(); + 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 *); + + idPresentablePlayer *owner; + idAnimStack animStack; + idPresentableAnimatedEntity *presentable; + idAnimWebHands web; + idAnimWebHands secondaryWeb; + idRenderModel *testModel; + int hiddenReasons; + int usedToHaveHideReasons; + bool disabled; + bool shouldDisable; + bool shouldShowAfterUpdate; + bool unlinked; + equipSlot_t pickupSlot; + idHandsItem rightItem; + idHandsItem leftItem; + const idDeclThrowable *throwItem; + idAngles modelAngles; + float modelScale; + idVec3 modelOffset; + idMat3 modelAxis; + idAnimEventHandler animEventHandler; + int lastFriendlyTime; + idVec3 lockOnPosition; + idVec3 extraWorldTranslation; + idMat3 extraWorldRotation; + bool isReloading; + bool isWeaponBringUp; + bool isInReloadOut; + bool isInMeleeSwing; + bool isInterruptableTransition; + bool isChainFiring; + bool isChargeFiring; + bool isLaserFiring; + bool isZooming; + bool isInEndSprint; + bool isHandsSprinting; + bool isInAccentIdle; + bool isInTown; + bool isChangingAmmo; + idEntityPtr cookingProjectile; + const idDeclProjectile *cookingProjectileDecl; + bool canInteruptCooking; + bool playingWarningSound; + int cookingStartTime; + int cookingDetonationTime; + int lastActionTime; + idMeleeTrace handsMeleeTrace; + idHands::idHandsAction pendingAction; + idHands::idHandsAction lingeringAction; + idEntityPtr previousProjectile; + int meleeComboCount; + int lastMeleeHitTime; + int lastAttackTime; + int lastWeaponUsedTime; + int lastOnLadderTime; + unsigned __int8 : 2; + __int8 isWallClimbing : 1; + __int8 meleeTraceHit : 1; + __int8 isIdle : 1; + __int8 lastShotLeft : 1; + __int8 lastShotRight : 1; + __int8 deleteWeaponOnBringDown : 1; + int currentVariationIndex; + int pendingVariationIndex; + int weaponAnimVar; + bool weaponRelaxed; + bool weaponRelaxedToggler; + int lastAttackVariation; + int lastAttackVariationDWLeft; + int lastAimUpdateTime; + float aimPointDepthBlend; + float aimPointBlend; + bool alternateFiringNode; + bool alternateLeftFiringNode; + idHands::setWeaponDualWieldType_t currentDualWieldState; + idHands::idHandsAction dualWieldLeftHandPendingAction; + idWeapon *pendingWeaponToEquip; + idHands::handsState_t currentSwimState; + swimdepthstate_t lastSwimDepthState; + bool handBubblesActivated; + idAngles handsTCAngles; + idHands::handsTCAnglesBlendState_t handsTCAnglesBlendState; + float handsTCAnglesBlend; +}; + +// IDA Local Type ordinal 15374; PDB kind: class. +class idHands::idHandsAction +{ +public: + idHands::handsAction_t action; + const idDeclAmmo *ammoDecl; + idWeapon *weapon; + const idDeclThrowable *throwable; + bool useIntroBringUp; + bool isSecondary; + bool leftHand; + idStr extraNodeInfo; +}; + +// IDA Local Type ordinal 18093; PDB kind: class. +class idHands::PreLoadWeaponSounds::__l2::local_t +{ +public: +}; diff --git a/source/tungsten/game/player/handsitem.h b/source/tungsten/game/player/handsitem.h new file mode 100644 index 0000000..f735509 --- /dev/null +++ b/source/tungsten/game/player/handsitem.h @@ -0,0 +1,23 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\player\handsitem.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15371; PDB kind: class. +class idHandsItem +{ +public: + equipSlot_t slot; + const idDeclInventory *itemDecl; + idAnimEventHandler animEventHandler; + idInventoryItem *item; + idWeapon *lastWeapon; + tagData_t itemEjectLeftTagData; + tagData_t itemEjectRightTagData; + handsTag_t tagIndex; + bool hidden; + idPresentableAnimatedEntity *presentable; +}; diff --git a/source/tungsten/game/player/jobmanager.h b/source/tungsten/game/player/jobmanager.h new file mode 100644 index 0000000..0b1e299 --- /dev/null +++ b/source/tungsten/game/player/jobmanager.h @@ -0,0 +1,31 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\player\jobmanager.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14451; PDB kind: class. +class idJobManager +{ +public: + idList jobs; + idList specialEvent_Jumps; + const idDeclSpecialEvent_Area *specialEventAreaDecl; + idList specialEventAreaTrackers; + idList playerInteractionMemories; + idList gameStateInts; + idList raceStatusMemories; + idList dlcRewardsRecieved; + idPlayer *owner; + bool useAlternateHands; + bool saveRequested; + int activeJobIndex; + bool inDebug; + bool inInitState; + bool hackNoItemRewards; + bool hackIgnoreDebugRewards; + bool hackIgnoreLayerChanges; + garageList_t newVehicleGarage; +}; diff --git a/source/tungsten/game/player/jobutils.h b/source/tungsten/game/player/jobutils.h new file mode 100644 index 0000000..963e42b --- /dev/null +++ b/source/tungsten/game/player/jobutils.h @@ -0,0 +1,17 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\player\jobutils.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 18060; PDB kind: class. +class idJobUtils +{ +public: + ju_Language_t language; + idList records; + idList vos; + idList mergeVOsList; +}; diff --git a/source/tungsten/game/player/player.h b/source/tungsten/game/player/player.h new file mode 100644 index 0000000..4821af2 --- /dev/null +++ b/source/tungsten/game/player/player.h @@ -0,0 +1,2754 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\player\player.h +// Recovered logical types: 149 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1105; PDB kind: enum. +enum idPlayer::tensionType_t : __int32 +{ + PLAYER_TENSION_NONE = 0x0, + PLAYER_TENSION_TENTATIVE = 0x1, + PLAYER_TENSION_HOSTILE = 0x2, +}; + +// IDA Local Type ordinal 1207; PDB kind: enum. +enum idPlayer::offerChoice_t : __int32 +{ + OFFERCHOICE_DECLINED = 0x0, + OFFERCHOICE_ACCEPTED = 0x1, + OFFERCHOICE_PURCHASE = 0x2, + OFFERCHOICE_GENERICSELECTION_1 = 0x3, + OFFERCHOICE_GENERICSELECTION_2 = 0x4, + OFFERCHOICE_GENERICSELECTION_3 = 0x5, + OFFERCHOICE_GENERICSELECTION_4 = 0x6, + OFFERCHOICE_UNKNOWN = 0x7, +}; + +// IDA Local Type ordinal 1208; PDB kind: enum. +enum idPlayer::offerType_t : __int32 +{ + OFFERTYPE_NONE = 0x0, + OFFERTYPE_JOB = 0x1, + OFFERTYPE_VENDER = 0x2, +}; + +// IDA Local Type ordinal 1237; PDB kind: enum. +enum idPlayer::idPlayerBehaviorContextualShimmyState_t : __int32 +{ + CONTEXTUAL_SHIMMY_STATE_NONE = 0x0, + CONTEXTUAL_SHIMMY_STATE_MOUNT_LEFT_0 = 0x1, + CONTEXTUAL_SHIMMY_STATE_MOUNT_RIGHT_0 = 0x2, + CONTEXTUAL_SHIMMY_STATE_MOUNT_BACK_0 = 0x3, + CONTEXTUAL_SHIMMY_STATE_MOUNT_LEFT_90 = 0x4, + CONTEXTUAL_SHIMMY_STATE_MOUNT_RIGHT_90 = 0x5, + CONTEXTUAL_SHIMMY_STATE_MOUNT_LEFT_180 = 0x6, + CONTEXTUAL_SHIMMY_STATE_MOUNT_RIGHT_180 = 0x7, + CONTEXTUAL_SHIMMY_STATE_MOUNT_INSIDESSHQ_CLIMBOUT = 0x8, + CONTEXTUAL_SHIMMY_STATE_MOUNT_CUSTOMANIM = 0x9, + CONTEXTUAL_SHIMMY_STATE_IDLE = 0xA, + CONTEXTUAL_SHIMMY_STATE_SHIMMY_RIGHT = 0xB, + CONTEXTUAL_SHIMMY_STATE_SHIMMY_LEFT = 0xC, + CONTEXTUAL_SHIMMY_STATE_DISMOUNT_RIGHT = 0xD, + CONTEXTUAL_SHIMMY_STATE_DISMOUNT_FORWARD = 0xE, + CONTEXTUAL_SHIMMY_STATE_DISMOUNT_LEFT = 0xF, + CONTEXTUAL_SHIMMY_STATE_DISMOUNT_FALL = 0x10, + CONTEXTUAL_SHIMMY_STATE_DISMOUNT_CUSTOMANIM = 0x11, + CONTEXTUAL_SHIMMY_STATE_SWITCH_OUT90RIGHT = 0x12, + CONTEXTUAL_SHIMMY_STATE_SWITCH_OUT90LEFT = 0x13, + CONTEXTUAL_SHIMMY_STATE_SWITCH_IN90RIGHT = 0x14, + CONTEXTUAL_SHIMMY_STATE_SWITCH_IN90LEFT = 0x15, + CONTEXTUAL_SHIMMY_STATE_MAX = 0x16, +}; + +// IDA Local Type ordinal 1239; PDB kind: enum. +typedef idPlayer::idPlayerBehaviorWallClimb::bodyRotationAnim_t idPlayer::idPlayerBehaviorContextualShimmy::bodyRotationAnim_t; + +// IDA Local Type ordinal 1240; PDB kind: enum. +enum idPlayer::idPlayerBehaviorWallClimbState_t : __int32 +{ + WALLCLIMB_STATE_NONE = 0x0, + WALLCLIMB_STATE_MOUNT = 0x1, + WALLCLIMB_STATE_IDLE = 0x2, + WALLCLIMB_STATE_CLIMB_UP = 0x3, + WALLCLIMB_STATE_CLIMB_DOWN = 0x4, + WALLCLIMB_STATE_DISMOUNT_UP = 0x5, + WALLCLIMB_STATE_DISMOUNT_FALL = 0x6, + WALLCLIMB_STATE_SHUTDOWN = 0x7, + WALLCLIMB_STATE_MAX = 0x8, +}; + +// IDA Local Type ordinal 1241; PDB kind: enum. +typedef idPlayer::idPlayerBehaviorSprintSlide::bodyRotationAnim_t idPlayer::idPlayerBehaviorWallClimb::bodyRotationAnim_t; + +// IDA Local Type ordinal 1247; PDB kind: enum. +enum idPlayer::idPlayerBehaviorTakedown::idPlayerBehaviorTakedownState_t : __int32 +{ + TAKEDOWNSTATE_NONE = 0x0, + TAKEDOWNSTATE_INTAKEDOWN = 0x1, +}; + +// IDA Local Type ordinal 1248; PDB kind: enum. +enum idPlayer::idPlayerBehaviorSprintSlideState_t : __int32 +{ + SPRINT_SLIDE_STATE_NONE = 0x0, + SPRINT_SLIDE_STATE_SLIDING = 0x1, + SPRINT_SLIDE_STATE_END_STAND = 0x2, + SPRINT_SLIDE_STATE_END_CROUCH = 0x3, + SPRINT_SLIDE_STATE_END_FALL = 0x4, + SPRINT_SLIDE_STATE_MAX = 0x5, +}; + +// IDA Local Type ordinal 1249; PDB kind: enum. +typedef idPlayer::idPlayerBehaviorContextualLadder::bodyRotationAnim_t idPlayer::idPlayerBehaviorSprintSlide::bodyRotationAnim_t; + +// IDA Local Type ordinal 1252; PDB kind: enum. +enum idPlayer::idPlayerBehaviorLeanState_t : __int32 +{ + LEAN_STATE_NONE = 0x0, + LEAN_STATE_LEANING = 0x1, + LEAN_STATE_RESTART = 0x2, + LEAN_STATE_END = 0x3, + LEAN_STATE_MAX = 0x4, +}; + +// IDA Local Type ordinal 1256; PDB kind: enum. +enum idPlayer::idPlayerBehaviorContextualLadderState_t : __int32 +{ + CONTEXTUAL_LADDER_STATE_NONE = 0x0, + CONTEXTUAL_LADDER_STATE_MOUNT_BOTTOM = 0x1, + CONTEXTUAL_LADDER_STATE_MOUNT_MID = 0x2, + CONTEXTUAL_LADDER_STATE_MOUNT_TOP = 0x3, + CONTEXTUAL_LADDER_STATE_IDLE_UP_LEFT = 0x4, + CONTEXTUAL_LADDER_STATE_IDLE_UP_RIGHT = 0x5, + CONTEXTUAL_LADDER_STATE_CLIMB_DOWN_LEFT = 0x6, + CONTEXTUAL_LADDER_STATE_CLIMB_DOWN_RIGHT = 0x7, + CONTEXTUAL_LADDER_STATE_CLIMB_UP_LEFT = 0x8, + CONTEXTUAL_LADDER_STATE_CLIMB_UP_RIGHT = 0x9, + CONTEXTUAL_LADDER_STATE_SLIDE_DOWN_LEFT = 0xA, + CONTEXTUAL_LADDER_STATE_SLIDE_DOWN_RIGHT = 0xB, + CONTEXTUAL_LADDER_STATE_DISMOUNT_GROUND = 0xC, + CONTEXTUAL_LADDER_STATE_DISMOUNT_MID = 0xD, + CONTEXTUAL_LADDER_STATE_DISMOUNT_MID_PUSH = 0xE, + CONTEXTUAL_LADDER_STATE_DISMOUNT_TOP = 0xF, + CONTEXTUAL_LADDER_STATE_DEBUG_TEST_ANIM = 0x10, + CONTEXTUAL_LADDER_STATE_MAX = 0x11, +}; + +// IDA Local Type ordinal 1257; PDB kind: enum. +enum idPlayer::idPlayerBehaviorContextualLadderDismountType_t : __int32 +{ + CONTEXTUAL_LADDER_DISMOUNT_TYPE_NONE = 0x0, + CONTEXTUAL_LADDER_DISMOUNT_TYPE_LEFT = 0x1, + CONTEXTUAL_LADDER_DISMOUNT_TYPE_RIGHT = 0x2, + CONTEXTUAL_LADDER_DISMOUNT_TYPE_BACK = 0x3, + CONTEXTUAL_LADDER_DISMOUNT_TYPE_JUMP = 0x4, + CONTEXTUAL_LADDER_DISMOUNT_TYPE_MAX = 0x5, +}; + +// IDA Local Type ordinal 1258; PDB kind: enum. +enum idPlayer::idPlayerBehaviorContextualLadder::sharedLadderAliases_t : __int32 +{ + SHARED_ALIAS_MOUNT_BOTTOM = 0x0, + SHARED_ALIAS_MOUNT_MID_OUT = 0x1, + SHARED_ALIAS_MOUNT_TOP = 0x2, + SHARED_ALIAS_SLIDESTOPLEFT = 0x3, + SHARED_ALIAS_SLIDESTOPRIGHT = 0x4, + SHARED_ALIAS_IDLEUPLEFT = 0x5, + SHARED_ALIAS_IDLEUPRIGHT = 0x6, + SHARED_ALIAS_CLIMBDOWNLEFT = 0x7, + SHARED_ALIAS_CLIMBDOWNRIGHT = 0x8, + SHARED_ALIAS_CLIMBUPLEFT = 0x9, + SHARED_ALIAS_CLIMBUPRIGHT = 0xA, + SHARED_ALIAS_SLIDEINTOLEFT = 0xB, + SHARED_ALIAS_SLIDEINTORIGHT = 0xC, + SHARED_ALIAS_SLIDEDISMOUNTLEFT = 0xD, + SHARED_ALIAS_SLIDEDISMOUNTRIGHT = 0xE, + SHARED_ALIAS_DISMOUNTBOTTOMRIGHT = 0xF, + SHARED_ALIAS_DISMOUNTBOTTOMLEFT = 0x10, + SHARED_ALIAS_DISMOUNTMIDLEFT = 0x11, + SHARED_ALIAS_DISMOUNTMIDRIGHT = 0x12, + SHARED_ALIAS_DISMOUNTTOPRIGHT = 0x13, + SHARED_ALIAS_DISMOUNTTOPLEFT = 0x14, + SHARED_ALIAS_SLIDERIGHT = 0x15, + SHARED_ALIAS_SLIDELEFT = 0x16, + SHARED_ALIAS_MAX = 0x17, +}; + +// IDA Local Type ordinal 1259; PDB kind: enum. +enum idPlayer::idPlayerBehaviorShared::thirdPersonModelFlags_t : __int32 +{ + TPMODELFLAG_AUTO_ALIGN_TO_PLAYER = 0x1, + TPMODELFLAG_ANIM_DELTAS_APPLY_TO_PLAYER = 0x2, + TPMODELFLAG_ANIM_DELTAS_CLIP = 0x4, + TPMODELFLAG_ANIM_DELTAS_SMOOTH = 0x8, + TPMODELFLAG_ANIM_DELTAS_REPEAT_ON_ZERO = 0x10, + TPMODELFLAG_ANIM_DELTAS_SKIP_ONE_FRAME = 0x20, +}; + +// IDA Local Type ordinal 1260; PDB kind: enum. +enum idPlayer::idPlayerBehaviorShared::thirdPersonModelResultFlags_t : __int32 +{ + TPMODELRESULTFLAG_ANIM_DELTAS_SMOOTHED_POS = 0x1, + TPMODELRESULTFLAG_ANIM_DELTAS_SMOOTHED_ROT = 0x2, + TPMODELRESULTFLAG_ANIM_DELTAS_REPEATED_POS = 0x4, + TPMODELRESULTFLAG_ANIM_DELTAS_REPEATED_ROT = 0x8, + TPMODELRESULTFLAG_ANIM_DELTAS_INCLUDES_EXTERNAL = 0x10, +}; + +// IDA Local Type ordinal 1269; PDB kind: enum. +typedef firePoint_t idPlayer::firePoint_t; + +// IDA Local Type ordinal 1282; PDB kind: enum. +enum idPlayer::idPlayerBehaviorContextualLadder::bodyRotationAnim_t : __int32 +{ + BODY_ROTATION_CENTER = 0x0, + BODY_ROTATION_LEFT = 0x1, + BODY_ROTATION_RIGHT = 0x2, + BODY_ROTATION_UP = 0x3, + BODY_ROTATION_DOWN = 0x4, + BODY_ROTATION_MAX = 0x5, +}; + +// IDA Local Type ordinal 1290; PDB kind: enum. +enum idPlayer::lightDebugHelperModelType_t : __int32 +{ + LIGHTDEBUGHELPERMODELTYPE_INVALID = 0xFFFFFFFF, + LIGHTDEBUGHELPERMODELTYPE_BLACK_100 = 0x0, + LIGHTDEBUGHELPERMODELTYPE_GREY = 0x1, + LIGHTDEBUGHELPERMODELTYPE_GREY_50 = 0x2, + LIGHTDEBUGHELPERMODELTYPE_WHITE = 0x3, + LIGHTDEBUGHELPERMODELTYPE_NUM = 0x4, +}; + +// IDA Local Type ordinal 2142; PDB kind: enum. +enum idLayer::layerState_t : __int32 +{ + LAYERSTATE_DEACTIVE = 0x0, + LAYERSTATE_ACTIVE = 0x1, +}; + +// IDA Local Type ordinal 2283; PDB kind: enum. +enum aiPlayer_t : __int32 +{ + AIPLAYER_CLOSEST = 0x0, + AIPLAYER_FARTHEST = 0x1, + AIPLAYER_LOWEST_HEALTH = 0x2, + AIPLAYER_HIGHEST_HEALTH = 0x3, + AIPLAYER_MAX = 0x4, +}; + +// IDA Local Type ordinal 2754; PDB kind: enum. +enum idPlayer::guiModelType_t : __int32 +{ + GUI_MODEL_INVALID = 0x0, + GUI_MODEL_INVENTORY = 0x1, + GUI_MODEL_WEAPONSELECT = 0x2, +}; + +// IDA Local Type ordinal 3530; PDB kind: unknown. +typedef CCalHttpStream:: CCalPlayer::; + +// IDA Local Type ordinal 14312; PDB kind: class. +class idPlayer : public idActor +{ +public: + // Recovered virtual interface; IDA vtable ordinal 34003. + virtual idTypeInfo *GetType(); + virtual ~idPlayer(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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 void RepairShield(const float); + virtual const idVec3 *GetEyeOffset(const idVec3 *result); + virtual void GetViewTransform(idVec3 *, idMat3 *); + virtual void GetLastEyePos(idVec3 *); + virtual void GetEyeAxis(idMat3 *); + virtual void SetEyeAxis(const idMat3 *); + virtual idAnimator_AF::testSolidResult_t StartRagdoll(const idRagdollInfo *); + virtual void StopRagdoll(); + virtual equipSlot_t GetWeaponSlot(); + virtual idWeapon *GetEquippedWeapon(); + virtual bool EquipItem(idInventoryItem *, equipSlot_t); + virtual bool UnequipItem(idInventoryItem *); + virtual bool HolsterItem(idInventoryItem *, bool); + virtual void ShowAttachment(idInventoryItem *); + virtual void HideAttachment(idInventoryItem *); + virtual void DropAttachment(const equipSlot_t); + virtual void DropAttachment_2(idInventoryItem *); + virtual idEntity *DropItem(idInventoryItem *, bool, bool, int, const idVec3 *, const idVec3 *); + virtual idInventoryItem *GetEquipped(const equipSlot_t); + virtual void ClearEquipped(idInventoryItem *); + virtual void ClearEquipped_2(const equipSlot_t); + virtual idFXManager *GetFXMgrForAttachment(idInventoryItem *); + virtual idStrId *GetCurrentNPC(idStrId *result); + virtual idAASPositionMgr *GetAASPositionMgr(); + virtual bool HasSyncedWalks(); + virtual void SetApplyBulletTime(float, float); + virtual void SetApplyInvulnerability(float); + virtual void SetApplyAuthorityForce(float, const idDeclInventory *); + virtual bool CanBeHealed(); + virtual posture_t GetPosture(); + virtual void SetPosture(const posture_t); + virtual leanState_t GetLeanState(); + virtual void SetLeanState(const leanState_t); + virtual walkState_t GetWalkState(); + virtual void SetWalkState(const walkState_t); + virtual weaponReadyState_t GetWeaponReadyState(); + virtual void SetWeaponReadyState(const weaponReadyState_t); + virtual float GetApplyDamageScale(); + virtual void SetApplyDamageScale(float, float); + virtual const idVehicle *GetVehicle(); + virtual idVehicle *GetVehicle_2(); + virtual bool IsDrivingVehicle(); + virtual usableState_t GetOnlineUsableState(); + + idRenderModel *lightDebugHelperModel; + idPlayer::lightDebugHelperModelType_t lightDebugHelperCommited; + const idMaterial *lightDebugHelperTypes[4]; + const idDeclEntityDef *thirdPersonHandsDef; + idAlignedEntity *thirdPersonHands; + const idDeclEntityDef *thirdPersonLegsDef; + idAlignedEntity *thirdPersonLegs; + idPlayer::idPlayerBehaviors behaviors; + int debugHud_x; + int debugHud_y; + int currentDPadSelection; + int vehicleWeaponGroupIndex; + int vehicleQuickUseIndex; + bool loadoutChanged; + idInventoryItem *holsteredForRCcontroller; + bool snapBackFromRCcontroller; + int spawnTimeMS; + const idDeclMD6 *handsModel; + const idDeclPlayerProps *playerProps; + const idDeclEntityDef *playerDriver[2]; + idDragEntity dragEntity; + decayParams_s standDecay; + decayParams_s crouchDecay; + bool ignoreFallDamage; + idPlayer::playerBodyAnimInfo_t bodyAnimInfo; + idTungstenHealth playerHealth; + idVec2 guiObjectScreenCoords; + idEntityPtr guiInteractionEntity; + bool isControllingAi; + int vendorKeyIndex; + idGatherQuery lootQuery; + bool lootSoundPlayed; + idGatherQuery onlinePlayerUseableQuery; + bool shouldHideVehicles; + const idDeclParticle *prtUnderwater; + const idDeclParticle *prtWaterTransition; + const idDeclParticle *prtWaterSplash; + bool transitionEffectIsRunning; + bool underwaterEffectIsRunning; + bool lastFrameUnderwater; + bool lastFrameInWater; + int lastDamagedTime; + int lastHealthUpdate; + int bonusStamp; + idPlayer::tensionType_t currentPlayerTension; + int lastSetTensionTime; + idVolume_ShowGui_Leveltransition *levelTransitionGuiVolume; + bool levelTransitionGuiVolumeActive; + bool inPersonalGarage; + idStaticList,2> droppableList; + idMat3 modelAxis; + idVec3 playerModelOffset; + idList,5> throwableAttachments; + int maxTimeUnderwater; + int refillAirTime; + float sprintAirReductionScale; + const idDeclDamage *suffocationDamage; + int diveTime; + float airLeft; + idEntityPtr deathTrigger; + idJobManager jobManager; + idJobTimerManager jobTimerManager; + idPlayer::offerChoice_t lastOfferChoice; + idGameLayerManager gameLayerManager; + idPlayer::infoMessages_t infoMessages; + idPlayer::npcInteractionState_t npcInteractionState; + const idDeclInventory *mutantTag; + idList newItemList; + unsigned __int8 : 1; + __int8 readingLevelStateFromFile : 1; + __int8 transitioning : 1; + __int8 noTarget : 1; + __int8 noPlayerDeath : 1; + __int8 infiniteHealth : 1; + __int8 godMode : 1; + __int8 hidden : 1; + int lastIncapacitate; + idPlayerAuditor auditor; + float hitFlashDuration; + int hitFlashTime; + idStaticList,4> nearbyThreats; + idDeathCamera *deathCamera; + idOnlineVehicleDeathCamera *onlineVehicleDeathCamera; + idThrownCamera *thrownCamera; + idInteractionCamera *dynamicInteractionCamera; + idSpectatorCamera *spectatorCamera; + idSlowMotionCamera *slowMotionCamera; + idReviveCamera *reviveCamera; + idHandle reviveItemAttachment; + idEntityPtr controlledCameraEntity; + bool controlledCameraEntityAllowHUD; + idEntityPtr lastVehicle; + idBot *botController; + const idDeclTable *easyTable; + const idDeclTable *normalTable; + const idDeclTable *hardTable; + const idDeclTable *nightmareTable; + float applyDamageScale; + int applyDamageScaleEndTime; + int invulnerabilityEndTime; + bool isInvulnerable; + int bulletTimeEndTime; + int authorityStartTime; + int authorityEndTime; + const idMaterial *authorityIcon; + idClipQuery dofFocusTrace; + float dofCurrentFocus; + float dofGoalFocus; + idVec3 onAiPushDir; + int onAiChangePushDirMilliSeconds; + idPlayer::idPlayerCover cover; + idSpringCamera *springCamera; + int overrideActiveJob; + idEntityPtr reviveTarget; + idEntityPtr killer; + idVec3 lastSpawnPos; + profileStatValue_t stats[500]; + idAchievementManager achievementManager; + const idAAS2 *aas; + idVec3 previousCoverCheckPos; + int currentCoverCheckIndex; + idList playerCoverScores; + const idDeclInventory *cashDecl; + const idDeclInventory *cashVehicleDecl; + const idDeclDuck *incapDuck; + const idDeclMD6 *coopModelDef; + const idDeclAiEvent *playerAimEventDecl; + const idDeclAiEvent *playerInteractionEventDecl; + const idDeclAiEvent *bodyEventDecl; + const idDeclEntityDef *demonPlayer; + idAASPositionMgr aasPositionMgr; +}; + +// IDA Local Type ordinal 14315; PDB kind: struct. +struct idPlayer::idPlayerBehaviorShared +{ + int thirdPersonHandsFlags; + int thirdPersonLegsFlags; + int sharedFlags; + idVec3 deltaTransExternalWorld; + idVec3 deltaTransScale; +}; + +// IDA Local Type ordinal 14318; PDB kind: struct. +struct idPlayer::idPlayerBehaviorContextualShimmy +{ + idEntityPtr ledge; + idEntityPtr useLedge; + int currentLedgeBit; + int nextLedgeBit; + idPlayer::idPlayerBehaviorContextualShimmyState_t state; + idPlayer::idPlayerBehaviorContextualShimmyState_t prevState; + idPlayer::idPlayerBehaviorContextualShimmyState_t dismountState; + bool bEnabled; + int initiateInputTime; + idVec3 legsAlignPos; + idSpring averagedBodyRotationT; + idHandle bodyRotationAnimAliasHandles[3]; + float fireTimeMS; + idSpring extraWorldTranslationBlend; + idSpring extraWorldRotationBlend; + int nextFidgetTime; +}; + +// IDA Local Type ordinal 14320; PDB kind: struct. +struct idPlayer::idPlayerBehaviorWallClimb +{ + idEntityPtr wallClimb; + idHandle bodyRotationAnimAliasHandles[3]; + idPlayer::idPlayerBehaviorWallClimbState_t state; + bool bEnabled; + idVec3 legsAlignPos; + float sidewaysPosition; + idSpring averagedBodyRotationT; + idSpring extraWorldTranslationBlend; + idSpring extraWorldRotationBlend; + idSpring sideWaysTranslationBlend; + int nextFidgetTime; +}; + +// IDA Local Type ordinal 14323; PDB kind: struct. +struct idPlayer::idPlayerBehaviorSprintSlide +{ + float additiveAnimAlphaMin; + float additiveAnimAlphaMax; + float additiveAnimAlphaMinSpeed; + float additiveAnimAlphaMaxSpeed; + float cameraShakeMin; + float cameraShakeMax; + float cameraShakeMinSpeed; + float cameraShakeMaxSpeed; + const idDeclImpactSound *slideSounds; + float sndSlideMinVolume; + float sndSlideMinVolumeSpeed; + float sndSlideMaxVolume; + float sndSlideMaxVolumeSpeed; + idPlayer::idPlayerBehaviorSprintSlideState_t state; + bool startSlide; + bool endSlide; + idVec3 forwardDir; + float forwardSpeed; + bool forceEndSlide; + float maxSpeed; + float friction; + bool handsDeferredSave; + bool legsDeferredSave; + idSpringCamera::calculateViewStage_t springCamForceCalculateViewStageSave; + float walkFrictionSave; + idUCmdInhibit::inhibitFlags_t inhibitFlagsSave; + int slideStartTime; + idSpring legsFwdDirSpring; + idSpring bodyRotationPos; + idSpring bodyRotationAlpha; + float bodyRotationAnimWeights[5]; + idHandle bodyRotationLegsAnimAliasHandles[5]; + bool bEnabled; + bool playLoopingSlideSound; + const idSoundShader *loopingSlideSound; +}; + +// IDA Local Type ordinal 14324; PDB kind: struct. +struct idPlayer::idPlayerContextualLadderTestInfo +{ + bool bDisabled; + bool bDetectedLadder; + bool bDetectedLadderTop; + idVec3 point; + idVec3 normal; + int surfaceFlags; +}; + +// IDA Local Type ordinal 14325; PDB kind: struct. +struct __declspec(align(8)) idPlayer::idPlayerBehaviorContextualLadder +{ + idPlayer::idPlayerBehaviorContextualLadderState_t state; + idPlayer::idPlayerBehaviorContextualLadderState_t prevState; + idPlayer::idPlayerBehaviorContextualLadderDismountType_t dismountType; + bool bEnabled; + int initiateInputTime; + idPlayer::idPlayerContextualLadderTestInfo testForward; + idPlayer::idPlayerContextualLadderTestInfo testBackward; + idPlayer::idPlayerContextualLadderTestInfo testRight; + idPlayer::idPlayerContextualLadderTestInfo testLeft; + idPlayer::idPlayerContextualLadderTestInfo testTop; + idPlayer::idPlayerContextualLadderTestInfo testBottom; + float groundDist; + float ceilingDist; + idVec3 ladderNormal; + idVec3 ladderUp; + idVec3 ladderRight; + idVec3 handsAlignPos; + idVec3 legsAlignPos; + idVec3 prevPlayerMovementPos; + idAngles prevPlayerMovementAngles; + float prevPlayerDeltaZ; + idSpring averagedBodyRotationT; + int canMountTime; + idSpring speedScaleSpring; + idClipQuery ladderClipQuery; + bool invertInput; + bool blockClimpOffAtTop; + idHandle legsAliases[23]; + idHandle armsAliases[23]; + idHandle armsRotationAnimAliasHandles[5]; + idHandle legsRotationAnimAliasHandles[5]; +}; + +// IDA Local Type ordinal 14326; PDB kind: struct. +struct __declspec(align(4)) idPlayer::idPlayerBehaviorLean +{ + idPlayer::idPlayerBehaviorLeanState_t state; + idSpring leanOffset; + idSpring rollOffset; + float maxLeanDistLeft; + float maxLeanDistRight; + float maxLeanDistUp; + bool startLean; + bool endLean; + idVec3 forwardDir; + bool forceEndLean; + idSpringCamera::calculateViewStage_t springCamForceCalculateViewStageSave; + int leanStartTime; + bool bEnabled; +}; + +// IDA Local Type ordinal 14327; PDB kind: struct. +struct idPlayer::idPlayerBehaviorTakedown +{ + idPlayer::idPlayerBehaviorTakedown::idPlayerBehaviorTakedownState_t state; + idVec3 enemyPosition; + idMat3 enemyAxis; +}; + +// IDA Local Type ordinal 14328; PDB kind: struct. +struct __declspec(align(8)) idPlayer::idPlayerBehaviors +{ + idPlayer::idPlayerBehaviorShared shared; + idPlayer::idPlayerBehaviorContextualShimmy contextualShimmy; + idPlayer::idPlayerBehaviorWallClimb wallClimb; + idPlayer::idPlayerBehaviorSprintSlide sprintSlide; + idPlayer::idPlayerBehaviorContextualLadder contextualLadder; + idPlayer::idPlayerBehaviorLean lean; + idPlayer::idPlayerBehaviorTakedown takedown; + idList animDeltasTrans; + idList animDeltasRot; +}; + +// IDA Local Type ordinal 14353; PDB kind: struct. +struct idPlayer::playerBodyAnimInfo_t +{ + bool turning; + int framesIdle; + idClipQuery movementQuery; + idClipQuery jumpQuery; + bool physicsJumped; + bool hasJumped; + int framesInAir; + bool jumpPreLand; + bool fwdMovementBlocked; + idVec3 lastVelocity; + tagData_t leftHandIKTag; +}; + +// IDA Local Type ordinal 14462; PDB kind: class. +class idLayer : public idClass +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14463. + virtual idTypeInfo *GetType(); + virtual ~idLayer(); + + idStr layerDeclName; + idLayer::layerState_t layerState; +}; + +// IDA Local Type ordinal 14466; PDB kind: struct. +struct idPlayer::infoMessages_t +{ + bool seenDiceHelp; + int savedInventoryScreen; +}; + +// IDA Local Type ordinal 14467; PDB kind: class. +class idPlayer::npcInteractionState_t +{ +public: + idPlayer::offerType_t offerType; + idStr offeringEntity; + idStr interaction; +}; + +// IDA Local Type ordinal 14468; PDB kind: struct. +struct idPlayer::newInventoryItems_t +{ + const idDeclInventory *decl; + bool seen; + int page; +}; + +// IDA Local Type ordinal 14988; PDB kind: struct. +struct idPlayer::idPlayerCover +{ + const idAAS2 *aas; + idVec3 intersectionPoint; + idVec3 wallNormal; + playerCoverPoint_t coverPoints[2]; +}; + +// IDA Local Type ordinal 17516; PDB kind: class. +class idPlayerArmor : public idInventoryItem +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17517. + virtual idTypeInfo *GetType(); + virtual ~idPlayerArmor(); + 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 Init(const idDeclInventory *); + virtual void Merge(idPresentable *, idInventoryCollection *, const idDeclInventory *); + virtual void Hide(); + virtual void Show(); + virtual void OnEquip(const idPresentable *, idFXManager *); + virtual void OnUnequip(const idPresentable *, idFXManager *); + virtual void OnClone(const idInventoryItem *); + virtual int GetCount(); + virtual bool CanUse(idActor *); + virtual bool Use(idActor *); + virtual bool CanUseInVehicle(idActor *); + virtual bool ClientUse(idPresentablePlayer *); + virtual void Serialize(idSerializer *, idInventoryCollection *); + virtual void SerializeNonPrediction(idSerializer *, idInventoryCollection *); + virtual void ClientUpdate(); + virtual void GetPickupHudInfo(const idEntity *, idPickupHudInfo *); + + float curArmorValue; +}; + +// IDA Local Type ordinal 17617; PDB kind: class. +class idPlayerStart : public idSpawnNode +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17618. + virtual idTypeInfo *GetType(); + virtual ~idPlayerStart(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 GetValidSpawnLocations(const idGameplayFilterTarget *, const gameTeam_t *, float, bool, idList *, const int); + virtual void ReportBlockedLocation(int); + virtual int GetApproximateLocationCount(); + virtual bool Debug_IsValid(); + virtual void Debug_Draw(idSpawnNode::debugDrawLevel_t); + + idEntityPtr deathTrigger; + idEntityPtr vehicle; +}; + +// IDA Local Type ordinal 17689; PDB kind: class. +class __declspec(align(4)) idPlayer::jobMessage_t +{ +public: + idStr message; + bool complete; +}; + +// IDA Local Type ordinal 17705; PDB kind: class. +class idPlayer::OfferJob::__l2::idSWFScriptFunction_AcceptJob : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17706. + virtual ~idSWFScriptFunction_AcceptJob(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idAI2 *ai; + const idDeclJob *job; +}; + +// IDA Local Type ordinal 17707; PDB kind: class. +class idPlayer::OfferJob::__l3::idSWFScriptFunction_ReallyAcceptJob : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17708. + virtual ~idSWFScriptFunction_ReallyAcceptJob(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idAI2 *ai; + const idDeclJob *job; +}; + +// IDA Local Type ordinal 17709; PDB kind: class. +class idPlayer::OfferJob::__l4::idSWFScriptFunction_DeclineJob : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17710. + virtual ~idSWFScriptFunction_DeclineJob(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idAI2 *ai; + const idDeclJob *job; +}; + +// IDA Local Type ordinal 17711; PDB kind: class. +class idPlayer::OfferJob::__l5::idSWFScriptFunction_EndInteractionView : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17712. + virtual ~idSWFScriptFunction_EndInteractionView(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idAI2 *ai; +}; + +// IDA Local Type ordinal 17713; PDB kind: class. +class idPlayer::OfferJob::__l6::idSWFScriptFunction_GetJobDesc : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17714. + virtual ~idSWFScriptFunction_GetJobDesc(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + const idDeclJob *job; +}; + +// IDA Local Type ordinal 17715; PDB kind: class. +class idPlayer::OfferJob::__l7::idSWFScriptFunction_AIAllowsCanCloseGUI : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17716. + virtual ~idSWFScriptFunction_AIAllowsCanCloseGUI(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idAI2 *ai; +}; + +// IDA Local Type ordinal 17717; PDB kind: class. +class idPlayer::OfferJob::__l8::idSWFScriptFunction_deactivateBlankCallback : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17718. + virtual ~idSWFScriptFunction_deactivateBlankCallback(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 17719; PDB kind: class. +class idPlayer::ShowJobBoard::__l2::idSWFScriptFunction_JobBoardSelectJob : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17720. + virtual ~idSWFScriptFunction_JobBoardSelectJob(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + const idDeclJob *jobDecl; + idPlayer *player; +}; + +// IDA Local Type ordinal 17721; PDB kind: class. +class idPlayer::ShowJobBoard::__l3::idSWFScriptFunction_JobBoardDeactivateCallback : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17722. + virtual ~idSWFScriptFunction_JobBoardDeactivateCallback(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; +}; + +// IDA Local Type ordinal 17723; PDB kind: class. +class idPlayer::OfferWares::__l5::idSWFScriptFunction_PlayerInventory_FreeRepair : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17724. + virtual ~idSWFScriptFunction_PlayerInventory_FreeRepair(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; +}; + +// IDA Local Type ordinal 17725; PDB kind: class. +class idPlayer::OfferWares::__l7::idSWFScriptFunction_PlayerCash_get : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17726. + virtual ~idSWFScriptFunction_PlayerCash_get(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; +}; + +// IDA Local Type ordinal 17727; PDB kind: class. +class idPlayer::OfferWares::__l8::idSWFScriptFunction_SwitchCamera : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17728. + virtual ~idSWFScriptFunction_SwitchCamera(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; +}; + +// IDA Local Type ordinal 17729; PDB kind: class. +class idPlayer::OfferWares::__l9::idSWFScriptFunction_PlayerVendorDeactivateCallback : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17730. + virtual ~idSWFScriptFunction_PlayerVendorDeactivateCallback(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idAI2 *ai; +}; + +// IDA Local Type ordinal 17731; PDB kind: class. +class idPlayer::OfferWares::__l10::idSWFScriptFunction_PlayerVendor_GetVehicleHeading : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17732. + virtual ~idSWFScriptFunction_PlayerVendor_GetVehicleHeading(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; +}; + +// IDA Local Type ordinal 17733; PDB kind: class. +class idPlayer::OfferWares::__l11::idSWFScriptFunction_PlayerVendor_GetNumVehicles : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17734. + virtual ~idSWFScriptFunction_PlayerVendor_GetNumVehicles(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; +}; + +// IDA Local Type ordinal 17735; PDB kind: class. +class idPlayer::OfferWares::__l12::idSWFScriptFunction_PlayerVendor_ToTuner : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17736. + virtual ~idSWFScriptFunction_PlayerVendor_ToTuner(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + const aiPlayerInteraction_t *interaction; + idAI2 *offeringAI; +}; + +// IDA Local Type ordinal 17737; PDB kind: class. +class idPlayer::LaunchPlayTestGui::__l5::idSWFScriptFunction_PlaytestAvailableModel_Refresh : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17738. + virtual ~idSWFScriptFunction_PlaytestAvailableModel_Refresh(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idSWFScriptObject *object; +}; + +// IDA Local Type ordinal 17739; PDB kind: class. +class idPlayer::LaunchPlayTestGui::__l6::idSWFScriptFunction_DoReaction : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17740. + virtual ~idSWFScriptFunction_DoReaction(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idSWFScriptObject *object; +}; + +// IDA Local Type ordinal 17741; PDB kind: class. +class idPlayer::LaunchPlayTestGui::__l7::idSWFScriptFunction_ClearPlaytestModel : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17742. + virtual ~idSWFScriptFunction_ClearPlaytestModel(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idSWFScriptObject *object; +}; + +// IDA Local Type ordinal 17743; PDB kind: class. +class idPlayer::LaunchPlayTestGui::__l8::idSWFScriptFunction_DoBack : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17744. + virtual ~idSWFScriptFunction_DoBack(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idSWFScriptObject *object; +}; + +// IDA Local Type ordinal 17745; PDB kind: class. +class idPlayer::LaunchDebugJobGui::__l7::idSWFScriptFunction_PlayerJobsDebug_Refresh : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17746. + virtual ~idSWFScriptFunction_PlayerJobsDebug_Refresh(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idSWFScriptObject *object; +}; + +// IDA Local Type ordinal 17747; PDB kind: class. +class idPlayer::LaunchDebugJobGui::__l3::idSWFScriptFunction_DoClear : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17748. + virtual ~idSWFScriptFunction_DoClear(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; +}; + +// IDA Local Type ordinal 17749; PDB kind: class. +class idPlayer::LaunchDebugJobGui::__l4::idSWFScriptFunction_ShutDownResponse : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17750. + virtual ~idSWFScriptFunction_ShutDownResponse(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; +}; + +// IDA Local Type ordinal 17751; PDB kind: class. +class __declspec(align(4)) idPlayer::ShowInventory::__l23::idSWFScriptFunction_PlayerInventory_Refresh : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17752. + virtual ~idSWFScriptFunction_PlayerInventory_Refresh(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idSWFScriptObject *inventory; + idSWFScriptObject *quickInventory; + bool inVehicle; +}; + +// IDA Local Type ordinal 17753; PDB kind: class. +class idPlayer::ShowInventory::__l26::idSWFScriptFunction_PlayerWeapons_Refresh : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17754. + virtual ~idSWFScriptFunction_PlayerWeapons_Refresh(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idSWFScriptObject *object; +}; + +// IDA Local Type ordinal 17755; PDB kind: class. +class idPlayer::ShowInventory::__l34::idSWFScriptFunction_PlayerJobs_Refresh : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17756. + virtual ~idSWFScriptFunction_PlayerJobs_Refresh(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idSWFScriptObject *object; +}; + +// IDA Local Type ordinal 17757; PDB kind: class. +class idPlayer::ShowInventory::__l37::idSWFScriptFunction_PlayerSchematics_Refresh : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17758. + virtual ~idSWFScriptFunction_PlayerSchematics_Refresh(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idSWFScriptObject *object; +}; + +// IDA Local Type ordinal 17759; PDB kind: class. +class idPlayer::ShowInventory::__l38::idSWFScriptFunction_PlayerVehicles_Refresh : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17760. + virtual ~idSWFScriptFunction_PlayerVehicles_Refresh(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idSWFScriptObject *object; +}; + +// IDA Local Type ordinal 17761; PDB kind: class. +class idPlayer::ShowInventory::__l19::idSWFScriptFunction_CanScrollJobs : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17762. + virtual ~idSWFScriptFunction_CanScrollJobs(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + int scrollTime; +}; + +// IDA Local Type ordinal 17763; PDB kind: class. +class idPlayer::ShowInventory::__l20::idSWFScriptFunction_GetScreenFade : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17764. + virtual ~idSWFScriptFunction_GetScreenFade(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + int startTime; +}; + +// IDA Local Type ordinal 17765; PDB kind: class. +class idPlayer::ShowInventory::__l21::idSWFScriptFunction_GetShouldScreenFade : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17766. + virtual ~idSWFScriptFunction_GetShouldScreenFade(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + int startTime; +}; + +// IDA Local Type ordinal 17767; PDB kind: class. +class idPlayer::ShowInventory::__l22::idSWFScriptFunction_Category_Refresh : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17768. + virtual ~idSWFScriptFunction_Category_Refresh(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idSWFScriptObject *categories; +}; + +// IDA Local Type ordinal 17769; PDB kind: class. +class idPlayer::ShowInventory::__l24::idSWFScriptFunction_PlayerUnequipItem : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17770. + virtual ~idSWFScriptFunction_PlayerUnequipItem(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPresentablePlayer *player; +}; + +// IDA Local Type ordinal 17771; PDB kind: class. +class idPlayer::ShowInventory::__l25::idSWFScriptFunction_PlayerInventory_AvailQuickSlot : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17772. + virtual ~idSWFScriptFunction_PlayerInventory_AvailQuickSlot(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; +}; + +// IDA Local Type ordinal 17773; PDB kind: class. +class idPlayer::ShowInventory::__l27::idSWFScriptFuntion_PlayerWeapons_EquipWeapon : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17774. + virtual ~idSWFScriptFuntion_PlayerWeapons_EquipWeapon(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; +}; + +// IDA Local Type ordinal 17775; PDB kind: class. +class idPlayer::ShowInventory::__l28::idSWFScriptFuntion_PlayerWeapons_UnequipWeapon : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17776. + virtual ~idSWFScriptFuntion_PlayerWeapons_UnequipWeapon(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; +}; + +// IDA Local Type ordinal 17777; PDB kind: class. +class idPlayer::ShowInventory::__l31::idSWFScriptFunction_GetActiveJob : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17778. + virtual ~idSWFScriptFunction_GetActiveJob(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; +}; + +// IDA Local Type ordinal 17779; PDB kind: class. +class idPlayer::ShowInventory::__l35::idSWFScriptFunction_PlayerInventory_GetCash : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17780. + virtual ~idSWFScriptFunction_PlayerInventory_GetCash(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; +}; + +// IDA Local Type ordinal 17781; PDB kind: class. +class idPlayer::ShowInventory::__l36::idSWFScriptFunction_PlayerInventory_GetVehicleCash : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17782. + virtual ~idSWFScriptFunction_PlayerInventory_GetVehicleCash(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; +}; + +// IDA Local Type ordinal 17783; PDB kind: class. +class idPlayer::ShowInventory::__l39::idSWFScriptFunction_PlayerInventory_Deactivate : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17784. + virtual ~idSWFScriptFunction_PlayerInventory_Deactivate(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; +}; + +// IDA Local Type ordinal 17785; PDB kind: class. +class idPlayer::ShowInventory::__l40::idSWFScriptFunction_PlayerInventory_EquipDeactivate : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17786. + virtual ~idSWFScriptFunction_PlayerInventory_EquipDeactivate(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idSWF *gui; +}; + +// IDA Local Type ordinal 17787; PDB kind: class. +class idPlayer::ShowInventory::__l41::idSWFScriptFunction_PlayerInventory_UseDeactivate : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17788. + virtual ~idSWFScriptFunction_PlayerInventory_UseDeactivate(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idSWF *gui; +}; + +// IDA Local Type ordinal 17789; PDB kind: class. +class idPlayer::ShowInventory::__l42::idSWFScriptFunction_PlayerInventory_SetInventoryScreen : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17790. + virtual ~idSWFScriptFunction_PlayerInventory_SetInventoryScreen(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; +}; + +// IDA Local Type ordinal 17791; PDB kind: class. +class idPlayer::ShowInventory::__l43::idSWFScriptFunction_PlayerInventory_GetPersonalStats : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17792. + virtual ~idSWFScriptFunction_PlayerInventory_GetPersonalStats(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idSWFScriptObject *object; +}; + +// IDA Local Type ordinal 17793; PDB kind: class. +class idPlayer::ShowInventory::__l44::idSWFScriptFunciton_TriggerEntity : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17794. + virtual ~idSWFScriptFunciton_TriggerEntity(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; +}; + +// IDA Local Type ordinal 17795; PDB kind: class. +class idPlayer::TakeViewNotes::__l3::idSWFScriptFunction_TakeViewNotes : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17796. + virtual ~idSWFScriptFunction_TakeViewNotes(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idStr viewNoteDirectory; +}; + +// IDA Local Type ordinal 17797; PDB kind: class. +class idPlayer::TakeViewNotes::__l4::idSWFScriptFunction_TakeViewNoteScreenCap : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17798. + virtual ~idSWFScriptFunction_TakeViewNoteScreenCap(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idStr viewNoteDirectory; + idStr viewOrientation; +}; + +// IDA Local Type ordinal 17799; PDB kind: class. +class idPlayer::TakeViewNotes::__l5::idSWFScriptFunction_CloseTakeViewNotes : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17800. + virtual ~idSWFScriptFunction_CloseTakeViewNotes(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 17801; PDB kind: class. +class idPlayer::TakeViewNotes::__l2::idSWFScriptFunction_WriteScreenCap : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17802. + virtual ~idSWFScriptFunction_WriteScreenCap(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 17803; PDB kind: class. +class idPlayer::EnterPersonalGarage::__l3::idSWFScriptFunction_PlayerGarage_RefreshQuickItems : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17804. + virtual ~idSWFScriptFunction_PlayerGarage_RefreshQuickItems(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idSWFScriptObject *object; + idPlayer *player; +}; + +// IDA Local Type ordinal 17805; PDB kind: class. +class idPlayer::EnterPersonalGarage::__l4::idSWFScriptFunction_PlayerGarage_EquipItem : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17806. + virtual ~idSWFScriptFunction_PlayerGarage_EquipItem(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idSWFScriptObject *object; + idPlayer *player; +}; + +// IDA Local Type ordinal 17807; PDB kind: class. +class idPlayer::EnterPersonalGarage::__l5::idSWFScriptFunction_PlayerGarage_IsItemEquipped : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17808. + virtual ~idSWFScriptFunction_PlayerGarage_IsItemEquipped(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idSWFScriptObject *object; + idPlayer *player; +}; + +// IDA Local Type ordinal 17809; PDB kind: class. +class idPlayer::EnterPersonalGarage::__l6::idSWFScriptFunction_PlayerGarage_UnequipItem : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17810. + virtual ~idSWFScriptFunction_PlayerGarage_UnequipItem(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idSWFScriptObject *object; + idPlayer *player; +}; + +// IDA Local Type ordinal 17811; PDB kind: class. +class idPlayer::EnterPersonalGarage::__l7::idSWFScriptFunction_PlayerGarage_ExitGarageToTown : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17812. + virtual ~idSWFScriptFunction_PlayerGarage_ExitGarageToTown(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idVehicleKey *key; + idTownGarageCamera *camera; +}; + +// IDA Local Type ordinal 17813; PDB kind: class. +class idPlayer::EnterPersonalGarage::__l8::idSWFScriptFunction_PlayerGarage_ExitGarageToWasteland : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17814. + virtual ~idSWFScriptFunction_PlayerGarage_ExitGarageToWasteland(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idVehicleKey *key; + idTownGarageCamera *camera; +}; + +// IDA Local Type ordinal 17815; PDB kind: class. +class idPlayer::EnterPersonalGarage::__l9::idSWFScriptFunction_PlayerGarage_PreviousBay : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17816. + virtual ~idSWFScriptFunction_PlayerGarage_PreviousBay(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idTownGarageCamera *camera; +}; + +// IDA Local Type ordinal 17817; PDB kind: class. +class idPlayer::EnterPersonalGarage::__l10::idSWFScriptFunction_PlayerGarage_NextBay : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17818. + virtual ~idSWFScriptFunction_PlayerGarage_NextBay(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idTownGarageCamera *camera; +}; + +// IDA Local Type ordinal 17819; PDB kind: class. +class idPlayer::EnterPersonalGarage::__l14::idSWFScriptFunction_PlayerGarage_CanRepairVehicle : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17820. + virtual ~idSWFScriptFunction_PlayerGarage_CanRepairVehicle(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idTownGarageCamera *camera; +}; + +// IDA Local Type ordinal 17821; PDB kind: class. +class idPlayer::EnterPersonalGarage::__l15::idSWFScriptFunction_PlayerGarage_RepairVehicle : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17822. + virtual ~idSWFScriptFunction_PlayerGarage_RepairVehicle(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idTownGarageCamera *camera; +}; + +// IDA Local Type ordinal 17823; PDB kind: class. +class idPlayer::EnterPersonalGarage::__l16::idSWFScriptFunction_PlayerGarage_GetCash : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17824. + virtual ~idSWFScriptFunction_PlayerGarage_GetCash(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; +}; + +// IDA Local Type ordinal 17825; PDB kind: class. +class idPlayer::EnterPersonalGarage::__l17::idSWFScriptFunction_PlayerGarage_GetVehicleDamage : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17826. + virtual ~idSWFScriptFunction_PlayerGarage_GetVehicleDamage(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idTownGarageCamera *camera; +}; + +// IDA Local Type ordinal 17827; PDB kind: class. +class idPlayer::EnterPersonalGarage::__l18::idSWFScriptFunction_PlayerGarage_GetVehicleRepairCost : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17828. + virtual ~idSWFScriptFunction_PlayerGarage_GetVehicleRepairCost(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idTownGarageCamera *camera; +}; + +// IDA Local Type ordinal 17829; PDB kind: class. +class idPlayer::EnterPersonalGarage::__l19::idSWFScriptFunction_PlayerGarage_CanTune : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17830. + virtual ~idSWFScriptFunction_PlayerGarage_CanTune(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idTownGarageCamera *camera; +}; + +// IDA Local Type ordinal 17831; PDB kind: class. +class idPlayer::EnterPersonalGarage::__l20::idSWFScriptFunction_PlayerGarage_GetVehicleName : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17832. + virtual ~idSWFScriptFunction_PlayerGarage_GetVehicleName(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idTownGarageCamera *camera; +}; + +// IDA Local Type ordinal 17833; PDB kind: class. +class idPlayer::EnterPersonalGarage::__l21::idSWFScriptFunction_PlayerGarage_GetVehicleClass : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17834. + virtual ~idSWFScriptFunction_PlayerGarage_GetVehicleClass(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idTownGarageCamera *camera; +}; + +// IDA Local Type ordinal 17835; PDB kind: class. +class idPlayer::EnterPersonalGarage::__l22::idSWFScriptFunction_PlayerGarage_GetNumTargets : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17836. + virtual ~idSWFScriptFunction_PlayerGarage_GetNumTargets(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idTownGarageCamera *camera; +}; + +// IDA Local Type ordinal 17837; PDB kind: class. +class idPlayer::EnterPersonalGarage::__l23::idSWFScriptFunction_PlayerGarage_GetVehiclePrestige : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17838. + virtual ~idSWFScriptFunction_PlayerGarage_GetVehiclePrestige(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idTownGarageCamera *camera; +}; + +// IDA Local Type ordinal 17839; PDB kind: class. +class idPlayer::EnterPersonalGarage::__l26::idSWFScriptFunction_PlayerGarage_ZoomToTrophy : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17840. + virtual ~idSWFScriptFunction_PlayerGarage_ZoomToTrophy(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idTownGarageCamera *camera; +}; + +// IDA Local Type ordinal 17841; PDB kind: class. +class idPlayer::EnterPersonalGarage::__l27::idSWFScriptFunction_PlayerGarage_ZoomFromTrohpy : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17842. + virtual ~idSWFScriptFunction_PlayerGarage_ZoomFromTrohpy(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idTownGarageCamera *camera; +}; + +// IDA Local Type ordinal 17843; PDB kind: class. +class idPlayer::EnterPersonalGarage::__l28::idSWFScriptFunction_PlayerGarage_ToggleCarTrophyView : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17844. + virtual ~idSWFScriptFunction_PlayerGarage_ToggleCarTrophyView(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idTownGarageCamera *camera; +}; + +// IDA Local Type ordinal 17845; PDB kind: class. +class idPlayer::EnterPersonalGarage::__l29::idSWFScriptFunction_PlayerGarage_ToggleGarageBlur : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17846. + virtual ~idSWFScriptFunction_PlayerGarage_ToggleGarageBlur(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; +}; + +// IDA Local Type ordinal 17847; PDB kind: class. +class idPlayer::EnterPersonalGarage::__l30::idSWFScriptFunction_PlayerGarage_UpdateSchematic : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17848. + virtual ~idSWFScriptFunction_PlayerGarage_UpdateSchematic(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; +}; + +// IDA Local Type ordinal 17849; PDB kind: class. +class __declspec(align(4)) idPlayer::EnterPersonalGarage::__l31::idSWFScriptFunction_PlayerGarage_ActivateTuner : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17850. + virtual ~idSWFScriptFunction_PlayerGarage_ActivateTuner(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idTownGarageCamera *camera; + bool fromGarage; +}; + +// IDA Local Type ordinal 17851; PDB kind: class. +class idPlayer::EnterPersonalGarage::__l32::idSWFScriptFunction_PlayerGarage_GetNumVehicleKills : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17852. + virtual ~idSWFScriptFunction_PlayerGarage_GetNumVehicleKills(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idTownGarageCamera *camera; +}; + +// IDA Local Type ordinal 17853; PDB kind: class. +class idPlayer::ShowVehicleTuner::__l2::idSWFScriptFunction_PlayerGarage_RefreshUpgrades : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17854. + virtual ~idSWFScriptFunction_PlayerGarage_RefreshUpgrades(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idVehicleKey *key; + idSWFScriptObject *object; +}; + +// IDA Local Type ordinal 17855; PDB kind: class. +class idPlayer::ShowVehicleTuner::__l3::idSWFScriptFunction_PlayerGarage_RefreshTypes : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17856. + virtual ~idSWFScriptFunction_PlayerGarage_RefreshTypes(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idVehicleKey *key; + idSWFScriptObject *object; + idPlayer *player; +}; + +// IDA Local Type ordinal 17857; PDB kind: class. +class idPlayer::ShowVehicleTuner::__l4::idSWFScriptFunction_PlayerGarage_EquipUpgrade : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17858. + virtual ~idSWFScriptFunction_PlayerGarage_EquipUpgrade(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idVehicleKey *key; + idSWFScriptObject *object; + idSWF *gui; +}; + +// IDA Local Type ordinal 17859; PDB kind: class. +class idPlayer::ShowVehicleTuner::__l5::idSWFScriptFunction_PlayerGarage_ReturnToGarage : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17860. + virtual ~idSWFScriptFunction_PlayerGarage_ReturnToGarage(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idVehicleKey *key; + idTownGarageCamera *camera; +}; + +// IDA Local Type ordinal 17861; PDB kind: class. +class idPlayer::ShowVehicleTuner::__l6::idSWFScriptFunction_PlayerGarage_ReturnToVendor : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17862. + virtual ~idSWFScriptFunction_PlayerGarage_ReturnToVendor(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + const aiPlayerInteraction_t *interaction; + idAI2 *offeringAI; +}; + +// IDA Local Type ordinal 17863; PDB kind: class. +class idPlayer::ShowVehicleTuner::__l7::idSWFScriptFunction_PlayerGarage_TriggerSchematicRender : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17864. + virtual ~idSWFScriptFunction_PlayerGarage_TriggerSchematicRender(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idVehicleKey *key; + idPlayer *player; + bool fromGarage; + idTownGarageCamera *camera; +}; + +// IDA Local Type ordinal 17865; PDB kind: class. +class idPlayer::ShowVehicleTuner::__l8::idSWFScriptFunction_PlayerGarage_SelectVehicleComponent : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17866. + virtual ~idSWFScriptFunction_PlayerGarage_SelectVehicleComponent(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idVehicleKey *key; + idPlayer *player; +}; + +// IDA Local Type ordinal 17867; PDB kind: class. +class idPlayer::ShowVehicleTuner::__l9::idSWFScriptFunction_PlayerGarage_KillVehicle : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17868. + virtual ~idSWFScriptFunction_PlayerGarage_KillVehicle(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idTownGarageCamera *camera; +}; + +// IDA Local Type ordinal 17869; PDB kind: class. +class idPlayer::ShowVehicleTuner::__l10::idSWFScriptFunction_PlayerGarage_VehicleRating : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17870. + virtual ~idSWFScriptFunction_PlayerGarage_VehicleRating(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idVehicleKey *key; +}; + +// IDA Local Type ordinal 17871; PDB kind: class. +class idPlayer::ShowVehicleTuner::__l11::idSWFScriptFunction_PlayerGarage_NeedsRepairToInstall : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17872. + virtual ~idSWFScriptFunction_PlayerGarage_NeedsRepairToInstall(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idVehicleKey *key; +}; + +// IDA Local Type ordinal 17873; PDB kind: class. +class idPlayer::ShowVehicleTuner::__l12::idSWFScriptFunction_PlayerGarage_VehicleName : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17874. + virtual ~idSWFScriptFunction_PlayerGarage_VehicleName(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idVehicleKey *key; +}; + +// IDA Local Type ordinal 17875; PDB kind: class. +class idPlayer::ShowVehicleTuner::__l13::idSWFScriptFunction_PlayerGarage_CanRepairVehicle : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17876. + virtual ~idSWFScriptFunction_PlayerGarage_CanRepairVehicle(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idVehicleKey *key; +}; + +// IDA Local Type ordinal 17877; PDB kind: class. +class idPlayer::ShowVehicleTuner::__l14::idSWFScriptFunction_PlayerGarage_RepairVehicle : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17878. + virtual ~idSWFScriptFunction_PlayerGarage_RepairVehicle(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idVehicleKey *key; +}; + +// IDA Local Type ordinal 17879; PDB kind: class. +class idPlayer::ShowVehicleTuner::__l15::idSWFScriptFunction_PlayerGarage_GetCash : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17880. + virtual ~idSWFScriptFunction_PlayerGarage_GetCash(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; +}; + +// IDA Local Type ordinal 17881; PDB kind: class. +class idPlayer::ShowVehicleTuner::__l16::idSWFScriptFunction_PlayerGarage_GetVehicleDamage : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17882. + virtual ~idSWFScriptFunction_PlayerGarage_GetVehicleDamage(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idVehicleKey *key; +}; + +// IDA Local Type ordinal 17883; PDB kind: class. +class idPlayer::ShowVehicleTuner::__l17::idSWFScriptFunction_PlayerGarage_GetVehicleRepairCost : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17884. + virtual ~idSWFScriptFunction_PlayerGarage_GetVehicleRepairCost(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idVehicleKey *key; +}; + +// IDA Local Type ordinal 17885; PDB kind: class. +class idPlayer::OfferWares::__l4::idSWFScriptFunction_MerchantInventory_Refresh : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17886. + virtual ~idSWFScriptFunction_MerchantInventory_Refresh(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idEntityPtr vendor; + idSWFScriptObject *object; +}; + +// IDA Local Type ordinal 17887; PDB kind: class. +class idPlayer::OfferWares::__l6::idSWFScriptFunction_PlayerInventory_Refresh : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17888. + virtual ~idSWFScriptFunction_PlayerInventory_Refresh(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idEntityPtr vendor; + idSWFScriptObject *object; +}; + +// IDA Local Type ordinal 18016; PDB kind: class. +class idPlayer::RestartMapForMissionFailure::__l9::idSWFScriptFunction_PlayerInstanceDeath : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18017. + virtual ~idSWFScriptFunction_PlayerInstanceDeath(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idSWF *gui; +}; + +// IDA Local Type ordinal 18018; PDB kind: class. +class idPlayer::RestartMapForMissionFailure::__l10::idSWFScriptFunction_ExitToMenu : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18019. + virtual ~idSWFScriptFunction_ExitToMenu(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 18020; PDB kind: class. +class idPlayer::RestartMapForMissionFailure::__l11::idSWFScriptFunction_setLoadOnly : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18021. + virtual ~idSWFScriptFunction_setLoadOnly(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 18022; PDB kind: class. +class idPlayer::RestartMapForMissionFailure::__l12::idSWFScriptFunction_loadMostRecent : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18023. + virtual ~idSWFScriptFunction_loadMostRecent(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 18024; PDB kind: class. +class idPlayer::Killed::__l11::idSWFScriptFunction_PlayerInstanceDeath : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18025. + virtual ~idSWFScriptFunction_PlayerInstanceDeath(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idSWF *gui; +}; + +// IDA Local Type ordinal 18026; PDB kind: class. +class idPlayer::Killed::__l12::idSWFScriptFunction_ExitToMenu : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18027. + virtual ~idSWFScriptFunction_ExitToMenu(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 18028; PDB kind: class. +class idPlayer::Killed::__l27::idSWFScriptFunction_PlayerVehicleDeath : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18029. + virtual ~idSWFScriptFunction_PlayerVehicleDeath(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + + idPlayer *player; + idSWF *gui; +}; + +// IDA Local Type ordinal 18030; PDB kind: class. +class idPlayer::Killed::__l28::idSWFScriptFunction_ExitToMenu : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18031. + virtual ~idSWFScriptFunction_ExitToMenu(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 18032; PDB kind: class. +class idPlayer::Killed::__l14::idSWFScriptFunction_loadMostRecent : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18033. + virtual ~idSWFScriptFunction_loadMostRecent(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 18034; PDB kind: class. +class idPlayer::Killed::__l13::idSWFScriptFunction_setLoadOnly : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18035. + virtual ~idSWFScriptFunction_setLoadOnly(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 18036; PDB kind: class. +class idPlayer::Killed::__l30::idSWFScriptFunction_loadMostRecent : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18037. + virtual ~idSWFScriptFunction_loadMostRecent(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 18038; PDB kind: class. +class idPlayer::Killed::__l29::idSWFScriptFunction_setLoadOnly : public idSWFScriptFunction_RefCounted +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18039. + virtual ~idSWFScriptFunction_setLoadOnly(); + virtual idSWFScriptVar *Call(idSWFScriptVar *result, idSWFScriptObject *, const idSWFParmList *); + virtual void AddRef(); + virtual void Release(); + virtual idSWFScriptObject *GetPrototype(); + virtual void SetPrototype(idSWFScriptObject *); + +}; + +// IDA Local Type ordinal 18917; PDB kind: class. +class idMediaPlayer +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18918. + virtual ~idMediaPlayer(); + virtual void Start(); + virtual void Stop(); + virtual void Pause(); + virtual void Resume(); + virtual void NextSong(); + virtual void PreviousSong(); + virtual void Volume(float); + virtual int GetCurrentPlaylist(); + virtual void SetCurrentPlaylist(int); + +}; + +// IDA Local Type ordinal 22008; PDB kind: struct. +struct idPlayer::idPlayerVehicleInfo +{ + bool enabled; + bool enterVehicle; + idVec3 position; + idMat3 orientation; + const idDeclEntityDef *vehicle; +}; + +// IDA Local Type ordinal 25872; PDB kind: class. +class CCalPlayer : public CCalBase +{ +public: + // Recovered virtual interface; IDA vtable ordinal 25876. + virtual ~CCalPlayer(); + virtual unsigned int AddRef(); + virtual unsigned int Release(); + virtual HRESULT Lock(); + virtual HRESULT TryLock(); + virtual HRESULT Unlock(); + virtual CCalBase *Enqueue(CCalBase **); + virtual CCalBase *Dequeue(CCalBase **); + virtual HRESULT GetHResult(); + virtual CCalBase::MEDIA_TYPE GetMediaType(); + virtual HRESULT Create(CCalDecoder *, CCalRenderer *); + virtual HRESULT Create_2(); + virtual HRESULT Close(); + virtual HRESULT RegisterNotification(CCalBase::NOTIFICATION_TYPE, void (__fastcall *)(void *), void *); + virtual HRESULT RegisterNotification_2(CCalBase::NOTIFICATION_TYPE, void (__fastcall *)(void *)); + virtual HRESULT ConnectDecoder(CCalDecoder *); + virtual HRESULT ConnectRenderer(CCalRenderer *); + virtual HRESULT ConnectInput(CCalStream *); + virtual HRESULT DisconnectDecoder(); + virtual HRESULT DisconnectRenderer(); + virtual HRESULT DisconnectInput(); + virtual HRESULT GetMediaInfo(const CCalImageInfo **); + virtual HRESULT GetMediaInfo_2(const CCalSubInfo **); + virtual HRESULT GetMediaInfo_3(const CCalVideoInfo **); + virtual HRESULT GetMediaInfo_4(const CCalAudioInfo **); + virtual HRESULT Play(CCalBase::PLAY_FLAGS); + virtual HRESULT Pause(); + virtual HRESULT Resume(); + virtual HRESULT Stop(); + virtual HRESULT Rewind(CCalBase::POSITION); + virtual HRESULT Seek(unsigned int, unsigned int *); + virtual HRESULT GetStatus(CCalBase::PLAYER_STATE *, unsigned int *); + virtual void EndOfFrameCallback(); + virtual void InitializeMemberVariables(); + virtual void WaitForPlayEvent(); + virtual void WaitForEndOfFrameEvent(); + virtual void SetPlayEvent(); + virtual void SetEndOfFrameEvent(); + virtual void ResetPlayEvent(); + virtual CCalBase::PLAYER_STATE GetState(); + virtual CCalBase::PLAYER_FLAGS GetFlags(); + virtual void SetState(CCalBase::PLAYER_STATE); + virtual void SetFlags(CCalBase::PLAYER_FLAGS); + virtual void ClearFlags(CCalBase::PLAYER_FLAGS); + + CCalMemoryQueue m_Queue; + void (__fastcall *m_pfnEndOfFrameNotification)(void *); + void (__fastcall *m_pfnStateChangeNotification)(void *); + void *m_pvEndOfFrameContext; + void *m_pvStateChangeContext; + _KEVENT m_PlayEvent; + _KEVENT m_EndOfFrameEvent; + CCalBase::PLAYER_STATE m_State; + unsigned int m_ulFlags; + volatile unsigned int m_ulLockLevel; + int m_bDecoderOutputConnected; + int m_bRendererInputConnected; +}; diff --git a/source/tungsten/game/player/playerhud.h b/source/tungsten/game/player/playerhud.h new file mode 100644 index 0000000..f3020c1 --- /dev/null +++ b/source/tungsten/game/player/playerhud.h @@ -0,0 +1,100 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\player\playerhud.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1198; PDB kind: enum. +enum idPlayerHud::hudState_t : __int32 +{ + HUDSTATE_NONE = 0x0, + HUDSTATE_BALOON = 0x1, + HUDSTATE_DAMAGE = 0x2, + HUDSTATE_DAMAGE_HEALTH = 0x3, + HUDSTATE_INFO = 0x4, + HUDSTATE_ALL = 0x5, +}; + +// IDA Local Type ordinal 15336; PDB kind: struct. +struct idPlayerHud::updateJobInfo_t +{ + const idDeclJob *jobDecl; + int requiredNum; + bool playSound; + bool treatAsSameStatusUpdate; + bool fakeJob; + idStrId fakeJobName; + idStrId fakeJobObj; +}; + +// IDA Local Type ordinal 15341; PDB kind: struct. +struct idPlayerHud::clusterTarget_t +{ + idEntityPtr target; + bool locked; + int aquirePulse; + int aquireTime; + int startLock; + int lockTime; +}; + +// IDA Local Type ordinal 15344; PDB kind: class. +class __declspec(align(4)) idPlayerHud +{ +public: + float combatCalmDownTime; + int driverNum; + bool showCrosshair; + bool ignoreJobUpdates; + bool ignorePickupUpdates; + int activateCombatTime; + idList jobUpdateQueue; + idJob *currentJob; + bool fakeJobCurrentJob; + bool currentJobPlaySound; + bool currentJobTreatUpdateAsSameStatus; + idJob *dynamicJob; + bool dynamicJobPlaySound; + bool dynamicJobTreatUpdateAsSameStatus; + idList dynamicJobUpdateQueue; + int currentRequirement; + int jobStartShowTime; + int defaultJobShowTime; + int completedJobShowTime; + int acceptedJobShowTime; + idPlayerHud::hudState_t hudState; + idPlayerHud::hudState_t tempHudState; + bool allowWeaponChange; + bool allowDossier; + idList pickupList; + idPlayer *player; + idPresentablePlayer *presPlayer; + idEntityPtr rocketTarget; + idList,5> hudWatchTargets; + idStaticList,3> combinerTargets; + idVec3 damageOrigin; + int damageImpulseTime; + int pickupSwitchTime; + bool pickupUpdate; + bool canRemovePickup; + bool mainMenuActive; + idList clusterTargets; + bool gameInhibited; + bool playerChangeWeapon; + bool prevChangeVisible; + idRenderModel *guiModel; + idVec2 guiModelLoc; + bool forceScoreboard; + int quickMenuIndex; + int quickScrollWait; + int quickMenuOffset; + bool crosshairUsed; + int msDelayHudUpdate; + idEntityPtr minigameEntity; + bool newMinigame; + idHudHelpInfo helpInfo; + bool showBottomBar; + bool restrictedGameplay; +}; diff --git a/source/tungsten/game/player/playerprofilegame.h b/source/tungsten/game/player/playerprofilegame.h new file mode 100644 index 0000000..ef77c4f --- /dev/null +++ b/source/tungsten/game/player/playerprofilegame.h @@ -0,0 +1,84 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\player\playerprofilegame.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2577; PDB kind: enum. +enum idPlayerProfileGame::displayMode_t : __int32 +{ + DISPLAY_INVALID = 0xFFFFFFFF, + DISPLAY_WINDOWED = 0x0, + DISPLAY_FULLSCREEN = 0x1, + MAX_DISPLAY_MODES = 0x2, +}; + +// IDA Local Type ordinal 2578; PDB kind: enum. +enum idPlayerProfileGame::syncTypes_t : __int32 +{ + SYNC_INVALID = 0xFFFFFFFF, + SYNC_TEAR = 0x0, + SYNC_ON = 0x1, + SYNC_SMART = 0x2, + MAX_SYNC_COUNT = 0x3, +}; + +// IDA Local Type ordinal 17945; PDB kind: class. +class __declspec(align(8)) idPlayerProfileGame : public idPlayerProfile +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17950. + virtual ~idPlayerProfileGame(); + virtual void SetDefaults(); + virtual bool Serialize(idSerializer *); + virtual bool UpdateDisplayModeFromCvars(); + virtual bool CommitDisplayChanges(); + virtual float GetMouseSensitivity(); + virtual int GetLevel(); + virtual int GetChosenEmblem(); + virtual void SetInvertLook(bool); + virtual unsigned int GetSubtitleLanguageMask(); + virtual void SetChosenEmblem(int); + + bool useSubtitles; + bool useAimAssist; + bool useGamepad; + bool useVibrate; + float joyXSensitivity; + float joyYSensitivity; + int fpsConfigSet; + unsigned int subtitleMask; + bool GPUtranscodeEnabled; + int antristropicFilter; + float gammaValue; + bool seenInstallMessage; + int secretAndProgressStamp; + unsigned int progressBits[8]; + unsigned int secretBits[64]; + unsigned int completedBits[8]; + idStr savedSpawnMap; + idStr savedSpawnSpot; + idStr savedLayers; + int savedVariationIndex; + int savedPartIndex; + idStaticList loadouts; + int chosenEmblem; + idStaticList newEmblems; + int vdmModeIndex; + int vdmMapIndex; + int vdmScoreLimit; + int vdmTimeLimit; + bool vdmPrivate; + int coopMapIndex; + bool coopPrivate; + int coopDifficulty; +}; + +// IDA Local Type ordinal 17946; PDB kind: struct. +struct idPlayerProfileGame::profileLoadout_t +{ + idStrStatic<64> name; + int slot[6]; +}; diff --git a/source/tungsten/game/player/thirdpersoncrosshair.h b/source/tungsten/game/player/thirdpersoncrosshair.h new file mode 100644 index 0000000..37a4a31 --- /dev/null +++ b/source/tungsten/game/player/thirdpersoncrosshair.h @@ -0,0 +1,89 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\player\thirdpersoncrosshair.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1176; PDB kind: unknown. +enum idThirdPersonCrosshair:: : __int32 +{ + FL_NONE = 0x0, + FL_AUTOCENTER = 0x1, + FL_TARGETLOCK = 0x2, + FL_SHOOTTOLOCK = 0x4, + FL_CHASEGOAL = 0x8, + FL_DELTAANGLES = 0x10, + FL_ROTATABLE = 0x20, + FL_IGNOREPITCH = 0x40, + FL_ALIGNTOTARGET = 0x80, + FL_ALL = 0xFF, +}; + +// IDA Local Type ordinal 14741; PDB kind: class. +class idThirdPersonCrosshair +{ +public: + // Recovered virtual interface; IDA vtable ordinal 14742. + virtual ~idThirdPersonCrosshair(); + + idThirdPersonCrosshair::targetTrace_t deferredTargetTrace[10]; + idClipQuery deferredLosingTargetTrace; + idPresentablePtr presentable; + idVec3 baseForward; + idTreeAnimator *treeAnimator; + tagData_t tagData; + idAngles minAngles; + idAngles maxAngles; + idAngles angleSpeed; + idVec3 origin; + idMat3 axis; + idVec3 forward; + trace_t trace; + idAngles angles; + idAngles absAngles; + idAngles deltaAngles; + idAngles goalAngles; + float goalSpeed; + idAngles lastGoalAngles; + bool skipTargetHighlight; + idPresentablePtr target; + idPresentablePtr prevTarget; + int visualType; + int flags; + bool autoAcquire; + int timeToRetainLostTarget; + int lostTargetTime; + int flashTime; + bool firing; + float joy_extent; + bool targetLocked; + bool targetCanLock; + int targetId; + int targetAcquiringTime; + idPresentablePtr acquiringTarget; + idColor visColor; + float visRadius; + float visRadiusDir; + bool weaponCanFire; + const idDeclWeapon *declWeapon; + const idDeclAmmo *declAmmo; + bool playedLockSound; + int lastAcquireSoundTime; + idRenderModelStatic *crosshairModel; + idStaticList,16> validTargets; + bool crosshairEnabled; + float crosshairPredictionRadius; + idClipQuery deferredTrace1; + idClipQuery deferredTrace2; + idGatherQuery lockableBoundsQuery; +}; + +// IDA Local Type ordinal 14743; PDB kind: struct. +struct idThirdPersonCrosshair::targetTrace_t +{ + idClipQuery trace; + idPresentablePtr presentable; + float dot; +}; diff --git a/source/tungsten/game/player/thirdpersonvehiclegui.h b/source/tungsten/game/player/thirdpersonvehiclegui.h new file mode 100644 index 0000000..84424c9 --- /dev/null +++ b/source/tungsten/game/player/thirdpersonvehiclegui.h @@ -0,0 +1,39 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\player\thirdpersonvehiclegui.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17666; PDB kind: struct. +struct idThirdPersonVehicleGUI::trackedVehicle_s +{ + bool valid; + bool cleared; + float distance; + idVec3 direction; +}; + +// IDA Local Type ordinal 22297; PDB kind: class. +class idThirdPersonVehicleGUI +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22298. + virtual ~idThirdPersonVehicleGUI(); + + idEntityPtr entity; + idVec3 origin; + idVec3 arcOrigin; + idMat3 axis; + idVec3 forward; + idVec3 left; + idVec3 up; + int trackedNumber; + bool shouldDraw; + idInterpolate bringUp; + idInterpolate bringDown; + idThirdPersonVehicleGUI::trackedVehicle_s trackedVehicles[16]; + idRenderModel *shell; + idRenderModel *arrows[16]; +}; diff --git a/source/tungsten/game/player/view.h b/source/tungsten/game/player/view.h new file mode 100644 index 0000000..64171bf --- /dev/null +++ b/source/tungsten/game/player/view.h @@ -0,0 +1,155 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\player\view.h +// Recovered logical types: 8 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1175; PDB kind: unknown. +enum idView:: : __int32 +{ + DAMAGE_BORDER_EFFECT_TOP = 0x0, + DAMAGE_BORDER_EFFECT_BOTTOM = 0x1, + DAMAGE_BORDER_EFFECT_LEFT = 0x2, + DAMAGE_BORDER_EFFECT_RIGHT = 0x3, + MAX_DAMAGE_BORDER_EFFECTS = 0x4, + DAMAGE_MATERIAL_FILTER = 0x0, + DAMAGE_MATERIAL_SCREEN = 0x1, + MAX_DAMAGE_MATERIALS = 0x2, + DAMAGE_BORDER_SMALL = 0x0, + DAMAGE_BORDER_BIG = 0x1, + MAX_DAMAGE_BORDER_MATERIALS = 0x2, +}; + +// IDA Local Type ordinal 15316; PDB kind: struct. +struct idView::radialBlurParms_t +{ + idInterpolate radialBlurInterpolate; + idVec3 centerPos; + int handle; + float scaleVal; + float blurVal; + bool enabled; + bool ramp; + bool screenSpaceCenter; + bool interpolate; +}; + +// IDA Local Type ordinal 15317; PDB kind: struct. +struct idView::screenEffectGen_t +{ + float x; + float y; + float w; + float h; + float s1; + float t1; + float s2; + float t2; + float driftAmount; + int delay; +}; + +// IDA Local Type ordinal 15318; PDB kind: struct. +struct idView::screenEffect_t +{ + const idMaterial *material; + int endTime; + int fadeStartTime; + int startTime; + idView::screenEffectGen_t genParms[10]; + int numGenParms; +}; + +// IDA Local Type ordinal 15319; PDB kind: struct. +struct idView::damageEffectMaterial_t +{ + const idMaterial *materials[2]; +}; + +// IDA Local Type ordinal 15320; PDB kind: struct. +struct idView::damageEffect_t +{ + idView::damageEffectMaterial_t effectMaterial; + idInterpolate amount; +}; + +// IDA Local Type ordinal 15321; PDB kind: class. +class idView +{ +public: + idRenderModelGui *guiModel; + renderView_t gameview; + float baseFovX; + const idMaterial *whiteMaterial; + bool allowViewIDOnly; + bool forceVirtualMaterialLoad; + bool useHQViewColorMipsGeneration; + idVec3 viewVelocity; + bool skipViewEffects; + idInterpolate damageScaleTracker; + const idDeclEnv *overrideEnv; + float overrideEnvBlendDuration; + int overrideEnvModelIndex; + bool envOverrideEnabled; + idStaticParmBlock<32> envParms; + float controllerShakeHighMag; + float controllerShakeLowMag; + int controllerShakeHighTime; + int controllerShakeLowTime; + int kickFinishTime; + idAngles kickAngles; + bool isBobEnabled; + idVec3 viewBob; + idAngles viewBobAngles; + idVec4 fadeColor; + idVec4 fadeToColor; + idVec4 fadeFromColor; + float fadeRate; + int fadeTime; + float shakeVolume; + float cameraShake; + float playerMaxShakeScale; + idAngles maxShakeAngles; + idVec3 maxShakeOffset; + idAngles whiplashGoal; + idAngles whiplashVel; + idAngles whiplashCur; + idInterpolate blur; + const idDeclRenderParm *blurParm; + idInterpolate dbl; + const idDeclRenderParm *dblVParm; + idView::radialBlurParms_t radialBlur[4]; + const idDeclRenderParm *rpRadialBlurEnable; + const idDeclRenderParm *rpRadialBlurVal; + const idDeclRenderParm *rpRadialBlurScaleVal; + const idDeclRenderParm *rpRadialBlurCenter; + bool godRaysEnabled; + bool godRaysRelativeToCamera; + idVec3 godRaysPosition; + int godRaysSize; + int godRaysSourceSize; + idVec3 godRaysColor; + const idMaterial *godRaysMaterial; + idView::screenEffect_t screenEffects[8]; + float whiplashUpdateFrac; + float whiplashVelocityFrac; + float whiplashFrictionFrac; + float whiplashMinVelocityLen; + idView::damageEffectMaterial_t borderDamageMaterials[2]; + idView::damageEffect_t borderDamageEffects[4]; + idRenderMatrix worldSpaceMVPMatrix; + int lastMatrixUpdateFrame; +}; + +// IDA Local Type ordinal 17663; PDB kind: struct. +struct idView::damageOverlayData_t +{ + idVec4 topLeft; + idVec4 topRight; + idVec4 bottomLeft; + idVec4 bottomRight; + const idView::damageEffectMaterial_t *effectMaterial; + int alpha; +}; diff --git a/source/tungsten/game/rageleaderboards.h b/source/tungsten/game/rageleaderboards.h new file mode 100644 index 0000000..cec7105 --- /dev/null +++ b/source/tungsten/game/rageleaderboards.h @@ -0,0 +1,38 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\rageleaderboards.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2954; PDB kind: enum. +enum __bitmask idLeaderboards::state_t : __int32 +{ + STATE_DOWNLOADING_FRIENDS = 0x1, + STATE_DOWNLOAD_IN_FLIGHT = 0x2, +}; + +// IDA Local Type ordinal 18616; PDB kind: class. +class RageLeaderboardCallback : public idLeaderboardCallback +{ +public: + // Recovered virtual interface; IDA vtable ordinal 18617. + virtual ~RageLeaderboardCallback(); + virtual void Call(); + virtual idCallback *Clone(); + +}; + +// IDA Local Type ordinal 22577; PDB kind: class. +class __declspec(align(8)) idLeaderboards +{ +public: + idSessionLocal *sessionLocal; + idLeaderboards::state_t state; + unsigned __int64 friendsXuids[101]; + int numFriends; + idFriendsEnum *inFlightFriendsEnum; + idLeaderboardQuery *pendingDownload; + idList inFlightStats; +}; diff --git a/source/tungsten/game/ragestats.h b/source/tungsten/game/ragestats.h new file mode 100644 index 0000000..a61581e --- /dev/null +++ b/source/tungsten/game/ragestats.h @@ -0,0 +1,28 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\ragestats.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 18486; PDB kind: struct. +struct pageStats_t +{ + unsigned __int16 numPages; + unsigned __int16 numVisPages; + unsigned __int16 numTopPages; + unsigned __int16 pad; +}; + +// IDA Local Type ordinal 23028; PDB kind: struct. +struct imageStats_t +{ + float ME; + float MSE; + float PSNR; + int Max; +}; + +// IDA Local Type ordinal 26004; PDB kind: typedef. +typedef EP_STATUS regEP_STATUS; diff --git a/source/tungsten/game/script/compiler.h b/source/tungsten/game/script/compiler.h new file mode 100644 index 0000000..8f1afac --- /dev/null +++ b/source/tungsten/game/script/compiler.h @@ -0,0 +1,34 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\script\compiler.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17653; PDB kind: class. +class idCompiler +{ +public: + idParser parser; + idParser *parserPtr; + idToken token; + idTypeDef *immediateType; + eval_s immediate; + bool eof; + int compileFlags; + bool callthread; + int braceDepth; + int loopDepth; + int currentLineNumber; + int currentFileNumber; + int errorCount; + idVarDef *scope; + const idVarDef *basetype; +}; + +// IDA Local Type ordinal 17655; PDB kind: class. +class idCompileError : public idException +{ +public: +}; diff --git a/source/tungsten/game/script/interpreter.h b/source/tungsten/game/script/interpreter.h new file mode 100644 index 0000000..5a796fc --- /dev/null +++ b/source/tungsten/game/script/interpreter.h @@ -0,0 +1,22 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\script\interpreter.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15108; PDB kind: class. +class idInterpreter +{ +public: + bool doneProcessing; + bool threadDying; + bool terminateOnExit; + bool debug; + idScriptStack localstack; + int popParms; + const idEventDef *multiFrameEvent; + idEntity *eventEntity; + idThread *thread; +}; diff --git a/source/tungsten/game/script/program.h b/source/tungsten/game/script/program.h new file mode 100644 index 0000000..77426b3 --- /dev/null +++ b/source/tungsten/game/script/program.h @@ -0,0 +1,45 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\script\program.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16007; PDB kind: class. +class __declspec(align(4)) idProgram::idFileInfo +{ +public: + idStr fileName; + bool includeFile; +}; + +// IDA Local Type ordinal 16018; PDB kind: class. +class idProgram +{ +public: + idVarDef *returnDef; + idVarDef *returnStringDef; + idThreadManager threadManager; + idList fileList; + idStr filename; + int filenum; + int numVariables; + unsigned __int8 variables[65536]; + idStaticList variableDefaults; + idStaticList functions; + idStaticList statements; + idList types; + idList varDefNames; + idHashIndex varDefNameHash; + idList varDefs; + idList referencedDecls; + idVarDef *sysDef; + int top_functions; + int top_statements; + int top_types; + int top_defs; + int top_files; + int compileFlags; + idStr errMsg; +}; diff --git a/source/tungsten/game/script/statethread.h b/source/tungsten/game/script/statethread.h new file mode 100644 index 0000000..26717a6 --- /dev/null +++ b/source/tungsten/game/script/statethread.h @@ -0,0 +1,24 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\script\statethread.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17640; PDB kind: class. +class idStateThread : public idThread +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17641. + virtual idTypeInfo *GetType(); + virtual ~idStateThread(); + 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 *); + + idEntityPtr entity; + const function_t *state; + const function_t *idealState; +}; diff --git a/source/tungsten/game/script/thread.h b/source/tungsten/game/script/thread.h new file mode 100644 index 0000000..48cafc6 --- /dev/null +++ b/source/tungsten/game/script/thread.h @@ -0,0 +1,44 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\script\thread.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1145; PDB kind: enum. +enum idThread::entityTypeFlags_t : __int32 +{ + ENTITYTYPE_NONE = 0x0, + ENTITYTYPE_MISC = 0x1, + ENTITYTYPE_LIVINGAI = 0x2, + ENTITYTYPE_DEADAI = 0x4, + ENTITYTYPE_TURRET = 0x8, +}; + +// IDA Local Type ordinal 15104; PDB kind: class. +class idThread : public idEventReceiver +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15109. + virtual idTypeInfo *GetType(); + virtual ~idThread(); + 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 *); + + idThread *waitingForThread; + int waitingFor; + int waitingUntil; + int waitingForEventId; + int waitingForFlags; + bool waitingForFSM; + idHandle threadHandle; + idStr threadName; + int lastExecuteTime; + int creationTime; + bool manualControl; + idInterpreter interpreter; + idEntityPtr threadEntity; +}; diff --git a/source/tungsten/game/script/threadmanager.h b/source/tungsten/game/script/threadmanager.h new file mode 100644 index 0000000..c5a29b9 --- /dev/null +++ b/source/tungsten/game/script/threadmanager.h @@ -0,0 +1,17 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\script\threadmanager.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16006; PDB kind: class. +class idThreadManager +{ +public: + idThread *currentThread; + int threadIndex; + idList threadList; + trace_t trace; +}; diff --git a/source/tungsten/game/spawning/doomspawnmanager.h b/source/tungsten/game/spawning/doomspawnmanager.h new file mode 100644 index 0000000..393cfe7 --- /dev/null +++ b/source/tungsten/game/spawning/doomspawnmanager.h @@ -0,0 +1,26 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\spawning\doomspawnmanager.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1142; PDB kind: enum. +enum idDoomSpawnManager::commandType_t : __int32 +{ + CT_SPAWN_PLAYER = 0x0, + CT_SPAWN_PLAYER_INITIAL = 0x1, + NUM_SPAWN_CMD_TYPES = 0x2, +}; + +// IDA Local Type ordinal 15589; PDB kind: class. +class idDoomSpawnManager : public idSpawnManager +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15590. + virtual ~idDoomSpawnManager(); + virtual idSpawnManager::CommandExecutor *GetExecutor(int); + + idSpawnPlayerCmd spawnPlayerCmd; +}; diff --git a/source/tungsten/game/spawning/engagementtracker.h b/source/tungsten/game/spawning/engagementtracker.h new file mode 100644 index 0000000..0080cb5 --- /dev/null +++ b/source/tungsten/game/spawning/engagementtracker.h @@ -0,0 +1,19 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\spawning\engagementtracker.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15223; PDB kind: class. +class __declspec(align(4)) idEngagementTracker +{ +public: + idEntityPtr lastAttacker; + int lastAttackerTime; + int lastNonPlayerEngagementTime; + float nonPlayerEngagementTimer; + float playerEngagementTimers[6]; + bool isEngaged; +}; diff --git a/source/tungsten/game/spawning/spawnlocation.h b/source/tungsten/game/spawning/spawnlocation.h new file mode 100644 index 0000000..530c232 --- /dev/null +++ b/source/tungsten/game/spawning/spawnlocation.h @@ -0,0 +1,33 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\spawning\spawnlocation.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15103; PDB kind: struct. +const struct __declspec(align(4)) splineLocation_t +{ + idEntityPtr splinePath; + float lengthOnSpline; + float controlPointLength; + float controlPointPCT; + int controlPointIndex; + idVec3 controlPointOrigin; + idVec3 controlPointOriginNext; + bool initialized; + bool dirty; +}; + +// IDA Local Type ordinal 15572; PDB kind: class. +class idSpawnLocation +{ +public: + idVec3 pos; + idAngles facing; + float valueModifier; + idSpawnNode *sourceNode; + int locationID; + float sortValue; +}; diff --git a/source/tungsten/game/spawning/spawnmanager.h b/source/tungsten/game/spawning/spawnmanager.h new file mode 100644 index 0000000..5e0064d --- /dev/null +++ b/source/tungsten/game/spawning/spawnmanager.h @@ -0,0 +1,86 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\spawning\spawnmanager.h +// Recovered logical types: 6 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1141; PDB kind: enum. +enum idSpawnManager::Command::commandState_t : __int32 +{ + CS_GENERATE_LOCATIONS = 0x0, + CS_EVALUATE_LOCATIONS = 0x1, + CS_JITTER_AND_SORT_LOCATIONS = 0x2, + CS_FIND_BEST_LOCATION = 0x3, + CS_COMPLETE_COMMAND = 0x4, + CS_FAIL_COMMAND = 0x5, +}; + +// IDA Local Type ordinal 15565; PDB kind: class. +class idSpawnManager +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15575. + virtual ~idSpawnManager(); + virtual idSpawnManager::CommandExecutor *GetExecutor(int); + + idCircularBuffer commandQueue; + idSpawnManager::Context context; + idHandleArray spawnResults; + int debugHighestValueIndex; + float debugValueDiff; + float debugLowestValue; + float debugFlashTimer; + float debugNodeTimeout; +}; + +// IDA Local Type ordinal 15566; PDB kind: class. +class idSpawnManager::CommandExecutor +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15574. + virtual ~CommandExecutor(); + virtual void GenerateLocations(const idSpawnManager::Command *, const idSpawnManager::Context *, idList *); + virtual bool EvaluateContext(const idSpawnManager::Command *, idSpawnManager::Context *); + virtual const idVec3 *GetActorSize(const idVec3 *result, const idSpawnManager::Command *); + virtual idEntity *Complete(const idSpawnManager::Command *, const idSpawnManager::Context *, const idSpawnLocation *); + virtual void Fail(const idSpawnManager::Command *, const idSpawnManager::Context *); + +}; + +// IDA Local Type ordinal 15567; PDB kind: class. +class idSpawnManager::Command +{ +public: + idSpawnManager::Command::commandState_t state; + int type; + int dataIndex; + unsigned int resultHandle; +}; + +// IDA Local Type ordinal 15573; PDB kind: class. +class idSpawnManager::Context +{ +public: + idList spawnLocations; + int currentLocationIndex; + float minLocationValue; + float maxLocactionValue; +}; + +// IDA Local Type ordinal 15583; PDB kind: class. +class idSpawnManager::CommandExecutorT : public idSpawnManager::CommandExecutor +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15584. + virtual ~CommandExecutorT(); + virtual void GenerateLocations(const idSpawnManager::Command *, const idSpawnManager::Context *, idList *); + virtual bool EvaluateContext(const idSpawnManager::Command *, idSpawnManager::Context *); + virtual const idVec3 *GetActorSize(const idVec3 *result, const idSpawnManager::Command *); + virtual idEntity *Complete(const idSpawnManager::Command *, const idSpawnManager::Context *, const idSpawnLocation *); + virtual void Fail(const idSpawnManager::Command *, const idSpawnManager::Context *); + + idList freeDataIndices; + idList dataArray; +}; diff --git a/source/tungsten/game/spawning/spawnnode.h b/source/tungsten/game/spawning/spawnnode.h new file mode 100644 index 0000000..d758416 --- /dev/null +++ b/source/tungsten/game/spawning/spawnnode.h @@ -0,0 +1,377 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\spawning\spawnnode.h +// Recovered logical types: 6 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1133; PDB kind: enum. +enum idSpawnNode::nodeType_t : __int32 +{ + TYPE_STANDARD = 0x0, +}; + +// IDA Local Type ordinal 1134; PDB kind: enum. +enum idSpawnNode::debugDrawLevel_t : __int32 +{ + DL_NONE = 0x0, + DL_LOW = 0x1, + DL_HIGH = 0x2, +}; + +// IDA Local Type ordinal 15570; PDB kind: class. +class __declspec(align(8)) idSpawnNode : public idEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15571. + virtual idTypeInfo *GetType(); + virtual ~idSpawnNode(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 GetValidSpawnLocations(const idGameplayFilterTarget *, const gameTeam_t *, float, bool, idList *, const int); + virtual void ReportBlockedLocation(int); + virtual int GetApproximateLocationCount(); + virtual bool Debug_IsValid(); + virtual void Debug_Draw(idSpawnNode::debugDrawLevel_t); + + idSpawnNode::nodeType_t nodeType; + gameTeam_t team; + bool isActive; + bool initial; +}; + +// IDA Local Type ordinal 17615; PDB kind: class. +class __declspec(align(8)) idSpawnNodeSplines : public idSpawnNode +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17616. + virtual idTypeInfo *GetType(); + virtual ~idSpawnNodeSplines(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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 GetValidSpawnLocations(const idGameplayFilterTarget *, const gameTeam_t *, float, bool, idList *, const int); + virtual void ReportBlockedLocation(int); + virtual int GetApproximateLocationCount(); + virtual bool Debug_IsValid(); + virtual void Debug_Draw(idSpawnNode::debugDrawLevel_t); + + idList,5> splinePaths; + idList *,5> splineCurves; + int totalLocationCount; +}; + +// IDA Local Type ordinal 22281; PDB kind: struct. +struct idSpawnNode::actorFilterFlags_t +{ + bool player; +}; + +// IDA Local Type ordinal 33004; PDB kind: typedef. +typedef idList SpawnNodeList; diff --git a/source/tungsten/game/spawning/spawnnodegroup.h b/source/tungsten/game/spawning/spawnnodegroup.h new file mode 100644 index 0000000..5e403bb --- /dev/null +++ b/source/tungsten/game/spawning/spawnnodegroup.h @@ -0,0 +1,15 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\spawning\spawnnodegroup.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15580; PDB kind: class. +class idSpawnNodeGroup +{ +public: + idList nodes; + int approximateLocationCount; +}; diff --git a/source/tungsten/game/spawning/spawnplayercmd.h b/source/tungsten/game/spawning/spawnplayercmd.h new file mode 100644 index 0000000..b943b2b --- /dev/null +++ b/source/tungsten/game/spawning/spawnplayercmd.h @@ -0,0 +1,46 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\spawning\spawnplayercmd.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15581; PDB kind: class. +class idSpawnPlayerCmdData +{ +public: + int playerIndex; + gameTeam_t allowedTeams; + int loadoutIndex; + const idSpawnNodeGroup *spawnNodeGroup; + bool teleport; + bool onlyInitialNodes; + void *userdata; +}; + +// IDA Local Type ordinal 15585; PDB kind: struct. +struct idSpawnPlayerCmd::deferredVisibilityQuery_t +{ + idClipQuery visibilityQuery; + int locationIndex; + float valueModifier; +}; + +// IDA Local Type ordinal 15587; PDB kind: class. +class idSpawnPlayerCmd : public idSpawnManager::CommandExecutorT +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15588. + virtual ~idSpawnPlayerCmd(); + virtual void GenerateLocations(const idSpawnManager::Command *, const idSpawnManager::Context *, idList *); + virtual bool EvaluateContext(const idSpawnManager::Command *, idSpawnManager::Context *); + virtual const idVec3 *GetActorSize(const idVec3 *result, const idSpawnManager::Command *); + virtual idEntity *Complete(const idSpawnManager::Command *, const idSpawnManager::Context *, const idSpawnLocation *); + virtual void Fail(const idSpawnManager::Command *, const idSpawnManager::Context *); + + idList hostileGrenadeLocations; + idList hostileGrenadesDangerRadiusSq; + idVec3 raycastOffset; + idList deferredVisibilityQueries; +}; diff --git a/source/tungsten/game/superscript/ss_fibers.h b/source/tungsten/game/superscript/ss_fibers.h new file mode 100644 index 0000000..07fc66b --- /dev/null +++ b/source/tungsten/game/superscript/ss_fibers.h @@ -0,0 +1,97 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\superscript\ss_fibers.h +// Recovered logical types: 8 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 4279; PDB kind: struct. +struct _FIBER +{ + void *FiberData; + void *StackAllocatedBase; + void *StackBase; + void *StackLimit; + _CONTEXT Context; +}; + +// IDA Local Type ordinal 15999; PDB kind: class. +class idSSFiber : public idSysFiber +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16000. + virtual ~idSSFiber(); + virtual void Run(); + + idSSObject *object; + int id; + bool waitingForFSM; + idList allocations; +}; + +// IDA Local Type ordinal 17604; PDB kind: class. +class idSSFiber0 : public idSSFiber +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17605. + virtual ~idSSFiber0(); + virtual void Run(); + + void (__fastcall *function)(idSSObject *, void *); + void *data; +}; + +// IDA Local Type ordinal 19932; PDB kind: class. +class idSSFiber1 : public idSSFiber +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19933. + virtual ~idSSFiber1(); + virtual void Run(); + + void (__fastcall *function)(idSSObject *, int); + int parameter1; +}; + +// IDA Local Type ordinal 19934; PDB kind: class. +class idSSFiber2 : public idSSFiber +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19935. + virtual ~idSSFiber2(); + virtual void Run(); + + void (__fastcall *function)(idSSObject *, int, float); + int parameter1; + float parameter2; +}; + +// IDA Local Type ordinal 19936; PDB kind: class. +class idSSFiber1 : public idSSFiber +{ +public: + // Recovered virtual interface; IDA vtable ordinal 19937. + virtual ~idSSFiber1(); + virtual void Run(); + + void (__fastcall *function)(idSSObject *, const char *); + const char *parameter1; +}; + +// IDA Local Type ordinal 22450; PDB kind: class. +class __declspec(align(4)) idSSFiber3 : public idSSFiber +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22451. + virtual ~idSSFiber3(); + virtual void Run(); + + void (__fastcall *function)(idSSObject *, int, int, bool); + int parameter1; + int parameter2; + bool parameter3; +}; + +// IDA Local Type ordinal 25980; PDB kind: typedef. +typedef _FIBER FIBER; diff --git a/source/tungsten/game/superscript/ss_system.h b/source/tungsten/game/superscript/ss_system.h new file mode 100644 index 0000000..de1056d --- /dev/null +++ b/source/tungsten/game/superscript/ss_system.h @@ -0,0 +1,23 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\superscript\ss_system.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 12963; PDB kind: class. +class idNfsSystem::Client +{ +public: + idStr desc; + idNfsClient *nfsClient; +}; + +// IDA Local Type ordinal 12965; PDB kind: class. +class idNfsSystem +{ +public: + idSysMutex mutex; + idList nfsClients; +}; diff --git a/source/tungsten/game/tools/devgui.h b/source/tungsten/game/tools/devgui.h new file mode 100644 index 0000000..29601ff --- /dev/null +++ b/source/tungsten/game/tools/devgui.h @@ -0,0 +1,43 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\tools\devgui.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 16505; PDB kind: class. +class idDevGuiPage : public idGuiPage +{ +public: + // Recovered virtual interface; IDA vtable ordinal 16506. + virtual ~idDevGuiPage(); + virtual bool IsEnabled(); + virtual void SetIsActive(const bool); + virtual void Update(); + virtual void SetupChildRowLink(const int, const idStr *); + virtual void InternalRender(idDeviceContext *, const float, const float); + virtual void InternalRender_2(idEntity *, idDeviceContext *); + virtual bool InternalHandleEvent(const sysEvent_t *); + virtual void FlagSelectedRowAsDidActionRow(); + + bool renderedOnce; + int selectedRow; + int didActionRow; + int didActionTimer; + const int DEFAULT_ROW_NUM; +}; + +// IDA Local Type ordinal 16514; PDB kind: class. +class idDevGui +{ +public: + bool firstDraw; + bool initialized; + bool runningTool; + int postExitSuppressInputTime; + int selectedColumn; + float oldGuiScale; + idList pages; + idRenderModelGui *guiModel; +}; diff --git a/source/tungsten/game/weapons/ammofilter.h b/source/tungsten/game/weapons/ammofilter.h new file mode 100644 index 0000000..c914a0c --- /dev/null +++ b/source/tungsten/game/weapons/ammofilter.h @@ -0,0 +1,52 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\weapons\ammofilter.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15266; PDB kind: class. +class idAmmoItem : public idInventoryItem +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15267. + virtual idTypeInfo *GetType(); + virtual ~idAmmoItem(); + 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 Init(const idDeclInventory *); + virtual void Merge(idPresentable *, idInventoryCollection *, const idDeclInventory *); + virtual void Hide(); + virtual void Show(); + virtual void OnEquip(const idPresentable *, idFXManager *); + virtual void OnUnequip(const idPresentable *, idFXManager *); + virtual void OnClone(const idInventoryItem *); + virtual int GetCount(); + virtual bool CanUse(idActor *); + virtual bool Use(idActor *); + virtual bool CanUseInVehicle(idActor *); + virtual bool ClientUse(idPresentablePlayer *); + virtual void Serialize(idSerializer *, idInventoryCollection *); + virtual void SerializeNonPrediction(idSerializer *, idInventoryCollection *); + virtual void ClientUpdate(); + virtual void GetPickupHudInfo(const idEntity *, idPickupHudInfo *); + + burstMode_t burstMode; +}; + +// IDA Local Type ordinal 17558; PDB kind: class. +class idAmmoFilter : public idThrowableFilter +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17559. + virtual idTypeInfo *GetType(); + virtual ~idAmmoFilter(); + virtual void InternalPreFilterItems(); + virtual bool InternalFilter(const idInventoryItem *); + virtual void InternalPostFilterItems(); + + const idWeapon *weapon; +}; diff --git a/source/tungsten/game/weapons/fireparms.h b/source/tungsten/game/weapons/fireparms.h new file mode 100644 index 0000000..b91983c --- /dev/null +++ b/source/tungsten/game/weapons/fireparms.h @@ -0,0 +1,74 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\weapons\fireparms.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15270; PDB kind: class. +class idFireParms +{ +public: + idPresentablePtr attacker; + idPresentablePtr presentableWeapon; + idWeapon *weapon; + int ignoreEntityNum; + idList,5> targetList; + idPresentablePtr target; + idVec3 targetPos; + const idDeclWeapon *wepDef; + idVec3 start; + idVec3 muzzleOffset; + int muzzleTagIndex; + idMat3 fireAxis; + const idDeclProjectile *projDef; + idEntityPtr projectile; + weaponStatsTag_t tag; + __int8 noDecals : 1; + __int8 forceNoSpread : 1; + __int8 useTargetPos : 1; + __int8 alwaysTracer : 1; + __int8 fromPlayer : 1; + __int8 freeAmmo : 1; + __int8 silenced : 1; + __int8 simulateProjectiles : 1; + unsigned __int8 : 5; + __int8 secondaryAmmo : 1; + __int8 fromWithinVehicle : 1; + __int8 noDamage : 1; + float damageScale; + float addSpread; + float startSpeed; + int startTime; +}; + +// IDA Local Type ordinal 23640; PDB kind: struct. +struct idRbParms::p_t +{ + int width; + int height; + int antiAlias; + int outline; + int ambientOcclusionSamples; + bool saveLocalMap; + bool saveMaskMap; + bool saveGlobalMap; + bool saveAmbientMap; + bool showMiss; + bool facet; + bool saveColorMap; + bool drawNormals; + bool clampTextureSpace; + float traceFrac; + float traceDist; +}; + +// IDA Local Type ordinal 23641; PDB kind: struct. +struct idRbParms +{ + idRbParms::p_t p; + idStr outputName; + idStr cpuModelName; + idList highNames; +}; diff --git a/source/tungsten/game/weapons/inventorycollection.h b/source/tungsten/game/weapons/inventorycollection.h new file mode 100644 index 0000000..3458396 --- /dev/null +++ b/source/tungsten/game/weapons/inventorycollection.h @@ -0,0 +1,27 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\weapons\inventorycollection.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14203; PDB kind: struct. +struct __declspec(align(4)) idInventoryCollection::net_itemTransaction_t +{ + const idDeclInventory *itemDecl; + int count; + bool setCount; +}; + +// IDA Local Type ordinal 14204; PDB kind: class. +class __declspec(align(4)) idInventoryCollection +{ +public: + idList inventory; + bool readingFromFile; + idInventoryCollection::net_itemTransaction_t net_addedItems[64]; + int net_itemAddIndex; + int net_lastItemAddIndex; + bool net_serializeInventoryChanges; +}; diff --git a/source/tungsten/game/weapons/inventoryitem.h b/source/tungsten/game/weapons/inventoryitem.h new file mode 100644 index 0000000..62e77ee --- /dev/null +++ b/source/tungsten/game/weapons/inventoryitem.h @@ -0,0 +1,47 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\weapons\inventoryitem.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 14201; PDB kind: class. +class idInventoryItem : public idEventReceiver +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15265. + virtual idTypeInfo *GetType(); + virtual ~idInventoryItem(); + 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 Init(const idDeclInventory *); + virtual void Merge(idPresentable *, idInventoryCollection *, const idDeclInventory *); + virtual void Hide(); + virtual void Show(); + virtual void OnEquip(const idPresentable *, idFXManager *); + virtual void OnUnequip(const idPresentable *, idFXManager *); + virtual void OnClone(const idInventoryItem *); + virtual int GetCount(); + virtual bool CanUse(idActor *); + virtual bool Use(idActor *); + virtual bool CanUseInVehicle(idActor *); + virtual bool ClientUse(idPresentablePlayer *); + virtual void Serialize(idSerializer *, idInventoryCollection *); + virtual void SerializeNonPrediction(idSerializer *, idInventoryCollection *); + virtual void ClientUpdate(); + virtual void GetPickupHudInfo(const idEntity *, idPickupHudInfo *); + + const idDeclInventory *decl; + int count; + bool forSale; + bool lootable; + bool buyBackItem; + bool alreadyDropped; + int quickSlot; + int counttosave; + int coolDownTime; + const idDeclSkins *skinPreload; +}; diff --git a/source/tungsten/game/weapons/itemfilter.h b/source/tungsten/game/weapons/itemfilter.h new file mode 100644 index 0000000..bd36fc6 --- /dev/null +++ b/source/tungsten/game/weapons/itemfilter.h @@ -0,0 +1,21 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\weapons\itemfilter.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17484; PDB kind: class. +class idItemFilter : public idClass +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17485. + virtual idTypeInfo *GetType(); + virtual ~idItemFilter(); + virtual void InternalPreFilterItems(); + virtual bool InternalFilter(const idInventoryItem *); + virtual void InternalPostFilterItems(); + + const idEntity *owner; +}; diff --git a/source/tungsten/game/weapons/meleetrace.h b/source/tungsten/game/weapons/meleetrace.h new file mode 100644 index 0000000..70bf9e9 --- /dev/null +++ b/source/tungsten/game/weapons/meleetrace.h @@ -0,0 +1,70 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\weapons\meleetrace.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1065; PDB kind: enum. +enum idMeleeTrace::meleeDamage_t : __int32 +{ + MELEE_IMPACT = 0x0, + MELEE_SEMI_CONTINUOUS = 0x1, + MELEE_FIRST_PLUS_ACTOR = 0x2, + MELEE_CONTINUOUS = 0x3, + MELEE_MAX = 0x4, +}; + +// IDA Local Type ordinal 1066; PDB kind: enum. +enum idMeleeTrace::meleeBounds_t : __int32 +{ + BOUNDS_LINE = 0x0, + BOUNDS_8x8 = 0x1, + BOUNDS_16x16 = 0x2, + BOUNDS_24x24 = 0x3, + BOUNDS_32x32 = 0x4, + BOUNDS_48x48 = 0x5, + BOUNDS_96x96 = 0x6, + BOUNDS_PLAYER_MELEE = 0x7, + BOUNDS_CUSTOM = 0x8, + BOUNDS_MAX = 0x9, +}; + +// IDA Local Type ordinal 13670; PDB kind: struct. +struct modelTrace_t +{ + localTrace_t tr; + const idRenderModelSurface *surf; + const idRenderModel *entity; +}; + +// IDA Local Type ordinal 15372; PDB kind: class. +class idMeleeTrace : public idClass +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15373. + virtual idTypeInfo *GetType(); + virtual ~idMeleeTrace(); + + const idDeclDamage *damageDef; + const idDeclProjectileImpactEffect *impactEffect; + int upgradDamageScale; + idIndex jointIndex; + idIndex jointIndex2; + tagData_t tagData; + bool useWeaponAnimator; + bool useTagData; + bool weaponTagData; + bool hasKilled; + bool hasHit; + int numSamples; + float damageCap; + unsigned __int8 meleeType; + unsigned __int8 boundsType; + idVec3 prevPos; + idClipModel *clipModel; + idEntity *hitEntity; + const idWeapon *weapon; + int lastHitTime; +}; diff --git a/source/tungsten/game/weapons/projectile.h b/source/tungsten/game/weapons/projectile.h new file mode 100644 index 0000000..d507669 --- /dev/null +++ b/source/tungsten/game/weapons/projectile.h @@ -0,0 +1,1321 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\weapons\projectile.h +// Recovered logical types: 10 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1056; PDB kind: enum. +enum projectileState_t : __int32 +{ + COOKING = 0x0, + ACTIVE = 0x1, + BOUNCING = 0x2, + STUCK = 0x3, + FADING = 0x4, + EXPLODED = 0x5, +}; + +// IDA Local Type ordinal 1057; PDB kind: enum. +enum idProjectileTarget::targetType_t : __int32 +{ + TARGET_NONE = 0x0, + TARGET_PRESENTABLE = 0x1, + TARGET_POINT = 0x2, +}; + +// IDA Local Type ordinal 15431; PDB kind: class. +class idProjectileTarget +{ +public: + idProjectileTarget::targetType_t type; + idVec3 pos; + idPresentablePtr presentable; +}; + +// IDA Local Type ordinal 15611; PDB kind: class. +class __declspec(align(8)) idProjectile : public idAnimatedEntity +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15619. + virtual idTypeInfo *GetType(); + virtual ~idProjectile(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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 void BecomeUnstuck(); + virtual void Explode(idEntity *, trace_t *); + virtual bool PointInsideDamageRadius(const idVec3 *, float); + virtual usableState_t GetOnlineUsableState(); + virtual void AttachAIEvents(); + virtual void RemoveAIEvents(); + virtual const idDeclInventory *GetInventoryItem(); + virtual void SetCharges(float); + virtual bool AttachToJoint(idEntity *, idIndex); + virtual bool AttachToTag(idEntity *, tagData_t); + virtual bool Attach(idEntity *, const trace_t *); + virtual idElectricBolt *GetElectricBoltEffect(int); + virtual bool AddElectricBoltEffect(idEntity *); + virtual void UpdateElectricBoltEffect(); + virtual void SimulateProjectileFrame(int, int); + virtual void PostSimulate(int); + virtual void InternalLaunch(idEntity *, const idVec3 *, const idMat3 *, const idProjectileTarget *, const float, const int); + virtual void InternalModifyLaunchVelocity(idEntity *, const idMat3 *); + + bool causesDirectDamage; + __declspec(align(4)) idAnimator_Channel propAnimator; + bool startHidden; + const idDeclProjectile *projectileDecl; + bool touchTriggers; + bool alignToVelocity; + bool explosionEvent; + bool adjustStartForCollision; + idAngles rotationOffset; + idAngles rotationSpeed; + bool collisionZapsRotation; + idVec3 minAngularVelocity; + idVec3 maxAngularVelocity; + float acceleration; + int collisionCount; + bool electricDischarged; + idHandle aiEventHandle; + idVec3 lastVel; + idMat3 lastModelAxis; + idWeapon *launchWeapon; + int fadeStartTime; + int fadeEndTime; + weaponStatsTag_t weaponStatsTag; + float damageScale; + int startInfluenceTrail; + int surfTypeLastHit; + idVec3 surfNormalLastHit; +}; + +// IDA Local Type ordinal 15620; PDB kind: struct. +struct idProjectile::simulatedProjectile_t +{ + idProjectile *projectile; + int startTime; +}; + +// IDA Local Type ordinal 17452; PDB kind: class. +class __declspec(align(8)) idProjectile_Rocket : public idProjectile +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17453. + virtual idTypeInfo *GetType(); + virtual ~idProjectile_Rocket(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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 void BecomeUnstuck(); + virtual void Explode(idEntity *, trace_t *); + virtual bool PointInsideDamageRadius(const idVec3 *, float); + virtual usableState_t GetOnlineUsableState(); + virtual void AttachAIEvents(); + virtual void RemoveAIEvents(); + virtual const idDeclInventory *GetInventoryItem(); + virtual void SetCharges(float); + virtual bool AttachToJoint(idEntity *, idIndex); + virtual bool AttachToTag(idEntity *, tagData_t); + virtual bool Attach(idEntity *, const trace_t *); + virtual idElectricBolt *GetElectricBoltEffect(int); + virtual bool AddElectricBoltEffect(idEntity *); + virtual void UpdateElectricBoltEffect(); + virtual void SimulateProjectileFrame(int, int); + virtual void PostSimulate(int); + virtual void InternalLaunch(idEntity *, const idVec3 *, const idMat3 *, const idProjectileTarget *, const float, const int); + virtual void InternalModifyLaunchVelocity(idEntity *, const idMat3 *); + virtual idVec3 *GetInitialDir(idVec3 *result, const idMat3 *); + + idPhysics_RigidBody physicsObj; + int explosionTime; + idEntityPtr stuckOnActor; + float randomAngle; + bool allowConstraint; + idEntityPtr attachedToEnt; + float startJetSpeed; + idStr constraintName; + int constraintTime; + idClipQuery deferredSurfTrace; + bool isInWater; + int primNoiseAngleMinTime; + int primNoiseAngleMaxTime; + float primNoiseAngleMax; + int secNoiseAngleMinTime; + int secNoiseAngleMaxTime; + float secNoiseAngleMax; + int primNoiseAngleTime; + int primNoiseAngleStartTime; + float primNoiseAngleTarget; + int secNoiseAngleTime; + int secNoiseAngleStartTime; + float secNoiseAngleTarget; +}; + +// IDA Local Type ordinal 17455; PDB kind: class. +class idProjectile_Homing : public idProjectile_Rocket +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17456. + virtual idTypeInfo *GetType(); + virtual ~idProjectile_Homing(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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 void BecomeUnstuck(); + virtual void Explode(idEntity *, trace_t *); + virtual bool PointInsideDamageRadius(const idVec3 *, float); + virtual usableState_t GetOnlineUsableState(); + virtual void AttachAIEvents(); + virtual void RemoveAIEvents(); + virtual const idDeclInventory *GetInventoryItem(); + virtual void SetCharges(float); + virtual bool AttachToJoint(idEntity *, idIndex); + virtual bool AttachToTag(idEntity *, tagData_t); + virtual bool Attach(idEntity *, const trace_t *); + virtual idElectricBolt *GetElectricBoltEffect(int); + virtual bool AddElectricBoltEffect(idEntity *); + virtual void UpdateElectricBoltEffect(); + virtual void SimulateProjectileFrame(int, int); + virtual void PostSimulate(int); + virtual void InternalLaunch(idEntity *, const idVec3 *, const idMat3 *, const idProjectileTarget *, const float, const int); + virtual void InternalModifyLaunchVelocity(idEntity *, const idMat3 *); + virtual idVec3 *GetInitialDir(idVec3 *result, const idMat3 *); + + float maxTurnRadius; + float acquireRange; + float maxTrackAngle; + float sinAmplitudeStart; + float proximityExplosion; + bool useMidpoint; + float desigeredHeight; + int numSubMunitions; + idList subMunitionProjectileList; + float subMunitionMaxAngle; + bool randomSubMunitions; + bool pairedSubMunitionVels; + idVec3 coneDirection; + idEntityPtr notifiedEntity; + bool explodeNearTargetPosition; + idClipQuery groudTrace; +}; + +// IDA Local Type ordinal 17457; PDB kind: class. +class idProjectile_Arrow : public idProjectile +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17459. + virtual idTypeInfo *GetType(); + virtual ~idProjectile_Arrow(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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 void BecomeUnstuck(); + virtual void Explode(idEntity *, trace_t *); + virtual bool PointInsideDamageRadius(const idVec3 *, float); + virtual usableState_t GetOnlineUsableState(); + virtual void AttachAIEvents(); + virtual void RemoveAIEvents(); + virtual const idDeclInventory *GetInventoryItem(); + virtual void SetCharges(float); + virtual bool AttachToJoint(idEntity *, idIndex); + virtual bool AttachToTag(idEntity *, tagData_t); + virtual bool Attach(idEntity *, const trace_t *); + virtual idElectricBolt *GetElectricBoltEffect(int); + virtual bool AddElectricBoltEffect(idEntity *); + virtual void UpdateElectricBoltEffect(); + virtual void SimulateProjectileFrame(int, int); + virtual void PostSimulate(int); + virtual void InternalLaunch(idEntity *, const idVec3 *, const idMat3 *, const idProjectileTarget *, const float, const int); + virtual void InternalModifyLaunchVelocity(idEntity *, const idMat3 *); + virtual void Break(idEntity *, trace_t *); + virtual bool ShouldRemoveOnCollision(const trace_t *, float); + virtual bool ShouldStickOnCollision(const trace_t *); + + idPhysics_RigidBody physicsObj; + const idDeclInventory *inventoryItem; + int stickChance; + float reflectionCosine; + const idDeclEntityDef *breakable; + int breakChance; + const idDeclElectricBolt *electricBoltSystem; + idList electricShocks; + idList,5> electricTarget; + idEntityPtr stuckIn; + int startElectricTime; + int nextShockTime; + bool forceStick; + int electricPulseTime; + int electricShockDelay; +}; + +// IDA Local Type ordinal 17460; PDB kind: class. +class __declspec(align(8)) idProjectile_Grenade : public idProjectile +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17466. + virtual idTypeInfo *GetType(); + virtual ~idProjectile_Grenade(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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 void BecomeUnstuck(); + virtual void Explode(idEntity *, trace_t *); + virtual bool PointInsideDamageRadius(const idVec3 *, float); + virtual usableState_t GetOnlineUsableState(); + virtual void AttachAIEvents(); + virtual void RemoveAIEvents(); + virtual const idDeclInventory *GetInventoryItem(); + virtual void SetCharges(float); + virtual bool AttachToJoint(idEntity *, idIndex); + virtual bool AttachToTag(idEntity *, tagData_t); + virtual bool Attach(idEntity *, const trace_t *); + virtual idElectricBolt *GetElectricBoltEffect(int); + virtual bool AddElectricBoltEffect(idEntity *); + virtual void UpdateElectricBoltEffect(); + virtual void SimulateProjectileFrame(int, int); + virtual void PostSimulate(int); + virtual void InternalLaunch(idEntity *, const idVec3 *, const idMat3 *, const idProjectileTarget *, const float, const int); + virtual void InternalModifyLaunchVelocity(idEntity *, const idMat3 *); + virtual void InternalLaunch_FromPresentable(idPresentable *, const idVec3 *, const idMat3 *, const idProjectileTarget *, float, int); + + int startDetonationTime; + int detonationTime; + bool explodeOnVehicles; + bool stickOnImpact; + bool stickToActors; + bool explodeOnActors; + bool explodeOnImpact; + float attractToPowerDist; + int numSubMunitions; + idList subMunitionProjectileList; + float subMunitionMaxAngle; + bool randomSubMunitions; + bool pairedSubMunitionVels; + bool isSubMunition; + float launchAngle; + const idMaterial *icon; + idPhysics_RigidBody3DOF physicsObj; + idVec3 lastCollisionNormal; + int nextBounceTime; + idMat3 lastCollisionAxis; + int numBounces; + idHandle playerEventHandle; + idVec3 splashVelocity; + idClipQuery deferredSurfTrace; + bool isInWater; + const idSoundShader *empStuckToSound; + const idSoundShader *empMoveToSound; + idEntity *powerSourceToMoveTo; + int detonationDelay; +}; + +// IDA Local Type ordinal 17474; PDB kind: class. +class idProjectile_Dagger : public idProjectile_Arrow +{ +public: + // Recovered virtual interface; IDA vtable ordinal 17475. + virtual idTypeInfo *GetType(); + virtual ~idProjectile_Dagger(); + 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 *GetJointIndexFromTrace(idIndex *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); + virtual void RemoveThread(const idHandle); + virtual idHandle *GetThread(idHandle *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,5> *GetTriggerTouchList(); + virtual idList,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 *); + 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,5> *GetRadiusDamageJointIndices(); + virtual const idList,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 void BecomeUnstuck(); + virtual void Explode(idEntity *, trace_t *); + virtual bool PointInsideDamageRadius(const idVec3 *, float); + virtual usableState_t GetOnlineUsableState(); + virtual void AttachAIEvents(); + virtual void RemoveAIEvents(); + virtual const idDeclInventory *GetInventoryItem(); + virtual void SetCharges(float); + virtual bool AttachToJoint(idEntity *, idIndex); + virtual bool AttachToTag(idEntity *, tagData_t); + virtual bool Attach(idEntity *, const trace_t *); + virtual idElectricBolt *GetElectricBoltEffect(int); + virtual bool AddElectricBoltEffect(idEntity *); + virtual void UpdateElectricBoltEffect(); + virtual void SimulateProjectileFrame(int, int); + virtual void PostSimulate(int); + virtual void InternalLaunch(idEntity *, const idVec3 *, const idMat3 *, const idProjectileTarget *, const float, const int); + virtual void InternalModifyLaunchVelocity(idEntity *, const idMat3 *); + virtual void Break(idEntity *, trace_t *); + virtual bool ShouldRemoveOnCollision(const trace_t *, float); + virtual bool ShouldStickOnCollision(const trace_t *); + + bool zUp; + idVec3 originOffset; +}; diff --git a/source/tungsten/game/weapons/trajectory.h b/source/tungsten/game/weapons/trajectory.h new file mode 100644 index 0000000..bc3676d --- /dev/null +++ b/source/tungsten/game/weapons/trajectory.h @@ -0,0 +1,39 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\game\weapons\trajectory.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 15603; PDB kind: class. +class idTrajectory : public idClass +{ +public: + // Recovered virtual interface; IDA vtable ordinal 15606. + virtual idTypeInfo *GetType(); + virtual ~idTrajectory(); + virtual bool WaitingOnJob(); + virtual bool HasResults(); + virtual void ClearResults(); + virtual int NumTrajectories(); + virtual idTrajectory::parms_t *GetTrajectoryParms(const int); + virtual const idTrajectory::parms_t *GetTrajectoryParms_2(const int); + virtual const idTrajectory::results_t *GetSimulationResults(const int); + +}; + +// IDA Local Type ordinal 15604; PDB kind: struct. +struct idTrajectory::parms_t +{ + float time; + float speed; + float gravity; +}; + +// IDA Local Type ordinal 15605; PDB kind: struct. +const struct __declspec(align(4)) idTrajectory::results_t +{ + trace_t impactResult; + bool impacted; +}; diff --git a/source/tungsten/superscript/generated/maps/user/dyoung/dy_world.h b/source/tungsten/superscript/generated/maps/user/dyoung/dy_world.h new file mode 100644 index 0000000..10c0047 --- /dev/null +++ b/source/tungsten/superscript/generated/maps/user/dyoung/dy_world.h @@ -0,0 +1,75 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\superscript\generated\maps\user\dyoung\dy_world.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13868; PDB kind: class. +class dy_world : public idSuperScriptObject +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13869. + virtual void Init(); + virtual void Destroy(); + virtual void _OnActivate(int); + virtual void _OnTrigger(int); + virtual void _OnActivateTargets(int); + virtual void _OnActionReached(int, int, bool); + virtual void _OnGoalReach(int); + virtual void _OnGoalAssigned(int); + virtual void _OnDamage(int, float); + virtual void _OnDeath(int); + virtual void _OnLeftGoal(int); + virtual void _OnReachGoal(int); + virtual void _OnLeaveAction(int); + virtual void _OnReachAction(int); + virtual void _OnAssignedGoal(int); + virtual void _OnAnimNotify(const char *); + virtual void _OnAnimEnd(); + virtual void _OnAnimStart(); + virtual void _OnMoverNotify(const char *); + virtual void _OnTargetSpawn(int); + virtual void _OnEnter(int); + virtual void _OnExit(int); + virtual void _OnUse(int); + virtual const char *_name(); + virtual bool _isTypeOf(const char *); + virtual int _getEntity(); + virtual void _setEntity(int); + virtual void (__fastcall *_getThreadFunction(const char *))(idSSObject *, void *); + virtual bool _isNotifyFunction(const char *); + virtual void *_getDeclPtr(); + virtual ~dy_world(); + virtual void OnActivate(ssEntity); + virtual void OnTrigger(ssEntity); + virtual void OnActivateTargets(ssEntity); + virtual void OnActionReached(ssEntity, ssEntity, bool); + virtual void OnGoalReach(ssEntity); + virtual void OnGoalAssigned(ssEntity); + virtual void OnDamage(ssEntity, float); + virtual void OnDeath(ssEntity); + virtual void OnLeftGoal(ssEntity); + virtual void OnReachGoal(ssEntity); + virtual void OnLeaveAction(ssEntity); + virtual void OnReachAction(ssEntity); + virtual void OnAssignedGoal(ssEntity); + virtual void OnAnimNotify(ssString); + virtual void OnAnimEnd(); + virtual void OnAnimStart(); + virtual void OnMoverNotify(ssString); + virtual void OnTargetSpawn(ssEntity); + virtual void OnEnter(ssEntity); + virtual void OnExit(ssEntity); + virtual void OnUse(ssEntity); + + idSoundShader *testSoundDecl; + idDeclEntityDef *speakerDecl; + idDeclEntityDef *infoDecl; + idMaterial *hudImage1; + int REBUILD; +}; + +// IDA Local Type ordinal 30243; PDB kind: typedef. +typedef unsigned int DWORD; diff --git a/source/tungsten/superscript/generated/maps/user/jake/jake_test.h b/source/tungsten/superscript/generated/maps/user/jake/jake_test.h new file mode 100644 index 0000000..f25b7a5 --- /dev/null +++ b/source/tungsten/superscript/generated/maps/user/jake/jake_test.h @@ -0,0 +1,67 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\superscript\generated\maps\user\jake\jake_test.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13944; PDB kind: class. +class jake_test1 : public idSuperScriptObject +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13945. + virtual void Init(); + virtual void Destroy(); + virtual void _OnActivate(int); + virtual void _OnTrigger(int); + virtual void _OnActivateTargets(int); + virtual void _OnActionReached(int, int, bool); + virtual void _OnGoalReach(int); + virtual void _OnGoalAssigned(int); + virtual void _OnDamage(int, float); + virtual void _OnDeath(int); + virtual void _OnLeftGoal(int); + virtual void _OnReachGoal(int); + virtual void _OnLeaveAction(int); + virtual void _OnReachAction(int); + virtual void _OnAssignedGoal(int); + virtual void _OnAnimNotify(const char *); + virtual void _OnAnimEnd(); + virtual void _OnAnimStart(); + virtual void _OnMoverNotify(const char *); + virtual void _OnTargetSpawn(int); + virtual void _OnEnter(int); + virtual void _OnExit(int); + virtual void _OnUse(int); + virtual const char *_name(); + virtual bool _isTypeOf(const char *); + virtual int _getEntity(); + virtual void _setEntity(int); + virtual void (__fastcall *_getThreadFunction(const char *))(idSSObject *, void *); + virtual bool _isNotifyFunction(const char *); + virtual void *_getDeclPtr(); + virtual ~jake_test1(); + virtual void OnActivate(ssEntity); + virtual void OnTrigger(ssEntity); + virtual void OnActivateTargets(ssEntity); + virtual void OnActionReached(ssEntity, ssEntity, bool); + virtual void OnGoalReach(ssEntity); + virtual void OnGoalAssigned(ssEntity); + virtual void OnDamage(ssEntity, float); + virtual void OnDeath(ssEntity); + virtual void OnLeftGoal(ssEntity); + virtual void OnReachGoal(ssEntity); + virtual void OnLeaveAction(ssEntity); + virtual void OnReachAction(ssEntity); + virtual void OnAssignedGoal(ssEntity); + virtual void OnAnimNotify(ssString); + virtual void OnAnimEnd(); + virtual void OnAnimStart(); + virtual void OnMoverNotify(ssString); + virtual void OnTargetSpawn(ssEntity); + virtual void OnEnter(ssEntity); + virtual void OnExit(ssEntity); + virtual void OnUse(ssEntity); + +}; diff --git a/source/tungsten/superscript/generated/maps/user/phook/phook_test.h b/source/tungsten/superscript/generated/maps/user/phook/phook_test.h new file mode 100644 index 0000000..9749c0d --- /dev/null +++ b/source/tungsten/superscript/generated/maps/user/phook/phook_test.h @@ -0,0 +1,77 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\superscript\generated\maps\user\phook\phook_test.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13990; PDB kind: class. +class phook_test1 : public idSuperScriptObject +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13991. + virtual void Init(); + virtual void Destroy(); + virtual void _OnActivate(int); + virtual void _OnTrigger(int); + virtual void _OnActivateTargets(int); + virtual void _OnActionReached(int, int, bool); + virtual void _OnGoalReach(int); + virtual void _OnGoalAssigned(int); + virtual void _OnDamage(int, float); + virtual void _OnDeath(int); + virtual void _OnLeftGoal(int); + virtual void _OnReachGoal(int); + virtual void _OnLeaveAction(int); + virtual void _OnReachAction(int); + virtual void _OnAssignedGoal(int); + virtual void _OnAnimNotify(const char *); + virtual void _OnAnimEnd(); + virtual void _OnAnimStart(); + virtual void _OnMoverNotify(const char *); + virtual void _OnTargetSpawn(int); + virtual void _OnEnter(int); + virtual void _OnExit(int); + virtual void _OnUse(int); + virtual const char *_name(); + virtual bool _isTypeOf(const char *); + virtual int _getEntity(); + virtual void _setEntity(int); + virtual void (__fastcall *_getThreadFunction(const char *))(idSSObject *, void *); + virtual bool _isNotifyFunction(const char *); + virtual void *_getDeclPtr(); + virtual ~phook_test1(); + virtual void OnActivate(ssEntity); + virtual void OnTrigger(ssEntity); + virtual void OnActivateTargets(ssEntity); + virtual void OnActionReached(ssEntity, ssEntity, bool); + virtual void OnGoalReach(ssEntity); + virtual void OnGoalAssigned(ssEntity); + virtual void OnDamage(ssEntity, float); + virtual void OnDeath(ssEntity); + virtual void OnLeftGoal(ssEntity); + virtual void OnReachGoal(ssEntity); + virtual void OnLeaveAction(ssEntity); + virtual void OnReachAction(ssEntity); + virtual void OnAssignedGoal(ssEntity); + virtual void OnAnimNotify(ssString); + virtual void OnAnimEnd(); + virtual void OnAnimStart(); + virtual void OnMoverNotify(ssString); + virtual void OnTargetSpawn(ssEntity); + virtual void OnEnter(ssEntity); + virtual void OnExit(ssEntity); + virtual void OnUse(ssEntity); + + int fullyAccessible; + int totallyHidden; + int seenInEditor; + int hasAccessors; +}; + +// IDA Local Type ordinal 13992; PDB kind: struct. +struct phook_test1::simpleStruct_t +{ + int value; +}; diff --git a/source/tungsten/superscript/generated/shared/debugutil.h b/source/tungsten/superscript/generated/shared/debugutil.h new file mode 100644 index 0000000..f6b0e0b --- /dev/null +++ b/source/tungsten/superscript/generated/shared/debugutil.h @@ -0,0 +1,69 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\superscript\generated\shared\debugutil.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13863; PDB kind: class. +class ssDebugUtil : public idSuperScriptObject +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13864. + virtual void Init(); + virtual void Destroy(); + virtual void _OnActivate(int); + virtual void _OnTrigger(int); + virtual void _OnActivateTargets(int); + virtual void _OnActionReached(int, int, bool); + virtual void _OnGoalReach(int); + virtual void _OnGoalAssigned(int); + virtual void _OnDamage(int, float); + virtual void _OnDeath(int); + virtual void _OnLeftGoal(int); + virtual void _OnReachGoal(int); + virtual void _OnLeaveAction(int); + virtual void _OnReachAction(int); + virtual void _OnAssignedGoal(int); + virtual void _OnAnimNotify(const char *); + virtual void _OnAnimEnd(); + virtual void _OnAnimStart(); + virtual void _OnMoverNotify(const char *); + virtual void _OnTargetSpawn(int); + virtual void _OnEnter(int); + virtual void _OnExit(int); + virtual void _OnUse(int); + virtual const char *_name(); + virtual bool _isTypeOf(const char *); + virtual int _getEntity(); + virtual void _setEntity(int); + virtual void (__fastcall *_getThreadFunction(const char *))(idSSObject *, void *); + virtual bool _isNotifyFunction(const char *); + virtual void *_getDeclPtr(); + virtual ~ssDebugUtil(); + virtual void OnActivate(ssEntity); + virtual void OnTrigger(ssEntity); + virtual void OnActivateTargets(ssEntity); + virtual void OnActionReached(ssEntity, ssEntity, bool); + virtual void OnGoalReach(ssEntity); + virtual void OnGoalAssigned(ssEntity); + virtual void OnDamage(ssEntity, float); + virtual void OnDeath(ssEntity); + virtual void OnLeftGoal(ssEntity); + virtual void OnReachGoal(ssEntity); + virtual void OnLeaveAction(ssEntity); + virtual void OnReachAction(ssEntity); + virtual void OnAssignedGoal(ssEntity); + virtual void OnAnimNotify(ssString); + virtual void OnAnimEnd(); + virtual void OnAnimStart(); + virtual void OnMoverNotify(ssString); + virtual void OnTargetSpawn(ssEntity); + virtual void OnEnter(ssEntity); + virtual void OnExit(ssEntity); + virtual void OnUse(ssEntity); + + int debugActionsThreadId; + idDeclDamage *suicide; +}; diff --git a/source/tungsten/superscript/generated/shared/worldutil.h b/source/tungsten/superscript/generated/shared/worldutil.h new file mode 100644 index 0000000..cdd7e84 --- /dev/null +++ b/source/tungsten/superscript/generated/shared/worldutil.h @@ -0,0 +1,76 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\superscript\generated\shared\worldutil.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13287; PDB kind: class. +class ssWorldUtil : public idSuperScriptObject +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13288. + virtual void Init(); + virtual void Destroy(); + virtual void _OnActivate(int); + virtual void _OnTrigger(int); + virtual void _OnActivateTargets(int); + virtual void _OnActionReached(int, int, bool); + virtual void _OnGoalReach(int); + virtual void _OnGoalAssigned(int); + virtual void _OnDamage(int, float); + virtual void _OnDeath(int); + virtual void _OnLeftGoal(int); + virtual void _OnReachGoal(int); + virtual void _OnLeaveAction(int); + virtual void _OnReachAction(int); + virtual void _OnAssignedGoal(int); + virtual void _OnAnimNotify(const char *); + virtual void _OnAnimEnd(); + virtual void _OnAnimStart(); + virtual void _OnMoverNotify(const char *); + virtual void _OnTargetSpawn(int); + virtual void _OnEnter(int); + virtual void _OnExit(int); + virtual void _OnUse(int); + virtual const char *_name(); + virtual bool _isTypeOf(const char *); + virtual int _getEntity(); + virtual void _setEntity(int); + virtual void (__fastcall *_getThreadFunction(const char *))(idSSObject *, void *); + virtual bool _isNotifyFunction(const char *); + virtual void *_getDeclPtr(); + virtual ~ssWorldUtil(); + virtual void OnActivate(ssEntity); + virtual void OnTrigger(ssEntity); + virtual void OnActivateTargets(ssEntity); + virtual void OnActionReached(ssEntity, ssEntity, bool); + virtual void OnGoalReach(ssEntity); + virtual void OnGoalAssigned(ssEntity); + virtual void OnDamage(ssEntity, float); + virtual void OnDeath(ssEntity); + virtual void OnLeftGoal(ssEntity); + virtual void OnReachGoal(ssEntity); + virtual void OnLeaveAction(ssEntity); + virtual void OnReachAction(ssEntity); + virtual void OnAssignedGoal(ssEntity); + virtual void OnAnimNotify(ssString); + virtual void OnAnimEnd(); + virtual void OnAnimStart(); + virtual void OnMoverNotify(ssString); + virtual void OnTargetSpawn(ssEntity); + virtual void OnEnter(ssEntity); + virtual void OnExit(ssEntity); + virtual void OnUse(ssEntity); + + ssEntity world; + ssEntity player1; + ssEntity player2; + ssEntity player3; + ssEntity player4; + ssEntity player5; + ssEntity player6; + ssEntity player7; + ssEntity player8; +}; diff --git a/source/tungsten/superscript/generated/util/action.h b/source/tungsten/superscript/generated/util/action.h new file mode 100644 index 0000000..a1b8b60 --- /dev/null +++ b/source/tungsten/superscript/generated/util/action.h @@ -0,0 +1,228 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\superscript\generated\util\action.h +// Recovered logical types: 7 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2422; PDB kind: enum,struct. +enum swfAction_t : __int32 +{ + Action_End = 0x0, + Action_NextFrame = 0x4, + Action_PrevFrame = 0x5, + Action_Play = 0x6, + Action_Stop = 0x7, + Action_ToggleQuality = 0x8, + Action_StopSounds = 0x9, + Action_GotoFrame = 0x81, + Action_GetURL = 0x83, + Action_WaitForFrame = 0x8A, + Action_SetTarget = 0x8B, + Action_GoToLabel = 0x8C, + Action_Add = 0xA, + Action_Subtract = 0xB, + Action_Multiply = 0xC, + Action_Divide = 0xD, + Action_Equals = 0xE, + Action_Less = 0xF, + Action_And = 0x10, + Action_Or = 0x11, + Action_Not = 0x12, + Action_StringEquals = 0x13, + Action_StringLength = 0x14, + Action_StringExtract = 0x15, + Action_Pop = 0x17, + Action_ToInteger = 0x18, + Action_GetVariable = 0x1C, + Action_SetVariable = 0x1D, + Action_SetTarget2 = 0x20, + Action_StringAdd = 0x21, + Action_GetProperty = 0x22, + Action_SetProperty = 0x23, + Action_CloneSprite = 0x24, + Action_RemoveSprite = 0x25, + Action_Trace = 0x26, + Action_StartDrag = 0x27, + Action_EndDrag = 0x28, + Action_StringLess = 0x29, + Action_RandomNumber = 0x30, + Action_MBStringLength = 0x31, + Action_CharToAscii = 0x32, + Action_AsciiToChar = 0x33, + Action_GetTime = 0x34, + Action_MBStringExtract = 0x35, + Action_MBCharToAscii = 0x36, + Action_MBAsciiToChar = 0x37, + Action_WaitForFrame2 = 0x8D, + Action_Push = 0x96, + Action_Jump = 0x99, + Action_GetURL2 = 0x9A, + Action_If = 0x9D, + Action_Call = 0x9E, + Action_GotoFrame2 = 0x9F, + Action_Delete = 0x3A, + Action_Delete2 = 0x3B, + Action_DefineLocal = 0x3C, + Action_CallFunction = 0x3D, + Action_Return = 0x3E, + Action_Modulo = 0x3F, + Action_NewObject = 0x40, + Action_DefineLocal2 = 0x41, + Action_InitArray = 0x42, + Action_InitObject = 0x43, + Action_TypeOf = 0x44, + Action_TargetPath = 0x45, + Action_Enumerate = 0x46, + Action_Add2 = 0x47, + Action_Less2 = 0x48, + Action_Equals2 = 0x49, + Action_ToNumber = 0x4A, + Action_ToString = 0x4B, + Action_PushDuplicate = 0x4C, + Action_StackSwap = 0x4D, + Action_GetMember = 0x4E, + Action_SetMember = 0x4F, + Action_Increment = 0x50, + Action_Decrement = 0x51, + Action_CallMethod = 0x52, + Action_NewMethod = 0x53, + Action_BitAnd = 0x60, + Action_BitOr = 0x61, + Action_BitXor = 0x62, + Action_BitLShift = 0x63, + Action_BitRShift = 0x64, + Action_BitURShift = 0x65, + Action_StoreRegister = 0x87, + Action_ConstantPool = 0x88, + Action_With = 0x94, + Action_DefineFunction = 0x9B, + Action_InstanceOf = 0x54, + Action_Enumerate2 = 0x55, + Action_StrictEquals = 0x66, + Action_Greater = 0x67, + Action_StringGreater = 0x68, + Action_Extends = 0x69, + Action_CastOp = 0x2B, + Action_ImplementsOp = 0x2C, + Action_Throw = 0x2A, + Action_Try = 0x8F, + Action_DefineFunction2 = 0x8E, +}; + +// IDA Local Type ordinal 14213; PDB kind: class. +class idFXAction +{ +public: + int tagIndex; + idVec3 startOrg; + idMat3 startAxis; + idRenderLight *rLight; + idRenderModel *rModel; + idRenderModelParticle *rParticle; + int screenPrtHandle; + idLensFlareManager flareManager; + idRibbonManager ribbonManager; + idList tagData; + idVec3 lastParticleDropPos; + idVec4 renderParmStartValue; + idAngles randomAngles; + int viewCallbacksID; +}; + +// IDA Local Type ordinal 14478; PDB kind: class. +class idFaction +{ +public: + const idDeclFaction *myFaction; + idRelationshipList relationships; +}; + +// IDA Local Type ordinal 17013; PDB kind: class. +class __unaligned __declspec(align(4)) idAction_Pain : public idAIAction +{ +public: + // Recovered virtual interface; IDA vtable ordinal 33773. + virtual idTypeInfo *GetType(); + virtual ~idAction_Pain(); + 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 Save(const idFiniteStateMachine *, idFile_String *, const char *); + virtual void InternalInitState(const idFiniteStateMachine *); + virtual bool InternalCanUse(idFiniteStateMachine *, const int); + virtual void InternalEnterState(idFiniteStateMachine *, const int); + virtual void InternalExitState(idFiniteStateMachine *, const int); + virtual void InternalWork(idFiniteStateMachine *, const int); + virtual void InternalReenterState(idFiniteStateMachine *, const int, const int); + virtual bool InternalIsStateWaiting(idFiniteStateMachine *, const int); + virtual void InternalGetDebugString(idStr *); + virtual bool AIState_CanUse(idAI2 *, idAIFSM *, const int); + virtual void AIState_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIState_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIState_Work(idAI2 *, idAIFSM *, const int); + virtual void AIState_ReenterState(idAI2 *, idAIFSM *, const int, const int); + virtual bool AIState_IsWaiting(idAI2 *, idAIFSM *, const int); + virtual const idEventDef *GetActionEventDef(); + virtual int GetActionFlags(); + virtual void AIAction_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIAction_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIAction_Work(idAI2 *, idAIFSM *, const int); + virtual void AIAction_ReenterState(idAI2 *, idAIFSM *, const int); + virtual bool AIAction_IsWaiting(idAI2 *, idAIFSM *, const int); + +}; + +// IDA Local Type ordinal 17032; PDB kind: class. +class __unaligned __declspec(align(4)) idAction_Wait : public idAIAction +{ +public: + // Recovered virtual interface; IDA vtable ordinal 33825. + virtual idTypeInfo *GetType(); + virtual ~idAction_Wait(); + 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 Save(const idFiniteStateMachine *, idFile_String *, const char *); + virtual void InternalInitState(const idFiniteStateMachine *); + virtual bool InternalCanUse(idFiniteStateMachine *, const int); + virtual void InternalEnterState(idFiniteStateMachine *, const int); + virtual void InternalExitState(idFiniteStateMachine *, const int); + virtual void InternalWork(idFiniteStateMachine *, const int); + virtual void InternalReenterState(idFiniteStateMachine *, const int, const int); + virtual bool InternalIsStateWaiting(idFiniteStateMachine *, const int); + virtual void InternalGetDebugString(idStr *); + virtual bool AIState_CanUse(idAI2 *, idAIFSM *, const int); + virtual void AIState_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIState_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIState_Work(idAI2 *, idAIFSM *, const int); + virtual void AIState_ReenterState(idAI2 *, idAIFSM *, const int, const int); + virtual bool AIState_IsWaiting(idAI2 *, idAIFSM *, const int); + virtual const idEventDef *GetActionEventDef(); + virtual int GetActionFlags(); + virtual void AIAction_EnterState(idAI2 *, idAIFSM *, const int); + virtual void AIAction_ExitState(idAI2 *, idAIFSM *, const int); + virtual void AIAction_Work(idAI2 *, idAIFSM *, const int); + virtual void AIAction_ReenterState(idAI2 *, idAIFSM *, const int); + virtual bool AIAction_IsWaiting(idAI2 *, idAIFSM *, const int); + +}; + +// IDA Local Type ordinal 23602; PDB kind: class. +class idKeyAction +{ +public: + cmdGenButton_t usercmdAction; + idStr binding; +}; + +// IDA Local Type ordinal 25729; PDB kind: struct. +struct _XCPT_ACTION +{ + unsigned int XcptNum; + int SigNum; + void (__fastcall *XcptAction)(int); +}; diff --git a/source/tungsten/superscript/generated/util/combatgoal.h b/source/tungsten/superscript/generated/util/combatgoal.h new file mode 100644 index 0000000..a1e3e5b --- /dev/null +++ b/source/tungsten/superscript/generated/util/combatgoal.h @@ -0,0 +1,81 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\superscript\generated\util\combatgoal.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1018; PDB kind: enum. +enum _combatGoal::state_t : __int32 +{ + COMBAT_GOAL_WAITING = 0x0, + COMBAT_GOAL_READY = 0x1, + COMBAT_GOAL_SUCCESS = 0x2, + COMBAT_GOAL_FAILURE = 0x3, +}; + +// IDA Local Type ordinal 13932; PDB kind: class. +class _combatGoal : public idSuperScriptObject +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13933. + virtual void Init(); + virtual void Destroy(); + virtual void _OnActivate(int); + virtual void _OnTrigger(int); + virtual void _OnActivateTargets(int); + virtual void _OnActionReached(int, int, bool); + virtual void _OnGoalReach(int); + virtual void _OnGoalAssigned(int); + virtual void _OnDamage(int, float); + virtual void _OnDeath(int); + virtual void _OnLeftGoal(int); + virtual void _OnReachGoal(int); + virtual void _OnLeaveAction(int); + virtual void _OnReachAction(int); + virtual void _OnAssignedGoal(int); + virtual void _OnAnimNotify(const char *); + virtual void _OnAnimEnd(); + virtual void _OnAnimStart(); + virtual void _OnMoverNotify(const char *); + virtual void _OnTargetSpawn(int); + virtual void _OnEnter(int); + virtual void _OnExit(int); + virtual void _OnUse(int); + virtual const char *_name(); + virtual bool _isTypeOf(const char *); + virtual int _getEntity(); + virtual void _setEntity(int); + virtual void (__fastcall *_getThreadFunction(const char *))(idSSObject *, void *); + virtual bool _isNotifyFunction(const char *); + virtual void *_getDeclPtr(); + virtual ~_combatGoal(); + virtual void OnActivate(ssEntity); + virtual void OnTrigger(ssEntity); + virtual void OnActivateTargets(ssEntity); + virtual void OnActionReached(ssEntity, ssEntity, bool); + virtual void OnGoalReach(ssEntity); + virtual void OnGoalAssigned(ssEntity); + virtual void OnDamage(ssEntity, float); + virtual void OnDeath(ssEntity); + virtual void OnLeftGoal(ssEntity); + virtual void OnReachGoal(ssEntity); + virtual void OnLeaveAction(ssEntity); + virtual void OnReachAction(ssEntity); + virtual void OnAssignedGoal(ssEntity); + virtual void OnAnimNotify(ssString); + virtual void OnAnimEnd(); + virtual void OnAnimStart(); + virtual void OnMoverNotify(ssString); + virtual void OnTargetSpawn(ssEntity); + virtual void OnEnter(ssEntity); + virtual void OnExit(ssEntity); + virtual void OnUse(ssEntity); + virtual void DebugDrawStatus(); + + bool bTriggerFirst; + float delay; + ssString call; + _combatGoal::state_t state; +}; diff --git a/source/tungsten/superscript/generated/util/entityflag.h b/source/tungsten/superscript/generated/util/entityflag.h new file mode 100644 index 0000000..bab43ae --- /dev/null +++ b/source/tungsten/superscript/generated/util/entityflag.h @@ -0,0 +1,100 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\superscript\generated\util\entityflag.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 2232; PDB kind: enum. +enum aiEntityFlags_t : __int32 +{ + AIENTFLAG_DEAD = 0x1, + AIENTFLAG_CROUCHED = 0x2, + AIENTFLAG_LEAN_RIGHT = 0x4, + AIENTFLAG_LEAN_LEFT = 0x8, + AIENTFLAG_RUNNING = 0x10, + AIENTFLAG_NO_SIGHT_STIM = 0x20, + AIENTFLAG_DRIVING = 0x40, + AIENTFLAG_DYING = 0x80, +}; + +// IDA Local Type ordinal 13834; PDB kind: struct. +struct util_entityFlag::callFunction_t +{ + ssEntity target; + ssString function; +}; + +// IDA Local Type ordinal 13836; PDB kind: struct. +struct util_entityFlag::flagDef_t +{ + ssString name; + bool animNotify; + bool state; + int count; + float lastTime; + ssList terminateThreads; + ssList callFunctions; +}; + +// IDA Local Type ordinal 13838; PDB kind: class. +class util_entityFlag : public idSuperScriptObject +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13839. + virtual void Init(); + virtual void Destroy(); + virtual void _OnActivate(int); + virtual void _OnTrigger(int); + virtual void _OnActivateTargets(int); + virtual void _OnActionReached(int, int, bool); + virtual void _OnGoalReach(int); + virtual void _OnGoalAssigned(int); + virtual void _OnDamage(int, float); + virtual void _OnDeath(int); + virtual void _OnLeftGoal(int); + virtual void _OnReachGoal(int); + virtual void _OnLeaveAction(int); + virtual void _OnReachAction(int); + virtual void _OnAssignedGoal(int); + virtual void _OnAnimNotify(const char *); + virtual void _OnAnimEnd(); + virtual void _OnAnimStart(); + virtual void _OnMoverNotify(const char *); + virtual void _OnTargetSpawn(int); + virtual void _OnEnter(int); + virtual void _OnExit(int); + virtual void _OnUse(int); + virtual const char *_name(); + virtual bool _isTypeOf(const char *); + virtual int _getEntity(); + virtual void _setEntity(int); + virtual void (__fastcall *_getThreadFunction(const char *))(idSSObject *, void *); + virtual bool _isNotifyFunction(const char *); + virtual void *_getDeclPtr(); + virtual ~util_entityFlag(); + virtual void OnActivate(ssEntity); + virtual void OnTrigger(ssEntity); + virtual void OnActivateTargets(ssEntity); + virtual void OnActionReached(ssEntity, ssEntity, bool); + virtual void OnGoalReach(ssEntity); + virtual void OnGoalAssigned(ssEntity); + virtual void OnDamage(ssEntity, float); + virtual void OnDeath(ssEntity); + virtual void OnLeftGoal(ssEntity); + virtual void OnReachGoal(ssEntity); + virtual void OnLeaveAction(ssEntity); + virtual void OnReachAction(ssEntity); + virtual void OnAssignedGoal(ssEntity); + virtual void OnAnimNotify(ssString); + virtual void OnAnimEnd(); + virtual void OnAnimStart(); + virtual void OnMoverNotify(ssString); + virtual void OnTargetSpawn(ssEntity); + virtual void OnEnter(ssEntity); + virtual void OnExit(ssEntity); + virtual void OnUse(ssEntity); + + ssList flags; +}; diff --git a/source/tungsten/superscript/generated/util/musicmanager.h b/source/tungsten/superscript/generated/util/musicmanager.h new file mode 100644 index 0000000..4a94b0a --- /dev/null +++ b/source/tungsten/superscript/generated/util/musicmanager.h @@ -0,0 +1,87 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\superscript\generated\util\musicmanager.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13965; PDB kind: class. +class musicManager : public idSuperScriptObject +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13966. + virtual void Init(); + virtual void Destroy(); + virtual void _OnActivate(int); + virtual void _OnTrigger(int); + virtual void _OnActivateTargets(int); + virtual void _OnActionReached(int, int, bool); + virtual void _OnGoalReach(int); + virtual void _OnGoalAssigned(int); + virtual void _OnDamage(int, float); + virtual void _OnDeath(int); + virtual void _OnLeftGoal(int); + virtual void _OnReachGoal(int); + virtual void _OnLeaveAction(int); + virtual void _OnReachAction(int); + virtual void _OnAssignedGoal(int); + virtual void _OnAnimNotify(const char *); + virtual void _OnAnimEnd(); + virtual void _OnAnimStart(); + virtual void _OnMoverNotify(const char *); + virtual void _OnTargetSpawn(int); + virtual void _OnEnter(int); + virtual void _OnExit(int); + virtual void _OnUse(int); + virtual const char *_name(); + virtual bool _isTypeOf(const char *); + virtual int _getEntity(); + virtual void _setEntity(int); + virtual void (__fastcall *_getThreadFunction(const char *))(idSSObject *, void *); + virtual bool _isNotifyFunction(const char *); + virtual void *_getDeclPtr(); + virtual ~musicManager(); + virtual void OnActivate(ssEntity); + virtual void OnTrigger(ssEntity); + virtual void OnActivateTargets(ssEntity); + virtual void OnActionReached(ssEntity, ssEntity, bool); + virtual void OnGoalReach(ssEntity); + virtual void OnGoalAssigned(ssEntity); + virtual void OnDamage(ssEntity, float); + virtual void OnDeath(ssEntity); + virtual void OnLeftGoal(ssEntity); + virtual void OnReachGoal(ssEntity); + virtual void OnLeaveAction(ssEntity); + virtual void OnReachAction(ssEntity); + virtual void OnAssignedGoal(ssEntity); + virtual void OnAnimNotify(ssString); + virtual void OnAnimEnd(); + virtual void OnAnimStart(); + virtual void OnMoverNotify(ssString); + virtual void OnTargetSpawn(ssEntity); + virtual void OnEnter(ssEntity); + virtual void OnExit(ssEntity); + virtual void OnUse(ssEntity); + + idSoundShader *lowTensionMusic; + idSoundShader *medTensionMusic; + idSoundShader *highTensionMusic; + tensionTransition_t transOffToLow; + tensionTransition_t transOffToMedium; + tensionTransition_t transOffToHigh; + tensionTransition_t transLowToMedium; + tensionTransition_t transLowToHigh; + tensionTransition_t transMediumToHigh; + tensionTransition_t transHighToMedium; + tensionTransition_t transHighToLow; + tensionTransition_t transHighToOff; + tensionTransition_t transMediumToLow; + tensionTransition_t transMediumToOff; + tensionTransition_t transLowToOff; + musicTensionStates_t currentTensionLevel; + idDeclEntityDef *infoNull; + ssEntity eLowSpeaker; + ssEntity eMediumSpeaker; + ssEntity eHighSpeaker; +}; diff --git a/source/tungsten/superscript/lib/cvars.h b/source/tungsten/superscript/lib/cvars.h new file mode 100644 index 0000000..8737e82 --- /dev/null +++ b/source/tungsten/superscript/lib/cvars.h @@ -0,0 +1,43 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\superscript\lib\cvars.h +// Recovered logical types: 3 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 12232; PDB kind: struct. +struct idCVar::cvarCallback_t +{ + idCallback *callback; + idCVar::cvarCallback_t *next; +}; + +// IDA Local Type ordinal 12233; PDB kind: class. +class idCVar +{ +public: + idStr valueString; + int valueInteger; + float valueFloat; + const char *name; + const char *resetString; + const char *description; + int flags; + float valueMin; + float valueMax; + const char **valueStrings; + void (__fastcall *valueCompletion)(idAutoComplete *); + idCVar::cvarCallback_t *onChange; + idCVar *next; +}; + +// IDA Local Type ordinal 13276; PDB kind: class. +class cvar_ +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13277. + virtual void RegisterCVar(); + + cvar_ *nextStaticCVar; +}; diff --git a/source/tungsten/superscript/lib/lib.h b/source/tungsten/superscript/lib/lib.h new file mode 100644 index 0000000..173d7bc --- /dev/null +++ b/source/tungsten/superscript/lib/lib.h @@ -0,0 +1,13 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\superscript\lib\lib.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 12858; PDB kind: class. +class idLib +{ +public: +}; diff --git a/source/tungsten/superscript/lib/object.h b/source/tungsten/superscript/lib/object.h new file mode 100644 index 0000000..325b2e7 --- /dev/null +++ b/source/tungsten/superscript/lib/object.h @@ -0,0 +1,97 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\superscript\lib\object.h +// Recovered logical types: 12 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 309; PDB kind: enum. +enum _KOBJECTS : __int32 +{ + EventNotificationObject = 0x0, + EventSynchronizationObject = 0x1, + MutantObject = 0x2, + ProcessObject = 0x3, + QueueObject = 0x4, + SemaphoreObject = 0x5, + ThreadObject = 0x6, + Spare1Object = 0x7, + TimerNotificationObject = 0x8, + TimerSynchronizationObject = 0x9, + Spare2Object = 0xA, + Spare3Object = 0xB, + Spare4Object = 0xC, + Spare5Object = 0xD, + Spare6Object = 0xE, + Spare7Object = 0xF, + Spare8Object = 0x10, + Spare9Object = 0x11, + ApcObject = 0x12, + DpcObject = 0x13, + DeviceQueueObject = 0x14, + EventPairObject = 0x15, + InterruptObject = 0x16, + ProfileObject = 0x17, +}; + +// IDA Local Type ordinal 3745; PDB kind: struct. +struct _FILE_OBJECT +{ + __int16 Type; + unsigned __int8 Flags; + unsigned __int8 Flags2; + _DEVICE_OBJECT *DeviceObject; + void *FsContext; + void *FsContext2; + int FinalStatus; + __unaligned __declspec(align(1)) _LARGE_INTEGER CurrentByteOffset; + _FILE_OBJECT *RelatedFileObject; + _IO_COMPLETION_CONTEXT *CompletionContext; + int LockCount; + _KEVENT Lock; + _KEVENT Event; + _LIST_ENTRY ProcessListEntry; + _LIST_ENTRY FileSystemListEntry; + unsigned __int8 IoPriority; + unsigned __int8 PoolPadding[15]; +}; + +// IDA Local Type ordinal 10647; PDB kind: struct. +struct OBJECT_T +{ + volatile LF_DATA State; + volatile unsigned int dwThreadID; + unsigned int dwRecursion; +}; + +// IDA Local Type ordinal 10896; PDB kind: struct. +struct _OBJECTID +{ + _GUID Lineage; + unsigned int Uniquifier; +}; + +// IDA Local Type ordinal 26176; PDB kind: typedef. +typedef LFOBJECT_STORE LFOBJECT; + +// IDA Local Type ordinal 26683; PDB kind: typedef. +typedef st_lwObject lwObject; + +// IDA Local Type ordinal 27614; PDB kind: typedef. +typedef _OBJECTID OBJECTID; + +// IDA Local Type ordinal 27850; PDB kind: typedef. +typedef _KOBJECTS KOBJECTS; + +// IDA Local Type ordinal 32741; PDB kind: typedef. +typedef OBJECT_T OBJECT; + +// IDA Local Type ordinal 32779; PDB kind: typedef. +typedef volatile LFOBJECT_STORE *PLFOBJECT; + +// IDA Local Type ordinal 33424; PDB kind: typedef. +typedef void (__fastcall *objectFunc_t)(idSSObject *, void *); + +// IDA Local Type ordinal 33616; PDB kind: typedef. +typedef _FILE_OBJECT FILE_OBJECT; diff --git a/source/tungsten/superscript/lib/string.h b/source/tungsten/superscript/lib/string.h new file mode 100644 index 0000000..aa005bd --- /dev/null +++ b/source/tungsten/superscript/lib/string.h @@ -0,0 +1,38 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\superscript\lib\string.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13080; PDB kind: class. +class idFile_String : public idFile_Memory +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13081. + virtual ~idFile_String(); + virtual const char *GetName(); + virtual const char *GetFullPath(); + virtual unsigned int Read(void *, unsigned int); + virtual unsigned int Write(const void *, unsigned int); + virtual unsigned int ReadOfs(__int64, void *, unsigned int); + virtual unsigned int WriteOfs(__int64, const void *, unsigned int); + virtual bool Lock(__int64, unsigned int, fsLock_t); + virtual bool Unlock(__int64, unsigned int); + virtual __int64 Length(); + virtual void SetLength(unsigned int); + virtual __int64 Tell(); + virtual int Seek(__int64, fsOrigin_t); + virtual unsigned int Printf(const char *, ...); + virtual unsigned int VPrintf(const char *, char *); + virtual unsigned int WriteFloatString(const char *, ...); + virtual unsigned int Timestamp(); + virtual void Flush(); + virtual void ForceFlush(); + virtual int GetSectorSize(); + virtual fsDevice_t GetDevice(); + virtual bool IsOSNative(); + virtual void Clear(bool); + +}; diff --git a/source/tungsten/superscript/lib/sys.h b/source/tungsten/superscript/lib/sys.h new file mode 100644 index 0000000..c1bcf40 --- /dev/null +++ b/source/tungsten/superscript/lib/sys.h @@ -0,0 +1,45 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\superscript\lib\sys.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13197; PDB kind: class. +class idSys +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13205. + virtual ~idSys(); + virtual __int64 GetClockTicks(); + virtual __int64 ClockTicksPerSecond(); + virtual cpuid_t GetProcessorId(); + virtual const char *GetProcessorString(); + virtual const char *FPU_GetState(); + virtual bool FPU_StackIsEmpty(); + virtual void FPU_SetFTZ(bool); + virtual void FPU_SetDAZ(bool); + virtual void FPU_EnableExceptions(int); + virtual unsigned int DLL_Load(const char *); + virtual void *DLL_GetProcAddress(unsigned int, const char *); + virtual void DLL_Unload(unsigned int); + virtual void DLL_GetFileName(const char *, char *, int); + virtual void OpenURL(const char *, bool); + virtual void StartProcess(const char *, bool); + virtual const char *GetClipboardData(); + virtual void SetClipboardData(const char *); + virtual int Milliseconds(); + virtual unsigned int VblCount(); + virtual void PrintStackTrace(); + virtual idJoystick *Joystick(); + virtual idKeyboard *Keyboard(); + virtual idMouse *Mouse(); + virtual const char *GetOSUserName(); + virtual const char *GetMachineName(); + virtual void QueueEvent(sysEventType_t, int, int, int, void *, int); + virtual void GenerateEvents(); + virtual sysEvent_t *GetEvent(sysEvent_t *result); + virtual void ClearEvents(); + +}; diff --git a/source/tungsten/superscript/lib/trace.h b/source/tungsten/superscript/lib/trace.h new file mode 100644 index 0000000..a53b8e2 --- /dev/null +++ b/source/tungsten/superscript/lib/trace.h @@ -0,0 +1,112 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\superscript\lib\trace.h +// Recovered logical types: 4 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13671; PDB kind: class. +class idTraceOpts +{ +public: + float radius; + bool skipInvisible; + bool skipTranslucent; + bool skipDynamic; + bool twoSided; + idRenderModel *skipModel; +}; + +// IDA Local Type ordinal 13983; PDB kind: class. +class ssTrace +{ +public: + ssVector startPos; + ssVector endPos; + ssVector rayDir; + int contentMask; + ssEntity ignoreEnt; + float length; + int clipQueryId; + bool resolved; + ssEntity hitEnt; + ssVector hitPos; + ssVector hitNormal; + float hitFraction; + float hitLength; +}; + +// IDA Local Type ordinal 14167; PDB kind: struct. +struct trace_t +{ + float fraction; + idVec3 endpos; + idMat3 endAxis; + contactInfo_t c; +}; + +// IDA Local Type ordinal 23748; PDB kind: class. +class idTraceWork +{ +public: + cm_trmVertex_t verts[32]; + cm_trmEdge_t edges[32]; + cm_trmPolygon_t polys[16]; + idVec4 vertexPosition[32]; + idVec4 vertexEndPosition[32]; + idPluecker vertexPluecker[32]; + idPluecker edgePluecker[32]; + idPluecker edgeZAxisPluecker[32]; + idVec4 edgeNormal[32]; + unsigned __int8 vertIsUsed[32]; + unsigned __int8 edgeIsUsed[32]; + unsigned __int8 polyIsUsed[16]; + unsigned int numVerts; + unsigned int numEdges; + unsigned int numPolys; + int contents; + idVec4 start; + idVec4 end; + idVec4 dir; + idVec4 negDir; + idMat3x4 trmTransform; + idVec4 trmBoundsMin; + idVec4 trmBoundsMax; + idVec4 trmExtents; + idVec4 traceBoundsMin; + idVec4 traceBoundsMax; + idBoundsShort traceBoundsShort; + int pad; + idPlane heartPlane1; + idPlane heartPlane2; + float maxDistFromHeartPlane1; + float maxDistFromHeartPlane2; + float fraction; + int subModelNum; + float angle; + float negAngle; + float maxTan; + float initialTan; + idVec4 origin; + idVec4 axis; + idMat3x4 ZAxisTransform; + idMat3x4 endTransform; + float contactDepth; + traceType_t traceType; + bool isConvex; + bool quickExit; + cm_sideCache_t polygonSideCache; + cm_sideCache_t polygonEdgeSideCache[20]; + cm_sideCache_t polygonVertexSideCache[20]; + idPluecker polygonEdgePlueckerCache[16]; + idPluecker polygonVertexPlueckerCache[16]; + unsigned __int8 subModelDataForBounds[768]; + idModelCheckCounts modelCheckCounts; + cm_subModelPtrs_t subModelPtrs; + trace_t *traceResult; + contactsResult_t *contactsResult; + clipResult_t *clipResult; + trace_t tempTraceResult; + int profile[5]; +}; diff --git a/source/tungsten/superscript/lib/vector.h b/source/tungsten/superscript/lib/vector.h new file mode 100644 index 0000000..0a1aac1 --- /dev/null +++ b/source/tungsten/superscript/lib/vector.h @@ -0,0 +1,10 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\superscript\lib\vector.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 26175; PDB kind: typedef. +typedef idArray vector_t; diff --git a/source/tungsten/superscript/shared/math.h b/source/tungsten/superscript/shared/math.h new file mode 100644 index 0000000..cd81780 --- /dev/null +++ b/source/tungsten/superscript/shared/math.h @@ -0,0 +1,19 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\superscript\shared\math.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 12522; PDB kind: class. +class idMath +{ +public: +}; + +// IDA Local Type ordinal 13856; PDB kind: class. +class math +{ +public: +}; diff --git a/source/tungsten/superscript/sys/sslocal.h b/source/tungsten/superscript/sys/sslocal.h new file mode 100644 index 0000000..0f31ae1 --- /dev/null +++ b/source/tungsten/superscript/sys/sslocal.h @@ -0,0 +1,15 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\superscript\sys\sslocal.h +// Recovered logical types: 1 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 17603; PDB kind: class. +class idSSLock +{ +public: + idSuperScript *superScript; + idGameSuperInterface *prev; +}; diff --git a/source/tungsten/superscript/sys/ssobject.h b/source/tungsten/superscript/sys/ssobject.h new file mode 100644 index 0000000..4a21165 --- /dev/null +++ b/source/tungsten/superscript/sys/ssobject.h @@ -0,0 +1,258 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\superscript\sys\ssobject.h +// Recovered logical types: 33 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 13278; PDB kind: class. +class ssObjectBase +{ +public: + int spawnId; + int objectId; +}; + +// IDA Local Type ordinal 13279; PDB kind: class. +class ssObject : public ssObjectBase +{ +public: +}; + +// IDA Local Type ordinal 13281; PDB kind: class. +class ssObject : public ssObjectBase +{ +public: +}; + +// IDA Local Type ordinal 13282; PDB kind: class. +class idSSObject +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13283. + virtual void Init(); + virtual void Destroy(); + virtual void _OnActivate(int); + virtual void _OnTrigger(int); + virtual void _OnActivateTargets(int); + virtual void _OnActionReached(int, int, bool); + virtual void _OnGoalReach(int); + virtual void _OnGoalAssigned(int); + virtual void _OnDamage(int, float); + virtual void _OnDeath(int); + virtual void _OnLeftGoal(int); + virtual void _OnReachGoal(int); + virtual void _OnLeaveAction(int); + virtual void _OnReachAction(int); + virtual void _OnAssignedGoal(int); + virtual void _OnAnimNotify(const char *); + virtual void _OnAnimEnd(); + virtual void _OnAnimStart(); + virtual void _OnMoverNotify(const char *); + virtual void _OnTargetSpawn(int); + virtual void _OnEnter(int); + virtual void _OnExit(int); + virtual void _OnUse(int); + virtual const char *_name(); + virtual bool _isTypeOf(const char *); + virtual int _getEntity(); + virtual void _setEntity(int); + virtual void (__fastcall *_getThreadFunction(const char *))(idSSObject *, void *); + virtual bool _isNotifyFunction(const char *); + virtual void *_getDeclPtr(); + virtual ~idSSObject(); + +}; + +// IDA Local Type ordinal 13823; PDB kind: class. +class ssObject : public ssObjectBase +{ +public: +}; + +// IDA Local Type ordinal 13846; PDB kind: class. +class ssObject : public ssObjectBase +{ +public: +}; + +// IDA Local Type ordinal 13852; PDB kind: class. +class ssObject : public ssObjectBase +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13853. + virtual void Destroy(); + +}; + +// IDA Local Type ordinal 13865; PDB kind: class. +class ssObject : public ssObjectBase +{ +public: +}; + +// IDA Local Type ordinal 13867; PDB kind: class. +class ssObject : public ssObjectBase +{ +public: +}; + +// IDA Local Type ordinal 13870; PDB kind: class. +class ssObject : public ssObjectBase +{ +public: +}; + +// IDA Local Type ordinal 13879; PDB kind: class. +class ssObject : public ssObjectBase +{ +public: +}; + +// IDA Local Type ordinal 13883; PDB kind: class. +class ssObject : public ssObjectBase +{ +public: +}; + +// IDA Local Type ordinal 13887; PDB kind: class. +class ssObject : public ssObjectBase +{ +public: +}; + +// IDA Local Type ordinal 13934; PDB kind: class. +class ssObject : public ssObjectBase +{ +public: +}; + +// IDA Local Type ordinal 13938; PDB kind: class. +class ssObject : public ssObjectBase +{ +public: +}; + +// IDA Local Type ordinal 13941; PDB kind: class. +class ssObject : public ssObjectBase +{ +public: +}; + +// IDA Local Type ordinal 13946; PDB kind: class. +class ssObject : public ssObjectBase +{ +public: +}; + +// IDA Local Type ordinal 13955; PDB kind: class. +class ssObject<_combatGoal> : public ssObjectBase +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13956. + virtual void Init(); + virtual void DebugDrawStatus(); + +}; + +// IDA Local Type ordinal 13958; PDB kind: class. +class ssObject<_goalKillCounter> : public ssObject<_combatGoal> +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13957. + virtual void Init(); + virtual void DebugDrawStatus(); + +}; + +// IDA Local Type ordinal 13959; PDB kind: class. +class ssObject : public ssObjectBase +{ +public: +}; + +// IDA Local Type ordinal 13962; PDB kind: class. +class ssObject : public ssObjectBase +{ +public: +}; + +// IDA Local Type ordinal 13976; PDB kind: class. +class ssObject : public ssObjectBase +{ +public: +}; + +// IDA Local Type ordinal 13979; PDB kind: class. +class ssObject : public ssObjectBase +{ +public: +}; + +// IDA Local Type ordinal 13982; PDB kind: class. +class ssObject<_goalRemainingCountActor> : public ssObjectBase +{ +public: +}; + +// IDA Local Type ordinal 13984; PDB kind: class. +class ssObject : public ssObjectBase +{ +public: +}; + +// IDA Local Type ordinal 13985; PDB kind: class. +class ssObject : public ssObjectBase +{ +public: +}; + +// IDA Local Type ordinal 13986; PDB kind: class. +class ssObject : public ssObjectBase +{ +public: +}; + +// IDA Local Type ordinal 13987; PDB kind: class. +class ssObject : public ssObjectBase +{ +public: +}; + +// IDA Local Type ordinal 13989; PDB kind: class. +class ssObject<_goalRemainingCounter> : public ssObject<_combatGoal> +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13988. + virtual void Init(); + virtual void DebugDrawStatus(); + +}; + +// IDA Local Type ordinal 13993; PDB kind: class. +class ssObject : public ssObjectBase +{ +public: +}; + +// IDA Local Type ordinal 13994; PDB kind: class. +class ssObject<_goalKillCountActor> : public ssObjectBase +{ +public: +}; + +// IDA Local Type ordinal 13995; PDB kind: class. +class ssObject : public ssObjectBase +{ +public: +}; + +// IDA Local Type ordinal 13996; PDB kind: class. +class ssObject : public ssObjectBase +{ +public: + // Recovered virtual interface; IDA vtable ordinal 13997. + virtual void Destroy(); + +}; diff --git a/source/tungsten/typeinfo/gametypeinfo.h b/source/tungsten/typeinfo/gametypeinfo.h new file mode 100644 index 0000000..44c491e --- /dev/null +++ b/source/tungsten/typeinfo/gametypeinfo.h @@ -0,0 +1,38 @@ +#pragma once + +// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata. +// Original PDB header: w:\tech5\tungsten\typeinfo\gametypeinfo.h +// Recovered logical types: 2 +// Signatures retain Xbox 360 ABI evidence and may still require manual review. + + +// IDA Local Type ordinal 1034; PDB kind: enum. +enum gameType_t : __int32 +{ + GAME_TYPE_UNUSED_DEPRECATED = 0x0, + GAME_TYPE_COOP = 0x1, + GAME_TYPE_PVP = 0x2, +}; + +// IDA Local Type ordinal 22029; PDB kind: class. +class idGuiPageTypeInfo : public idGuiPage +{ +public: + // Recovered virtual interface; IDA vtable ordinal 22030. + virtual ~idGuiPageTypeInfo(); + virtual bool IsEnabled(); + virtual void SetIsActive(const bool); + virtual void Update(); + virtual void SetupChildRowLink(const int, const idStr *); + virtual void InternalRender(idDeviceContext *, const float, const float); + virtual void InternalRender_2(idEntity *, idDeviceContext *); + virtual bool InternalHandleEvent(const sysEvent_t *); + virtual bool WriteTypeInfoObject(idEntity *, idTypeInfoFile *); + virtual bool ReadTypeInfoObject(idEntity *, idTypeInfoFile *); + + int step; + int stepMin; + int itemIndex; + idStr currentPath; + idStr currentEditTxt; +};