diff options
Diffstat (limited to 'include')
51 files changed, 961 insertions, 490 deletions
diff --git a/include/DynamicLink.h b/include/DynamicLink.h index 638eb61937..36c91d44e0 100644 --- a/include/DynamicLink.h +++ b/include/DynamicLink.h @@ -1,16 +1,16 @@ #ifndef DYNAMICLINK_H #define DYNAMICLINK_H -#include "dolphin/types.h" +#include "JSystem/JKernel/JKRFileCache.h" #include "dolphin/os/OSLink.h" +#include "dolphin/types.h" #include "m_Do/m_Do_dvd_thread.h" -#include "JSystem/JKernel/JKRFileCache.h" struct DynamicModuleControlBase { - /* 0x00 */u16 mLinkCount; - /* 0x02 */u16 mDoLinkCount; - /* 0x04 */DynamicModuleControlBase* mPrev; - /* 0x08 */DynamicModuleControlBase* mNext; + /* 0x00 */ u16 mLinkCount; + /* 0x02 */ u16 mDoLinkCount; + /* 0x04 */ DynamicModuleControlBase* mPrev; + /* 0x08 */ DynamicModuleControlBase* mNext; /* 0x0C */ /*vtable*/ /* 802621CC */ virtual ~DynamicModuleControlBase(); @@ -30,9 +30,8 @@ struct DynamicModuleControlBase { /* 802623EC */ bool load_async(); /* 8026242C */ bool force_unlink(); - static inline DynamicModuleControlBase* getFirstClass() {return mFirst;} - inline DynamicModuleControlBase* getNextClass() {return mNext;} - + static inline DynamicModuleControlBase* getFirstClass() { return mFirst; } + inline DynamicModuleControlBase* getNextClass() { return mNext; } static DynamicModuleControlBase* mFirst; static DynamicModuleControlBase* mLast; @@ -54,21 +53,20 @@ struct DynamicModuleControl : DynamicModuleControlBase { /* 802626D0 */ static JKRArchive* mountCallback(void*); /* 8026275C */ bool initialize(); /* 80262794 */ static void* callback(void*); - - /* 0x10 */OSModuleInfo* mModule; - /* 0x14 */void* mBss; - /* 0x18 */u32 unk_24; - /* 0x1c */const char* mName; - /* 0x20 */u8 mResourceType; - /* 0x21 */u8 unk_33; - /* 0x22 */u16 mChecksum; - /* 0x24 */s32 mSize; - /* 0x28 */mDoDvdThd_callback_c* mAsyncLoadCallback; + + /* 0x10 */ OSModuleInfo* mModule; + /* 0x14 */ void* mBss; + /* 0x18 */ u32 unk_24; + /* 0x1c */ const char* mName; + /* 0x20 */ u8 mResourceType; + /* 0x21 */ u8 unk_33; + /* 0x22 */ u16 mChecksum; + /* 0x24 */ s32 mSize; + /* 0x28 */ mDoDvdThd_callback_c* mAsyncLoadCallback; static u32 sAllocBytes; static JKRArchive* sArchive; static JKRFileCache* sFileCache; }; - #endif /* DYNAMICLINK_H */ diff --git a/include/JSystem/J2DGraph/J2DPane.h b/include/JSystem/J2DGraph/J2DPane.h index 73a920ee42..59b6a63e05 100644 --- a/include/JSystem/J2DGraph/J2DPane.h +++ b/include/JSystem/J2DGraph/J2DPane.h @@ -103,6 +103,7 @@ public: bool isVisible() const { return mVisible; } void show() { mVisible = true; } + void hide() { mVisible = false; } void initiate(); void initialize(J2DPane*, bool, u64, const JGeometry::TBox2<f32>&); diff --git a/include/JSystem/J2DGraph/J2DPicture.h b/include/JSystem/J2DGraph/J2DPicture.h index 2dca4ac374..d75a2b2f2e 100644 --- a/include/JSystem/J2DGraph/J2DPicture.h +++ b/include/JSystem/J2DGraph/J2DPicture.h @@ -63,8 +63,8 @@ public: /* 80053C6C */ virtual void setBlack(JUtility::TColor); /* 80053C44 */ virtual void setWhite(JUtility::TColor); /* 8018BEE0 */ virtual void setBlackWhite(JUtility::TColor, JUtility::TColor); - /* 801DFA4C */ virtual void getBlack() const; - /* 801DFA40 */ virtual void getWhite() const; + /* 801DFA4C */ virtual JUtility::TColor getBlack() const; + /* 801DFA40 */ virtual JUtility::TColor getWhite() const; /* 8025603C */ virtual bool getMaterial() const; /* 802FDBFC */ virtual void drawFullSet(f32, f32, f32, f32, Mtx*); /* 802FE380 */ virtual void drawTexCoord(f32, f32, f32, f32, s16, s16, s16, s16, s16, s16, s16, diff --git a/include/JSystem/J2DGraph/J2DTextBox.h b/include/JSystem/J2DGraph/J2DTextBox.h index b2170c014f..a6b47e64a9 100644 --- a/include/JSystem/J2DGraph/J2DTextBox.h +++ b/include/JSystem/J2DGraph/J2DTextBox.h @@ -19,6 +19,11 @@ enum J2DTextBoxHBinding { class J2DTextBox : public J2DPane { public: + struct TFontSize { + /* 0x0 */ f32 mSizeX; + /* 0x4 */ f32 mSizeY; + }; + /* 803001E0 */ virtual ~J2DTextBox(); /* 80300C68 */ virtual s32 getTypeID() const; /* 80300AF8 */ virtual void resize(f32, f32); @@ -51,6 +56,22 @@ public: /* 8030074C */ s32 setString(s16, char const*, ...); /* 80300660 */ s32 setString(char const*, ...); + void setFontSize(f32 sizeX, f32 sizeY) { + if (sizeX > 0.0f) { + sizeX = 0.0f; + } + field_0x11c = sizeX; + + if (sizeY > 0.0f) { + sizeY = 0.0f; + } + field_0x120 = sizeY; + } + + void setFontSize(TFontSize size) { setFontSize(size.mSizeX, size.mSizeY); } + + void setCharSpace(f32 space) { mCharSpacing = space; } + private: /* 0x0100 */ JUTFont* mFont; /* 0x0104 */ JUtility::TColor mCharColor; diff --git a/include/JSystem/J3DGraphAnimator/J3DMaterialAttach.h b/include/JSystem/J3DGraphAnimator/J3DMaterialAttach.h index 9582221280..5802a1040b 100644 --- a/include/JSystem/J3DGraphAnimator/J3DMaterialAttach.h +++ b/include/JSystem/J3DGraphAnimator/J3DMaterialAttach.h @@ -30,6 +30,7 @@ public: J3DMaterial* getMaterialNodePointer(u16 idx) const { return mMaterialNodePointer[idx]; } J3DTexture* getTexture() const { return mTexture; } + JUTNameTab* getTextureName() const { return mTextureName; } u16 getMaterialNum() const { return mMaterialNum; } diff --git a/include/JSystem/J3DGraphAnimator/J3DModel.h b/include/JSystem/J3DGraphAnimator/J3DModel.h index 7cadb05f28..26c7ec72a2 100644 --- a/include/JSystem/J3DGraphAnimator/J3DModel.h +++ b/include/JSystem/J3DGraphAnimator/J3DModel.h @@ -67,6 +67,7 @@ public: J3DShapePacket* getShapePacket(u16 idx) const { return &mShapePacket[idx]; } Mtx33* getBumpMtxPtr(int idx) const { return mMtxBuffer->getBumpMtxPtr(idx); } Mtx33* getNrmMtxPtr() const { return mMtxBuffer->getNrmMtxPtr(); } + void setBaseScale(const Vec& scale) { mBaseScale = scale; } // is there a better way to handle inlines with same name as non-inlines? MtxP i_getAnmMtx(int p1) { return mMtxBuffer->getAnmMtx(p1); } diff --git a/include/JSystem/J3DGraphAnimator/J3DModelData.h b/include/JSystem/J3DGraphAnimator/J3DModelData.h index d20d6de50a..12e98f3869 100644 --- a/include/JSystem/J3DGraphAnimator/J3DModelData.h +++ b/include/JSystem/J3DGraphAnimator/J3DModelData.h @@ -34,6 +34,7 @@ public: J3DJoint* getJointNodePointer(u16 idx) const { return mJointTree.getJointNodePointer(idx); } J3DJointTree& getJointTree() { return mJointTree; } J3DTexture* getTexture() const { return mMaterialTable.getTexture(); } + JUTNameTab* getTextureName() const { return mMaterialTable.getTextureName(); } u16 getWEvlpMtxNum() const { return mJointTree.getWEvlpMtxNum(); } void* getVtxPosArray() const { return mVertexData.getVtxPosArray(); } void* getVtxNrmArray() const { return mVertexData.getVtxNrmArray(); } diff --git a/include/JSystem/J3DGraphBase/J3DPacket.h b/include/JSystem/J3DGraphBase/J3DPacket.h index 21bb39e83a..3ed3fe2804 100644 --- a/include/JSystem/J3DGraphBase/J3DPacket.h +++ b/include/JSystem/J3DGraphBase/J3DPacket.h @@ -66,7 +66,7 @@ public: virtual bool entry(J3DDrawBuffer*); virtual void draw(); - virtual ~J3DPacket(); + virtual ~J3DPacket() {} public: /* 0x04 */ J3DPacket* mpNextSibling; diff --git a/include/JSystem/J3DGraphBase/J3DSys.h b/include/JSystem/J3DGraphBase/J3DSys.h index 8dfca2d554..0f947d0a34 100644 --- a/include/JSystem/J3DGraphBase/J3DSys.h +++ b/include/JSystem/J3DGraphBase/J3DSys.h @@ -11,6 +11,11 @@ enum J3DError { kJ3DError_Alloc = 4, }; +enum J3DSysDrawBuffer { + /* 0x0 */ OPA_BUFFER, + /* 0x1 */ XLU_BUFFER +}; + class J3DMtxCalc; class J3DModel; class J3DMatPacket; @@ -64,7 +69,7 @@ struct J3DSys { /* 0x4 */ XLU, }; - Mtx* getViewMtx() { return &mViewMtx; } + MtxP getViewMtx() { return mViewMtx; } void setDrawModeOpaTexEdge() { mDrawMode = OPA_TEX_EDGE; } @@ -102,6 +107,16 @@ struct J3DSys { GXSetArray(GX_NRM_MTX_ARRAY, mModelNrmMtx, sizeof(*mModelNrmMtx)); } + // Type 0: Opa Buffer + // Type 1: Xlu Buffer + void setDrawBuffer(J3DDrawBuffer* buffer, int type) { mDrawBuffer[type] = buffer; } + + // Type 0: Opa Buffer + // Type 1: Xlu Buffer + J3DDrawBuffer* getDrawBuffer(int type) { return mDrawBuffer[type]; } + + void setViewMtx(Mtx m) { PSMTXCopy(m, mViewMtx); } + static Mtx mCurrentMtx; static Vec mCurrentS; static Vec mParentS; diff --git a/include/JSystem/J3DGraphBase/J3DTexture.h b/include/JSystem/J3DGraphBase/J3DTexture.h index 93e098842f..f62d2e2d9f 100644 --- a/include/JSystem/J3DGraphBase/J3DTexture.h +++ b/include/JSystem/J3DGraphBase/J3DTexture.h @@ -9,13 +9,16 @@ class J3DTexture { private: /* 0x0 */ u16 mNum; - /* 0x4 */ ResTIMG** mpRes; + /* 0x4 */ ResTIMG* mpRes; public: /* 8031204C */ void loadGX(u16, _GXTexMapID) const; /* 803121A4 */ void entryNum(u16); /* 8031221C */ void addResTIMG(u16, ResTIMG const*); /* 803366A4 */ virtual ~J3DTexture(); + + u16 getNum() const { return mNum; } + ResTIMG* getResTIMG(u16 entry) const { return &mpRes[entry]; } }; struct J3DTextureSRTInfo { diff --git a/include/JSystem/JKernel/JKRArchive.h b/include/JSystem/JKernel/JKRArchive.h index 19411ebf9c..9c413274ec 100644 --- a/include/JSystem/JKernel/JKRArchive.h +++ b/include/JSystem/JKernel/JKRArchive.h @@ -218,4 +218,8 @@ inline JKRCompression JKRConvertAttrToCompressionType(u32 attr) { return JKRArchive::convertAttrToCompressionType(attr); } +inline void* JKRGetTypeResource(u32 tag, const char* name, JKRArchive* arc) { + return JKRArchive::getGlbResource(tag, name, arc); +} + #endif
\ No newline at end of file diff --git a/include/JSystem/JKernel/JKRFileLoader.h b/include/JSystem/JKernel/JKRFileLoader.h index 4af9531298..afe86b085d 100644 --- a/include/JSystem/JKernel/JKRFileLoader.h +++ b/include/JSystem/JKernel/JKRFileLoader.h @@ -54,4 +54,8 @@ public: static JSUList<JKRFileLoader> sVolumeList; }; +inline void* JKRGetNameResource(const char* name, JKRFileLoader* loader) { + return JKRFileLoader::getGlbResource(name, loader); +} + #endif /* JKRFILELOADER_H */ diff --git a/include/JSystem/JKernel/JKRHeap.h b/include/JSystem/JKernel/JKRHeap.h index 82de079c08..74fd1e2840 100644 --- a/include/JSystem/JKernel/JKRHeap.h +++ b/include/JSystem/JKernel/JKRHeap.h @@ -221,8 +221,8 @@ inline JKRHeap* JKRGetCurrentHeap() { return JKRHeap::getCurrentHeap(); } -inline u32 JKRGetMemBlockSize(JKRHeap* heap,void* block) { - return JKRHeap::getSize(block,heap); +inline u32 JKRGetMemBlockSize(JKRHeap* heap, void* block) { + return JKRHeap::getSize(block, heap); } #endif /* JKRHEAP_H */ diff --git a/include/JSystem/JUtility/JUTGamePad.h b/include/JSystem/JUtility/JUTGamePad.h index 5bfc6e650d..456bd345d9 100644 --- a/include/JSystem/JUtility/JUTGamePad.h +++ b/include/JSystem/JUtility/JUTGamePad.h @@ -124,6 +124,8 @@ public: return isPushingReset; } + static s8 getPortStatus(u32 port) { return mPadStatus[port].error; } + struct CButton { CButton(); // inline void clear(); diff --git a/include/JSystem/JUtility/JUTProcBar.h b/include/JSystem/JUtility/JUTProcBar.h index d302840927..cd412da9d2 100644 --- a/include/JSystem/JUtility/JUTProcBar.h +++ b/include/JSystem/JUtility/JUTProcBar.h @@ -66,6 +66,8 @@ public: void idleStart() { mIdle.start(255, 129, 30); } void idleEnd() { mIdle.end(); } void setCostFrame(int frame) { mCostFrame = frame; } + void setVisible(bool visible) { mVisible = visible; } + void setVisibleHeapBar(bool visible) { mHeapBarVisible = visible; } static JUTProcBar* getManager() { return sManager; } diff --git a/include/MSL_C.PPCEABI.bare.H/MSL_Common/Src/mem.h b/include/MSL_C.PPCEABI.bare.H/MSL_Common/Src/mem.h index a25c451daf..e47536e0b7 100644 --- a/include/MSL_C.PPCEABI.bare.H/MSL_Common/Src/mem.h +++ b/include/MSL_C.PPCEABI.bare.H/MSL_Common/Src/mem.h @@ -3,4 +3,6 @@ #include "dolphin/types.h" +extern "C" int memcmp(const void*, const void*, size_t); + #endif /* MSL_COMMON_SRC_MEM_H */ diff --git a/include/SSystem/SComponent/c_lib.h b/include/SSystem/SComponent/c_lib.h index 21607f9b6d..890e8ea64c 100644 --- a/include/SSystem/SComponent/c_lib.h +++ b/include/SSystem/SComponent/c_lib.h @@ -48,15 +48,17 @@ inline u8 cLib_checkBit(u8& pVar, u8 pBit) { } template <typename T> -inline T cLib_minMaxLimit(T param_0, T min, T max) { - if (param_0 < min) { - return max; +inline T cLib_minMaxLimit(T val, T min, T max) { + T ret; + if (val < min) { + ret = min; + } else { + ret = max; + if (val <= max) { + ret = val; + } } - min = param_0; - if (min > max) { - min = max; - } - return min; + return ret; } void MtxInit(void); diff --git a/include/Z2AudioLib/Z2StatusMgr.h b/include/Z2AudioLib/Z2StatusMgr.h index f82b10cb6e..dc3996336d 100644 --- a/include/Z2AudioLib/Z2StatusMgr.h +++ b/include/Z2AudioLib/Z2StatusMgr.h @@ -21,7 +21,9 @@ struct Z2StatusMgr { void setCameraGroupInfo(u8); void setCameraInWaterDepth(float); - //! @todo there are a number of inlines only called from rels: see CHN_debug + void setHour(s32 hour) { mHour = hour; } + void setMinute(s32 min) { mMinute = min; } + void setWeekday(s32 day) { mWeekday = day; } /* 0x00 */ u8 mHour; /* 0x01 */ u8 mMinute; diff --git a/include/d/cc/d_cc_s.h b/include/d/cc/d_cc_s.h index d2d97b3a67..b78889dd3f 100644 --- a/include/d/cc/d_cc_s.h +++ b/include/d/cc/d_cc_s.h @@ -14,32 +14,34 @@ public: /* 80085F28 */ void ChkShieldFrontRange(cCcD_Obj*, cCcD_Obj*, int, cXyz const*); /* 800860F8 */ void ChkShield(cCcD_Obj*, cCcD_Obj*, dCcD_GObjInf*, dCcD_GObjInf*, cXyz const*); /* 800861B0 */ void CalcTgPlusDmg(cCcD_Obj*, cCcD_Obj*, cCcD_Stts*, cCcD_Stts*); - /* 800861B4 */ bool ChkAtTgHitAfterCross(bool, bool, cCcD_GObjInf const*, cCcD_GObjInf const*, - cCcD_Stts*, cCcD_Stts*, cCcD_GStts*, cCcD_GStts*); - /* 80086240 */ void SetCoGObjInf(bool, bool, cCcD_GObjInf*, cCcD_GObjInf*, cCcD_Stts*, - cCcD_Stts*, cCcD_GStts*, cCcD_GStts*); /* 80086360 */ void GetRank(u8); - /* 80086404 */ bool ChkNoHitGCo(cCcD_Obj*, cCcD_Obj*); - /* 8008640C */ void SetPosCorrect(cCcD_Obj*, cXyz*, cCcD_Obj*, cXyz*, f32); - /* 80086754 */ void CalcParticleAngle(dCcD_GObjInf*, cCcD_Stts*, cCcD_Stts*, csXyz*); /* 8008685C */ void ProcAtTgHitmark(bool, bool, cCcD_Obj*, cCcD_Obj*, dCcD_GObjInf*, dCcD_GObjInf*, cCcD_Stts*, cCcD_Stts*, dCcD_GStts*, dCcD_GStts*, cXyz*, bool); - /* 80086AC0 */ void SetAtTgGObjInf(bool, bool, cCcD_Obj*, cCcD_Obj*, cCcD_GObjInf*, - cCcD_GObjInf*, cCcD_Stts*, cCcD_Stts*, cCcD_GStts*, - cCcD_GStts*, cXyz*); /* 80086D8C */ void ChkCamera(cXyz&, cXyz&, f32, fopAc_ac_c*, fopAc_ac_c*, fopAc_ac_c*); /* 80086FBC */ void chkCameraPoint(cXyz const&, cCcD_ShapeAttr::Shape*, fopAc_ac_c*, fopAc_ac_c*); - /* 800872A8 */ void MoveAfterCheck(); /* 800872AC */ void DrawAfter(); /* 800872B0 */ void Move(); /* 800872D0 */ void Draw(); /* 8008730C */ void MassClear(); /* 80087330 */ void ChkAtTgMtrlHit(u8, u8); - /* 8008734C */ bool ChkNoHitGAtTg(cCcD_GObjInf const*, cCcD_GObjInf const*, cCcD_GStts*, - cCcD_GStts*); + + /* 8008640C */ virtual void SetPosCorrect(cCcD_Obj*, cXyz*, cCcD_Obj*, cXyz*, f32); + /* 80086240 */ virtual void SetCoGObjInf(bool, bool, cCcD_GObjInf*, cCcD_GObjInf*, cCcD_Stts*, + cCcD_Stts*, cCcD_GStts*, cCcD_GStts*); + /* 80086AC0 */ virtual void SetAtTgGObjInf(bool, bool, cCcD_Obj*, cCcD_Obj*, cCcD_GObjInf*, + cCcD_GObjInf*, cCcD_Stts*, cCcD_Stts*, cCcD_GStts*, + cCcD_GStts*, cXyz*); + /* 8008734C */ virtual bool ChkNoHitGAtTg(cCcD_GObjInf const*, cCcD_GObjInf const*, cCcD_GStts*, + cCcD_GStts*); + /* 800861B4 */ virtual bool ChkAtTgHitAfterCross(bool, bool, cCcD_GObjInf const*, + cCcD_GObjInf const*, cCcD_Stts*, cCcD_Stts*, + cCcD_GStts*, cCcD_GStts*); + /* 80086404 */ virtual bool ChkNoHitGCo(cCcD_Obj*, cCcD_Obj*); /* 8002FF40 */ virtual ~dCcS() {} + /* 800872A8 */ virtual void MoveAfterCheck(); + /* 80086754 */ virtual void CalcParticleAngle(dCcD_GObjInf*, cCcD_Stts*, cCcD_Stts*, csXyz*); static u8 m_mtrl_hit_tbl[64]; diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index 3e60349bfb..352eb23c04 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -14,6 +14,7 @@ #include "d/particle/d_particle.h" #include "d/save/d_save.h" #include "dolphin/types.h" +#include "f_op/f_op_camera_mng.h" struct dTimer_c { /* 8025D524 */ int deleteCheck(); @@ -46,8 +47,6 @@ public: /* 0x4 */ JKRHeap* heap; }; -struct camera_class {}; - class dComIfG_camera_info_class { public: dComIfG_camera_info_class() {} @@ -241,6 +240,8 @@ public: JKRArchive* getMain2DArchive() { return mMain2DArchive; } JKRArchive* getAnmArchive() { return mAnmArchive; } JKRArchive* getCollectResArchive() { return mCollectResArchive; } + JKRArchive* getItemIconArchive() { return mItemIconArchive; } + JKRExpHeap* getMsgExpHeap() { return mMsgExpHeap; } J2DGrafContext* getCurrentGrafPort() { return mCurrentGrafPort; } dVibration_c& getVibration() { return mVibration; } void setPlayerStatus(int param_0, int i, u32 flag) { mPlayerStatus[i] |= flag; } @@ -257,6 +258,8 @@ public: m3DSetFlag = flag; } void offPauseFlag() { mPauseFlag = false; } + camera_class* getCamera(int idx) { return mCameraInfo[idx].mCamera; } + s32 checkStatus(u16 flags) { return flags & mStatus; } public: /* 0x00000 */ dBgS mDBgS; @@ -488,7 +491,7 @@ public: /* 0x05F64 */ dDlst_list_c drawlist; /* 0x1C104 */ u8 field_0x1C104[0x1F4]; /* 0x1C2F8 */ dRes_control_c mResControl; - /* 0x1DDF8 */ u8 field_0x1ddf8; // related to fade, controls brightness + /* 0x1DDF8 */ u8 mFadeBrightness; /* 0x1DDF9 */ u8 mWorldDark; /* 0x1DDFA */ s8 field_0x1ddfa; /* 0x1DDFB */ s8 field_0x1ddfb; @@ -509,6 +512,8 @@ STATIC_ASSERT(122384 == sizeof(dComIfG_inf_c)); extern dComIfG_inf_c g_dComIfG_gameInfo; extern GXColor g_blackColor; +extern GXColor g_clearColor; +extern GXColor g_whiteColor; void dComIfGp_setItemLifeCount(float, u8); void dComIfGp_setItemRupeeCount(long); @@ -552,6 +557,8 @@ void dComIfGp_mapShow(); void dComIfGp_mapHide(); bool dComIfGp_checkMapShow(); s32 dComIfGp_setHeapLockFlag(u8); +s8 dComIfGs_sense_type_change_Get(); +u8 dComIfGp_world_dark_get(); inline void dComIfGp_setRStatus(u8 status, u8 flag) { g_dComIfG_gameInfo.play.setRStatus(status, flag); @@ -858,7 +865,7 @@ inline u8 dComIfGs_getOptVibration() { return g_dComIfG_gameInfo.info.getPlayer().getConfig().getVibration(); } -inline s8 dComIfGp_roomControl_getStayNo() { +inline s32 dComIfGp_roomControl_getStayNo() { return dStage_roomControl_c::getStayNo(); } @@ -976,6 +983,10 @@ inline JKRExpHeap* dComIfGp_getExpHeap2D() { return g_dComIfG_gameInfo.play.getExpHeap2D(); } +inline JKRExpHeap* dComIfGp_getMsgExpHeap() { + return g_dComIfG_gameInfo.play.getMsgExpHeap(); +} + inline s16 dComIfGs_getOil() { return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getOil(); } @@ -1144,6 +1155,10 @@ inline JKRArchive* dComIfGp_getCollectResArchive() { return g_dComIfG_gameInfo.play.getCollectResArchive(); } +inline JKRArchive* dComIfGp_getItemIconArchive() { + return g_dComIfG_gameInfo.play.getItemIconArchive(); +} + inline J2DGrafContext* dComIfGp_getCurrentGrafPort() { return g_dComIfG_gameInfo.play.getCurrentGrafPort(); } @@ -1198,6 +1213,21 @@ inline u32 dComIfGp_particle_set(u32 param_0, u16 param_1, const cXyz* param_2, param_10, param_11, 1.0f); } +inline u32 dComIfGp_particle_set(u16 param_1, const cXyz* param_2, const dKy_tevstr_c* param_3, + const csXyz* param_4, const cXyz* param_5, u8 param_6, + dPa_levelEcallBack* param_7, s8 param_8, const GXColor* param_9, + const GXColor* param_10, const cXyz* param_11) { + return g_dComIfG_gameInfo.play.getParticle()->setNormal(param_1, param_2, param_3, param_4, + param_5, param_6, param_7, param_8, + param_9, param_10, param_11, 1.0f); +} + +inline u32 dComIfGp_particle_set(u16 param_0, const cXyz* param_1, const csXyz* param_2, + const cXyz* param_3) { + return dComIfGp_particle_set(param_0, param_1, NULL, param_2, param_3, 0xFF, NULL, -1, NULL, + NULL, NULL); +} + inline void dComIfGp_particle_levelEmitterOnEventMove(u32 param_0) { g_dComIfG_gameInfo.play.getParticle()->forceOnEventMove(param_0); } @@ -1444,4 +1474,75 @@ inline void dComIfGp_offPauseFlag() { g_dComIfG_gameInfo.play.offPauseFlag(); } +inline view_class* dComIfGd_getView() { + return g_dComIfG_gameInfo.drawlist.getView(); +} + +inline J3DDrawBuffer* dComIfGd_getListFilter() { + return g_dComIfG_gameInfo.drawlist.getOpaListFilter(); +} + +inline J3DDrawBuffer* dComIfGd_getOpaListIndScreen() { + return g_dComIfG_gameInfo.drawlist.getOpaListP0(); +} + +inline void dComIfGd_setListSky() { + g_dComIfG_gameInfo.drawlist.setOpaListSky(); + g_dComIfG_gameInfo.drawlist.setXluListSky(); +} + +inline void dComIfGd_setList() { + g_dComIfG_gameInfo.drawlist.setOpaList(); + g_dComIfG_gameInfo.drawlist.setXluList(); +} + +inline void dComIfGd_setXluList2DScreen() { + g_dComIfG_gameInfo.drawlist.setXluList2DScreen(); +} + +inline void dComIfGd_setXluListBG() { + g_dComIfG_gameInfo.drawlist.setXluListBG(); +} + +inline camera_class* dComIfGp_getCamera(int idx) { + return g_dComIfG_gameInfo.play.getCamera(idx); +} + +inline s32 dComIfGp_checkStatus(u16 flags) { + return g_dComIfG_gameInfo.play.checkStatus(flags); +} + +inline s32 dComIfGp_roomControl_getTimePass() { + return g_dComIfG_gameInfo.play.getRoomControl()->GetTimePass(); +} + +inline u16 dComIfGs_getDate() { + return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusB().getDate(); +} + +inline void dComIfGs_setDate(u16 date) { + return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusB().setDate(date); +} + +inline f32 dComIfGs_getTime() { + return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusB().getTime(); +} + +inline void dComIfGs_setTime(f32 time) { + return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusB().setTime(time); +} + +inline u8 dComIfG_getBrightness() { + return g_dComIfG_gameInfo.mFadeBrightness; +} + +inline void dComIfGd_drawListItem3d() { + g_dComIfG_gameInfo.drawlist.drawOpaListItem3d(); + g_dComIfG_gameInfo.drawlist.drawXluListItem3d(); +} + +inline void dComIfGd_init() { + g_dComIfG_gameInfo.drawlist.init(); +} + #endif /* D_COM_D_COM_INF_GAME_H */ diff --git a/include/d/d_drawlist.h b/include/d/d_drawlist.h index 530338155d..b3f9ef39be 100644 --- a/include/d/d_drawlist.h +++ b/include/d/d_drawlist.h @@ -167,7 +167,10 @@ STATIC_ASSERT(sizeof(dDlst_window_c) == 0x2C); struct view_port_class {}; -struct view_class {}; +struct view_class { + /* 0x00 */ u8 field_0x0[0xD0]; + /* 0xD0 */ f32 field_0xd0; +}; class dDlst_base_c { public: @@ -193,6 +196,17 @@ public: void set2DOpa(dDlst_base_c* dlst) { set(field_0x1b4, field_0x1b8, dlst); } void set2DOpaTop(dDlst_base_c* dlst) { set(field_0xac, field_0xb0, dlst); } + view_class* getView() { return mView; } + J3DDrawBuffer* getOpaListFilter() { return mListFilter; } + J3DDrawBuffer* getOpaListP0() { return mListP0; } + void setXluDrawList(J3DDrawBuffer* buffer) { j3dSys.setDrawBuffer(buffer, XLU_BUFFER); } + void setOpaDrawList(J3DDrawBuffer* buffer) { j3dSys.setDrawBuffer(buffer, OPA_BUFFER); } + void setXluListSky() { setXluDrawList(mpXluListSky); } + void setOpaListSky() { setOpaDrawList(mOpaListSky); } + void setOpaList() { setOpaDrawList(mOpaList); } + void setXluList() { setXluDrawList(mXluList); } + void setXluListBG() { setXluDrawList(mXluListBG); } + void setXluList2DScreen() { setXluDrawList(mList2DScreen); } static u8 mWipeDlst[72]; static u8 mWipeColor[4]; diff --git a/include/d/d_eye_hl.h b/include/d/d_eye_hl.h index 68d577475a..8ec08f6b62 100644 --- a/include/d/d_eye_hl.h +++ b/include/d/d_eye_hl.h @@ -10,19 +10,18 @@ class dEyeHL_c; class dEyeHL_mng_c { public: - /* 8009CA48 */ void update(); - /* 8009CB14 */ void entry(dEyeHL_c*); - /* 8009CB34 */ void remove(dEyeHL_c*); + /* 8009CA48 */ static void update(); + /* 8009CB14 */ static void entry(dEyeHL_c*); + /* 8009CB34 */ static void remove(dEyeHL_c*); - static u8 m_obj[4 + 4 /* padding */]; + static dEyeHL_mng_c* m_obj; -private: - /* 0x00 */ void* vtable; - /* 0x04 */ ResTIMG* field_0x04; - /* 0x08 */ u16 field_0x08; + /* 0x00 */ u8 field_0x0[4]; + /* 0x04 */ ResTIMG* m_timg; + /* 0x08 */ s16 m_lodBias; /* 0x0A */ u8 field_0x0a[2]; - /* 0x0C */ dEyeHL_mng_c* field_0x0c; - /* 0x10 */ dEyeHL_mng_c* field_0x10; + /* 0x0C */ dEyeHL_mng_c* m_pre; + /* 0x10 */ dEyeHL_mng_c* m_next; }; class dEyeHL_c : public dEyeHL_mng_c { diff --git a/include/d/d_stage.h b/include/d/d_stage.h index 59be2cc8a3..e0c2065ab2 100644 --- a/include/d/d_stage.h +++ b/include/d/d_stage.h @@ -49,6 +49,10 @@ inline s16 dStage_stagInfo_GetUpButton(stage_stag_info_class* p_info) { return p_info->field_0x0a & 7; } +inline u32 dStage_stagInfo_GetArg0(stage_stag_info_class* p_info) { + return (p_info->field_0x0c >> 0x14) & 0xFF; +} + struct stage_scls_info_class { /* 0x0 */ char mStage[8]; /* 0x8 */ u8 mStart; @@ -87,7 +91,19 @@ struct stage_actor_data_class {}; struct stage_actor_class {}; -struct roomRead_class {}; +struct roomRead_data_class { + /* 0x0 */ u8 field_0x0[2]; + /* 0x2 */ u8 field_0x2; +}; + +struct roomRead_class { + /* 0x0 */ int field_0x0; + /* 0x4 */ roomRead_data_class** field_0x4; +}; + +inline s32 dStage_roomRead_dt_c_GetVrboxswitch(roomRead_data_class& data) { + return data.field_0x2 & 8; +} struct dStage_FileList2_dt_c {}; @@ -542,7 +558,7 @@ public: /* 80024940 */ static char* getArcBank(int); /* 80024954 */ static int resetArchiveBank(int); /* 80024DB0 */ static void SetTimePass(int); - static s8 GetTimePass(); + static s32 GetTimePass(); inline static s8 getStayNo() { return struct_80450D64; } s8 getMemoryBlockID(int i_roomNo) { return mStatus[i_roomNo].mMemBlockID; } diff --git a/include/d/kankyo/d_kankyo.h b/include/d/kankyo/d_kankyo.h index 4b58527211..add1722d2a 100644 --- a/include/d/kankyo/d_kankyo.h +++ b/include/d/kankyo/d_kankyo.h @@ -2,11 +2,11 @@ #define D_KANKYO_D_KANKYO_H #include "JSystem/J3DGraphAnimator/J3DModelData.h" -#include "JSystem/J3DGraphBase/J3DPacket.h" #include "JSystem/J3DGraphBase/J3DStruct.h" #include "JSystem/JParticle/JPAParticle.h" #include "SSystem/SComponent/c_sxyz.h" #include "SSystem/SComponent/c_xyz.h" +#include "d/kankyo/d_kankyo_wether.h" #include "dolphin/gx/GX.h" #include "dolphin/types.h" #include "m_Do/m_Do_ext.h" @@ -18,10 +18,10 @@ struct LIGHT_INFLUENCE { /* 800CFC7C */ ~LIGHT_INFLUENCE(); /* 8019F4F8 */ LIGHT_INFLUENCE(); - /* 0x00 */ cXyz field_0x00; - /* 0x0C */ _GXColorS10 mColor; - /* 0x14 */ float field_0x14; - /* 0x18 */ float field_0x18; + /* 0x00 */ cXyz mPosition; + /* 0x0C */ GXColorS10 mColor; + /* 0x14 */ f32 mPow; + /* 0x18 */ f32 mFluctuation; // ? /* 0x1C */ int field_0x1c; }; @@ -46,7 +46,7 @@ struct EFLIGHT_PROC { /* 0x00 */ u8 field_0x0; /* 0x01 */ u8 field_0x1; /* 0x04 */ int field_0x4; - /* 0x08 */ LIGHT_INFLUENCE field_0x8; + /* 0x08 */ u8 field_0x8[0x20]; // LIGHT_INFLUENCE? }; struct SND_INFLUENCE { @@ -64,8 +64,16 @@ struct DUNGEON_LIGHT { /* 8019F478 */ ~DUNGEON_LIGHT(); /* 8019F4B4 */ DUNGEON_LIGHT(); - /* 0x00 */ cXyz field_0x0; - /* 0x0C */ u8 field_0xc[0x20]; + /* 0x00 */ cXyz mPosition; + /* 0x0C */ GXColor mColor; + /* 0x10 */ f32 mRefDistance; + /* 0x14 */ u8 field_0x14[4]; + /* 0x18 */ f32 mCutoffAngle; + /* 0x1C */ f32 mAngleX; + /* 0x20 */ f32 mAngleY; + /* 0x24 */ u8 mAngleAttenuation; + /* 0x25 */ u8 mDistAttenuation; + /* 0x26 */ u8 field_0x26[6]; /* 0x2C */ // LIGHT_INFLUENCE field_0x2c; this breaks ctor for some reason u8 field_0x2c[0x20]; }; // Size: 0x4C @@ -87,7 +95,7 @@ struct BOSS_LIGHT { }; // Size: 0x28 struct GB_WIND_INFLUENCE { - /* 0x00 */ cXyz pos; + /* 0x00 */ cXyz vec; /* 0x0C */ int field_0xc; /* 0x10 */ f32 pow; }; @@ -104,7 +112,7 @@ struct EF_THUNDER { /* 0x18 */ f32 field_0x18; /* 0x1C */ f32 field_0x1c; /* 0x20 */ u8 field_0x20[4]; - /* 0x24 */ LIGHT_INFLUENCE field_0x24; + /* 0x24 */ u8 field_0x24[0x20]; // LIGHT_INFLUENCE? }; struct GB_MAPLE_COL_CHANGE { @@ -157,185 +165,6 @@ public: STATIC_ASSERT(sizeof(dKy_tevstr_c) == 0x388); -class dKankyo_sun_Packet : public J3DPacket { -public: - virtual void draw(); - virtual ~dKankyo_sun_Packet(); - -private: - /* 0x10 */ cXyz field_0x10[2]; -}; - -class dKankyo_sunlenz_Packet : public J3DPacket { -public: - virtual void draw(); - virtual ~dKankyo_sunlenz_Packet(); - -private: - /* 0x10 */ u8 field_0x10[0x14]; - /* 0x24 */ cXyz field_0x24[8]; -}; - -struct RAIN_EFF { - /* 0x00 */ u8 field_0x0[4]; - /* 0x04 */ cXyz field_0x04; - /* 0x10 */ cXyz field_0x10; - /* 0x1C */ u8 field_0x1c[0x1c]; -}; // Size: 0x38 - -class dKankyo_rain_Packet : public J3DPacket { -public: - virtual void draw(); - virtual ~dKankyo_rain_Packet(); - -private: - /* 0x10 */ u8 field_0x10[8]; - /* 0x18 */ RAIN_EFF field_0x18[250]; -}; - -struct SNOW_EFF { - /* 0x00 */ u8 field_0x0[4]; - /* 0x04 */ cXyz field_0x04; - /* 0x10 */ cXyz field_0x10; - /* 0x1C */ u8 field_0x1c[0x1c]; -}; // Size: 0x38 - -class dKankyo_snow_Packet : public J3DPacket { -public: - virtual void draw(); - virtual ~dKankyo_snow_Packet(); - -private: - /* 0x10 */ u8 field_0x10[4]; - /* 0x14 */ SNOW_EFF field_0x14[500]; -}; - -struct STAR_EFF { - /* 0x00 */ u8 field_0x0[4]; - /* 0x04 */ cXyz field_0x04; - /* 0x10 */ cXyz field_0x10; - /* 0x1C */ u8 field_0x1c[0x18]; -}; // Size: 0x34 - -class dKankyo_star_Packet : public J3DPacket { -public: - virtual void draw(); - virtual ~dKankyo_star_Packet(); - -private: - /* 0x10 */ u8 field_0x10[4]; - /* 0x14 */ STAR_EFF field_0x14[1]; -}; - -struct HOUSI_EFF { - /* 0x00 */ u8 field_0x0[4]; - /* 0x04 */ cXyz field_0x04; - /* 0x10 */ cXyz field_0x10; - /* 0x1C */ cXyz field_0x1c; - /* 0x28 */ u8 field_0x28[0x28]; -}; // Size: 0x50 - -class dKankyo_housi_Packet : public J3DPacket { -public: - virtual void draw(); - virtual ~dKankyo_housi_Packet(); - -private: - /* 0x10 */ u8 field_0x10[0x10]; - /* 0x20 */ HOUSI_EFF field_0x18[300]; -}; - -struct CLOUD_EFF { - /* 0x00 */ u8 field_0x0[4]; - /* 0x04 */ cXyz field_0x04; - /* 0x10 */ cXyz field_0x10; - /* 0x1C */ cXyz field_0x1c; - /* 0x28 */ u8 field_0x28[0x10]; -}; // Size: 0x38 - -class dKankyo_cloud_Packet : public J3DPacket { -public: - virtual void draw(); - virtual ~dKankyo_cloud_Packet(); - -private: - /* 0x10 */ u8 field_0x10[8]; - /* 0x18 */ CLOUD_EFF field_0x18[50]; -}; - -struct VRKUMO_EFF { - /* 0x00 */ u8 field_0x0[4]; - /* 0x04 */ cXyz field_0x04; - /* 0x10 */ cXyz field_0x10; - /* 0x1C */ u8 field_0x1c[0x10]; -}; // Size: 0x2C - -class dKankyo_vrkumo_Packet : public J3DPacket { -public: - virtual void draw(); - virtual ~dKankyo_vrkumo_Packet(); - -private: - /* 0x10 */ u8 field_0x10[0x10]; - /* 0x20 */ VRKUMO_EFF field_0x18[100]; -}; - -// might be fake -class dKankyo_shstar_Packet : public J3DPacket {}; - -struct ODOUR_EFF { - /* 0x00 */ u8 field_0x0[4]; - /* 0x04 */ cXyz field_0x04; - /* 0x10 */ cXyz field_0x10; - /* 0x1C */ u8 field_0x1c[0x14]; -}; // Size: 0x30 - -class dKankyo_odour_Packet : public J3DPacket { -public: - virtual void draw(); - virtual ~dKankyo_odour_Packet(); - -private: - /* 0x10 */ u8 field_0x10[4]; - /* 0x14 */ ODOUR_EFF field_0x18[2000]; -}; - -struct MUD_EFF { - /* 0x00 */ u8 field_0x0[4]; - /* 0x04 */ cXyz field_0x04; - /* 0x10 */ cXyz field_0x10; - /* 0x1C */ cXyz field_0x1c; - /* 0x28 */ u8 field_0x28[0x20]; -}; // Size: 0x48 - -class dKankyo_mud_Packet : public J3DPacket { -public: - virtual void draw(); - virtual ~dKankyo_mud_Packet(); - -private: - /* 0x10 */ u8 field_0x10[8]; - /* 0x18 */ MUD_EFF field_0x18[100]; -}; - -struct EVIL_EFF { - /* 0x00 */ u8 field_0x0[4]; - /* 0x04 */ cXyz field_0x04; - /* 0x10 */ cXyz field_0x10; - /* 0x1C */ csXyz field_0x1c; - /* 0x22 */ u8 field_0x22[0x22]; -}; // Size: 0x44 - -class dKankyo_evil_Packet : public J3DPacket { -public: - virtual void draw(); - virtual ~dKankyo_evil_Packet(); - -private: - /* 0x10 */ u8 field_0x10[8]; - /* 0x18 */ EVIL_EFF field_0x18[2000]; -}; - class fopAc_ac_c; class dScnKy_env_light_c { @@ -344,7 +173,7 @@ public: /* 8019F4FC */ void setDaytime(); /* 8019F788 */ void setSunpos(); /* 8019FA08 */ f32 getDaytime(); - /* 8019FBCC */ void getDarkDaytime(); + /* 8019FBCC */ f32 getDarkDaytime(); /* 8019FBD4 */ void setLight_palno_get(u8*, u8*, u8*, u8*, u8*, u8*, u8*, u8*, f32*, int*, int*, f32*, u8*); /* 801A040C */ void setLight(); @@ -369,18 +198,18 @@ public: public: /* 0x0000 */ // vtable - /* 0x0004 */ void* field_0x4; - /* 0x0008 */ void* field_0x8; - /* 0x000C */ void* field_0xc; - /* 0x0010 */ void* field_0x10; - /* 0x0014 */ void* field_0x14; - /* 0x0018 */ LIGHT_INFLUENCE field_0x18; + /* 0x0004 */ void* mpDmPalet; + /* 0x0008 */ void* mpDmPselect; + /* 0x000C */ void* mpDmEnvr; + /* 0x0010 */ void* mpDmVrbox; + /* 0x0014 */ void* mpSchedule; + /* 0x0018 */ u8 field_0x18[0x20]; // LIGHT_INFLUENCE? /* 0x0038 */ LIGHT_INFLUENCE field_0x38[30]; - /* 0x03F8 */ LIGHT_INFLUENCE* mPLight[100]; + /* 0x03F8 */ LIGHT_INFLUENCE* mPointLight[100]; /* 0x0588 */ LIGHT_INFLUENCE* mEfPLight[5]; /* 0x059C */ u8 field_0x59c[400]; - /* 0x072C */ int field_0x72c[5]; - /* 0x0740 */ LIGHT_INFLUENCE field_0x740; + /* 0x072C */ LIGHT_INFLUENCE* field_0x72c[5]; + /* 0x0740 */ u8 field_0x740[0x20]; // LIGHT_INFLUENCE? /* 0x0760 */ u8 field_0x760[4]; /* 0x0764 */ LIGHT_INFLUENCE mBGpartsActiveLight[2]; /* 0x07A4 */ EFLIGHT_PROC field_0x7a4; @@ -390,10 +219,10 @@ public: /* 0x0974 */ SND_INFLUENCE mSound; /* 0x098C */ u8 field_0x98c; /* 0x0990 */ DALKMIST_INFLUENCE* mDalkmistInf[10]; - /* 0x09B8 */ DUNGEON_LIGHT field_0x9b8[8]; + /* 0x09B8 */ DUNGEON_LIGHT mDungeonLights[8]; /* 0x0C18 */ BOSS_LIGHT field_0x0c18[8]; /* 0x0D58 */ BOSS_LIGHT field_0x0d58[6]; - /* 0x0E48 */ GB_WIND_INFLUENCE field_0xe48; + /* 0x0E48 */ GB_WIND_INFLUENCE mWind; /* 0x0E5C */ f32 custom_windpower; /* 0x0E60 */ f32 field_0xe60; /* 0x0E64 */ u16 field_0xe64; @@ -404,46 +233,46 @@ public: /* 0x0E6D */ u8 field_0xe6d; /* 0x0E6E */ u8 field_0xe6e; // E5C - E6E might all be part of GB_WIND_INFLUENCE /* 0x0E6F */ u8 field_0xe6f; - /* 0x0E70 */ u8 field_0xe70; - /* 0x0E74 */ dKankyo_sun_Packet* field_0xe74; - /* 0x0E78 */ dKankyo_sunlenz_Packet* field_0xe78; - /* 0x0E7C */ u8 field_0xe7c; - /* 0x0E80 */ int mRainCheck; - /* 0x0E84 */ dKankyo_rain_Packet* field_0xe84; - /* 0x0E88 */ u8 field_0xe88; - /* 0x0E8C */ int field_0xe8c; + /* 0x0E70 */ bool mSunPacketEnabled; + /* 0x0E74 */ dKankyo_sun_Packet* mpSunPacket; + /* 0x0E78 */ dKankyo_sunlenz_Packet* mpSunLenzPacket; + /* 0x0E7C */ bool mRainPacketEnabled; + /* 0x0E80 */ int mRainCount; + /* 0x0E84 */ dKankyo_rain_Packet* mpRainPacket; + /* 0x0E88 */ bool mSnowPacketEnabled; + /* 0x0E8C */ int mSnowCount; /* 0x0E90 */ u8 field_0xe90; /* 0x0E91 */ u8 field_0xe91; - /* 0x0E92 */ u8 field_0xe92; - /* 0x0E94 */ dKankyo_snow_Packet* field_0xe94; - /* 0x0E98 */ u8 field_0xe98; - /* 0x0E9C */ int field_0xe9c; - /* 0x0EA0 */ f32 field_0xea0; - /* 0x0EA4 */ dKankyo_star_Packet* field_0xea4; - /* 0x0EA8 */ u8 field_0xea8; + /* 0x0E92 */ bool field_0xe92; + /* 0x0E94 */ dKankyo_snow_Packet* mpSnowPacket; + /* 0x0E98 */ bool mStarPacketEnabled; + /* 0x0E9C */ int mStarCount; + /* 0x0EA0 */ f32 mStarDensity; + /* 0x0EA4 */ dKankyo_star_Packet* mpStarPacket; + /* 0x0EA8 */ bool mHousiPacketEnabled; /* 0x0EA9 */ u8 field_0xea9; /* 0x0EAC */ int field_0xeac; - /* 0x0EB0 */ dKankyo_housi_Packet* field_0xeb0; - /* 0x0EB4 */ u8 field_0xeb4; + /* 0x0EB0 */ dKankyo_housi_Packet* mpHousiPacket; + /* 0x0EB4 */ u8 mCloudPacketEnabled; /* 0x0EB5 */ u8 field_0xeb5; /* 0x0EB8 */ int field_0xeb8; /* 0x0EBC */ f32 field_0xebc; - /* 0x0EC0 */ dKankyo_cloud_Packet* field_0xec0; + /* 0x0EC0 */ dKankyo_cloud_Packet* mpCloudPacket; /* 0x0EC4 */ u8 field_0xec4; /* 0x0EC8 */ int field_0xec8; /* 0x0ECC */ f32 field_0xecc; - /* 0x0ED0 */ dKankyo_vrkumo_Packet* field_0xed0; - /* 0x0ED4 */ EF_THUNDER field_0xef4; + /* 0x0ED0 */ dKankyo_vrkumo_Packet* mpVrkumoPacket; + /* 0x0ED4 */ EF_THUNDER field_0xed4; /* 0x0F18 */ u8 field_0xf18[4]; - /* 0x0F1C */ dKankyo_shstar_Packet* field_0xf1c; - /* 0x0F20 */ u8 field_0xf20; + /* 0x0F1C */ dKankyo_shstar_Packet* mpShstarPacket; + /* 0x0F20 */ u8 mOdourPacketStatus; /* 0x0F21 */ u8 field_0xf21; /* 0x0F24 */ int field_0xf24; - /* 0x0F28 */ dKankyo_odour_Packet* field_0xf28; + /* 0x0F28 */ dKankyo_odour_Packet* mpOdourPacket; /* 0x0F2C */ u8 field_0xf2c; /* 0x0F30 */ J3DModel* field_0xf30; /* 0x0F34 */ f32 field_0xf34; - /* 0x0F38 */ int field_0xf38; + /* 0x0F38 */ JKRSolidHeap* field_0xf38; /* 0x0F3C */ u8 field_0xf3c; /* 0x0F3D */ u8 field_0xf3d; /* 0x0F40 */ f32 field_0xf40; @@ -454,13 +283,13 @@ public: /* 0x1038 */ u8 field_0x1038; /* 0x103C */ int field_0x103c; /* 0x1040 */ u8 field_0x1040[4]; - /* 0x1044 */ u8 field_0x1044; + /* 0x1044 */ u8 mMudPacketEnabled; /* 0x1048 */ int field_0x1048; - /* 0x104C */ dKankyo_mud_Packet* field_0x104c; - /* 0x1050 */ u8 field_0x1050; + /* 0x104C */ dKankyo_mud_Packet* mpMudPacket; + /* 0x1050 */ u8 mEvilPacketEnabled; /* 0x1051 */ u8 field_0x1051; /* 0x1054 */ int field_0x1054; - /* 0x1058 */ dKankyo_evil_Packet* field_0x1058; + /* 0x1058 */ dKankyo_evil_Packet* mpEvilPacket; /* 0x105C */ mDoExt_btkAnm* field_0x105c; /* 0x1060 */ fopAc_ac_c* field_0x1060; /* 0x1064 */ f32 field_0x1064; @@ -471,31 +300,13 @@ public: /* 0x1088 */ cXyz field_0x1088; /* 0x1094 */ cXyz field_0x1094; /* 0x10A0 */ cXyz field_0x10a0; - /* 0x10AC */ GXFogAdjTable field_0x10ac; - /* 0x10C0 */ u16 field_0x10c0; - /* 0x10C2 */ u16 field_0x10c2; - /* 0x10C4 */ u16 field_0x10c4; - /* 0x10C6 */ u16 field_0x10c6; - /* 0x10C8 */ u16 field_0x10c8; - /* 0x10CA */ u16 field_0x10ca; - /* 0x10CC */ u16 field_0x10cc; - /* 0x10CE */ u16 field_0x10ce; - /* 0x10D0 */ u16 field_0x10d0; - /* 0x10D2 */ u16 field_0x10d2; - /* 0x10D4 */ u16 field_0x10d4; - /* 0x10D6 */ u16 field_0x10d6; - /* 0x10D8 */ u16 field_0x10d8; - /* 0x10DA */ u16 field_0x10da; - /* 0x10DC */ u16 field_0x10dc; - /* 0x10DE */ u16 field_0x10de; - /* 0x10E0 */ u16 field_0x10e0; - /* 0x10E2 */ u16 field_0x10e2; - /* 0x10E4 */ u16 field_0x10e4; - /* 0x10E6 */ u16 field_0x10e6; - /* 0x10E8 */ u16 field_0x10e8; - /* 0x10EA */ u16 field_0x10ea; - /* 0x10EC */ u16 field_0x10ec; - /* 0x10EE */ u16 field_0x10ee; + /* 0x10AC */ GXFogAdjTable mXFogTbl; + /* 0x10C0 */ GXColorS10 mSkyColor; + /* 0x10C8 */ GXColorS10 mUpperCloudColor; + /* 0x10D0 */ GXColorS10 mUnderCloudColor; + /* 0x10D8 */ GXColorS10 mUnderCloudShadowColor; + /* 0x10E0 */ GXColorS10 mCloudOuterHazeColor; + /* 0x10E8 */ GXColorS10 mCloudInnerHazeColor; /* 0x10F0 */ s16 field_0x10f0; /* 0x10F2 */ s16 field_0x10f2; /* 0x10F4 */ s16 field_0x10f4; @@ -504,23 +315,23 @@ public: /* 0x10FA */ s16 field_0x10fa; /* 0x10FC */ s16 field_0x10fc; /* 0x10FE */ s16 field_0x10fe; - /* 0x1100 */ _GXColorS10 field_0x1100; - /* 0x1108 */ _GXColorS10 field_0x1108; - /* 0x1110 */ s16 field_0x1110; - /* 0x1112 */ s16 field_0x1112; - /* 0x1114 */ s16 field_0x1114; - /* 0x1116 */ s16 field_0x1116; - /* 0x1118 */ s16 field_0x1118; - /* 0x111A */ s16 field_0x111a; - /* 0x111C */ s16 field_0x111c; - /* 0x111E */ s16 field_0x111e; - /* 0x1120 */ s16 field_0x1120; - /* 0x1122 */ s16 field_0x1122; - /* 0x1124 */ s16 field_0x1124; - /* 0x1126 */ s16 field_0x1126; + /* 0x1100 */ _GXColorS10 mActorAmbience; + /* 0x1108 */ _GXColorS10 mTerrainAmbienceBG0; + /* 0x1110 */ s16 mTerrainAmbienceBG1_R; + /* 0x1112 */ s16 mTerrainAmbienceBG1_G; + /* 0x1114 */ s16 mTerrainAmbienceBG1_B; + /* 0x1116 */ s16 mWaterSurfaceAlphaA; + /* 0x1118 */ s16 mTerrainAmbienceBG2_R; + /* 0x111A */ s16 mTerrainAmbienceBG2_G; + /* 0x111C */ s16 mTerrainAmbienceBG2_B; + /* 0x111E */ s16 mAuxAlphaA2; + /* 0x1120 */ s16 mTerrainAmbienceBG3_R; + /* 0x1122 */ s16 mTerrainAmbienceBG3_G; + /* 0x1124 */ s16 mTerrainAmbienceBG3_B; + /* 0x1126 */ s16 mFakeFogA; /* 0x1128 */ _GXColorS10 field_0x1128; /* 0x1130 */ u8 field_0x1130[0x28]; - /* 0x1158 */ _GXColorS10 field_0x1158; + /* 0x1158 */ _GXColorS10 mFogColor; /* 0x1160 */ s16 field_0x1160; /* 0x1162 */ s16 field_0x1162; /* 0x1164 */ s16 field_0x1164; @@ -559,8 +370,8 @@ public: /* 0x11D8 */ f32 field_0x11d8; /* 0x11DC */ f32 field_0x11dc; /* 0x11E0 */ f32 field_0x11e0; - /* 0x11E4 */ f32 field_0x11e4; - /* 0x11E8 */ f32 field_0x11e8; + /* 0x11E4 */ f32 mFogNear; + /* 0x11E8 */ f32 mFogFar; /* 0x11EC */ f32 field_0x11ec; /* 0x11F0 */ f32 field_0x11f0; /* 0x11F4 */ f32 field_0x11f4; @@ -585,17 +396,17 @@ public: /* 0x1240 */ f32 field_0x1240; /* 0x1244 */ f32 mDaytime; /* 0x1248 */ f32 mNexttime; - /* 0x124C */ f32 field_0x124c; + /* 0x124C */ f32 mTimeSpeed; /* 0x1250 */ f32 mDarkDaytime; /* 0x1254 */ f32 field_0x1254; /* 0x1258 */ f32 field_0x1258; - /* 0x125C */ f32 field_0x125c; - /* 0x1260 */ f32 field_0x1260; + /* 0x125C */ f32 mPaletteTerrainLightEffect; + /* 0x1260 */ f32 mGrassLightEffectRate; /* 0x1264 */ f32 field_0x1264; /* 0x1268 */ f32 field_0x1268; /* 0x126C */ f32 field_0x126c; - /* 0x1270 */ f32 field_0x1270; - /* 0x1274 */ f32 field_0x1274; + /* 0x1270 */ f32 mDemoAttentionPoint; + /* 0x1274 */ f32 mTime; // ? /* 0x1278 */ f32 field_0x1278; /* 0x127C */ f32 field_0x127c; /* 0x1280 */ int field_0x1280; @@ -612,13 +423,13 @@ public: /* 0x12B4 */ int field_0x12b4; /* 0x12B8 */ u8 field_0x12b8[4]; /* 0x12BC */ u16 field_0x12bc; - /* 0x12BE */ u16 field_0x12be; - /* 0x12C0 */ u16 field_0x12c0; + /* 0x12BE */ u16 mDate; + /* 0x12C0 */ u16 mActorLightEffect; /* 0x12C2 */ u8 field_0x12c2; /* 0x12C3 */ u8 field_0x12c3; /* 0x12C4 */ u8 field_0x12c4; /* 0x12C5 */ u8 mWeatherPalette; - /* 0x12C6 */ u8 field_0x12c6; + /* 0x12C6 */ s8 mNowRoom; /* 0x12C7 */ u8 field_0x12c7; /* 0x12C8 */ u8 field_0x12c8; /* 0x12C9 */ u8 field_0x12c9; @@ -632,19 +443,19 @@ public: /* 0x12D1 */ u8 mItemGetCol_chg; /* 0x12D2 */ u8 field_0x12d2; /* 0x12D3 */ u8 field_0x12d3; - /* 0x12D4 */ u8 field_0x12d4; + /* 0x12D4 */ bool field_0x12d4; // related to vrbox color /* 0x12D5 */ u8 field_0x12d5; /* 0x12D6 */ u8 field_0x12d6; /* 0x12D7 */ u8 mShadowMode; /* 0x12D8 */ u8 mCameraInWater; - /* 0x12DC */ void* field_0x12dc; - /* 0x12E0 */ void* field_0x12e0; - /* 0x12E4 */ void* field_0x12e4; - /* 0x12E8 */ void* field_0x12e8; - /* 0x12EC */ void* field_0x12ec; - /* 0x12F0 */ void* field_0x12f0; - /* 0x12F4 */ void* field_0x12f4; - /* 0x12F8 */ u8 field_0x12f8; + /* 0x12DC */ void* mResPolEfftbl; + /* 0x12E0 */ void* mResPolEffcol; + /* 0x12E4 */ void* mResPolEfftbl2; + /* 0x12E8 */ void* mResPolEffcol2; + /* 0x12EC */ void* mResPolSound; + /* 0x12F0 */ void* mResPolArg; + /* 0x12F4 */ void* mResColorDataTbl; + /* 0x12F8 */ s8 mFogDensity; /* 0x12F9 */ u8 field_0x12f9; /* 0x12FA */ u8 field_0x12fa; /* 0x12FB */ u8 field_0x12fb; @@ -653,7 +464,7 @@ public: /* 0x12FE */ u8 field_0x12fe; /* 0x1300 */ u16 field_0x1300; /* 0x1302 */ u16 field_0x1302; - /* 0x1304 */ f32 field_0x1304; + /* 0x1304 */ f32 mWaterSurfaceShineRate; /* 0x1308 */ u8 field_0x1308; /* 0x1309 */ u8 field_0x1309; /* 0x130A */ u8 field_0x130a; @@ -666,5 +477,13 @@ STATIC_ASSERT(sizeof(dScnKy_env_light_c) == 4880); BOOL dKy_darkworld_stage_check(char const*, int); BOOL dKy_withwarp_capture_check(); bool dKy_darkworld_check(); +void dKy_undwater_filter_draw(); +BOOL dKy_camera_water_in_status_check(); +static int dKy_Outdoor_check(); +s32 dKy_getdaytime_hour(); +s32 dKy_getdaytime_minute(); +s32 dKy_get_dayofweek(); +static void dKy_Sound_init(); +void dKy_setLight_nowroom(char); #endif /* D_KANKYO_D_KANKYO_H */ diff --git a/include/d/kankyo/d_kankyo_data.h b/include/d/kankyo/d_kankyo_data.h index 4d0c885262..6a9588ce32 100644 --- a/include/d/kankyo/d_kankyo_data.h +++ b/include/d/kankyo/d_kankyo_data.h @@ -3,7 +3,7 @@ #include "dolphin/types.h" -// Invented name; Used as u8 `darkLv` in dKyd_darkworldTblEntry. +// Invented name; Used as u8 `darkLv` in dKydata_darkworldInfo_c. enum dKyd_DARKLV { FARON = 0, ELDIN = 1, @@ -13,10 +13,16 @@ enum dKyd_DARKLV { ALWAYS_DARK = 8, // Unused. Forces Twilight }; -// Invented name -struct dKyd_darkworldTblEntry { - char* stageName; - u8 darkLv; +class dKydata_darkworldInfo_c { +public: + /* 0x0 */ char* stageName; + /* 0x4 */ u8 darkLv; +}; // Size: 0x8 + +class dKydata_lightsizeInfo_c { +public: + /* 0x0 */ char* stageName; + /* 0x4 */ u8 size; }; // Size: 0x8 // Invented name; adjust as needed in the future. @@ -35,6 +41,28 @@ struct dKyd_lightSchejule { u8 endTimeLight; }; // Size: 0xC +enum BloomType { + /* 0x0 */ BLOOM_CLEAR, + /* 0x1 */ BLOOM_SOFT +}; + +#define BLOOMINFO_MAX 64 +class dKydata_BloomInfo_c { +public: + /* 0x0 */ u8 mType; + /* 0x1 */ u8 mThreshold; + /* 0x2 */ u8 mBlurAmount; + /* 0x3 */ u8 mDensity; + /* 0x4 */ u8 mColorR; + /* 0x5 */ u8 mColorG; + /* 0x6 */ u8 mColorB; + /* 0x7 */ u8 mOrigDensity; // ? + /* 0x8 */ u8 mSaturateSubtractR; + /* 0x9 */ u8 mSaturateSubtractG; + /* 0xA */ u8 mSaturateSubtractB; + /* 0xB */ u8 mSaturateSubtractA; +}; // Size: 0xC + void* dKyd_dmpalet_getp(); void* dKyd_dmpselect_getp(); void* dKyd_dmenvr_getp(); @@ -43,9 +71,9 @@ dKyd_lightSchejule* dKyd_schejule_getp(); dKyd_lightSchejule* dKyd_schejule_boss_getp(); void dKyd_xfog_table_set(u8); void* dKyd_maple_col_getp(); -dKyd_darkworldTblEntry* dKyd_darkworld_tbl_getp(); -void* dKyd_light_size_tbl_getp(); -void* dKyd_light_tw_size_tbl_getp(); -void* dKyd_BloomInf_tbl_getp(int); +dKydata_darkworldInfo_c* dKyd_darkworld_tbl_getp(); +dKydata_lightsizeInfo_c* dKyd_light_size_tbl_getp(); +dKydata_lightsizeInfo_c* dKyd_light_tw_size_tbl_getp(); +dKydata_BloomInfo_c* dKyd_BloomInf_tbl_getp(int); #endif /* D_KANKYO_D_KANKYO_DATA_H */ diff --git a/include/d/kankyo/d_kankyo_rain.h b/include/d/kankyo/d_kankyo_rain.h index 74dd807f75..d9d94e98f3 100644 --- a/include/d/kankyo/d_kankyo_rain.h +++ b/include/d/kankyo/d_kankyo_rain.h @@ -3,4 +3,41 @@ #include "dolphin/types.h" +struct cXyz; +struct _GXColor; + +void dKyr_drawSun(f32 (*param_0)[4], cXyz* param_1, _GXColor& param_2, u8** param_3); +void dKyr_drawLenzflare(f32 (*param_0)[4], cXyz* param_1, _GXColor& param_2, u8** param_3); +void dKyr_drawSibuki(f32 (*param_0)[4], u8** param_1); +void dKyr_drawRain(f32 (*param_0)[4], u8** param_1); +void dKyr_drawSnow(f32 (*param_0)[4], u8** param_1); +void dKyr_drawStar(f32 (*param_0)[4], u8** param_1); +void drawCloudShadow(f32 (*param_0)[4], u8** param_1); +void dKyr_drawHousi(f32 (*param_0)[4], u8** param_1); +void drawVrkumo(f32 (*param_0)[4], _GXColor& param_1, u8** param_2); +void dKyr_odour_draw(f32 (*param_0)[4], u8** param_1); +void dKyr_mud_draw(f32 (*param_0)[4], u8** param_1); +void dKyr_evil_draw(f32 (*param_0)[4], u8** param_1); +void dKyr_thunder_init(); +void dKyr_thunder_move(); +void dKyr_snow_init(); +void dKyr_snow_move(); +void dKyr_evil_init(); +void dKyr_evil_move(); +void dKyr_mud_init(); +void dKyr_mud_move(); +void dKyr_rain_init(); +void dKyr_rain_move(); +void cloud_shadow_move(); +void dKyr_odour_init(); +void dKyr_odour_move(); +void dKyr_housi_init(); +void dKyr_housi_move(); +void dKyr_sun_move(); +void dKyr_lenzflare_move(); +void dKyr_star_init(); +void dKyr_shstar_init(); +void dKyr_star_move(); +void dKyr_shstar_move(); + #endif /* D_KANKYO_D_KANKYO_RAIN_H */ diff --git a/include/d/kankyo/d_kankyo_wether.h b/include/d/kankyo/d_kankyo_wether.h index 371d59afcc..6e768e1002 100644 --- a/include/d/kankyo/d_kankyo_wether.h +++ b/include/d/kankyo/d_kankyo_wether.h @@ -1,6 +1,9 @@ #ifndef D_KANKYO_D_KANKYO_WETHER_H #define D_KANKYO_D_KANKYO_WETHER_H +#include "JSystem/J3DGraphBase/J3DPacket.h" +#include "SSystem/SComponent/c_sxyz.h" +#include "SSystem/SComponent/c_xyz.h" #include "dolphin/types.h" void dKyw_wether_draw(); @@ -9,5 +12,258 @@ void dKyw_wether_move_draw2(); void dKyw_wether_draw2(); void dKyw_wether_delete2(); void dKyw_wether_init2(); +static void dKyw_wind_init(); +static void dKyw_pntwind_init(); +f32 dKyw_get_wind_pow(); +static void squal_proc(); + +class dKankyo_sun_Packet : public J3DPacket { +public: + virtual void draw(); + virtual ~dKankyo_sun_Packet(); + + /* 0x10 */ cXyz field_0x10[2]; + /* 0x28 */ u8 field_0x28; + /* 0x29 */ u8 field_0x29; + /* 0x2C */ u8* mpResMoon; + /* 0x30 */ u8* mpResMoon_A; + /* 0x34 */ u8* mpResMoon_A_A00; + /* 0x38 */ u8* mpResMoon_A_A01; + /* 0x3C */ u8* mpResMoon_A_A02; + /* 0x40 */ u8* mpResMoon_A_A03; + /* 0x44 */ int field_0x44; + /* 0x48 */ int field_0x48; + /* 0x4C */ int field_0x4c; + /* 0x50 */ int field_0x50; + /* 0x54 */ int field_0x54; + /* 0x58 */ int field_0x58; + /* 0x5C */ f32 field_0x5c; + /* 0x60 */ f32 field_0x60; + /* 0x64 */ f32 field_0x64; + /* 0x68 */ f32 field_0x68; + /* 0x6C */ f32 field_0x6c; + /* 0x70 */ GXColor mColor; + /* 0x74 */ u8 field_0x74[4]; +}; // Size: 0x78 + +class dKankyo_sunlenz_Packet : public J3DPacket { +public: + virtual void draw(); + virtual ~dKankyo_sunlenz_Packet(); + + /* 0x10 */ GXColor field_0x10; + /* 0x14 */ u8* mpResBall; + /* 0x18 */ u8 field_0x18[4]; + /* 0x1C */ u8* mpResRing_A; + /* 0x20 */ u8* mpResLenz; + /* 0x24 */ cXyz field_0x24[8]; + /* 0x84 */ u8 field_0x84[8]; + /* 0x8C */ f32 field_0x8c; + /* 0x90 */ f32 field_0x90; + /* 0x94 */ u8 field_0x94[4]; + /* 0x98 */ f32 field_0x98; + /* 0x9C */ u8 field_0x9c[2]; + /* 0x9E */ u8 field_0x9e; +}; // Size: 0xA0 + +struct RAIN_EFF { + /* 80056CD0 */ ~RAIN_EFF(); + /* 80056D0C */ RAIN_EFF(); + + /* 0x00 */ u8 field_0x0[4]; + /* 0x04 */ cXyz field_0x04; + /* 0x10 */ cXyz field_0x10; + /* 0x1C */ u8 field_0x1c[0x1c]; +}; // Size: 0x38 + +class dKankyo_rain_Packet : public J3DPacket { +public: + virtual void draw(); + virtual ~dKankyo_rain_Packet(); + +private: + /* 0x0010 */ u8* field_0x10; + /* 0x0014 */ u8 field_0x14[4]; + /* 0x0018 */ RAIN_EFF field_0x18[250]; + /* 0x36C8 */ u8 field_0x36c8[0x50]; +}; // Size: 0x3718 + +struct SNOW_EFF { + /* 80056D58 */ ~SNOW_EFF(); + /* 80056D94 */ SNOW_EFF(); + + /* 0x00 */ u8 field_0x0[4]; + /* 0x04 */ cXyz field_0x04; + /* 0x10 */ cXyz field_0x10; + /* 0x1C */ u8 field_0x1c[0x1c]; +}; // Size: 0x38 + +class dKankyo_snow_Packet : public J3DPacket { +public: + virtual void draw(); + virtual ~dKankyo_snow_Packet(); + +private: + /* 0x10 */ u8* field_0x10; + /* 0x14 */ SNOW_EFF field_0x14[500]; +}; + +struct STAR_EFF { + /* 80056DC8 */ ~STAR_EFF(); + /* 80056E04 */ STAR_EFF(); + + /* 0x00 */ u8 field_0x0[4]; + /* 0x04 */ cXyz field_0x04; + /* 0x10 */ cXyz field_0x10; + /* 0x1C */ u8 field_0x1c[0x18]; +}; // Size: 0x34 + +class dKankyo_star_Packet : public J3DPacket { +public: + virtual void draw(); + virtual ~dKankyo_star_Packet(); + +private: + /* 0x10 */ u8* field_0x10; + /* 0x14 */ STAR_EFF field_0x14[1]; +}; + +struct HOUSI_EFF { + /* 80056EA8 */ ~HOUSI_EFF(); + /* 80056EE4 */ HOUSI_EFF(); + + /* 0x00 */ u8 field_0x0; + /* 0x04 */ cXyz field_0x04; + /* 0x10 */ cXyz field_0x10; + /* 0x1C */ cXyz field_0x1c; + /* 0x28 */ u8 field_0x28[0x28]; +}; // Size: 0x50 + +class dKankyo_housi_Packet : public J3DPacket { +public: + virtual void draw(); + virtual ~dKankyo_housi_Packet(); + + /* 0x0010 */ cXyz field_0x10; + /* 0x001C */ u8* mpResTex; + /* 0x0020 */ HOUSI_EFF field_0x18[300]; + /* 0x5DE0 */ u8 field_0x5de0[8]; + /* 0x5DE8 */ f32 field_0x5de8; + /* 0x5DEC */ u8 field_0x5dec[4]; +}; // Size: 0x5DF0 + +struct CLOUD_EFF { + /* 80056E38 */ ~CLOUD_EFF(); + /* 80056E74 */ CLOUD_EFF(); + + /* 0x00 */ u8 field_0x0; + /* 0x04 */ cXyz field_0x04; + /* 0x10 */ cXyz field_0x10; + /* 0x1C */ cXyz field_0x1c; + /* 0x28 */ u8 field_0x28[0x10]; +}; // Size: 0x38 + +class dKankyo_cloud_Packet : public J3DPacket { +public: + virtual void draw(); + virtual ~dKankyo_cloud_Packet(); + + /* 0x10 */ u8* mpResTex; + /* 0x14 */ int field_0x14; + /* 0x18 */ CLOUD_EFF field_0x18[50]; +}; // Size: 0xB08 + +struct VRKUMO_EFF { + /* 80056F18 */ ~VRKUMO_EFF(); + /* 80056F54 */ VRKUMO_EFF(); + + /* 0x00 */ u8 field_0x0[4]; + /* 0x04 */ cXyz field_0x04; + /* 0x10 */ cXyz field_0x10; + /* 0x1C */ u8 field_0x1c[0x10]; +}; // Size: 0x2C + +class dKankyo_vrkumo_Packet : public J3DPacket { +public: + virtual void draw(); + virtual ~dKankyo_vrkumo_Packet(); + +private: + /* 0x0010 */ GXColor field_0x10; + /* 0x0014 */ u8* mpResCloudtx_01; + /* 0x0018 */ u8* mpResCloudtx_02; + /* 0x001C */ u8* mpResCloudtx_03; + /* 0x0020 */ VRKUMO_EFF field_0x20[100]; + /* 0x1150 */ f32 field_0x1150; + /* 0x1154 */ f32 field_0x1154; +}; // Size: 0x1158 + +// might be fake +class dKankyo_shstar_Packet : public J3DPacket {}; + +struct EF_ODOUR_EFF { + /* 80056F8C */ ~EF_ODOUR_EFF(); + /* 80056FC8 */ EF_ODOUR_EFF(); + + /* 0x00 */ u8 field_0x0[4]; + /* 0x04 */ cXyz field_0x04; + /* 0x10 */ cXyz field_0x10; + /* 0x1C */ u8 field_0x1c[0x14]; +}; // Size: 0x30 + +class dKankyo_odour_Packet : public J3DPacket { +public: + virtual void draw(); + virtual ~dKankyo_odour_Packet(); + + /* 0x00010 */ u8* mpResTex; + /* 0x00014 */ EF_ODOUR_EFF field_0x18[2000]; + /* 0x17714 */ u8 field_0x17714[0x14]; +}; // Size: 0x17728 + +struct EF_MUD_EFF { + /* 80056FFC */ ~EF_MUD_EFF(); + /* 80057038 */ EF_MUD_EFF(); + + /* 0x00 */ u8 field_0x0[4]; + /* 0x04 */ cXyz field_0x04; + /* 0x10 */ cXyz field_0x10; + /* 0x1C */ cXyz field_0x1c; + /* 0x28 */ u8 field_0x28[0x20]; +}; // Size: 0x48 + +class dKankyo_mud_Packet : public J3DPacket { +public: + virtual void draw(); + virtual ~dKankyo_mud_Packet(); + + /* 0x0010 */ int field_0x10; + /* 0x0014 */ u8* field_0x14; + /* 0x0018 */ EF_MUD_EFF field_0x18[100]; + /* 0x13C8 */ u8 field_0x13c8[8]; +}; + +struct EF_EVIL_EFF { + /* 8005706C */ ~EF_EVIL_EFF(); + /* 800570A8 */ EF_EVIL_EFF(); + + /* 0x00 */ u8 field_0x0[4]; + /* 0x04 */ cXyz field_0x04; + /* 0x10 */ cXyz field_0x10; + /* 0x1C */ csXyz field_0x1c; + /* 0x22 */ u8 field_0x22[0x22]; +}; // Size: 0x44 + +class dKankyo_evil_Packet : public J3DPacket { +public: + virtual void draw(); + virtual ~dKankyo_evil_Packet(); + + /* 0x00010 */ int field_0x10; + /* 0x00014 */ u8* field_0x14; + /* 0x00018 */ u8 field_0x18[4]; + /* 0x0001C */ EF_EVIL_EFF field_0x1c[2000]; + /* 0x2135C */ u8 field_0x2135c[8]; +}; #endif /* D_KANKYO_D_KANKYO_WETHER_H */ diff --git a/include/d/map/d_map_path.h b/include/d/map/d_map_path.h index 6aadaabc0c..b809043d8a 100644 --- a/include/d/map/d_map_path.h +++ b/include/d/map/d_map_path.h @@ -7,10 +7,10 @@ class dDrawPath_c : public dDlst_base_c { public: struct line_class { - /* 0x00 */ u8 unk0; - /* 0x01 */ u8 unk1; - /* 0x02 */ u8 unk2; - /* 0x03 */ u8 unk3; + /* 0x00 */ u8 unk0; + /* 0x01 */ u8 unk1; + /* 0x02 */ u8 unk2; + /* 0x03 */ u8 unk3; /* 0x04 */ u16* unk4; }; diff --git a/include/d/menu/d_menu_collect.h b/include/d/menu/d_menu_collect.h index 6629cdffda..264ffd7a1d 100644 --- a/include/d/menu/d_menu_collect.h +++ b/include/d/menu/d_menu_collect.h @@ -311,7 +311,7 @@ public: /* 801B7434 */ void getCrystalNum(); /* 801B749C */ void getMirrorNum(); /* 801B7504 */ void getMaskMdlVisible(); - /* 801B75E8 */ void setupItem3D(f32 (*)[4]); + /* 801B75E8 */ static void setupItem3D(f32 (*)[4]); /* 801B7660 */ void toItem3Dpos(f32, f32, f32, cXyz*); /* 801B774C */ void calcViewMtx(f32 (*)[4]); diff --git a/include/d/meter/d_meter2_draw.h b/include/d/meter/d_meter2_draw.h index 4e91482574..81b4378c97 100644 --- a/include/d/meter/d_meter2_draw.h +++ b/include/d/meter/d_meter2_draw.h @@ -90,7 +90,7 @@ public: /* 80219788 */ void setButtonIconBAlpha(u8, u32, bool); /* 80219A84 */ void setButtonIconMidonaAlpha(u32); /* 80219E98 */ void setButtonIconAlpha(int, u8, u32, bool); - /* 8021A29C */ void getNumberTexture(int); + /* 8021A29C */ ResTIMG* getNumberTexture(int); /* 8021A2F4 */ void getActionString(u8, u8, u8*); /* 8021A468 */ void changeTextureItemB(u8); /* 8021A71C */ void changeTextureItemXY(int, u8); @@ -99,18 +99,18 @@ public: /* 8021AB84 */ void setItemNum(u8, u8, u8); /* 8021AEC8 */ void drawItemNum(u8, f32); /* 8021AF78 */ void drawKanteraMeter(u8, f32); - /* 8021B0C8 */ void isButtonVisible(); + /* 8021B0C8 */ u8 isButtonVisible(); /* 8021B104 */ void setItemParamX(u8); /* 8021B364 */ void setItemParamY(u8); /* 8021B5B0 */ void setItemParamZ(u8); /* 8021B810 */ void setItemParamB(u8); - /* 8021BB6C */ void getFishingType(); - /* 8021BBB4 */ void getCanoeFishing(); + /* 8021BB6C */ bool getFishingType(); + /* 8021BBB4 */ bool getCanoeFishing(); /* 8021BC24 */ void getCameraSubject(); /* 8021BC54 */ void getItemSubject(); - /* 8021BCAC */ void getPlayerSubject(); + /* 8021BCAC */ bool getPlayerSubject(); /* 8021BCC0 */ void isBButtonShow(bool); - /* 8021BDD0 */ void getButtonTimer(); + /* 8021BDD0 */ s16 getButtonTimer(); /* 802102F8 */ virtual ~dMeter2Draw_c(); @@ -150,11 +150,11 @@ private: /* 0x07C */ J2DScreen* mpKanteraScreen; /* 0x080 */ J2DScreen* mpPikariScreen; /* 0x084 */ J2DScreen* mpItemNumTex[2][3]; - /* 0x09C */ int field_0x9c[3]; + /* 0x09C */ CPaneMgr* field_0x9c[3]; /* 0x0A8 */ int field_0xa8; /* 0x0AC */ dKantera_icon_c* mpKanteraMeter[2]; /* 0x0B4 */ u8 field_0xb4[8]; - /* 0x0BC */ void* mpParent; + /* 0x0BC */ CPaneMgr* mpParent; /* 0x0C0 */ CPaneMgr* mpAText[5]; /* 0x0D4 */ CPaneMgr* mpBText[5]; /* 0x0E8 */ CPaneMgr* mpXYText[5][3]; @@ -189,8 +189,7 @@ private: /* 0x334 */ CPaneMgr* mpItemR; /* 0x338 */ CPaneMgr* mpBTextA; /* 0x33C */ CPaneMgr* mpBTextB; - /* 0x340 */ CPaneMgr* mpBTextXY[2]; - /* 0x348 */ int field_0x348; + /* 0x340 */ CPaneMgr* mpBTextXY[3]; /* 0x34C */ CPaneMgr* mpTextA; /* 0x350 */ CPaneMgr* mpTextB; /* 0x354 */ CPaneMgr* mpTextXY[3]; @@ -211,11 +210,11 @@ private: /* 0x514 */ J2DPicture* mpItemBPane; /* 0x518 */ J2DPicture* mpItemXYPane[3]; /* 0x524 */ int field_0x524[2][2]; - /* 0x534 */ u8 field_0x534[8]; - /* 0x53C */ J2DAnmColorKey* field_0x53c; - /* 0x540 */ J2DAnmColorKey* field_0x540; - /* 0x544 */ J2DAnmColorKey* field_0x544; - /* 0x548 */ u8 field_0x548[8]; + /* 0x534 */ J2DAnmTransformKey* mPikariBck; + /* 0x538 */ J2DAnmColorKey* mPikariBpk; + /* 0x53C */ J2DAnmColorKey* field_0x53c[3]; + /* 0x548 */ JUtility::TColor field_0x548; + /* 0x54C */ JUtility::TColor field_0x54c; /* 0x550 */ f32 field_0x550; /* 0x554 */ f32 field_0x554; /* 0x558 */ f32 field_0x558; @@ -289,12 +288,12 @@ private: /* 0x730 */ f32 field_0x730; /* 0x734 */ f32 field_0x734; /* 0x738 */ f32 field_0x738; - /* 0x73C */ u8 field_0x73c[4]; + /* 0x73C */ f32 field_0x73c; /* 0x740 */ u16 field_0x740; /* 0x742 */ u16 field_0x742[3]; - /* 0x748 */ u8 field_0x748[0xE]; + /* 0x748 */ u8 field_0x748[0xC]; /* 0x756 */ u16 field_0x754; - /* 0x756 */ u16 field_0x756; + /* 0x756 */ s16 field_0x756; /* 0x758 */ u8 field_0x758; /* 0x759 */ u8 field_0x759; /* 0x75A */ u8 field_0x75a; @@ -318,55 +317,55 @@ private: /* 0x771 */ u8 field_0x771; /* 0x772 */ u8 field_0x772; /* 0x773 */ u8 field_0x773[2]; - /* 0x778 */ f32 field_0x778; - /* 0x77C */ f32 field_0x77c; - /* 0x780 */ f32 field_0x780; - /* 0x784 */ f32 field_0x784; - /* 0x788 */ f32 field_0x788; + /* 0x778 */ f32 mHUDScale; + /* 0x77C */ f32 mHUDAlpha; + /* 0x780 */ f32 mButtonsPosX; + /* 0x784 */ f32 mButtonsPosY; + /* 0x788 */ f32 mButtonsScale; /* 0x78C */ f32 field_0x78c; /* 0x790 */ f32 field_0x790; - /* 0x794 */ f32 field_0x794; - /* 0x798 */ f32 field_0x798; - /* 0x79C */ f32 field_0x79c; - /* 0x7A0 */ f32 field_0x7a0; + /* 0x794 */ f32 mLifeGaugeHeartAlpha; + /* 0x798 */ f32 mLifeGaugeBaseAlpha; + /* 0x79C */ f32 mHeartAlpha; + /* 0x7A0 */ f32 mLargeHeartAlpha; /* 0x7A4 */ f32 field_0x7a4; - /* 0x7A8 */ f32 field_0x7a8; - /* 0x7AC */ f32 field_0x7ac; + /* 0x7A8 */ f32 mMagicMeterAlpha; + /* 0x7AC */ f32 mMagicMeterFrameAlpha; /* 0x7B0 */ f32 field_0x7b0; - /* 0x7B4 */ f32 field_0x7b4; - /* 0x7B8 */ f32 field_0x7b8; + /* 0x7B4 */ f32 mLanternMeterAlpha; + /* 0x7B8 */ f32 mLanternMeterFrameAlpha; /* 0x7BC */ f32 field_0x7bc; - /* 0x7C0 */ f32 field_0x7c0; - /* 0x7C4 */ f32 field_0x7c4; + /* 0x7C0 */ f32 mOxygenMeterAlpha; + /* 0x7C4 */ f32 mOxygenMeterFrameAlpha; /* 0x7C8 */ f32 field_0x7c8; /* 0x7CC */ f32 field_0x7cc; /* 0x7D0 */ f32 field_0x7d0; - /* 0x7D4 */ f32 field_0x7d4; - /* 0x7D8 */ f32 field_0x7d8; - /* 0x7DC */ f32 field_0x7dc; + /* 0x7D4 */ f32 mRupeeAlpha; + /* 0x7D8 */ f32 mRupeeFrameAlpha; + /* 0x7DC */ f32 mRupeeCountAlpha; /* 0x7E0 */ f32 field_0x7e0; /* 0x7E4 */ f32 field_0x7e4; - /* 0x7E8 */ f32 field_0x7e8; - /* 0x7EC */ f32 field_0x7ec; + /* 0x7E8 */ f32 mKeyAlpha; + /* 0x7EC */ f32 mKeyNumAlpha; /* 0x7F0 */ f32 field_0x7f0; - /* 0x7F4 */ f32 field_0x7f4; - /* 0x7F8 */ f32 field_0x7f8; - /* 0x7FC */ f32 field_0x7fc; - /* 0x800 */ f32 field_0x800; - /* 0x804 */ f32 field_0x804; - /* 0x808 */ f32 field_0x808; + /* 0x7F4 */ f32 mMainHUDButtonsAlpha; + /* 0x7F8 */ f32 mButtonDisplayBackAlpha; + /* 0x7FC */ f32 mAButtonAlpha; + /* 0x800 */ f32 mBButtonAlpha; + /* 0x804 */ f32 mXButtonAlpha; + /* 0x808 */ f32 mYButtonAlpha; /* 0x80C */ f32 field_0x80c; /* 0x810 */ f32 field_0x810; - /* 0x814 */ f32 field_0x814[2]; - /* 0x81C */ f32 field_0x81c[2]; - /* 0x824 */ f32 field_0x824[2]; + /* 0x814 */ f32 mBItemBaseAlpha[2]; + /* 0x81C */ f32 mXButtonItemBaseAlpha[2]; + /* 0x824 */ f32 mYButtonItemBaseAlpha[2]; /* 0x82C */ f32 field_0x82c[2]; - /* 0x834 */ f32 field_0x834; - /* 0x838 */ f32 field_0x838; - /* 0x83C */ f32 field_0x83c; - /* 0x840 */ f32 field_0x840; - /* 0x844 */ f32 field_0x844; - /* 0x848 */ f32 field_0x848; + /* 0x834 */ f32 mZButtonItemBaseAlpha; + /* 0x838 */ f32 mButtonBaseAlpha; + /* 0x83C */ f32 mAButtonFontSpacing; + /* 0x840 */ f32 mDPadButtonAlpha; + /* 0x844 */ f32 mDPadButtonITEMAlpha; + /* 0x848 */ f32 mDPadButtonMAPAlpha; /* 0x84C */ u8 field_0x84c; /* 0x84D */ u8 field_0x84d; /* 0x84E */ u8 field_0x84e; diff --git a/include/d/meter/d_meter2_info.h b/include/d/meter/d_meter2_info.h index 713613c157..bffd6ba5ec 100644 --- a/include/d/meter/d_meter2_info.h +++ b/include/d/meter/d_meter2_info.h @@ -139,6 +139,12 @@ public: bool isMenuInForce(int flag) { return unk152 & (1 << flag); } u16 getMapKeyDirection() { return mMapKeyDirection; } u8 getWindowStatus() { return mWindowStatus; } + void setMsgResource(void* res) { mMsgResource = res; } + void setStageMsgResource(void* res) { mStageMsgResource = res; } + void setMsgUnitResource(void* res) { mMsgUnitResource = res; } + void* getMsgResource() { return mMsgResource; } + void* getStageMsgResource() { return mStageMsgResource; } + void* getMsgUnitResource() { return mMsgUnitResource; } public: /* 0x04 */ u8 unk4[4]; @@ -369,4 +375,30 @@ inline u8 dMeter2Info_getWindowStatus() { return g_meter2_info.getWindowStatus(); } +inline void dMeter2Info_setMsgResource(void* res) { + g_meter2_info.setMsgResource(res); +} + +inline void dMeter2Info_setStageMsgResource(void* res) { + g_meter2_info.setStageMsgResource(res); +} + +inline void dMeter2Info_setMsgUnitResource(void* res) { + g_meter2_info.setMsgUnitResource(res); +} + +inline void* dMeter2Info_getMsgResource() { + return g_meter2_info.getMsgResource(); +} + +inline void* dMeter2Info_getStageMsgResource() { + return g_meter2_info.getStageMsgResource(); +} + +inline void* dMeter2Info_getMsgUnitResource() { + return g_meter2_info.getMsgUnitResource(); +} + +char* dMeter2Info_getNumberTextureName(int pIndex); + #endif /* D_METER_D_METER2_INFO_H */ diff --git a/include/d/meter/d_meter_HIO.h b/include/d/meter/d_meter_HIO.h index 8e59384438..4155d985c3 100644 --- a/include/d/meter/d_meter_HIO.h +++ b/include/d/meter/d_meter_HIO.h @@ -737,32 +737,28 @@ public: /* 0x220 */ f32 mBItemBaseScale[2]; /* 0x228 */ f32 mBItemBasePosX[2]; /* 0x230 */ f32 mBItemBasePosY[2]; - /* 0x238 */ f32 mBItemBaseAlpha; - /* 0x23C */ f32 field_0x23c; + /* 0x238 */ f32 mBItemBaseAlpha[2]; /* 0x240 */ f32 mXButtonItemBaseScale; /* 0x244 */ f32 mXButtonItemBaseNoItemScale; /* 0x248 */ f32 mXButtonItemBasePosX; /* 0x24C */ f32 mXButtonItemBaseNoItemPosX; /* 0x250 */ f32 mXButtonItemBasePosY; /* 0x254 */ f32 mXButtonItemBaseNoItemPosY; - /* 0x258 */ f32 mXButtonItemBaseAlpha; - /* 0x25C */ f32 mXButtonItemBaseNoItemAlpha; + /* 0x258 */ f32 mXButtonItemBaseAlpha[2]; /* 0x260 */ f32 mYButtonItemBaseScale; /* 0x264 */ f32 mYButtonItemBaseNoItemScale; /* 0x268 */ f32 mYButtonItemBasePosX; /* 0x26C */ f32 mYButtonItemBaseNoItemPosX; /* 0x270 */ f32 mYButtonItemBasePosY; /* 0x274 */ f32 mYButtonItemBaseNoItemPosY; - /* 0x278 */ f32 mYButtonItemBaseAlpha; - /* 0x27C */ f32 mYButtonItemBaseNoItemAlpha; + /* 0x278 */ f32 mYButtonItemBaseAlpha[2]; /* 0x280 */ f32 field_0x280; /* 0x284 */ f32 field_0x284; /* 0x288 */ f32 field_0x288; /* 0x28C */ f32 field_0x28c; /* 0x290 */ f32 field_0x290; /* 0x294 */ f32 field_0x294; - /* 0x298 */ f32 field_0x298; - /* 0x29C */ f32 field_0x29c; + /* 0x298 */ f32 field_0x298[2]; /* 0x2A0 */ f32 mZButtonItemBaseScale; /* 0x2A4 */ f32 mZButtonItemBasePosX; /* 0x2A8 */ f32 mZButtonItemBasePosY; diff --git a/include/d/msg/d_msg_object.h b/include/d/msg/d_msg_object.h index 903cc910f2..cd0dcd27e4 100644 --- a/include/d/msg/d_msg_object.h +++ b/include/d/msg/d_msg_object.h @@ -3,12 +3,12 @@ #include "JSystem/J2DGraph/J2DTextbox.h" #include "d/com/d_com_inf_game.h" +#include "d/msg/d_msg_class.h" #include "dolphin/types.h" -class msg_class; class COutFont_c; -class dMsgObject_c { +class dMsgObject_c : public msg_class { public: /* 80233284 */ void _create(msg_class*); /* 80233590 */ void _execute(); @@ -113,7 +113,7 @@ public: char*, char*, s16*); /* 80238174 */ void getMsgDtPtr(); /* 80238188 */ void setProcessID(unsigned int); - /* 8023819C */ void getActor(); + /* 8023819C */ static fopAc_ac_c* getActor(); /* 802381C0 */ void getpTalkActor(); /* 802381D4 */ void getIdx(); /* 802381E8 */ void getNodeIdx(); @@ -149,8 +149,12 @@ public: /* 8023860C */ void setEquipBombInfo(); /* 80238638 */ void getItemEquipButton(); /* 8023864C */ void setSelectCancelPos(u8); + + /* 0x100 */ fopAc_ac_c* field_0x100; }; +s16 dMsgObject_getGroupID(); + inline dMsgObject_c* dMsgObject_getMsgObjectClass() { return dComIfGp_getMsgObjectClass(); } diff --git a/include/d/pane/d_pane_class_alpha.h b/include/d/pane/d_pane_class_alpha.h index c9d4aa3695..a016a31110 100644 --- a/include/d/pane/d_pane_class_alpha.h +++ b/include/d/pane/d_pane_class_alpha.h @@ -29,7 +29,7 @@ public: /* 8025564C */ void isVisible(); /* 80255658 */ f32 rateCalc(s16, s16, u8); /* 802557D0 */ void setAlphaRate(f32); - /* 80255828 */ void getAlphaRate(); + /* 80255828 */ f32 getAlphaRate(); /* 80255878 */ void alphaAnime(s16, u8, u8, u8); /* 80255964 */ void alphaAnimeLoop(s16, u8, u8, u8); /* 80255A60 */ void childPaneCount(J2DPane*); @@ -38,6 +38,7 @@ public: J2DPane* getPanePtr() { return (J2DPane*)mWindow; } u8 getAlpha() { return getPanePtr()->getAlpha(); } + s16 getAlphaTimer() { return mAlphaTimer; } /* 0x04 */ J2DWindow* mWindow; /* 0x08 */ JKRExpHeap* heap; diff --git a/include/d/particle/d_particle.h b/include/d/particle/d_particle.h index b894857486..75be552f86 100644 --- a/include/d/particle/d_particle.h +++ b/include/d/particle/d_particle.h @@ -108,9 +108,9 @@ public: /* 8004C218 */ void setHitMark(u16, fopAc_ac_c*, cXyz const*, csXyz const*, cXyz const*, u32); /* 8004C838 */ void setWaterRipple(u32*, cBgS_PolyInfo&, cXyz const*, f32, dKy_tevstr_c const*, cXyz const*, s8); - /* 8004CA90 */ void set(u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, cXyz const*, - u8, dPa_levelEcallBack*, s8, _GXColor const*, _GXColor const*, - cXyz const*, f32); + /* 8004CA90 */ u32 set(u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, cXyz const*, u8, + dPa_levelEcallBack*, s8, _GXColor const*, _GXColor const*, cXyz const*, + f32); /* 8004D4CC */ u32 set(u32, u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, cXyz const*, u8, dPa_levelEcallBack*, s8, _GXColor const*, _GXColor const*, cXyz const*, f32); @@ -141,6 +141,14 @@ public: param_8, param_9, param_10, param_11, param_12); } + u32 setNormal(u16 param_1, const cXyz* param_2, const dKy_tevstr_c* param_3, + const csXyz* param_4, const cXyz* param_5, u8 param_6, + dPa_levelEcallBack* param_7, s8 param_8, const GXColor* param_9, + const GXColor* param_10, const cXyz* param_11, f32 param_12) { + return set(0, param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8, + param_9, param_10, param_11, param_12); + } + static u8 mTsubo[64]; static u8 mLifeBall[24]; static u8 mWindViewMatrix[48]; diff --git a/include/d/save/d_save.h b/include/d/save/d_save.h index c7c4428098..bff50eaf52 100644 --- a/include/d/save/d_save.h +++ b/include/d/save/d_save.h @@ -370,8 +370,8 @@ public: u16& getMaxLife() { return mMaxLife; } u16& getLife() { return mLife; } u16& getRupee() { return mRupee; } - u16& getOil() { return mOil; } - u16& getMaxOil() { return mMaxOil; } + u16 getOil() { return mOil; } + u16 getMaxOil() { return mMaxOil; } u8& getMagic() { return mMagic; } u8& getMaxMagic() { return mMaxMagic; } u8 getSelectEquip(int item) const { return mSelectEquip[item]; } @@ -415,6 +415,10 @@ public: BOOL isTransformLV(int) const; void setDateIpl(s64 time) { mDateIpl = time; } + u16 getDate() const { return mDate; } + f32 getTime() const { return mTime; } + void setDate(u16 date) { mDate = date; } + void setTime(f32 time) { mTime = time; } private: /* 0x00 */ s64 mDateIpl; diff --git a/include/dolphin/gx/GX.h b/include/dolphin/gx/GX.h index d5bd716e52..66e71bb2bc 100644 --- a/include/dolphin/gx/GX.h +++ b/include/dolphin/gx/GX.h @@ -994,6 +994,22 @@ inline void GXPosition1x16(u16 x) { GFX_FIFO(u16) = x; } +inline void GXPosition3s8(s8 x, s8 y, s8 z) { + GFX_FIFO(s8) = x; + GFX_FIFO(s8) = y; + GFX_FIFO(s8) = z; +} + +inline void GXPosition2s8(s8 x, s8 y) { + GFX_FIFO(s8) = x; + GFX_FIFO(s8) = y; +} + +inline void GXTexCoord2s8(s8 x, s8 y) { + GFX_FIFO(s8) = x; + GFX_FIFO(s8) = y; +} + inline void GXEnd() {} }; diff --git a/include/dolphin/mtx/mtx.h b/include/dolphin/mtx/mtx.h index adab16dbe9..721d861cb3 100644 --- a/include/dolphin/mtx/mtx.h +++ b/include/dolphin/mtx/mtx.h @@ -9,7 +9,7 @@ typedef float Mtx[3][4]; typedef float Mtx33[3][3]; typedef float Mtx23[2][3]; typedef f32 (*MtxP)[4]; -typedef const f32 (*CMtxP)[4]; //Change name later? +typedef const f32 (*CMtxP)[4]; // Change name later? extern "C" { void PSMTXIdentity(Mtx matrix); diff --git a/include/dolphin/os/OS.h b/include/dolphin/os/OS.h index e0174a9b5a..eab991f625 100644 --- a/include/dolphin/os/OS.h +++ b/include/dolphin/os/OS.h @@ -263,6 +263,25 @@ inline void OSf32tou8(f32* f, u8* out) { *out = __OSf32tou8(*f); } +inline void OSInitFastCast(void) { + // clang-format off + asm { + li r3, 4 + oris r3, r3, 4 + mtspr 0x392, r3 + li r3, 5 + oris r3, r3, 5 + mtspr 0x393, r3 + li r3, 6 + oris r3, r3, 6 + mtspr 0x394, r3 + li r3, 7 + oris r3, r3, 7 + mtspr 0x395, r3 + } + // clang-format on +} + }; // extern "C" void OSSwitchFiberEx(u32, u32, u32, u32, u32, u32); diff --git a/include/dolphin/os/OSLink.h b/include/dolphin/os/OSLink.h index 12a1ba6001..24940ada3a 100644 --- a/include/dolphin/os/OSLink.h +++ b/include/dolphin/os/OSLink.h @@ -8,12 +8,12 @@ struct OSSectionInfo { u32 mSize; }; -struct OSModuleInfo { +struct OSModuleInfo { u32 mId; OSModuleInfo* mNext; OSModuleInfo* mPrev; u32 mNumSections; - struct { //Needed to get an assert correct; very likely bigger + struct { // Needed to get an assert correct; very likely bigger u32 sectionInfoOffset; } info; u32 mModuleNameOffset; @@ -28,7 +28,7 @@ struct OSModuleInfo { u8 mUnresolvedSection; u8 mBssSection; u32 (*prolog)(); - void(*epilog)(); + void (*epilog)(); u32 mUnresolvedFuncOffset; u32 mModuleAlignment; u32 mBssAlignment; @@ -36,7 +36,7 @@ struct OSModuleInfo { }; extern "C" BOOL OSLink(OSModuleInfo*); -extern "C" BOOL OSLinkFixed(OSModuleInfo*,u32); +extern "C" BOOL OSLinkFixed(OSModuleInfo*, u32); extern "C" BOOL OSUnlink(OSModuleInfo*); #endif /* OSLINK_H */ diff --git a/include/dolphin/pad/Pad.h b/include/dolphin/pad/Pad.h index c89ac7ed0a..db289f7102 100644 --- a/include/dolphin/pad/Pad.h +++ b/include/dolphin/pad/Pad.h @@ -16,16 +16,16 @@ typedef enum PADMask { } PADMask; typedef struct PADStatus { - u16 button; - s8 stick_x; - s8 stick_y; - s8 substick_x; - s8 substick_y; - u8 trigger_left; - u8 trigger_right; - u8 analog_a; - u8 analog_b; - s8 error; + /* 0x0 */ u16 button; + /* 0x2 */ s8 stick_x; + /* 0x3 */ s8 stick_y; + /* 0x4 */ s8 substick_x; + /* 0x5 */ s8 substick_y; + /* 0x6 */ u8 trigger_left; + /* 0x7 */ u8 trigger_right; + /* 0x8 */ u8 analog_a; + /* 0x9 */ u8 analog_b; + /* 0xA */ s8 error; } PADStatus; extern "C" { diff --git a/include/f_ap/f_ap_game.h b/include/f_ap/f_ap_game.h index a7dfe8c9b9..c4320f6b26 100644 --- a/include/f_ap/f_ap_game.h +++ b/include/f_ap/f_ap_game.h @@ -18,7 +18,7 @@ public: /* 0x10 */ f32 field_0x10; /* 0x14 */ bool mUsingHostIO; /* 0x15 */ bool mDisplayMeter; - /* 0x16 */ bool mDisplayPrint; + /* 0x16 */ u8 mDisplayPrint; /* 0x17 */ bool mDisplay2D; /* 0x18 */ bool mDisplayParticle; /* 0x19 */ bool mDisplayProcessID; @@ -41,4 +41,14 @@ public: extern fapGm_HIO_c g_HIO; +inline bool fapGmHIO_isMenu() { + return g_HIO.mDisplayPrint & 2; +} +inline bool fapGmHIO_isPrint() { + return g_HIO.mDisplayPrint & 1; +} +inline bool fapGmHIO_getMeter() { + return g_HIO.mDisplayMeter; +} + #endif /* F_AP_F_AP_GAME_H */ diff --git a/include/f_op/f_op_actor.h b/include/f_op/f_op_actor.h index 3ba9ad5b16..51c111df06 100644 --- a/include/f_op/f_op_actor.h +++ b/include/f_op/f_op_actor.h @@ -36,17 +36,14 @@ public: bool checkCommandTalk() { return mCommand == 1; } bool checkCommandItem() { return mCommand == 4; } -private: - /* 0x04 */ u16 mCommand; - /* 0x06 */ u16 mCondition; - /* 0x08 */ s16 mEventId; - /* 0x0A */ u8 mMapToolId; - -public: - /* 0x0B */ u8 mIndex; - /* 0x0C */ char* mArchiveName; - /* 0x10 */ void* field_0x10; - /* 0x14 */ void* field_0x14; + /* 0x04 */ u16 mCommand; + /* 0x06 */ u16 mCondition; + /* 0x08 */ s16 mEventId; + /* 0x0A */ u8 mMapToolId; + /* 0x0B */ u8 mIndex; + /* 0x0C */ char* mArchiveName; + /* 0x10 */ void* field_0x10; + /* 0x14 */ void* field_0x14; }; // Size = 0x18 struct actor_place { diff --git a/include/f_op/f_op_camera_mng.h b/include/f_op/f_op_camera_mng.h index 0871dc0882..3898ce711c 100644 --- a/include/f_op/f_op_camera_mng.h +++ b/include/f_op/f_op_camera_mng.h @@ -1,6 +1,7 @@ #ifndef F_F_OP_CAMERA_MNG_H_ #define F_F_OP_CAMERA_MNG_H_ +#include "SSystem/SComponent/c_xyz.h" #include "dolphin/types.h" #include "f_op/f_op_draw_tag.h" #include "f_pc/f_pc_leaf.h" @@ -9,7 +10,10 @@ class camera_class { public: /* 0x000 */ u8 field_0x00[0xB0]; /* 0x0B0 */ u32 parameter; - /* 0x0B4 */ u8 field_0xB4[0x15C]; + /* 0x0B4 */ u8 field_0xB4[0x24]; + /* 0x0D8 */ cXyz field_0xd8; + /* 0x0E4 */ cXyz field_0xe4; + /* 0x0F0 */ u8 field_0xf0[0x120]; /* 0x210 */ create_tag_class pCreateTag; /* 0x224 */ leafdraw_method_class* pMthd; }; diff --git a/include/m_Do/m_Do_audio.h b/include/m_Do/m_Do_audio.h index aebbcd2b20..9def12106e 100644 --- a/include/m_Do/m_Do_audio.h +++ b/include/m_Do/m_Do_audio.h @@ -35,4 +35,16 @@ inline void mDoAud_bgmSetSwordUsing(s32 id) { Z2AudioMgr::getInterface()->mSeqMgr.bgmSetSwordUsing(id); } +inline void mDoAud_setHour(s32 hour) { + Z2AudioMgr::getInterface()->mStatusMgr.setHour(hour); +} + +inline void mDoAud_setMinute(s32 min) { + Z2AudioMgr::getInterface()->mStatusMgr.setMinute(min); +} + +inline void mDoAud_setWeekday(s32 day) { + Z2AudioMgr::getInterface()->mStatusMgr.setWeekday(day); +} + #endif /* M_DO_M_DO_AUDIO_H */ diff --git a/include/m_Do/m_Do_controller_pad.h b/include/m_Do/m_Do_controller_pad.h index d35d6852c9..f95e8a05a4 100644 --- a/include/m_Do/m_Do_controller_pad.h +++ b/include/m_Do/m_Do_controller_pad.h @@ -8,6 +8,7 @@ class mDoCPd_c { public: + // Controller Ports 1 - 4 enum { PAD_0, PAD_1, PAD_2, PAD_3 }; static void create(); @@ -57,6 +58,7 @@ public: static s16 getSubStickAngle(u32 pad) { return getCpadInfo(pad).mCStickAngle; } static f32 getAnalogR(u32 pad) { return getCpadInfo(pad).mTriggerRight; } static f32 getAnalogL(u32 pad) { return getCpadInfo(pad).mTriggerLeft; } + static BOOL isConnect(u32 pad) { return JUTGamePad::getPortStatus(pad) == 0; } static JUTGamePad* m_gamePad[4]; static interface_of_controller_pad m_cpadInfo[4]; diff --git a/include/m_Do/m_Do_dvd_thread.h b/include/m_Do/m_Do_dvd_thread.h index 39dc87c492..8d8097ad98 100644 --- a/include/m_Do/m_Do_dvd_thread.h +++ b/include/m_Do/m_Do_dvd_thread.h @@ -16,8 +16,8 @@ public: public: /* 800158FC */ virtual ~mDoDvdThd_command_c(); /* 80015B74 */ mDoDvdThd_command_c(); - inline s32 sync() {return mIsDone;} - inline void destroy() {delete this;} + inline s32 sync() { return mIsDone; } + inline void destroy() { delete this; } virtual s32 execute() = 0; }; // Size = 0x14 diff --git a/include/m_Do/m_Do_ext.h b/include/m_Do/m_Do_ext.h index 3755eddd10..e1a927cdc8 100644 --- a/include/m_Do/m_Do_ext.h +++ b/include/m_Do/m_Do_ext.h @@ -14,6 +14,9 @@ public: /* 8000D320 */ void initPlay(s16, int, f32, s16, s16); /* 8000D428 */ void play(); + void setPlaySpeed(f32 speed) { mFrameCtrl.setRate(speed); } + f32 getFrame() { return mFrameCtrl.getFrame(); } + private: /* 0x0 */ J3DFrameCtrl mFrameCtrl; }; // Size: 0x14 @@ -33,6 +36,13 @@ public: /* 8000D63C */ void init(J3DMaterialTable*, J3DAnmTextureSRTKey*, int, int, f32, s16, s16); /* 8000D6D8 */ void entry(J3DMaterialTable*, f32); + void entry(J3DModelData* data) { entry(data, getFrame()); } + void entry(J3DModelData* data, f32 frame) { entry(&data->getMaterialTable(), frame); } + void init(J3DModelData* data, J3DAnmTextureSRTKey* key, int param_2, int param_3, f32 param_4, + s16 param_5, s16 param_6) { + init(&data->getMaterialTable(), key, param_2, param_3, param_4, param_5, param_6); + } + private: /* 0x14 */ u32 mBtkAnm; }; // Size: 0x18 @@ -177,6 +187,11 @@ JKRSolidHeap* mDoExt_createSolidHeapFromGameToCurrent(u32, u32); JKRSolidHeap* mDoExt_createSolidHeapFromGameToCurrent(JKRHeap**, u32, u32); JKRHeap* mDoExt_getCurrentHeap(); void mDoExt_removeMesgFont(); +void mDoExt_modelUpdateDL(J3DModel*); +J3DModel* mDoExt_J3DModel__create(J3DModelData*, u32, u32); + +struct JUTFont; +JUTFont* mDoExt_getMesgFont(); extern JKRExpHeap* zeldaHeap; extern JKRExpHeap* gameHeap; diff --git a/include/m_Do/m_Do_graphic.h b/include/m_Do/m_Do_graphic.h index c5048a9af5..49ac6fb6e3 100644 --- a/include/m_Do/m_Do_graphic.h +++ b/include/m_Do/m_Do_graphic.h @@ -6,42 +6,54 @@ #include "dolphin/gx/GX.h" #include "dolphin/types.h" -void mDoGph_Create(); +int mDoGph_Create(); +struct ResTIMG; class mDoGph_gInf_c { public: class bloom_c { public: + // bloom_c() { m_buffer = NULL; } matches sinit /* 80009544 */ void create(); /* 800095F8 */ void remove(); /* 80009650 */ void draw(); + + /* 0x00 */ GXColor mBlendColor; + /* 0x04 */ GXColor mMonoColor; + /* 0x08 */ u8 mEnable; + /* 0x09 */ u8 mMode; + /* 0x0A */ u8 mPoint; + /* 0x0B */ u8 mBlureSize; + /* 0x0C */ u8 mBlureRatio; + /* 0x10 */ void* m_buffer; }; - /* 80007E44 */ void create(); - /* 80007F90 */ void beginRender(); - /* 800080D0 */ void fadeOut(f32); - /* 80007FD8 */ void fadeOut(f32, _GXColor&); - /* 80008028 */ void fadeOut_f(f32, _GXColor&); - /* 800080A0 */ void onBlure(f32 const (*)[4]); - /* 80008078 */ void onBlure(); - /* 80008330 */ void calcFade(); + /* 80007E44 */ static void create(); + /* 80007F90 */ static void beginRender(); + /* 800080D0 */ static void fadeOut(f32); + /* 80007FD8 */ static void fadeOut(f32, _GXColor&); + /* 80008028 */ static void fadeOut_f(f32, _GXColor&); + /* 800080A0 */ static void onBlure(const Mtx); + /* 80008078 */ static void onBlure(); + /* 80008330 */ static void calcFade(); static JUTFader* getFader() { return mFader; } static int startFadeOut(int param_0) { return JFWDisplay::getManager()->startFadeOut(param_0); } static int startFadeIn(int param_0) { return JFWDisplay::getManager()->startFadeIn(param_0); } static void setFadeColor(JUtility::TColor color) { mFader->setColor(color); } + static void endFrame() { JFWDisplay::getManager()->endFrame(); } - static u8 mFrameBufferTexObj[32]; - static u8 mZbufferTexObj[32]; - static u8 m_bloom[20]; - static u8 mBlureMtx[48 + 4 /* padding */]; - static u8 mBackColor[4]; - static u8 mFadeColor[4]; + static GXTexObj mFrameBufferTexObj; + static GXTexObj mZbufferTexObj; + static bloom_c m_bloom; + static Mtx mBlureMtx; + static GXColor mBackColor; + static GXColor mFadeColor; static JUTFader* mFader; - static u8 mFrameBufferTimg[4]; - static u8 mFrameBufferTex[4]; - static u8 mZbufferTimg[4]; - static u8 mZbufferTex[4]; + static ResTIMG* mFrameBufferTimg; + static void* mFrameBufferTex; + static ResTIMG* mZbufferTimg; + static void* mZbufferTex; static f32 mFadeRate; static f32 mFadeSpeed; }; diff --git a/include/m_Do/m_Do_machine.h b/include/m_Do/m_Do_machine.h index 806c14ca0e..4a54d8b5de 100644 --- a/include/m_Do/m_Do_machine.h +++ b/include/m_Do/m_Do_machine.h @@ -15,4 +15,11 @@ void exceptionRestart(); void myExceptionCallback(u16, OSContext*, u32, u32); void my_SysPrintHeap(char const*, void*, u32); +class mDoMch_render_c { +public: + static GXRenderModeObj* getRenderModeObj() { return mRenderModeObj; } + + static GXRenderModeObj* mRenderModeObj; +}; + #endif /* M_DO_M_DO_MACHINE_H */ diff --git a/include/m_Do/m_Do_mtx.h b/include/m_Do/m_Do_mtx.h index 22ebf7c826..6dea80b75c 100644 --- a/include/m_Do/m_Do_mtx.h +++ b/include/m_Do/m_Do_mtx.h @@ -1,8 +1,8 @@ #ifndef M_DO_M_DO_MTX_H #define M_DO_M_DO_MTX_H -#include "SSystem/SComponent/c_xyz.h" #include "SSystem/SComponent/c_sxyz.h" +#include "SSystem/SComponent/c_xyz.h" #include "dolphin/mtx/mtx.h" #include "dolphin/mtx/quat.h" #include "dolphin/types.h" @@ -34,7 +34,7 @@ public: /* 8000CF7C */ static void quatM(Quaternion const*); /* 8000D070 */ ~mDoMtx_stack_c(); // inline - static Mtx* get() { return &now; } + static MtxP get() { return now; } static void transS(f32 x, f32 y, f32 z) { PSMTXTrans(now, x, y, z); } static void scaleS(f32 x, f32 y, f32 z) { PSMTXScale(now, x, y, z); } static void XYZrotS(s16 x, s16 y, s16 z) { mDoMtx_XYZrotS(now, x, y, z); } @@ -49,6 +49,8 @@ public: static Mtx* end; }; +extern Mtx g_mDoMtx_identity; + class mDoMtx_quatStack_c { public: ~mDoMtx_quatStack_c(); // inline |
