mirror of
https://github.com/zeldaret/st
synced 2026-07-06 21:52:49 -04:00
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:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user