summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJcw87 <Jcw87@users.noreply.github.com>2023-10-10 13:40:37 -0700
committerGitHub <noreply@github.com>2023-10-10 23:40:37 +0300
commit3fa422caac37ca8777c57d8451cdf889a1d850d2 (patch)
tree4bf9fe0501b03a7743cff28970def131e6ebf0e2 /include
parenta64921a5196c1bff0f2a2d1a697db0fa1b882f6e (diff)
m_Do_ext (#1958)
Diffstat (limited to 'include')
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DAnimation.h19
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DJoint.h14
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DModel.h1
-rw-r--r--include/JSystem/J3DGraphBase/J3DSys.h3
-rw-r--r--include/JSystem/JMath/JMath.h1
-rw-r--r--include/Z2AudioLib/Z2SoundObject.h6
-rw-r--r--include/d/com/d_com_inf_game.h5
-rw-r--r--include/d/d_drawlist.h2
-rw-r--r--include/m_Do/m_Do_ext.h79
9 files changed, 87 insertions, 43 deletions
diff --git a/include/JSystem/J3DGraphAnimator/J3DAnimation.h b/include/JSystem/J3DGraphAnimator/J3DAnimation.h
index 00bd2b8655..ae8d86f754 100644
--- a/include/JSystem/J3DGraphAnimator/J3DAnimation.h
+++ b/include/JSystem/J3DGraphAnimator/J3DAnimation.h
@@ -604,22 +604,23 @@ public:
void update();
virtual ~J3DFrameCtrl() {}
- f32 getRate() const { return mRate; }
- f32 getFrame() const { return mFrame; }
- s16 getEnd() const { return mEnd; }
- s16 getStart() const { return mStart; }
u8 getAttribute() const { return mAttribute; }
- u8 getState() const { return mState; }
void setAttribute(u8 attr) { mAttribute = attr; }
- void setEnd(s16 end) { mEnd = end; }
- void setRate(f32 rate) { mRate = rate; }
+ u8 getState() const { return mState; }
+ bool checkState(u8 state) const { return mState & state; }
+ s16 getStart() const { return mStart; }
void setStart(s16 start) {
mStart = start;
mFrame = start;
}
- void setFrame(f32 frame) { mFrame = frame; }
+ s16 getEnd() const { return mEnd; }
+ void setEnd(s16 end) { mEnd = end; }
+ s32 getLoop() { return mLoop; }
void setLoop(s16 loop) { mLoop = loop; }
- bool checkState(u8 state) const { return mState & state; }
+ f32 getRate() const { return mRate; }
+ void setRate(f32 rate) { mRate = rate; }
+ f32 getFrame() const { return mFrame; }
+ void setFrame(f32 frame) { mFrame = frame; }
private:
/* 0x04 */ u8 mAttribute;
diff --git a/include/JSystem/J3DGraphAnimator/J3DJoint.h b/include/JSystem/J3DGraphAnimator/J3DJoint.h
index 6a67e0a940..42bc45d7cc 100644
--- a/include/JSystem/J3DGraphAnimator/J3DJoint.h
+++ b/include/JSystem/J3DGraphAnimator/J3DJoint.h
@@ -14,12 +14,12 @@ public:
/* 8000D948 */ virtual ~J3DMtxCalc();
/* 80014E90 */ virtual void setAnmTransform(J3DAnmTransform*);
- /* 80014E9C */ virtual bool getAnmTransform();
+ /* 80014E9C */ virtual J3DAnmTransform* getAnmTransform();
/* 80014E8C */ virtual void setAnmTransform(u8, J3DAnmTransform*);
- /* 80014E94 */ virtual bool getAnmTransform(u8);
+ /* 80014E94 */ virtual J3DAnmTransform* getAnmTransform(u8);
/* 80014EA4 */ virtual void setWeight(u8, f32);
/* 80014EA8 */ virtual void getWeight(u8) const;
- virtual void init(Vec const& param_0, Mtx*) = 0;
+ virtual void init(const Vec& param_0, const Mtx&) = 0;
virtual void calc() = 0;
static J3DMtxBuffer* getMtxBuffer() { return mMtxBuffer; }
@@ -36,11 +36,11 @@ public:
};
template <class A, class B>
-class J3DMtxCalcNoAnm : public J3DMtxCalcNoAnmBase, public A, public B {
+class J3DMtxCalcNoAnm : public J3DMtxCalcNoAnmBase {
public:
J3DMtxCalcNoAnm() {}
virtual ~J3DMtxCalcNoAnm() {}
- virtual void init(Vec const& param_0, f32 const (&param_1)[3][4]);
+ virtual void init(const Vec& param_0, const Mtx& param_1);
virtual void calc();
};
@@ -93,11 +93,11 @@ private:
}; // Size: 0x5C
struct J3DMtxCalcJ3DSysInitMaya {
- /* 8032ECAC */ static void init(Vec const&, f32 const (&)[3][4]);
+ /* 8032ECAC */ static void init(const Vec&, const Mtx& param_1);
};
struct J3DMtxCalcJ3DSysInitBasic {
- /* 8032EC28 */ static void init(Vec const&, f32 const (&)[3][4]);
+ /* 8032EC28 */ static void init(const Vec&, const Mtx& param_1);
};
struct J3DMtxCalcCalcTransformSoftimage {
diff --git a/include/JSystem/J3DGraphAnimator/J3DModel.h b/include/JSystem/J3DGraphAnimator/J3DModel.h
index 69ad60894c..a8048a1b2c 100644
--- a/include/JSystem/J3DGraphAnimator/J3DModel.h
+++ b/include/JSystem/J3DGraphAnimator/J3DModel.h
@@ -81,6 +81,7 @@ public:
J3DMatPacket* getMatPacket(u16 idx) const { return &mMatPacket[idx]; }
J3DShapePacket* getShapePacket(u16 idx) const { return &mShapePacket[idx]; }
J3DMtxBuffer* getMtxBuffer() const { return mMtxBuffer; }
+ void setScaleFlag(int idx, u8 flag) { mMtxBuffer->setScaleFlag(idx, flag); }
Mtx33* getBumpMtxPtr(int idx) const { return mMtxBuffer->getBumpMtxPtr(idx); }
Mtx33* getNrmMtxPtr() const { return mMtxBuffer->getNrmMtxPtr(); }
Mtx* getDrawMtxPtr() const { return mMtxBuffer->getDrawMtxPtr(); }
diff --git a/include/JSystem/J3DGraphBase/J3DSys.h b/include/JSystem/J3DGraphBase/J3DSys.h
index 914cc2d610..085e3b74fa 100644
--- a/include/JSystem/J3DGraphBase/J3DSys.h
+++ b/include/JSystem/J3DGraphBase/J3DSys.h
@@ -99,6 +99,9 @@ struct J3DSys {
J3DMatPacket* getMatPacket() { return mMatPacket; }
void setMaterialMode(u32 mode) { mMaterialMode = mode; }
+ void setCurrentMtxCalc(J3DMtxCalc * pCalc) { mCurrentMtxCalc = pCalc; }
+ J3DMtxCalc * getCurrentMtxCalc() const { return mCurrentMtxCalc; }
+
void setTexture(J3DTexture* pTex) { mTexture = pTex; }
J3DTexture* getTexture() { return mTexture; }
diff --git a/include/JSystem/JMath/JMath.h b/include/JSystem/JMath/JMath.h
index aa0fbc541e..e305ccc744 100644
--- a/include/JSystem/JMath/JMath.h
+++ b/include/JSystem/JMath/JMath.h
@@ -5,6 +5,7 @@
void JMAMTXApplyScale(const Mtx, Mtx, f32, f32, f32);
void JMAEulerToQuat(s16 param_0, s16 param_1, s16 param_2, Quaternion* param_3);
+void JMAQuatLerp(const Quaternion*, const Quaternion*, f32, Quaternion*);
inline f32 JMAFastReciprocal(f32 value) {
return __fres(value);
diff --git a/include/Z2AudioLib/Z2SoundObject.h b/include/Z2AudioLib/Z2SoundObject.h
index 9394430d50..26f2829bcc 100644
--- a/include/Z2AudioLib/Z2SoundObject.h
+++ b/include/Z2AudioLib/Z2SoundObject.h
@@ -60,7 +60,9 @@ public:
/* 802BEBDC */ virtual void init(Vec*, u8);
- /* 0x20 */ void* field_0x20; // JAUSoundAnimation*
+ void stopAnime() { animation_ = NULL; }
+
+ /* 0x20 */ void* animation_; // JAUSoundAnimation*
/* 0x24 */ int field_0x24;
/* 0x28 */ float field_0x28;
/* 0x2C */ float field_0x2c;
@@ -68,7 +70,7 @@ public:
/* 0x34 */ int field_0x34;
/* 0x38 */ int field_0x38;
/* 0x3C */ int field_0x3c;
- /* 0x40 */ int field_0x40;
+ /* 0x40 */ int curSoundIndex_;
/* 0x44 */ bool field_0x44;
};
diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h
index fc30720ddc..c24fda060e 100644
--- a/include/d/com/d_com_inf_game.h
+++ b/include/d/com/d_com_inf_game.h
@@ -3552,6 +3552,11 @@ inline void dComIfGd_setListIndScreen() {
g_dComIfG_gameInfo.drawlist.setXluListP0();
}
+inline void dComIfGd_setListZxlu() {
+ g_dComIfG_gameInfo.drawlist.setOpaListZxlu();
+ g_dComIfG_gameInfo.drawlist.setXluListZxlu();
+}
+
inline J3DDrawBuffer* dComIfGd_getOpaListBG() {
return g_dComIfG_gameInfo.drawlist.getOpaListBG();
}
diff --git a/include/d/d_drawlist.h b/include/d/d_drawlist.h
index bf13074855..c1ae36e561 100644
--- a/include/d/d_drawlist.h
+++ b/include/d/d_drawlist.h
@@ -333,6 +333,8 @@ public:
void setXluList2DScreen() { setXluDrawList(mDrawBuffers[DB_LIST_2D_SCREEN]); }
void setXluListP0() { setXluDrawList(mDrawBuffers[DB_LIST_P0]); }
void setOpaListP0() { setOpaDrawList(mDrawBuffers[DB_LIST_P0]); }
+ void setOpaListZxlu() { setOpaDrawList(mDrawBuffers[DB_LIST_Z_XLU]); }
+ void setXluListZxlu() { setXluDrawList(mDrawBuffers[DB_LIST_Z_XLU]); }
void peekZdata() { mPeekZ.peekData(); }
void entryZSortListZxlu(J3DPacket* i_packet, cXyz& param_1) {
diff --git a/include/m_Do/m_Do_ext.h b/include/m_Do/m_Do_ext.h
index 5ccf6fd623..6c8215cabd 100644
--- a/include/m_Do/m_Do_ext.h
+++ b/include/m_Do/m_Do_ext.h
@@ -247,18 +247,22 @@ public:
/* 0x4 */ mDoExt_invJntPacket* mpPackets;
};
-class mDoExt_zelAnime : public Z2SoundObjAnime {};
+class mDoExt_zelAnime : public Z2SoundObjAnime {
+public:
+ void* field_0x48;
+};
class mDoExt_McaMorfCallBack1_c {
public:
virtual void execute(u16, J3DTransformInfo*) = 0;
};
-class mDoExt_McaMorfCallBack2_c {};
+class mDoExt_McaMorfCallBack2_c {
+public:
+ virtual void execute(u16) = 0;
+};
-class mDoExt_morf_c {
- // : public J3DMtxCalcNoAnm<J3DMtxCalcCalcTransformMaya, J3DMtxCalcJ3DSysInitMaya>
- // inheritance causing issues, fix later
+class mDoExt_morf_c : public J3DMtxCalcNoAnm<J3DMtxCalcCalcTransformMaya, J3DMtxCalcJ3DSysInitMaya> {
public:
/* 8000F950 */ mDoExt_morf_c();
/* 8000FB7C */ void setMorf(f32 i_morf);
@@ -266,20 +270,26 @@ public:
/* 8000FAE8 */ virtual ~mDoExt_morf_c();
- void setPlaySpeed(f32 speed) { mFrameCtrl.setRate(speed); }
- void setFrame(f32 frame) { mFrameCtrl.setFrame((s16)frame); }
- f32 getPlaySpeed() { return mFrameCtrl.getRate(); }
- f32 getFrame() { return mFrameCtrl.getFrame(); }
- u8 getPlayMode() { return mFrameCtrl.getAttribute(); }
- bool isLoop() { return mFrameCtrl.checkState(2); }
- f32 getEndFrame() { return mFrameCtrl.getEnd(); }
- BOOL checkFrame(f32 frame) { return mFrameCtrl.checkPass(frame); }
J3DAnmTransform* getAnm() { return mpAnm; }
void changeAnm(J3DAnmTransform* anm) { mpAnm = anm; }
-
+ u8 getPlayMode() { return mFrameCtrl.getAttribute(); }
+ void setPlayMode(int mode) { mFrameCtrl.setAttribute(mode); }
bool isStop() {
return mFrameCtrl.checkState(1) || mFrameCtrl.getRate() == 0.0f;
}
+ bool isLoop() { return mFrameCtrl.checkState(2); }
+ f32 getStartFrame() { return mFrameCtrl.getStart(); }
+ void setStartFrame(f32 frame) { mFrameCtrl.setStart(frame); }
+ f32 getEndFrame() { return mFrameCtrl.getEnd(); }
+ void setEndFrame(f32 frame) { mFrameCtrl.setEnd(frame); }
+ f32 getLoopFrame() { return mFrameCtrl.getLoop(); }
+ void setLoopFrame(f32 frame) { mFrameCtrl.setLoop(frame); }
+ f32 getPlaySpeed() { return mFrameCtrl.getRate(); }
+ void setPlaySpeed(f32 speed) { mFrameCtrl.setRate(speed); }
+ f32 getFrame() { return mFrameCtrl.getFrame(); }
+ void setFrame(f32 frame) { mFrameCtrl.setFrame((s16)frame); }
+ void setFrameF(f32 frame) { mFrameCtrl.setFrame(frame); }
+ BOOL checkFrame(f32 frame) { return mFrameCtrl.checkPass(frame); }
/* 0x04 */ J3DModel* mpModel;
/* 0x08 */ J3DAnmTransform* mpAnm;
@@ -329,7 +339,7 @@ public:
/* 8000FC4C */ mDoExt_McaMorf(J3DModelData*, mDoExt_McaMorfCallBack1_c*,
mDoExt_McaMorfCallBack2_c*, J3DAnmTransform*, int, f32, int, int,
int, void*, u32, u32);
- /* 8000FD94 */ void create(J3DModelData*, mDoExt_McaMorfCallBack1_c*,
+ /* 8000FD94 */ int create(J3DModelData*, mDoExt_McaMorfCallBack1_c*,
mDoExt_McaMorfCallBack2_c*, J3DAnmTransform*, int, f32, int, int,
int, void*, u32, u32);
/* 8001037C */ void setAnm(J3DAnmTransform*, int, f32, f32, f32, f32, void*);
@@ -386,9 +396,12 @@ public:
/* 8000F848 */ void initOldFrameMorf(f32, u16, u16);
/* 8000F8CC */ void decOldFrameMorfCounter();
+ bool getOldFrameFlg() { return mOldFrameFlg; }
+ void onOldFrameFlg() { mOldFrameFlg = true; }
f32 getOldFrameRate() { return mOldFrameRate; }
J3DTransformInfo* getOldFrameTransInfo(int i) { return &mOldFrameTransInfo[i]; }
u16 getOldFrameStartJoint() { return mOldFrameStartJoint; }
+ u16 getOldFrameEndJoint() { return mOldFrameEndJoint; }
Quaternion* getOldFrameQuaternion(int i_no) { return &mOldFrameQuaternion[i_no]; }
private:
@@ -404,23 +417,39 @@ private:
/* 0x20 */ Quaternion* mOldFrameQuaternion;
}; // Size: 0x24
-struct mDoExt_MtxCalcAnmBlendTblOld
- : public J3DMtxCalcNoAnm<J3DMtxCalcCalcTransformMaya, J3DMtxCalcJ3DSysInitMaya> {
- /* 80014EB0 */ virtual ~mDoExt_MtxCalcAnmBlendTblOld();
- /* 8000F4B0 */ virtual void calc();
-
- /* 0x4 */ int mNum;
- /* 0x8 */ mDoExt_AnmRatioPack* mAnmRatio;
-}; // Size: 0xC
+struct mDoExt_MtxCalcAnmBlendTbl : public J3DMtxCalcNoAnm<J3DMtxCalcCalcTransformMaya, J3DMtxCalcJ3DSysInitMaya> {
+ mDoExt_MtxCalcAnmBlendTbl(int num, mDoExt_AnmRatioPack* anmRatio) {
+ mNum = num;
+ mAnmRatio = anmRatio;
+ for (int i = 0; i < mNum; i++) {
+ if (!mAnmRatio[i].getAnmTransform()) {
+ mAnmRatio[i].setRatio(0.0f);
+ }
+ }
+ }
-struct mDoExt_MtxCalcAnmBlendTbl : public mDoExt_MtxCalcAnmBlendTblOld {
/* 800D00BC */ J3DAnmTransform* getAnm(int);
/* 80014F3C */ virtual ~mDoExt_MtxCalcAnmBlendTbl();
/* 8000F26C */ virtual void calc();
+ /* 0x4 */ int mNum;
+ /* 0x8 */ mDoExt_AnmRatioPack* mAnmRatio;
+}; // Size: 0x0C
+
+STATIC_ASSERT(sizeof(mDoExt_MtxCalcAnmBlendTbl) == 0x0C);
+
+struct mDoExt_MtxCalcAnmBlendTblOld : public mDoExt_MtxCalcAnmBlendTbl {
+ mDoExt_MtxCalcAnmBlendTblOld(mDoExt_MtxCalcOldFrame* oldFrame, int num, mDoExt_AnmRatioPack* anmRatio) : mDoExt_MtxCalcAnmBlendTbl(num, anmRatio) {
+ mOldFrame = oldFrame;
+ }
+ /* 80014EB0 */ virtual ~mDoExt_MtxCalcAnmBlendTblOld();
+ /* 8000F4B0 */ virtual void calc();
+
/* 0xC */ mDoExt_MtxCalcOldFrame* mOldFrame;
-};
+}; // Size: 0x10
+
+STATIC_ASSERT(sizeof(mDoExt_MtxCalcAnmBlendTblOld) == 0x10);
class mDoExt_3Dline_c {
public: