Decompile overlay 1 (Part 5) (#100)

* start PlayerActorBase_70_001

* PlayerActorBase_70_001 OK

* PlayerActor -> PlayerLinkActor

* Player_001 35%

* fix regressions

* organise files better

* PlayerLinkActor_001 40%

* PlayerLinkActor_001 OK

* tiny self-review
This commit is contained in:
Yanis
2026-07-05 13:44:41 +02:00
committed by GitHub
parent 9987fee73a
commit bf559e183d
42 changed files with 1224 additions and 428 deletions
+9
View File
@@ -34,6 +34,15 @@ typedef union VecFx32 {
/* 0c */
};
fx32 coords[3];
//! TODO: figure out a better way...
#ifdef VECFX32_CTORS
VecFx32(fx32 _x, fx32 _y, fx32 _z) :
x(_x),
y(_y),
z(_z) {}
VecFx32() {}
#endif
} VecFx32;
typedef union MtxFx22 {
+23 -18
View File
@@ -56,6 +56,27 @@ typedef struct G3d_Animation_ {
/* 1C */
} G3d_Animation;
typedef struct G3d_Model_14_ {
/* 00 */ u8 unk_14;
/* 01 */ u8 scalingHandler; // Determines which of the G3d_gScaleHandlers to use for this model
/* 02 */ u8 textureHandler; // Determines which of the G3d_gTextureHandlers to use for this model
/* 03 */ u8 numBones; // number of nodes
/* 04 */ u8 numMat; // number of materials
/* 05 */ u8 numMesh; // number of meshes
/* 06 */ u8 unk_1A;
/* 07 */ u8 unk_1B;
/* 08 */ fx32 upScale;
/* 0C */ fx32 downScale;
/* 10 */ u16 numVertex; // number of vertices
/* 12 */ u16 numPolygon; // number of polygons
/* 14 */ u16 numTriangle; // number of triangles
/* 16 */ u16 numQuad; // number of quads
/* 18 */ fx16 boundingBoxMin[3]; // bounding box lower vertex
/* 1E */ fx16 boundingBoxMax[3]; // bounding box upper vertex
/* 24 */ s32 unk_38;
/* 28 */ s32 unk_3C;
} G3d_Model_14; // size = 0x2C
// Structure representing the NSBMD model file
typedef struct G3d_Model_ {
/* 00 */ u32 size; // size of the model in bytes
@@ -63,25 +84,9 @@ typedef struct G3d_Model_ {
/* 08 */ u32 offMat; // offset of the material list
/* 0C */ u32 offMesh; // offset of the mesh list
/* 10 */ u32 offInvBMtx; // offset of the InvBindMatrix list
/* 14 */ u8 dummy1;
/* 15 */ u8 scalingHandler; // Determines which of the G3d_gScaleHandlers to use for this model
/* 16 */ u8 textureHandler; // Determines which of the G3d_gTextureHandlers to use for this model
/* 17 */ u8 numBones; // number of nodes
/* 18 */ u8 numMat; // number of materials
/* 19 */ u8 numMesh; // number of meshes
/* 1A */ u8 dummy2[2];
/* 1C */ fx32 upScale;
/* 20 */ fx32 downScale;
/* 24 */ u16 numVertex; // number of vertices
/* 26 */ u16 numPolygon; // number of polygons
/* 28 */ u16 numTriangle; // number of triangles
/* 2A */ u16 numQuad; // number of quads
/* 2C */ fx16 boundingBoxMin[3]; // bounding box lower vertex
/* 32 */ fx16 boundingBoxMax[3]; // bounding box upper vertex
/* 38 */ u8 dummy3[8];
/* 14 */ G3d_Model_14 unk_14;
/* 40 */ G3d_NameList boneList; // bone list
/* 4C */
} G3d_Model;
} G3d_Model; // size = 0x4C
static inline G3d_NameList *G3d_GetBoneList(const G3d_Model *mdl) {
return mdl != NULL ? (G3d_NameList *) &mdl->boneList : NULL;
+5 -5
View File
@@ -84,11 +84,11 @@ void G3d_InitRenderState(G3d_RenderState *renderState, G3d_RenderObject *renderO
renderState->boneList = G3d_GetBoneList(renderObj->model);
renderState->materialList = G3d_GetMat(renderObj->model);
renderState->meshList = G3d_GetMesh(renderObj->model);
renderState->jntScalingHandler = G3d_gScaleHandlers[renderObj->model->scalingHandler];
renderState->jntSRTHandler = G3d_gSRTTransformHandlers[renderObj->model->scalingHandler];
renderState->textureHandler = G3d_gTextureHandlers[renderObj->model->textureHandler];
renderState->upScale = renderObj->model->upScale;
renderState->downScale = renderObj->model->downScale;
renderState->jntScalingHandler = G3d_gScaleHandlers[renderObj->model->unk_14.scalingHandler];
renderState->jntSRTHandler = G3d_gSRTTransformHandlers[renderObj->model->unk_14.scalingHandler];
renderState->textureHandler = G3d_gTextureHandlers[renderObj->model->unk_14.textureHandler];
renderState->upScale = renderObj->model->unk_14.upScale;
renderState->downScale = renderObj->model->unk_14.downScale;
if (renderObj->callbackFunction && renderObj->callbackIdx < 32) {
renderState->callbackFuncs[renderObj->callbackIdx] = renderObj->callbackFunction;