Initial gamelib integration AAS2 with some animation and physics and another integration pass on idLib.

This commit is contained in:
Justin Marshall
2026-08-09 03:52:45 -07:00
parent cdf7d52214
commit 6d92a71d19
111 changed files with 15204 additions and 2275 deletions
@@ -1,26 +1,72 @@
#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.
#include "gamelib/aas2/obstacleavoidance.h"
#include "gamelib/aas2/obstacleavoidancecore.h"
#include "idlib/containers/list.h"
class idParallelJobList;
class CellSpursJob128;
struct obstacleParms_t;
struct obstacleBox_t;
struct obstacleVertex_t;
struct obstacleEdge_t;
struct obstacleCorner_t;
struct obstacleTrace_t;
// 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<idObstacleBuffers *,5> usedBuffers;
idList<idObstacleBuffers *,5> freeBuffers;
idList<idObstacleBuffers *,5> toBeFreedBuffers;
struct idObstacleBuffers {
idObstacleAvoidance* user;
CellSpursJob128* job;
obstacleParms_t* parms;
obstacleRoute_t* route;
obstacleBox_t* obstacles;
obstacleVertex_t* vertices;
obstacleEdge_t* edges;
obstacleCorner_t* corners;
obstacleTrace_t* traces;
float* traceFractions;
obstaclePath_t* path;
int numObstacles;
int numVertices;
int numEdges;
int numCorners;
int numTraces;
int frameCount;
};
class idObstacleAvoidanceManager {
public:
virtual ~idObstacleAvoidanceManager() = default;
virtual void Init(idParallelJobList* jobList) = 0;
virtual void Shutdown() = 0;
virtual void AllocObstacleBuffers(idObstacleAvoidance* avoidance) = 0;
virtual void FreeObstacleBuffers(idObstacleAvoidance* avoidance) = 0;
virtual void FrameFreeObstacleBuffers() = 0;
virtual idParallelJobList* GetJobList() = 0;
};
class idObstacleAvoidanceManagerLocal : public idObstacleAvoidanceManager {
public:
idObstacleAvoidanceManagerLocal();
~idObstacleAvoidanceManagerLocal() override;
void Init(idParallelJobList* jobList_) override;
void Shutdown() override;
void AllocObstacleBuffers(idObstacleAvoidance* avoidance) override;
void FreeObstacleBuffers(idObstacleAvoidance* avoidance) override;
void FrameFreeObstacleBuffers() override;
idParallelJobList* GetJobList() override { return jobList; }
idParallelJobList* jobList;
idList<idObstacleBuffers*, 5> usedBuffers;
idList<idObstacleBuffers*, 5> freeBuffers;
idList<idObstacleBuffers*, 5> toBeFreedBuffers;
};
extern idObstacleAvoidanceManagerLocal obstacleAvoidanceManagerLocal;
#if defined(_WIN32) && !defined(_WIN64)
static_assert(sizeof(idObstacleBuffers) == 68,
"Recovered idObstacleBuffers ABI changed");
static_assert(sizeof(idObstacleAvoidanceManagerLocal) == 56,
"Recovered obstacle-avoidance manager ABI changed");
#endif