mirror of
https://github.com/zeldaret/tp
synced 2026-07-11 15:28:38 -04:00
nodeCallBack attempt
This commit is contained in:
@@ -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
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user