mirror of
https://github.com/zeldaret/tp
synced 2026-07-12 07:37:59 -04:00
more simple J2D/J3D funcs (#166)
* more simple J2D/J3D funcs * JPABaseShape constructor * fmt Co-authored-by: lepelog <25211966+lepelog@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
f7916ebde1
commit
c15d8fcb3e
@@ -10,7 +10,7 @@ class J3DMtxBuffer;
|
||||
|
||||
class J3DMtxCalc {
|
||||
public:
|
||||
/* 80325D1C */ void setMtxBuffer(J3DMtxBuffer*);
|
||||
/* 80325D1C */ static void setMtxBuffer(J3DMtxBuffer*);
|
||||
|
||||
/* 8000D948 */ virtual ~J3DMtxCalc();
|
||||
/* 80014E90 */ virtual void setAnmTransform(J3DAnmTransform*);
|
||||
@@ -52,11 +52,12 @@ public:
|
||||
u8 getScaleCompensate() const { return mScaleCompensate; }
|
||||
J3DJoint* getYounger() { return mYounger; }
|
||||
void setYounger(J3DJoint* pYounger) { mYounger = pYounger; }
|
||||
void setCurrentMtxCalc(J3DMtxCalc* pMtxCalc) { mCurrentMtxCalc = pMtxCalc; }
|
||||
|
||||
static J3DMtxCalc* mCurrentMtxCalc;
|
||||
|
||||
private:
|
||||
/* 0x00 */ void* field_0x0;
|
||||
/* 0x00 */ void* mCallBackUserData;
|
||||
/* 0x04 */ J3DJointCallBack mCallBack;
|
||||
/* 0x08 */ void* field_0x8;
|
||||
/* 0x0C */ J3DJoint* mChild;
|
||||
@@ -65,7 +66,7 @@ private:
|
||||
/* 0x16 */ u8 mMtxType;
|
||||
/* 0x17 */ u8 mScaleCompensate;
|
||||
/* 0x18 */ J3DTransformInfo mTransformInfo;
|
||||
/* 0x38 */ f32 field_0x38;
|
||||
/* 0x38 */ f32 mBoundingSphereRadius;
|
||||
/* 0x3C */ Vec mMin;
|
||||
/* 0x48 */ Vec mMax;
|
||||
/* 0x54 */ J3DMtxCalc* mMtxCalc;
|
||||
|
||||
@@ -32,7 +32,11 @@ public:
|
||||
/* 80325D24 */ virtual ~J3DJointTree();
|
||||
|
||||
u16 getWEvlpMtxNum() const { return mWEvlpMtxNum; }
|
||||
u16 getJointNum() const { return mJointNum; }
|
||||
u16 getDrawMtxNum() const { return mDrawMtxData.mEntryNum; }
|
||||
J3DJoint* getRootNode() { return mRootNode; }
|
||||
J3DJoint* getJointNodePointer(u16 idx) const { return mJointNodePointer[idx]; }
|
||||
J3DMtxCalc* getBasicMtxCalc() const { return mBasicMtxCalc; }
|
||||
|
||||
private:
|
||||
/* 0x04 */ J3DModelHierarchy* mHierarchy;
|
||||
@@ -43,13 +47,13 @@ private:
|
||||
/* 0x18 */ J3DJoint** mJointNodePointer;
|
||||
/* 0x1C */ u16 mJointNum;
|
||||
/* 0x1E */ u16 mWEvlpMtxNum;
|
||||
/* 0x20 */ u8 mWEvlpMixMtxNum;
|
||||
/* 0x20 */ u32 mWEvlpMixMtxNum;
|
||||
/* 0x24 */ s32 mWEvlpMixIndex;
|
||||
/* 0x28 */ s32 mWEvlpMixWeight;
|
||||
/* 0x2C */ Mtx* mInvJointMtx;
|
||||
/* 0x30 */ s32 mWEvlpImportantMtxIdx;
|
||||
/* 0x34 */ J3DDrawMtxData mDrawMtxNum;
|
||||
/* 0x40 */ u8 field_0x40[4];
|
||||
/* 0x34 */ J3DDrawMtxData mDrawMtxData;
|
||||
/* 0x40 */ u32 field_0x40;
|
||||
/* 0x44 */ JUTNameTab* mJointName;
|
||||
}; // Size: 0x48
|
||||
|
||||
|
||||
@@ -15,6 +15,17 @@ enum J3DMdlFlag {
|
||||
/* 0x8 */ J3DMdlFlag_SkinNrmCpu = 0x8,
|
||||
};
|
||||
|
||||
struct J3DUnkCalc1 {
|
||||
virtual void calc(J3DModel* model);
|
||||
};
|
||||
|
||||
struct J3DUnkCalc2 {
|
||||
virtual void unk();
|
||||
virtual void calc(J3DModelData* mpModelData);
|
||||
};
|
||||
|
||||
typedef void (*J3DCalcCallBack)(J3DModel*, u32 timing);
|
||||
|
||||
class J3DModel {
|
||||
public:
|
||||
/* 800CFFF4 */ void setBaseTRMtx(f32 (*)[4]);
|
||||
@@ -45,19 +56,25 @@ public:
|
||||
/* 80328350 */ virtual ~J3DModel();
|
||||
|
||||
J3DModelData* getModelData() { return mModelData; }
|
||||
|
||||
void onFlag(u32 flag) { mFlags |= flag; }
|
||||
void offFlag(u32 flag) { mFlags &= ~flag; }
|
||||
bool checkFlag(u32 flag) const { return (mFlags & flag) ? true : false; }
|
||||
Mtx& getBaseTRMtx() { return mBaseTransformMtx; }
|
||||
void i_setBaseTRMtx(Mtx m) { PSMTXCopy(m, mBaseTransformMtx); }
|
||||
u32 getMtxCalcMode() const { return mFlags & 0x03; }
|
||||
J3DVertexBuffer* getVertexBuffer() const { return (J3DVertexBuffer*)&mVertexBuffer; }
|
||||
J3DShapePacket* getShapePacket(u16 idx) const { return &mShapePacket[idx]; }
|
||||
Mtx33* getBumpMtxPtr(int idx) const { return mMtxBuffer->getBumpMtxPtr(idx); }
|
||||
Mtx33* getNrmMtxPtr() const { return mMtxBuffer->getNrmMtxPtr(); }
|
||||
|
||||
// is there a better way to handle inlines with same name as non-inlines?
|
||||
MtxP i_getAnmMtx(int p1) { return mMtxBuffer->getAnmMtx(p1); }
|
||||
|
||||
/* 0x04 */ J3DModelData* mModelData;
|
||||
/* 0x08 */ u32 mFlags;
|
||||
/* 0x0C */ u32 field_0x0c;
|
||||
/* 0x10 */ int field_0x10;
|
||||
/* 0x0C */ u32 mDiffFlag;
|
||||
/* 0x10 */ J3DCalcCallBack mCalcCallBack;
|
||||
/* 0x14 */ u32 mUserArea;
|
||||
/* 0x18 */ Vec mBaseScale;
|
||||
/* 0x24 */ Mtx mBaseTransformMtx;
|
||||
@@ -65,12 +82,12 @@ public:
|
||||
/* 0x84 */ J3DMtxBuffer* mMtxBuffer;
|
||||
/* 0x88 */ J3DVertexBuffer mVertexBuffer;
|
||||
/* 0xC0 */ J3DMatPacket* mMatPacket;
|
||||
/* 0xC4 */ J3DShapePacket** mShapePacket;
|
||||
/* 0xC4 */ J3DShapePacket* mShapePacket;
|
||||
/* 0xC8 */ J3DDeformData* mDeformData;
|
||||
/* 0xCC */ J3DSkinDeform* mSkinDeform;
|
||||
/* 0xD0 */ J3DVtxColorCalc* mVtxColorCalc;
|
||||
/* 0xD4 */ int field_0xd4;
|
||||
/* 0xD8 */ int field_0xd8;
|
||||
/* 0xD4 */ J3DUnkCalc1* mUnkCalc1;
|
||||
/* 0xD8 */ J3DUnkCalc2* mUnkCalc2;
|
||||
};
|
||||
|
||||
#endif /* J3DMODEL_H */
|
||||
|
||||
@@ -25,6 +25,8 @@ public:
|
||||
J3DVertexData& getVertexData() { return mVertexData; }
|
||||
u16 getShapeNum() const { return mShapeTable.getShapeNum(); }
|
||||
u16 getMaterialNum() const { return mMaterialTable.getMaterialNum(); }
|
||||
u16 getJointNum() const { return mJointTree.getJointNum(); }
|
||||
u16 getDrawMtxNum() const { return mJointTree.getDrawMtxNum(); }
|
||||
J3DMaterial* getMaterialNodePointer(u16 idx) const {
|
||||
return mMaterialTable.getMaterialNodePointer(idx);
|
||||
}
|
||||
@@ -36,14 +38,15 @@ public:
|
||||
void* getVtxPosArray() const { return mVertexData.getVtxPosArray(); }
|
||||
void* getVtxNrmArray() const { return mVertexData.getVtxNrmArray(); }
|
||||
_GXColor* getVtxColorArray(u8 idx) const { return mVertexData.getVtxColorArray(idx); }
|
||||
bool checkFlag(u32 flag) const { return (mFlags & flag) ? true : false; }
|
||||
bool checkBBoardFlag() const { return field_0xe == 1; }
|
||||
bool checkFlag(u32 flag) const { return !!(mFlags & flag); }
|
||||
bool checkBumpFlag() const { return mbHasBumpArray; }
|
||||
bool checkBBoardFlag() const { return mbHasBillboard == 1; }
|
||||
|
||||
private:
|
||||
/* 0x04 */ u32 field_0x4;
|
||||
/* 0x04 */ void* mpRawData;
|
||||
/* 0x08 */ u32 mFlags;
|
||||
/* 0x0C */ u16 field_0xc;
|
||||
/* 0x0E */ u16 field_0xe;
|
||||
/* 0x0C */ u16 mbHasBumpArray;
|
||||
/* 0x0E */ u16 mbHasBillboard;
|
||||
/* 0x10 */ J3DJointTree mJointTree;
|
||||
/* 0x58 */ J3DMaterialTable mMaterialTable;
|
||||
/* 0x78 */ J3DShapeTable mShapeTable;
|
||||
|
||||
@@ -24,9 +24,16 @@ public:
|
||||
/* 80326D3C */ void calcNrmMtx();
|
||||
/* 80326EF0 */ void calcBBoardMtx();
|
||||
|
||||
MtxP getAnmMtx(int idx) const { return *(mMatrices[0] + idx); }
|
||||
MtxP getAnmMtx(int idx) const { return mpAnmMtx[idx]; }
|
||||
|
||||
void setScaleFlag(int idx, u8 flag) { mScaleFlag[idx] = flag; }
|
||||
void setScaleFlag(int idx, u8 flag) { mScaleFlagArray[idx] = flag; }
|
||||
u32* getCurrentViewNoPtr() { return &mCurrentViewNo; }
|
||||
u8* getScaleFlagArray() const { return mScaleFlagArray; }
|
||||
Mtx** getDrawMtxPtrPtr() const { return mpDrawMtxArr; }
|
||||
Mtx33** getNrmMtxPtrPtr() const { return mpNrmMtxArr; }
|
||||
Mtx33* getNrmMtxPtr() const { return mpNrmMtxArr[mCurrentViewNo]; }
|
||||
Mtx33** getBumpMtxPtrPtr() const { return mpBumpMtxArr; }
|
||||
Mtx33* getBumpMtxPtr(int idx) const { return mpBumpMtxArr[idx]; }
|
||||
|
||||
static Mtx sNoUseDrawMtx;
|
||||
static Mtx33 sNoUseNrmMtx;
|
||||
@@ -35,14 +42,18 @@ public:
|
||||
|
||||
private:
|
||||
/* 0x00 */ J3DJointTree* mJointTree;
|
||||
/* 0x04 */ u8* mScaleFlag;
|
||||
/* 0x04 */ u8* mScaleFlagArray;
|
||||
/* 0x08 */ u8* mEnvScaleFlag;
|
||||
/* 0x0C */ Mtx* mMatrices[5]; // fix this later
|
||||
/* 0x20 */ Mtx33* mpNrmMtxPtrPtr;
|
||||
/* 0x24 */ Mtx** field_0x24;
|
||||
/* 0x28 */ Mtx** mpBumpMtxPtr;
|
||||
/* 0x2C */ u32 field_0x2c;
|
||||
/* 0x30 */ u32* mCurrentViewNoPtr;
|
||||
/* 0x0C */ Mtx* mpAnmMtx;
|
||||
/* 0x10 */ Mtx* mpWeightEnvMtx;
|
||||
/* 0x14 */ Mtx** mpOldDrawMtxArr;
|
||||
/* 0x18 */ Mtx** mpDrawMtxArr;
|
||||
/* 0x1C */ Mtx33** mpOldNrmMtxArr;
|
||||
/* 0x20 */ Mtx33** mpNrmMtxArr;
|
||||
/* 0x24 */ u32 field_0x24;
|
||||
/* 0x28 */ Mtx33** mpBumpMtxArr;
|
||||
/* 0x2C */ u32 mFlags;
|
||||
/* 0x30 */ u32 mCurrentViewNo;
|
||||
/* 0x34 */ Mtx** mUserAnmMtx;
|
||||
|
||||
public:
|
||||
|
||||
Reference in New Issue
Block a user