diff options
| author | Jcw87 <Jcw87@users.noreply.github.com> | 2023-10-10 13:40:37 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-10-10 23:40:37 +0300 |
| commit | 3fa422caac37ca8777c57d8451cdf889a1d850d2 (patch) | |
| tree | 4bf9fe0501b03a7743cff28970def131e6ebf0e2 /include | |
| parent | a64921a5196c1bff0f2a2d1a697db0fa1b882f6e (diff) | |
m_Do_ext (#1958)
Diffstat (limited to 'include')
| -rw-r--r-- | include/JSystem/J3DGraphAnimator/J3DAnimation.h | 19 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphAnimator/J3DJoint.h | 14 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphAnimator/J3DModel.h | 1 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphBase/J3DSys.h | 3 | ||||
| -rw-r--r-- | include/JSystem/JMath/JMath.h | 1 | ||||
| -rw-r--r-- | include/Z2AudioLib/Z2SoundObject.h | 6 | ||||
| -rw-r--r-- | include/d/com/d_com_inf_game.h | 5 | ||||
| -rw-r--r-- | include/d/d_drawlist.h | 2 | ||||
| -rw-r--r-- | include/m_Do/m_Do_ext.h | 79 |
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 (¶m_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: |
