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
This commit is contained in:
Pheenoh
2024-04-12 00:10:30 -06:00
committed by GitHub
parent b36f0f9366
commit a61e3491f7
1245 changed files with 16183 additions and 9396 deletions
@@ -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*);
@@ -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();
@@ -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);
@@ -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 {
@@ -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 */
+312 -249
View File
@@ -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 */
@@ -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*);