nodeCallBack attempt

This commit is contained in:
Pheenoh
2023-01-06 08:44:50 -07:00
parent f367d21472
commit 42a6a6ebca
7 changed files with 72 additions and 19 deletions
+17 -3
View File
@@ -24,6 +24,19 @@ struct J3DUnkCalc2 {
virtual void calc(J3DModelData* mpModelData);
};
struct UserArea {
u8 field_0x00[0x60e];
s16 field_0x60e;
s16 field_0x610;
s16 field_0x612;
u8 field_0x614[0x14];
s16 field_0x628;
s16 field_0x62a;
u8 field_0x62c[0x12];
s16 field_0x63e;
s16 field_0x640;
};
typedef void (*J3DCalcCallBack)(J3DModel*, u32 timing);
class J3DModel {
@@ -77,18 +90,19 @@ public:
Mtx33* getNrmMtxPtr() const { return mMtxBuffer->getNrmMtxPtr(); }
Mtx* getDrawMtxPtr() const { return mMtxBuffer->getDrawMtxPtr(); }
void setBaseScale(const Vec& scale) { mBaseScale = scale; }
void setUserArea(u32 area) { mUserArea = area; }
u32 getUserArea() const { return mUserArea; }
void setUserArea(UserArea* area) { mUserArea = area; }
UserArea* getUserArea() const { return mUserArea; }
Vec* getBaseScale() { return &mBaseScale; }
// is there a better way to handle inlines with same name as non-inlines?
MtxP i_getAnmMtx(int p1) { return mMtxBuffer->getAnmMtx(p1); }
void setAnmMtx(int p1, Mtx mtx) { return mMtxBuffer->setAnmMtx(p1, mtx); }
/* 0x04 */ J3DModelData* mModelData;
/* 0x08 */ u32 mFlags;
/* 0x0C */ u32 mDiffFlag;
/* 0x10 */ J3DCalcCallBack mCalcCallBack;
/* 0x14 */ u32 mUserArea;
/* 0x14 */ UserArea* mUserArea;
/* 0x18 */ Vec mBaseScale;
/* 0x24 */ Mtx mBaseTransformMtx;
/* 0x54 */ Mtx mInternalView;
@@ -25,6 +25,7 @@ public:
/* 80326EF0 */ void calcBBoardMtx();
MtxP getAnmMtx(int idx) const { return mpAnmMtx[idx]; }
void setAnmMtx(int idx, Mtx mtx) { PSMTXCopy(mtx,mpAnmMtx[idx]); }
void setScaleFlag(int idx, u8 flag) { mpScaleFlagArr[idx] = flag; }
u32* getCurrentViewNoPtr() { return &mCurrentViewNo; }
+15 -1
View File
@@ -15,8 +15,9 @@ void mDoMtx_ZXYrotM(Mtx, s16, s16, s16);
void mDoMtx_ZrotS(Mtx, s16);
void mDoMtx_YrotS(Mtx, s16);
void mDoMtx_XrotS(Mtx, s16);
void mDoMtx_XrotM(Mtx mtx, s16 x);
void mDoMtx_XrotM(Mtx, s16);
void mDoMtx_YrotM(Mtx, s16);
void mDoMtx_ZrotM(Mtx, s16);
void mDoMtx_MtxToRot(CMtxP, csXyz*);
void mDoMtx_lookAt(f32 (*param_0)[4], Vec const* param_1, Vec const* param_2, s16 param_3);
void mDoMtx_concatProjView(f32 const (*param_0)[4], f32 const (*param_1)[4], f32 (*param_2)[4]);
@@ -37,6 +38,19 @@ inline void mDoMtx_trans(Mtx m, f32 x, f32 y, f32 z) {
PSMTXTrans(m,x,y,z);
}
inline void cMtx_XrotM(Mtx mtx, s16 x) {
mDoMtx_XrotM(mtx, x);
}
inline void cMtx_YrotM(Mtx mtx, s16 y) {
mDoMtx_YrotM(mtx, y);
}
inline void cMtx_ZrotM(Mtx mtx, s16 z) {
mDoMtx_ZrotM(mtx, z);
}
class mDoMtx_stack_c {
public:
/* 8000CCC8 */ static bool push();