diff options
| author | Pheenoh <pheenoh@gmail.com> | 2024-04-12 00:10:30 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-04-12 00:10:30 -0600 |
| commit | a61e3491f7c46b698514af50464cf71ba76bd3a3 (patch) | |
| tree | 40dbf46b97316a5a6d919e35c9976506df869000 /include/JSystem/J3DGraphLoader | |
| parent | b36f0f93660b0b1eee5268acad6c1b7b60f0bb5d (diff) | |
d_a_e_fz work, doxygen revamp (#2127)
* initial freezard actor struct + setActionMode OK
* daE_FZ_Draw
* setReflectAngle
* mBoundSoundset
* daE_FZ_Execute & execute
* demoDelete
* daE_FZ_Delete & _delete
* CreateHeap
* useHeapInit
* cc_set
* mtx_set
* action WIP
* way_gake_check
* executeRollMove
* executeMove
* draw WIP
* executeDamage
* checkpoint
* create
* checkpoint
* daE_FZ_c::executeWait
* checkpoint
* daE_FZ_c::damage_check almost done
* rm asm
* rm headers
* setup_profile WIP + doxygen update
* fix merge issues
* docs fix?
* fix2
* doxygen updates
* setup g_profile_E_FZ, profile setup script WIP
* update github actions
* update progress.md
Diffstat (limited to 'include/JSystem/J3DGraphLoader')
| -rw-r--r-- | include/JSystem/J3DGraphLoader/J3DAnmLoader.h | 5 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphLoader/J3DClusterLoader.h | 17 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphLoader/J3DJointFactory.h | 9 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphLoader/J3DMaterialFactory.h | 21 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphLoader/J3DMaterialFactory_v21.h | 221 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphLoader/J3DModelLoader.h | 561 | ||||
| -rw-r--r-- | include/JSystem/J3DGraphLoader/J3DShapeFactory.h | 17 |
7 files changed, 490 insertions, 361 deletions
diff --git a/include/JSystem/J3DGraphLoader/J3DAnmLoader.h b/include/JSystem/J3DGraphLoader/J3DAnmLoader.h index 15df300e0f..789f52bfa0 100644 --- a/include/JSystem/J3DGraphLoader/J3DAnmLoader.h +++ b/include/JSystem/J3DGraphLoader/J3DAnmLoader.h @@ -1,7 +1,6 @@ #ifndef J3DANMLOADER_H #define J3DANMLOADER_H -#include "dolphin/types.h" enum J3DAnmLoaderDataBaseFlag { J3DLOADER_UNK_FLAG0, @@ -10,6 +9,10 @@ enum J3DAnmLoaderDataBaseFlag { class J3DAnmBase; +/** + * @ingroup jsystem-j3d + * + */ struct J3DAnmLoaderDataBase { /* 80337B40 */ static J3DAnmBase* load(void const*, J3DAnmLoaderDataBaseFlag); /* 80338134 */ static void setResource(J3DAnmBase*, void const*); diff --git a/include/JSystem/J3DGraphLoader/J3DClusterLoader.h b/include/JSystem/J3DGraphLoader/J3DClusterLoader.h index fa8acfb998..45c3bf13e2 100644 --- a/include/JSystem/J3DGraphLoader/J3DClusterLoader.h +++ b/include/JSystem/J3DGraphLoader/J3DClusterLoader.h @@ -1,13 +1,20 @@ #ifndef J3DCLUSTERLOADER_H #define J3DCLUSTERLOADER_H -#include "dolphin/types.h" #include "JSystem/J3DGraphAnimator/J3DAnimation.h" +/** + * @ingroup jsystem-j3d + * + */ struct J3DClusterLoaderDataBase { /* 80334130 */ static void* load(void const*); }; +/** + * @ingroup jsystem-j3d + * + */ class J3DClusterBlock : public JUTDataBlockHeader { public: /* 0x08 */ u16 mClusterNum; @@ -24,6 +31,10 @@ public: /* 0x2C */ void* mClusterKeyName; }; +/** + * @ingroup jsystem-j3d + * + */ class J3DClusterLoader { public: virtual void* load(const void*) = 0; @@ -32,6 +43,10 @@ public: class J3DDeformData; +/** + * @ingroup jsystem-j3d + * + */ class J3DClusterLoader_v15 : public J3DClusterLoader { public: /* 803341CC */ J3DClusterLoader_v15(); diff --git a/include/JSystem/J3DGraphLoader/J3DJointFactory.h b/include/JSystem/J3DGraphLoader/J3DJointFactory.h index 5b6325d100..4ca8c129a8 100644 --- a/include/JSystem/J3DGraphLoader/J3DJointFactory.h +++ b/include/JSystem/J3DGraphLoader/J3DJointFactory.h @@ -2,11 +2,14 @@ #define J3DJOINTFACTORY_H #include "JSystem/J3DGraphBase/J3DTransform.h" -#include "dolphin/types.h" class J3DJoint; struct J3DJointBlock; +/** + * @ingroup jsystem-j3d + * + */ struct J3DJointInitData { /* 0x00 */ u16 mKind; /* 0x02 */ bool mScaleCompensate; @@ -16,6 +19,10 @@ struct J3DJointInitData { /* 0x2C */ Vec mMax; }; // Size: 0x30 +/** + * @ingroup jsystem-j3d + * + */ struct J3DJointFactory { /* 80337178 */ J3DJointFactory(J3DJointBlock const&); /* 803371D0 */ J3DJoint* create(int); diff --git a/include/JSystem/J3DGraphLoader/J3DMaterialFactory.h b/include/JSystem/J3DGraphLoader/J3DMaterialFactory.h index f1786865ee..251d900aae 100644 --- a/include/JSystem/J3DGraphLoader/J3DMaterialFactory.h +++ b/include/JSystem/J3DGraphLoader/J3DMaterialFactory.h @@ -3,11 +3,14 @@ #include "JSystem/J3DGraphBase/J3DMatBlock.h" #include "JSystem/J3DGraphLoader/J3DModelLoader.h" -#include "dolphin/gx/GXEnum.h" #include "dolphin/gx/GXStruct.h" class J3DMaterial; +/** + * @ingroup jsystem-j3d + * + */ struct J3DMaterialInitData { /* 0x000 */ u8 mMaterialMode; /* 0x001 */ u8 mCullModeIdx; @@ -41,6 +44,10 @@ struct J3DMaterialInitData { /* 0x14A */ u16 mNBTScaleIdx; }; // size 0x14C +/** + * @ingroup jsystem-j3d + * + */ struct J3DIndInitData { /* 0x000 */ bool mEnabled; /* 0x001 */ u8 mIndTexStageNum; @@ -53,6 +60,10 @@ struct J3DIndInitData { /* 0x078 */ J3DIndTevStageInfo mIndTevStageInfo[0x10]; }; // size 0x138 +/** + * @ingroup jsystem-j3d + * + */ struct J3DPatchingInfo { /* 0x0 */ u16 mMatColorOffset; /* 0x2 */ u16 mColorChanOffset; @@ -63,6 +74,10 @@ struct J3DPatchingInfo { /* 0xC */ u8 field_0xc[4]; }; // size 0x10 +/** + * @ingroup jsystem-j3d + * + */ struct J3DDisplayListInit { /* 0x0 */ u32 mOffset; /* 0x4 */ u32 field_0x4; @@ -71,6 +86,10 @@ struct J3DDisplayListInit { struct J3DTexCoord2Info; struct J3DCurrentMtxInfo; +/** + * @ingroup jsystem-j3d + * + */ class J3DMaterialFactory { public: enum MaterialType { diff --git a/include/JSystem/J3DGraphLoader/J3DMaterialFactory_v21.h b/include/JSystem/J3DGraphLoader/J3DMaterialFactory_v21.h index b44d012084..d6ee20b2d5 100644 --- a/include/JSystem/J3DGraphLoader/J3DMaterialFactory_v21.h +++ b/include/JSystem/J3DGraphLoader/J3DMaterialFactory_v21.h @@ -1,107 +1,114 @@ -#ifndef J3DMATERIALFACTORY_V21_H
-#define J3DMATERIALFACTORY_V21_H
-
-#include "JSystem/J3DGraphBase/J3DMatBlock.h"
-#include "JSystem/J3DGraphLoader/J3DModelLoader.h"
-#include "dolphin/gx/GXEnum.h"
-#include "dolphin/gx/GXStruct.h"
-
-class J3DMaterial;
-struct J3DTexCoord2Info;
-struct J3DCurrentMtxInfo;
-
-struct J3DMaterialInitData_v21 {
- /* 0x000 */ u8 mMaterialMode;
- /* 0x001 */ u8 mCullModeIdx;
- /* 0x002 */ u8 mColorChanNumIdx;
- /* 0x003 */ u8 mTexGenNumIdx;
- /* 0x004 */ u8 mTevStageNumIdx;
- /* 0x005 */ u8 mZCompLocIdx;
- /* 0x006 */ u8 mZModeIdx;
- /* 0x007 */ u8 mDitherIdx;
- /* 0x008 */ u16 mMatColorIdx[2];
- /* 0x00C */ u16 mColorChanIdx[4];
- /* 0x014 */ u16 mTexCoordIdx[8];
- /* 0x024 */ u8 field_0x038[0x10];
- /* 0x034 */ u16 mTexMtxIdx[8];
- /* 0x044 */ u8 field_0x058[0x2c];
- /* 0x070 */ u16 mTexNoIdx[8];
- /* 0x080 */ u16 mTevKColorIdx[4];
- /* 0x088 */ u8 mTevKColorSel[0x10];
- /* 0x098 */ u8 mTevKAlphaSel[0x10];
- /* 0x0A8 */ u16 mTevOrderIdx[0x10];
- /* 0x0C8 */ u16 mTevColorIdx[4];
- /* 0x0D0 */ u16 mTevStageIdx[0x10];
- /* 0x0F0 */ u16 mTevSwapModeIdx[0x10];
- /* 0x110 */ u16 mTevSwapModeTableIdx[4];
- /* 0x118 */ u8 field_0x12c[0x18];
- /* 0x130 */ u16 mFogIdx;
- /* 0x132 */ u16 mAlphaCompIdx;
- /* 0x134 */ u16 mBlendIdx;
- /* 0x136 */ u16 mNBTScaleIdx;
-}; // size 0x138
-
-class J3DMaterialFactory_v21 {
-public:
- /* 80332DA4 */ J3DMaterialFactory_v21(J3DMaterialBlock_v21 const&);
- /* 80332F84 */ u16 countUniqueMaterials();
- /* 80332FA8 */ u32 countTexGens(int) const;
- /* 80332FE0 */ u32 countStages(int) const;
- /* 80333068 */ J3DMaterial* create(J3DMaterial*, int, u32) const;
- /* 803337D8 */ J3DGXColor newMatColor(int, int) const;
- /* 80333834 */ u8 newColorChanNum(int) const;
- /* 8033386C */ J3DColorChan newColorChan(int, int) const;
- /* 80333A10 */ u32 newTexGenNum(int) const;
- /* 80333A48 */ J3DTexCoord newTexCoord(int, int) const;
- /* 80333AA8 */ J3DTexMtx* newTexMtx(int, int) const;
- /* 80333B30 */ u8 newCullMode(int) const;
- /* 80333B70 */ u16 newTexNo(int, int) const;
- /* 80333BB8 */ J3DTevOrder newTevOrder(int, int) const;
- /* 80333C04 */ J3DGXColorS10 newTevColor(int, int) const;
- /* 80333C74 */ J3DGXColor newTevKColor(int, int) const;
- /* 80333CD0 */ u8 newTevStageNum(int) const;
- /* 80333D08 */ J3DTevStage newTevStage(int, int) const;
- /* 80333D68 */ J3DTevSwapModeTable newTevSwapModeTable(int, int) const;
- /* 80333E04 */ J3DFog newFog(int) const;
- /* 80333EE0 */ J3DAlphaComp newAlphaComp(int) const;
- /* 80333F60 */ J3DBlend newBlend(int) const;
- /* 80333FA4 */ J3DZMode newZMode(int) const;
- /* 80334004 */ u8 newZCompLoc(int) const;
- /* 8033403C */ u8 newDither(int) const;
- /* 80334074 */ J3DNBTScale newNBTScale(int) const;
-
- u16 getMaterialID(u16 idx) { return mpMaterialID[idx]; }
-
- /* 0x00 */ u16 mMaterialNum;
- /* 0x04 */ J3DMaterialInitData_v21* mpMaterialInitData;
- /* 0x08 */ u16* mpMaterialID;
- /* 0x0C */ GXColor* mpMatColor;
- /* 0x10 */ u8* mpColorChanNum;
- /* 0x14 */ J3DColorChanInfo* mpColorChanInfo;
- /* 0x18 */ u8* mpTexGenNum;
- /* 0x1C */ J3DTexCoordInfo* mpTexCoordInfo;
- /* 0x20 */ J3DTexCoord2Info* mpTexCoord2Info;
- /* 0x24 */ J3DTexMtxInfo* mpTexMtxInfo;
- /* 0x28 */ J3DTexMtxInfo* field_0x28;
- /* 0x2C */ u16* mpTexNo;
- /* 0x30 */ GXCullMode* mpCullMode;
- /* 0x34 */ J3DTevOrderInfo* mpTevOrderInfo;
- /* 0x38 */ GXColorS10* mpTevColor;
- /* 0x3C */ GXColor* mpTevKColor;
- /* 0x40 */ u8* mpTevStageNum;
- /* 0x44 */ J3DTevStageInfo* mpTevStageInfo;
- /* 0x48 */ J3DTevSwapModeInfo* mpTevSwapModeInfo;
- /* 0x4C */ J3DTevSwapModeTableInfo* mpTevSwapModeTableInfo;
- /* 0x50 */ J3DFogInfo* mpFogInfo;
- /* 0x54 */ J3DAlphaCompInfo* mpAlphaCompInfo;
- /* 0x58 */ J3DBlendInfo* mpBlendInfo;
- /* 0x5C */ J3DZModeInfo* mpZModeInfo;
- /* 0x60 */ u8* mpZCompLoc;
- /* 0x64 */ u8* mpDither;
- /* 0x68 */ J3DNBTScaleInfo* mpNBTScaleInfo;
- /* 0x6C */ u16 field_0x6c;
- /* 0x6E */ u8 field_0x6e;
- /* 0x6F */ u8 field_0x6f;
-};
-
-#endif /* J3DMATERIALFACTORY_V21_H */
+#ifndef J3DMATERIALFACTORY_V21_H +#define J3DMATERIALFACTORY_V21_H + +#include "JSystem/J3DGraphBase/J3DMatBlock.h" +#include "JSystem/J3DGraphLoader/J3DModelLoader.h" +#include "dolphin/gx/GXStruct.h" + +class J3DMaterial; +struct J3DTexCoord2Info; +struct J3DCurrentMtxInfo; + +/** + * @ingroup jsystem-j3d + * + */ +struct J3DMaterialInitData_v21 { + /* 0x000 */ u8 mMaterialMode; + /* 0x001 */ u8 mCullModeIdx; + /* 0x002 */ u8 mColorChanNumIdx; + /* 0x003 */ u8 mTexGenNumIdx; + /* 0x004 */ u8 mTevStageNumIdx; + /* 0x005 */ u8 mZCompLocIdx; + /* 0x006 */ u8 mZModeIdx; + /* 0x007 */ u8 mDitherIdx; + /* 0x008 */ u16 mMatColorIdx[2]; + /* 0x00C */ u16 mColorChanIdx[4]; + /* 0x014 */ u16 mTexCoordIdx[8]; + /* 0x024 */ u8 field_0x038[0x10]; + /* 0x034 */ u16 mTexMtxIdx[8]; + /* 0x044 */ u8 field_0x058[0x2c]; + /* 0x070 */ u16 mTexNoIdx[8]; + /* 0x080 */ u16 mTevKColorIdx[4]; + /* 0x088 */ u8 mTevKColorSel[0x10]; + /* 0x098 */ u8 mTevKAlphaSel[0x10]; + /* 0x0A8 */ u16 mTevOrderIdx[0x10]; + /* 0x0C8 */ u16 mTevColorIdx[4]; + /* 0x0D0 */ u16 mTevStageIdx[0x10]; + /* 0x0F0 */ u16 mTevSwapModeIdx[0x10]; + /* 0x110 */ u16 mTevSwapModeTableIdx[4]; + /* 0x118 */ u8 field_0x12c[0x18]; + /* 0x130 */ u16 mFogIdx; + /* 0x132 */ u16 mAlphaCompIdx; + /* 0x134 */ u16 mBlendIdx; + /* 0x136 */ u16 mNBTScaleIdx; +}; // size 0x138 + +/** + * @ingroup jsystem-j3d + * + */ +class J3DMaterialFactory_v21 { +public: + /* 80332DA4 */ J3DMaterialFactory_v21(J3DMaterialBlock_v21 const&); + /* 80332F84 */ u16 countUniqueMaterials(); + /* 80332FA8 */ u32 countTexGens(int) const; + /* 80332FE0 */ u32 countStages(int) const; + /* 80333068 */ J3DMaterial* create(J3DMaterial*, int, u32) const; + /* 803337D8 */ J3DGXColor newMatColor(int, int) const; + /* 80333834 */ u8 newColorChanNum(int) const; + /* 8033386C */ J3DColorChan newColorChan(int, int) const; + /* 80333A10 */ u32 newTexGenNum(int) const; + /* 80333A48 */ J3DTexCoord newTexCoord(int, int) const; + /* 80333AA8 */ J3DTexMtx* newTexMtx(int, int) const; + /* 80333B30 */ u8 newCullMode(int) const; + /* 80333B70 */ u16 newTexNo(int, int) const; + /* 80333BB8 */ J3DTevOrder newTevOrder(int, int) const; + /* 80333C04 */ J3DGXColorS10 newTevColor(int, int) const; + /* 80333C74 */ J3DGXColor newTevKColor(int, int) const; + /* 80333CD0 */ u8 newTevStageNum(int) const; + /* 80333D08 */ J3DTevStage newTevStage(int, int) const; + /* 80333D68 */ J3DTevSwapModeTable newTevSwapModeTable(int, int) const; + /* 80333E04 */ J3DFog newFog(int) const; + /* 80333EE0 */ J3DAlphaComp newAlphaComp(int) const; + /* 80333F60 */ J3DBlend newBlend(int) const; + /* 80333FA4 */ J3DZMode newZMode(int) const; + /* 80334004 */ u8 newZCompLoc(int) const; + /* 8033403C */ u8 newDither(int) const; + /* 80334074 */ J3DNBTScale newNBTScale(int) const; + + u16 getMaterialID(u16 idx) { return mpMaterialID[idx]; } + + /* 0x00 */ u16 mMaterialNum; + /* 0x04 */ J3DMaterialInitData_v21* mpMaterialInitData; + /* 0x08 */ u16* mpMaterialID; + /* 0x0C */ GXColor* mpMatColor; + /* 0x10 */ u8* mpColorChanNum; + /* 0x14 */ J3DColorChanInfo* mpColorChanInfo; + /* 0x18 */ u8* mpTexGenNum; + /* 0x1C */ J3DTexCoordInfo* mpTexCoordInfo; + /* 0x20 */ J3DTexCoord2Info* mpTexCoord2Info; + /* 0x24 */ J3DTexMtxInfo* mpTexMtxInfo; + /* 0x28 */ J3DTexMtxInfo* field_0x28; + /* 0x2C */ u16* mpTexNo; + /* 0x30 */ GXCullMode* mpCullMode; + /* 0x34 */ J3DTevOrderInfo* mpTevOrderInfo; + /* 0x38 */ GXColorS10* mpTevColor; + /* 0x3C */ GXColor* mpTevKColor; + /* 0x40 */ u8* mpTevStageNum; + /* 0x44 */ J3DTevStageInfo* mpTevStageInfo; + /* 0x48 */ J3DTevSwapModeInfo* mpTevSwapModeInfo; + /* 0x4C */ J3DTevSwapModeTableInfo* mpTevSwapModeTableInfo; + /* 0x50 */ J3DFogInfo* mpFogInfo; + /* 0x54 */ J3DAlphaCompInfo* mpAlphaCompInfo; + /* 0x58 */ J3DBlendInfo* mpBlendInfo; + /* 0x5C */ J3DZModeInfo* mpZModeInfo; + /* 0x60 */ u8* mpZCompLoc; + /* 0x64 */ u8* mpDither; + /* 0x68 */ J3DNBTScaleInfo* mpNBTScaleInfo; + /* 0x6C */ u16 field_0x6c; + /* 0x6E */ u8 field_0x6e; + /* 0x6F */ u8 field_0x6f; +}; + +#endif /* J3DMATERIALFACTORY_V21_H */ diff --git a/include/JSystem/J3DGraphLoader/J3DModelLoader.h b/include/JSystem/J3DGraphLoader/J3DModelLoader.h index 2770e348ba..21ec5cd163 100644 --- a/include/JSystem/J3DGraphLoader/J3DModelLoader.h +++ b/include/JSystem/J3DGraphLoader/J3DModelLoader.h @@ -1,249 +1,312 @@ -#ifndef J3DMODELLOADER_H
-#define J3DMODELLOADER_H
-
-#include "dolphin/types.h"
-#include "dolphin/mtx.h"
-
-class J3DModelData;
-class J3DMaterialTable;
-class J3DModelHierarchy;
-
-struct J3DModelBlock {
- /* 0x00 */ u32 mBlockType;
- /* 0x04 */ u32 mBlockSize;
-};
-
-struct J3DModelFileData {
- /* 0x00 */ u32 mMagic1;
- /* 0x04 */ u32 mMagic2;
- /* 0x08 */ u8 field_0x08[4];
- /* 0x0C */ u32 mBlockNum;
- /* 0x10 */ u8 field_0x10[0x10];
- /* 0x20 */ J3DModelBlock mBlocks[1];
-};
-
-struct J3DModelInfoBlock : public J3DModelBlock {
- /* 0x08 */ u16 mFlags;
- /* 0x0C */ u32 mPacketNum;
- /* 0x10 */ u32 mVtxNum;
- /* 0x14 */ void* mpHierarchy;
-}; // size 0x18
-
-struct J3DVertexBlock : public J3DModelBlock {
- /* 0x08 */ void* mpVtxAttrFmtList;
- /* 0x0C */ void* mpVtxPosArray;
- /* 0x10 */ void* mpVtxNrmArray;
- /* 0x14 */ void* mpVtxNBTArray;
- /* 0x18 */ void* mpVtxColorArray[2];
- /* 0x20 */ void* mpVtxTexCoordArray[8];
-}; // size 0x40
-
-struct J3DEnvelopeBlock : public J3DModelBlock {
- /* 0x08 */ u16 mWEvlpMtxNum;
- /* 0x0C */ void* mpWEvlpMixMtxNum;
- /* 0x10 */ void* mpWEvlpMixIndex;
- /* 0x14 */ void* mpWEvlpMixWeight;
- /* 0x18 */ void* mpInvJointMtx;
-}; // size 0x1C
-
-struct J3DDrawBlock : public J3DModelBlock {
- /* 0x08 */ u16 mMtxNum;
- /* 0x0C */ void* mpDrawMtxFlag;
- /* 0x10 */ void* mpDrawMtxIndex;
-}; // size 0x14
-
-struct J3DJointBlock : public J3DModelBlock {
- /* 0x08 */ u16 mJointNum;
- /* 0x0C */ void* mpJointInitData;
- /* 0x10 */ void* mpIndexTable;
- /* 0x14 */ void* mpNameTable;
-}; // size 0x18
-
-struct J3DMaterialBlock : public J3DModelBlock {
- /* 0x08 */ u16 mMaterialNum;
- /* 0x0C */ void* mpMaterialInitData;
- /* 0x10 */ void* mpMaterialID;
- /* 0x14 */ void* mpNameTable;
- /* 0x18 */ void* mpIndInitData;
- /* 0x1C */ void* mpCullMode;
- /* 0x20 */ void* mpMatColor;
- /* 0x24 */ void* mpColorChanNum;
- /* 0x28 */ void* mpColorChanInfo;
- /* 0x2C */ void* mpAmbColor;
- /* 0x30 */ void* mpLightInfo;
- /* 0x34 */ void* mpTexGenNum;
- /* 0x38 */ void* mpTexCoordInfo;
- /* 0x3C */ void* mpTexCoord2Info;
- /* 0x40 */ void* mpTexMtxInfo;
- /* 0x44 */ void* field_0x44;
- /* 0x48 */ void* mpTexNo;
- /* 0x4C */ void* mpTevOrderInfo;
- /* 0x50 */ void* mpTevColor;
- /* 0x54 */ void* mpTevKColor;
- /* 0x58 */ void* mpTevStageNum;
- /* 0x5C */ void* mpTevStageInfo;
- /* 0x60 */ void* mpTevSwapModeInfo;
- /* 0x64 */ void* mpTevSwapModeTableInfo;
- /* 0x68 */ void* mpFogInfo;
- /* 0x6C */ void* mpAlphaCompInfo;
- /* 0x70 */ void* mpBlendInfo;
- /* 0x74 */ void* mpZModeInfo;
- /* 0x78 */ void* mpZCompLoc;
- /* 0x7C */ void* mpDither;
- /* 0x80 */ void* mpNBTScaleInfo;
-};
-
-struct J3DMaterialBlock_v21 : public J3DModelBlock {
- /* 0x08 */ u16 mMaterialNum;
- /* 0x0C */ void* mpMaterialInitData;
- /* 0x10 */ void* mpMaterialID;
- /* 0x14 */ void* mpNameTable;
- /* 0x18 */ void* mpCullMode;
- /* 0x1C */ void* mpMatColor;
- /* 0x20 */ void* mpColorChanNum;
- /* 0x24 */ void* mpColorChanInfo;
- /* 0x28 */ void* mpTexGenNum;
- /* 0x2C */ void* mpTexCoordInfo;
- /* 0x30 */ void* mpTexCoord2Info;
- /* 0x34 */ void* mpTexMtxInfo;
- /* 0x38 */ void* field_0x38;
- /* 0x3C */ void* mpTexNo;
- /* 0x40 */ void* mpTevOrderInfo;
- /* 0x44 */ void* mpTevColor;
- /* 0x48 */ void* mpTevKColor;
- /* 0x4C */ void* mpTevStageNum;
- /* 0x50 */ void* mpTevStageInfo;
- /* 0x54 */ void* mpTevSwapModeInfo;
- /* 0x58 */ void* mpTevSwapModeTableInfo;
- /* 0x5C */ void* mpFogInfo;
- /* 0x60 */ void* mpAlphaCompInfo;
- /* 0x64 */ void* mpBlendInfo;
- /* 0x68 */ void* mpZModeInfo;
- /* 0x6C */ void* mpZCompLoc;
- /* 0x70 */ void* mpDither;
- /* 0x74 */ void* mpNBTScaleInfo;
-};
-
-struct J3DMaterialDLBlock : public J3DModelBlock {
- /* 0x08 */ u16 mMaterialNum;
- /* 0x0C */ void* mpDisplayListInit;
- /* 0x10 */ void* mpPatchingInfo;
- /* 0x14 */ void* mpCurrentMtxInfo;
- /* 0x18 */ void* mpMaterialMode;
- /* 0x1C */ void* field_0x1c;
- /* 0x20 */ void* mpNameTable;
-};
-
-struct J3DShapeBlock : public J3DModelBlock {
- /* 0x08 */ u16 mShapeNum;
- /* 0x0C */ void* mpShapeInitData;
- /* 0x10 */ void* mpIndexTable;
- /* 0x14 */ void* mpNameTable;
- /* 0x18 */ void* mpVtxDescList;
- /* 0x1C */ void* mpMtxTable;
- /* 0x20 */ void* mpDisplayListData;
- /* 0x24 */ void* mpMtxInitData;
- /* 0x28 */ void* mpDrawInitData;
-}; // size 0x2C
-
-struct J3DTextureBlock : public J3DModelBlock {
- /* 0x08 */ u16 mTextureNum;
- /* 0x0C */ void* mpTextureRes;
- /* 0x10 */ void* mpNameTable;
-};
-
-class J3DModelLoader {
-public:
- /* 8033468C */ J3DModelLoader();
- /* 80335048 */ void readInformation(J3DModelInfoBlock const*, u32);
- /* 803351D0 */ void readVertex(J3DVertexBlock const*);
- /* 803353F0 */ void readEnvelop(J3DEnvelopeBlock const*);
- /* 80335480 */ void readDraw(J3DDrawBlock const*);
- /* 80335530 */ void readJoint(J3DJointBlock const*);
- /* 80335AF4 */ void readShape(J3DShapeBlock const*, u32);
- /* 80335C18 */ void readTexture(J3DTextureBlock const*);
- /* 80335F5C */ void readTextureTable(J3DTextureBlock const*);
- /* 80336028 */ void readPatchedMaterial(J3DMaterialBlock const*, u32);
- /* 80336168 */ void readMaterialDL(J3DMaterialDLBlock const*, u32);
- /* 8033631C */ void modifyMaterial(u32);
-
- /* 80336CD8 */ u32 calcSizeInformation(J3DModelInfoBlock const*, u32);
- /* 80336D64 */ u32 calcSizeJoint(J3DJointBlock const*);
- /* 80336D90 */ u32 calcSizeEnvelope(J3DEnvelopeBlock const*);
- /* 80336DA0 */ u32 calcSizeDraw(J3DDrawBlock const*);
- /* 80336EA0 */ u32 calcSizeShape(J3DShapeBlock const*, u32);
- /* 80336F44 */ u32 calcSizeTexture(J3DTextureBlock const*);
- /* 80336FF0 */ u32 calcSizeTextureTable(J3DTextureBlock const*);
- /* 80337010 */ u32 calcSizePatchedMaterial(J3DMaterialBlock const*, u32);
- /* 803370A0 */ u32 calcSizeMaterialDL(J3DMaterialDLBlock const*, u32);
-
- // virtuals
- /* 803347E0 */ J3DModelData* load(void const*, u32);
- /* 80334ABC */ J3DMaterialTable* loadMaterialTable(void const*);
- /* 80334C20 */ J3DModelData* loadBinaryDisplayList(void const*, u32);
- /* 803367D4 */ u32 calcLoadSize(void const*, u32);
- /* 803369A0 */ u32 calcLoadMaterialTableSize(void const*);
- /* 80336A98 */ u32 calcLoadBinaryDisplayListSize(void const*, u32);
- /* 80336794 */ u16 countMaterialNum(void const*);
- /* 80334EE0 */ void setupBBoardInfo();
- /* 80336450 */ ~J3DModelLoader();
- /* 8033649C */ void readMaterial(J3DMaterialBlock const*, u32);
- /* 80336498 */ void readMaterial_v21(J3DMaterialBlock_v21 const*, u32);
- /* 803364A4 */ void readMaterialTable(J3DMaterialBlock const*, u32);
- /* 803364A0 */ void readMaterialTable_v21(J3DMaterialBlock_v21 const*, u32);
- /* 803364A8 */ u32 calcSizeMaterial(J3DMaterialBlock const*, u32);
- /* 803364B0 */ u32 calcSizeMaterialTable(J3DMaterialBlock const*, u32);
-
- /* 0x00 */ void* _vtable;
- /* 0x04 */ J3DModelData* mpModelData;
- /* 0x08 */ J3DMaterialTable* mpMaterialTable;
- /* 0x0C */ J3DShapeBlock const* mpShapeBlock;
- /* 0x10 */ J3DMaterialBlock const* mpMaterialBlock;
- /* 0x14 */ J3DModelHierarchy* mpModelHierarchy;
- /* 0x18 */ u8 field_0x18;
- /* 0x19 */ u8 field_0x19;
- /* 0x1A */ u16 mEnvelopeSize;
-};
-
-class J3DModelLoader_v21 { // : public J3DModelLoader {
-public:
- /* 803363F4 */ ~J3DModelLoader_v21() {}
- /* 80335890 */ void readMaterial_v21(J3DMaterialBlock_v21 const*, u32);
- /* 80335E20 */ void readMaterialTable_v21(J3DMaterialBlock_v21 const*, u32);
-
- /* 0x00 */ void* _vtable;
- /* 0x04 */ J3DModelData* mpModelData;
- /* 0x08 */ J3DMaterialTable* mpMaterialTable;
- /* 0x0C */ J3DShapeBlock const* mpShapeBlock;
- /* 0x10 */ J3DMaterialBlock const* mpMaterialBlock;
- /* 0x14 */ J3DModelHierarchy* mpModelHierarchy;
- /* 0x18 */ u8 field_0x18;
- /* 0x19 */ u8 field_0x19;
- /* 0x1A */ u16 mEnvelopeSize;
-};
-
-class J3DModelLoader_v26 { // : public J3DModelLoader {
-public:
- /* 80336398 */ ~J3DModelLoader_v26() {}
- /* 80335614 */ void readMaterial(J3DMaterialBlock const*, u32);
- /* 80335CE4 */ void readMaterialTable(J3DMaterialBlock const*, u32);
- /* 80336DB4 */ u32 calcSizeMaterial(J3DMaterialBlock const*, u32);
- /* 80336F60 */ u32 calcSizeMaterialTable(J3DMaterialBlock const*, u32);
-
- /* 0x00 */ void* _vtable;
- /* 0x04 */ J3DModelData* mpModelData;
- /* 0x08 */ J3DMaterialTable* mpMaterialTable;
- /* 0x0C */ J3DShapeBlock const* mpShapeBlock;
- /* 0x10 */ J3DMaterialBlock const* mpMaterialBlock;
- /* 0x14 */ J3DModelHierarchy* mpModelHierarchy;
- /* 0x18 */ u8 field_0x18;
- /* 0x19 */ u8 field_0x19;
- /* 0x1A */ u16 mEnvelopeSize;
-};
-
-class J3DModelLoaderDataBase {
-public:
- /* 803346BC */ static J3DModelData* load(void const* i_data, u32 i_flags);
-};
-
-#endif /* J3DMODELLOADER_H */
+#ifndef J3DMODELLOADER_H +#define J3DMODELLOADER_H + +#include "dolphin/mtx.h" + +class J3DModelData; +class J3DMaterialTable; +class J3DModelHierarchy; + +/** + * @ingroup jsystem-j3d + * + */ +struct J3DModelBlock { + /* 0x00 */ u32 mBlockType; + /* 0x04 */ u32 mBlockSize; +}; + +/** + * @ingroup jsystem-j3d + * + */ +struct J3DModelFileData { + /* 0x00 */ u32 mMagic1; + /* 0x04 */ u32 mMagic2; + /* 0x08 */ u8 field_0x08[4]; + /* 0x0C */ u32 mBlockNum; + /* 0x10 */ u8 field_0x10[0x10]; + /* 0x20 */ J3DModelBlock mBlocks[1]; +}; + +/** + * @ingroup jsystem-j3d + * + */ +struct J3DModelInfoBlock : public J3DModelBlock { + /* 0x08 */ u16 mFlags; + /* 0x0C */ u32 mPacketNum; + /* 0x10 */ u32 mVtxNum; + /* 0x14 */ void* mpHierarchy; +}; // size 0x18 + +/** + * @ingroup jsystem-j3d + * + */ +struct J3DVertexBlock : public J3DModelBlock { + /* 0x08 */ void* mpVtxAttrFmtList; + /* 0x0C */ void* mpVtxPosArray; + /* 0x10 */ void* mpVtxNrmArray; + /* 0x14 */ void* mpVtxNBTArray; + /* 0x18 */ void* mpVtxColorArray[2]; + /* 0x20 */ void* mpVtxTexCoordArray[8]; +}; // size 0x40 + +/** + * @ingroup jsystem-j3d + * + */ +struct J3DEnvelopeBlock : public J3DModelBlock { + /* 0x08 */ u16 mWEvlpMtxNum; + /* 0x0C */ void* mpWEvlpMixMtxNum; + /* 0x10 */ void* mpWEvlpMixIndex; + /* 0x14 */ void* mpWEvlpMixWeight; + /* 0x18 */ void* mpInvJointMtx; +}; // size 0x1C + +/** + * @ingroup jsystem-j3d + * + */ +struct J3DDrawBlock : public J3DModelBlock { + /* 0x08 */ u16 mMtxNum; + /* 0x0C */ void* mpDrawMtxFlag; + /* 0x10 */ void* mpDrawMtxIndex; +}; // size 0x14 + +/** + * @ingroup jsystem-j3d + * + */ +struct J3DJointBlock : public J3DModelBlock { + /* 0x08 */ u16 mJointNum; + /* 0x0C */ void* mpJointInitData; + /* 0x10 */ void* mpIndexTable; + /* 0x14 */ void* mpNameTable; +}; // size 0x18 + +/** + * @ingroup jsystem-j3d + * + */ +struct J3DMaterialBlock : public J3DModelBlock { + /* 0x08 */ u16 mMaterialNum; + /* 0x0C */ void* mpMaterialInitData; + /* 0x10 */ void* mpMaterialID; + /* 0x14 */ void* mpNameTable; + /* 0x18 */ void* mpIndInitData; + /* 0x1C */ void* mpCullMode; + /* 0x20 */ void* mpMatColor; + /* 0x24 */ void* mpColorChanNum; + /* 0x28 */ void* mpColorChanInfo; + /* 0x2C */ void* mpAmbColor; + /* 0x30 */ void* mpLightInfo; + /* 0x34 */ void* mpTexGenNum; + /* 0x38 */ void* mpTexCoordInfo; + /* 0x3C */ void* mpTexCoord2Info; + /* 0x40 */ void* mpTexMtxInfo; + /* 0x44 */ void* field_0x44; + /* 0x48 */ void* mpTexNo; + /* 0x4C */ void* mpTevOrderInfo; + /* 0x50 */ void* mpTevColor; + /* 0x54 */ void* mpTevKColor; + /* 0x58 */ void* mpTevStageNum; + /* 0x5C */ void* mpTevStageInfo; + /* 0x60 */ void* mpTevSwapModeInfo; + /* 0x64 */ void* mpTevSwapModeTableInfo; + /* 0x68 */ void* mpFogInfo; + /* 0x6C */ void* mpAlphaCompInfo; + /* 0x70 */ void* mpBlendInfo; + /* 0x74 */ void* mpZModeInfo; + /* 0x78 */ void* mpZCompLoc; + /* 0x7C */ void* mpDither; + /* 0x80 */ void* mpNBTScaleInfo; +}; + +/** + * @ingroup jsystem-j3d + * + */ +struct J3DMaterialBlock_v21 : public J3DModelBlock { + /* 0x08 */ u16 mMaterialNum; + /* 0x0C */ void* mpMaterialInitData; + /* 0x10 */ void* mpMaterialID; + /* 0x14 */ void* mpNameTable; + /* 0x18 */ void* mpCullMode; + /* 0x1C */ void* mpMatColor; + /* 0x20 */ void* mpColorChanNum; + /* 0x24 */ void* mpColorChanInfo; + /* 0x28 */ void* mpTexGenNum; + /* 0x2C */ void* mpTexCoordInfo; + /* 0x30 */ void* mpTexCoord2Info; + /* 0x34 */ void* mpTexMtxInfo; + /* 0x38 */ void* field_0x38; + /* 0x3C */ void* mpTexNo; + /* 0x40 */ void* mpTevOrderInfo; + /* 0x44 */ void* mpTevColor; + /* 0x48 */ void* mpTevKColor; + /* 0x4C */ void* mpTevStageNum; + /* 0x50 */ void* mpTevStageInfo; + /* 0x54 */ void* mpTevSwapModeInfo; + /* 0x58 */ void* mpTevSwapModeTableInfo; + /* 0x5C */ void* mpFogInfo; + /* 0x60 */ void* mpAlphaCompInfo; + /* 0x64 */ void* mpBlendInfo; + /* 0x68 */ void* mpZModeInfo; + /* 0x6C */ void* mpZCompLoc; + /* 0x70 */ void* mpDither; + /* 0x74 */ void* mpNBTScaleInfo; +}; + +/** + * @ingroup jsystem-j3d + * + */ +struct J3DMaterialDLBlock : public J3DModelBlock { + /* 0x08 */ u16 mMaterialNum; + /* 0x0C */ void* mpDisplayListInit; + /* 0x10 */ void* mpPatchingInfo; + /* 0x14 */ void* mpCurrentMtxInfo; + /* 0x18 */ void* mpMaterialMode; + /* 0x1C */ void* field_0x1c; + /* 0x20 */ void* mpNameTable; +}; + +/** + * @ingroup jsystem-j3d + * + */ +struct J3DShapeBlock : public J3DModelBlock { + /* 0x08 */ u16 mShapeNum; + /* 0x0C */ void* mpShapeInitData; + /* 0x10 */ void* mpIndexTable; + /* 0x14 */ void* mpNameTable; + /* 0x18 */ void* mpVtxDescList; + /* 0x1C */ void* mpMtxTable; + /* 0x20 */ void* mpDisplayListData; + /* 0x24 */ void* mpMtxInitData; + /* 0x28 */ void* mpDrawInitData; +}; // size 0x2C + +/** + * @ingroup jsystem-j3d + * + */ +struct J3DTextureBlock : public J3DModelBlock { + /* 0x08 */ u16 mTextureNum; + /* 0x0C */ void* mpTextureRes; + /* 0x10 */ void* mpNameTable; +}; + +/** + * @ingroup jsystem-j3d + * + */ +class J3DModelLoader { +public: + /* 8033468C */ J3DModelLoader(); + /* 80335048 */ void readInformation(J3DModelInfoBlock const*, u32); + /* 803351D0 */ void readVertex(J3DVertexBlock const*); + /* 803353F0 */ void readEnvelop(J3DEnvelopeBlock const*); + /* 80335480 */ void readDraw(J3DDrawBlock const*); + /* 80335530 */ void readJoint(J3DJointBlock const*); + /* 80335AF4 */ void readShape(J3DShapeBlock const*, u32); + /* 80335C18 */ void readTexture(J3DTextureBlock const*); + /* 80335F5C */ void readTextureTable(J3DTextureBlock const*); + /* 80336028 */ void readPatchedMaterial(J3DMaterialBlock const*, u32); + /* 80336168 */ void readMaterialDL(J3DMaterialDLBlock const*, u32); + /* 8033631C */ void modifyMaterial(u32); + + /* 80336CD8 */ u32 calcSizeInformation(J3DModelInfoBlock const*, u32); + /* 80336D64 */ u32 calcSizeJoint(J3DJointBlock const*); + /* 80336D90 */ u32 calcSizeEnvelope(J3DEnvelopeBlock const*); + /* 80336DA0 */ u32 calcSizeDraw(J3DDrawBlock const*); + /* 80336EA0 */ u32 calcSizeShape(J3DShapeBlock const*, u32); + /* 80336F44 */ u32 calcSizeTexture(J3DTextureBlock const*); + /* 80336FF0 */ u32 calcSizeTextureTable(J3DTextureBlock const*); + /* 80337010 */ u32 calcSizePatchedMaterial(J3DMaterialBlock const*, u32); + /* 803370A0 */ u32 calcSizeMaterialDL(J3DMaterialDLBlock const*, u32); + + // virtuals + /* 803347E0 */ J3DModelData* load(void const*, u32); + /* 80334ABC */ J3DMaterialTable* loadMaterialTable(void const*); + /* 80334C20 */ J3DModelData* loadBinaryDisplayList(void const*, u32); + /* 803367D4 */ u32 calcLoadSize(void const*, u32); + /* 803369A0 */ u32 calcLoadMaterialTableSize(void const*); + /* 80336A98 */ u32 calcLoadBinaryDisplayListSize(void const*, u32); + /* 80336794 */ u16 countMaterialNum(void const*); + /* 80334EE0 */ void setupBBoardInfo(); + /* 80336450 */ ~J3DModelLoader(); + /* 8033649C */ void readMaterial(J3DMaterialBlock const*, u32); + /* 80336498 */ void readMaterial_v21(J3DMaterialBlock_v21 const*, u32); + /* 803364A4 */ void readMaterialTable(J3DMaterialBlock const*, u32); + /* 803364A0 */ void readMaterialTable_v21(J3DMaterialBlock_v21 const*, u32); + /* 803364A8 */ u32 calcSizeMaterial(J3DMaterialBlock const*, u32); + /* 803364B0 */ u32 calcSizeMaterialTable(J3DMaterialBlock const*, u32); + + /* 0x00 */ void* _vtable; + /* 0x04 */ J3DModelData* mpModelData; + /* 0x08 */ J3DMaterialTable* mpMaterialTable; + /* 0x0C */ J3DShapeBlock const* mpShapeBlock; + /* 0x10 */ J3DMaterialBlock const* mpMaterialBlock; + /* 0x14 */ J3DModelHierarchy* mpModelHierarchy; + /* 0x18 */ u8 field_0x18; + /* 0x19 */ u8 field_0x19; + /* 0x1A */ u16 mEnvelopeSize; +}; + +/** + * @ingroup jsystem-j3d + * + */ +class J3DModelLoader_v21 { // : public J3DModelLoader { +public: + /* 803363F4 */ ~J3DModelLoader_v21() {} + /* 80335890 */ void readMaterial_v21(J3DMaterialBlock_v21 const*, u32); + /* 80335E20 */ void readMaterialTable_v21(J3DMaterialBlock_v21 const*, u32); + + /* 0x00 */ void* _vtable; + /* 0x04 */ J3DModelData* mpModelData; + /* 0x08 */ J3DMaterialTable* mpMaterialTable; + /* 0x0C */ J3DShapeBlock const* mpShapeBlock; + /* 0x10 */ J3DMaterialBlock const* mpMaterialBlock; + /* 0x14 */ J3DModelHierarchy* mpModelHierarchy; + /* 0x18 */ u8 field_0x18; + /* 0x19 */ u8 field_0x19; + /* 0x1A */ u16 mEnvelopeSize; +}; + +/** + * @ingroup jsystem-j3d + * + */ +class J3DModelLoader_v26 { // : public J3DModelLoader { +public: + /* 80336398 */ ~J3DModelLoader_v26() {} + /* 80335614 */ void readMaterial(J3DMaterialBlock const*, u32); + /* 80335CE4 */ void readMaterialTable(J3DMaterialBlock const*, u32); + /* 80336DB4 */ u32 calcSizeMaterial(J3DMaterialBlock const*, u32); + /* 80336F60 */ u32 calcSizeMaterialTable(J3DMaterialBlock const*, u32); + + /* 0x00 */ void* _vtable; + /* 0x04 */ J3DModelData* mpModelData; + /* 0x08 */ J3DMaterialTable* mpMaterialTable; + /* 0x0C */ J3DShapeBlock const* mpShapeBlock; + /* 0x10 */ J3DMaterialBlock const* mpMaterialBlock; + /* 0x14 */ J3DModelHierarchy* mpModelHierarchy; + /* 0x18 */ u8 field_0x18; + /* 0x19 */ u8 field_0x19; + /* 0x1A */ u16 mEnvelopeSize; +}; + +/** + * @ingroup jsystem-j3d + * + */ +class J3DModelLoaderDataBase { +public: + /* 803346BC */ static J3DModelData* load(void const* i_data, u32 i_flags); +}; + +#endif /* J3DMODELLOADER_H */ diff --git a/include/JSystem/J3DGraphLoader/J3DShapeFactory.h b/include/JSystem/J3DGraphLoader/J3DShapeFactory.h index 16afb48488..47ab5f6991 100644 --- a/include/JSystem/J3DGraphLoader/J3DShapeFactory.h +++ b/include/JSystem/J3DGraphLoader/J3DShapeFactory.h @@ -3,13 +3,16 @@ #include "JSystem/J3DGraphLoader/J3DModelLoader.h" #include "dolphin/gx/GXAttr.h" -#include "dolphin/mtx/vec.h" class J3DShape; class J3DShapeMtx; class J3DShapeDraw; struct ResNTAB; +/** + * @ingroup jsystem-j3d + * + */ struct J3DShapeInitData { /* 0x00 */ u8 mShapeMtxType; /* 0x02 */ u16 mMtxGroupNum; @@ -21,17 +24,29 @@ struct J3DShapeInitData { /* 0x1C */ Vec mMax; }; +/** + * @ingroup jsystem-j3d + * + */ struct J3DShapeMtxInitData { /* 0x00 */ u16 mUseMtxIndex; /* 0x02 */ u16 mUseMtxCount; /* 0x04 */ u32 mFirstUseMtxIndex; }; +/** + * @ingroup jsystem-j3d + * + */ struct J3DShapeDrawInitData { /* 0x00 */ u32 mDisplayListSize; /* 0x04 */ u32 mDisplayListIndex; }; +/** + * @ingroup jsystem-j3d + * + */ struct J3DShapeFactory { /* 80337350 */ J3DShapeFactory(J3DShapeBlock const&); /* 80337400 */ J3DShape* create(int, u32, GXVtxDescList*); |
