diff --git a/include/JSystem/J3DGraphAnimator/J3DSkinDeform.h b/include/JSystem/J3DGraphAnimator/J3DSkinDeform.h index 90733c1a2..d68d692c1 100644 --- a/include/JSystem/J3DGraphAnimator/J3DSkinDeform.h +++ b/include/JSystem/J3DGraphAnimator/J3DSkinDeform.h @@ -14,7 +14,7 @@ class J3DAnmCluster; class J3DDeformData { public: J3DDeformData(); - void offAllFlag(u32); + void clear(); void deform(J3DVertexBuffer*); void deform(J3DModel*); void setAnm(J3DAnmCluster*); @@ -50,18 +50,13 @@ struct J3DSkinNList { class J3DSkinDeform { public: J3DSkinDeform(); - void initSkinInfo(J3DModelData*); int initMtxIndexArray(J3DModelData*); void changeFastSkinDL(J3DModelData*); - // void calcNrmMtx(J3DMtxBuffer*); - void transformVtxPosNrm(J3DModelData*); - // void calcAnmInvJointMtx(J3DMtxBuffer*); - // void deformFastVtxPos_F32(J3DVertexBuffer*, J3DMtxBuffer*) const; - // void deformFastVtxNrm_F32(J3DVertexBuffer*, J3DMtxBuffer*) const; - // void deformVtxPos_F32(J3DVertexBuffer*, J3DMtxBuffer*) const; - // void deformVtxPos_S16(J3DVertexBuffer*, J3DMtxBuffer*) const; - void deformVtxNrm_F32(J3DVertexBuffer*) const; - void deformVtxNrm_S16(J3DVertexBuffer*) const; + void calcNrmMtx(J3DModel*); + void deformVtxPos_F32(J3DModel*) const; + void deformVtxPos_S16(J3DModel*) const; + void deformVtxNrm_F32(J3DModel*) const; + void deformVtxNrm_S16(J3DModel*) const; void setNrmMtx(int i, MtxP mtx) { J3DPSMtx33CopyFrom34(mtx, (Mtx3P)mNrmMtx[i]); } @@ -71,7 +66,7 @@ public: bool checkFlag(u32 flag) { return mFlags & flag; } virtual void deform(J3DModel*); - virtual ~J3DSkinDeform(); + virtual ~J3DSkinDeform() {} static u16* sWorkArea_WEvlpMixMtx[1024]; static f32* sWorkArea_WEvlpMixWeight[1024]; @@ -90,10 +85,12 @@ STATIC_ASSERT(sizeof(J3DSkinDeform) == 0x18); class J3DDeformer { public: J3DDeformer(J3DDeformData*); + void clear(); void deform(J3DVertexBuffer*, u16, f32*); void deform(J3DVertexBuffer*, u16); void deform_VtxPosF32(J3DVertexBuffer*, J3DCluster*, J3DClusterKey*, f32*); void deform_VtxNrmF32(J3DVertexBuffer*, J3DCluster*, J3DClusterKey*, f32*); + void normalize(f32*); void normalizeWeight(int, f32*); private: diff --git a/src/JSystem/J3DGraphAnimator/J3DCluster.cpp b/src/JSystem/J3DGraphAnimator/J3DCluster.cpp index d99920b86..89533c3e0 100644 --- a/src/JSystem/J3DGraphAnimator/J3DCluster.cpp +++ b/src/JSystem/J3DGraphAnimator/J3DCluster.cpp @@ -4,21 +4,27 @@ // #include "JSystem/J3DGraphAnimator/J3DCluster.h" -#include "dolphin/types.h" +#include "JSystem/J3DGraphAnimator/J3DModel.h" +#include "JSystem/J3DGraphAnimator/J3DSkinDeform.h" /* 802F37C4-802F37E4 .text clear__13J3DDeformDataFv */ void J3DDeformData::clear() { - /* Nonmatching */ + mClusterNum = 0; + mClusterPointer = NULL; + mClusterKeyNum = 0; + mClusterKeyPointer = NULL; + field_0x20 = 0; + field_0x24 = 0; } /* 802F37E4-802F3814 .text __ct__13J3DDeformDataFv */ J3DDeformData::J3DDeformData() { - /* Nonmatching */ + clear(); } /* 802F3814-802F3838 .text deform__13J3DDeformDataFP8J3DModel */ -void J3DDeformData::deform(J3DModel*) { - /* Nonmatching */ +void J3DDeformData::deform(J3DModel* model) { + deform(model->getVertexBuffer()); } /* 802F3838-802F3900 .text deform__13J3DDeformDataFP15J3DVertexBuffer */ @@ -28,36 +34,44 @@ void J3DDeformData::deform(J3DVertexBuffer*) { /* 802F3900-802F3920 .text clear__11J3DDeformerFv */ void J3DDeformer::clear() { - /* Nonmatching */ + mDeformData = NULL; + mAnmCluster = NULL; + field_0x8 = 0; + field_0xc = 0; + mFlags = 3; } /* 802F3920-802F3A08 .text deform__11J3DDeformerFP15J3DVertexBufferUs */ -void J3DDeformer::deform(J3DVertexBuffer*, unsigned short) { +void J3DDeformer::deform(J3DVertexBuffer*, u16) { /* Nonmatching */ } /* 802F3A08-802F3FA8 .text deform__11J3DDeformerFP15J3DVertexBufferUsPf */ -void J3DDeformer::deform(J3DVertexBuffer*, unsigned short, float*) { +void J3DDeformer::deform(J3DVertexBuffer*, u16, f32*) { /* Nonmatching */ } /* 802F3FA8-802F4064 .text normalize__11J3DDeformerFPf */ -void J3DDeformer::normalize(float*) { +void J3DDeformer::normalize(f32*) { /* Nonmatching */ } /* 802F4064-802F40C0 .text normalizeWeight__11J3DDeformerFiPf */ -void J3DDeformer::normalizeWeight(int, float*) { +void J3DDeformer::normalizeWeight(int, f32*) { /* Nonmatching */ } /* 802F40C0-802F40F0 .text __ct__13J3DSkinDeformFv */ J3DSkinDeform::J3DSkinDeform() { - /* Nonmatching */ + mPosData = NULL; + mNrmData = NULL; + mNrmMtx = NULL; + mFlags = 3; + field_0x14 = 1; } /* 802F40F0-802F44E8 .text initMtxIndexArray__13J3DSkinDeformFP12J3DModelData */ -void J3DSkinDeform::initMtxIndexArray(J3DModelData*) { +int J3DSkinDeform::initMtxIndexArray(J3DModelData*) { /* Nonmatching */ } @@ -95,8 +109,3 @@ void J3DSkinDeform::deformVtxNrm_S16(J3DModel*) const { void J3DSkinDeform::deform(J3DModel*) { /* Nonmatching */ } - -/* 802F4D78-802F4DC0 .text __dt__13J3DSkinDeformFv */ -J3DSkinDeform::~J3DSkinDeform() { - /* Nonmatching */ -}