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
+60 -1
View File
@@ -2,7 +2,6 @@
#define J2DANIMATION_H
#include "JSystem/J3DGraphAnimator/J3DAnimation.h"
#include "global.h"
typedef struct _GXColor GXColor;
typedef struct _GXColorS10 GXColorS10;
@@ -20,6 +19,10 @@ enum J2DAnmKind {
KIND_VTX_COLOR = 7
};
/**
* @ingroup jsystem-j2d
*
*/
class J2DAnmBase {
public:
J2DAnmBase() {
@@ -42,6 +45,10 @@ public:
/* 0xC */ J2DAnmKind mKind;
}; // Size: 0x10
/**
* @ingroup jsystem-j2d
*
*/
class J2DAnmVtxColor : public J2DAnmBase {
public:
J2DAnmVtxColor() {
@@ -67,6 +74,10 @@ public:
struct J3DTransformInfo;
struct J3DTextureSRTInfo;
/**
* @ingroup jsystem-j2d
*
*/
class J2DAnmVtxColorKey : public J2DAnmVtxColor {
public:
J2DAnmVtxColorKey() {
@@ -84,6 +95,10 @@ public:
/* 0x38 */ s16* mAValues;
}; // Size: 0x3C
/**
* @ingroup jsystem-j2d
*
*/
class J2DAnmVtxColorFull : public J2DAnmVtxColor {
public:
J2DAnmVtxColorFull() {
@@ -101,6 +116,10 @@ public:
/* 0x38 */ u8* mAValues;
}; // Size: 0x3C
/**
* @ingroup jsystem-j2d
*
*/
class J2DAnmVisibilityFull : public J2DAnmBase {
public:
J2DAnmVisibilityFull() {
@@ -119,6 +138,10 @@ public:
/* 0x18 */ u8* mValues;
}; // Size: 0x1C
/**
* @ingroup jsystem-j2d
*
*/
class J2DAnmTransform : public J2DAnmBase {
public:
J2DAnmTransform(f32* pScaleValues, s16* pRotationValues, f32* pTranslateValues) {
@@ -139,6 +162,10 @@ public:
/* 0x18 */ f32* mTranslateValues;
}; // Size: 0x1C
/**
* @ingroup jsystem-j2d
*
*/
class J2DAnmTransformKey : public J2DAnmTransform {
public:
J2DAnmTransformKey() : J2DAnmTransform(NULL, NULL, NULL) {
@@ -157,6 +184,10 @@ public:
/* 0x28 */ J3DAnmTransformKeyTable* mInfoTable;
};
/**
* @ingroup jsystem-j2d
*
*/
class J2DAnmTransformFull : public J2DAnmTransform {
public:
J2DAnmTransformFull() : J2DAnmTransform(NULL, NULL, NULL) { mTableInfo = NULL; }
@@ -168,6 +199,10 @@ public:
/* 0x24 */ J3DAnmTransformFullTable* mTableInfo;
};
/**
* @ingroup jsystem-j2d
*
*/
class J2DAnmTextureSRTKey : public J2DAnmBase {
public:
J2DAnmTextureSRTKey() {
@@ -227,6 +262,10 @@ public:
/* 0x7C */ int field_0x7c;
};
/**
* @ingroup jsystem-j2d
*
*/
class J2DAnmTexPattern : public J2DAnmBase {
public:
struct J2DAnmTexPatternTIMGPointer {
@@ -265,6 +304,10 @@ public:
/* 0x30 */ J2DAnmTexPatternTIMGPointer* mTIMGPtrArray;
};
/**
* @ingroup jsystem-j2d
*
*/
class J2DAnmTevRegKey : public J2DAnmBase {
public:
J2DAnmTevRegKey() {
@@ -331,6 +374,10 @@ public:
/* 0x70 */ s16* mKAValues;
};
/**
* @ingroup jsystem-j2d
*
*/
class J2DAnmColor : public J2DAnmBase {
public:
J2DAnmColor() {
@@ -357,6 +404,10 @@ public:
/* 0x20 */ JUTNameTab field_0x20;
}; // Size: 0x30
/**
* @ingroup jsystem-j2d
*
*/
class J2DAnmColorKey : public J2DAnmColor {
public:
J2DAnmColorKey() {
@@ -376,6 +427,10 @@ public:
/* 0x40 */ J3DAnmColorKeyTable* mInfoTable;
};
/**
* @ingroup jsystem-j2d
*
*/
struct J2DAnmColorFullInfo {
/* 0x00 */ u16 mRMaxFrame;
/* 0x02 */ u16 mROffset;
@@ -387,6 +442,10 @@ struct J2DAnmColorFullInfo {
/* 0x0E */ u16 mAOffset;
}; // Size = 0x10
/**
* @ingroup jsystem-j2d
*
*/
class J2DAnmColorFull : public J2DAnmColor {
public:
J2DAnmColorFull() {
+16
View File
@@ -3,10 +3,18 @@
#include "JSystem/J2DGraph/J2DAnimation.h"
/**
* @ingroup jsystem-j2d
*
*/
struct J2DAnmLoaderDataBase {
/* 80308A6C */ static J2DAnmBase* load(void const*);
};
/**
* @ingroup jsystem-j2d
*
*/
class J2DAnmLoader {
public:
virtual void* load(void const*) = 0;
@@ -27,6 +35,10 @@ struct J3DAnmVisibilityFullData;
struct J3DAnmVtxColorFullData;
struct J3DAnmTransformKeyData;
/**
* @ingroup jsystem-j2d
*
*/
class J2DAnmKeyLoader_v15 : public J2DAnmLoader {
public:
/* 80309290 */ J2DAnmKeyLoader_v15();
@@ -48,6 +60,10 @@ public:
// /* 0x04 */ void* _4;
};
/**
* @ingroup jsystem-j2d
*
*/
class J2DAnmFullLoader_v15 : public J2DAnmLoader {
public:
/* 80309CE8 */ J2DAnmFullLoader_v15();
+4 -1
View File
@@ -4,8 +4,11 @@
#include "JSystem/JGeometry.h"
#include "JSystem/JUtility/TColor.h"
#include "dolphin/mtx.h"
#include "dolphin/types.h"
/**
* @ingroup jsystem-j2d
*
*/
class J2DGrafContext {
public:
struct Blend {
+12
View File
@@ -5,6 +5,10 @@
class JSUInputStream;
/**
* @ingroup jsystem-j2d
*
*/
struct J2DResReference {
/* 0x00 */ u16 mCount;
/* 0x02 */ u16 mOffsets[1];
@@ -13,12 +17,20 @@ struct J2DResReference {
/* 8030CF44 */ char* getName(u16) const;
};
/**
* @ingroup jsystem-j2d
*
*/
struct J2DataManageLink {
/* 0x00 */ void* mData;
/* 0x04 */ char* mName;
/* 0x08 */ J2DataManageLink* mNext;
};
/**
* @ingroup jsystem-j2d
*
*/
class J2DDataManage {
private:
/* 0x00 */ J2DataManageLink* mList;
+76 -1
View File
@@ -3,7 +3,6 @@
#include "JSystem/J2DGraph/J2DTevs.h"
#include "JSystem/JUtility/TColor.h"
#include "dolphin/types.h"
class JUTFont;
class JUTPalette;
@@ -13,6 +12,10 @@ struct ResFONT;
struct ResTIMG;
struct ResTLUT;
/**
* @ingroup jsystem-j2d
*
*/
struct J2DGXColorS10 : public GXColorS10 {
/* 802F1B90 */ J2DGXColorS10() {}
J2DGXColorS10(const J2DGXColorS10& other) {
@@ -39,6 +42,10 @@ struct J2DGXColorS10 : public GXColorS10 {
struct J2DTevSwapModeInfo;
/**
* @ingroup jsystem-j2d
*
*/
class J2DTevBlock {
public:
/* 802F2A40 */ virtual void initialize();
@@ -88,6 +95,10 @@ public:
/* 802EB184 */ virtual ~J2DTevBlock() {}
};
/**
* @ingroup jsystem-j2d
*
*/
class J2DTevBlock1 : public J2DTevBlock {
public:
/* 802EB88C */ J2DTevBlock1();
@@ -155,6 +166,10 @@ private:
/* 0x05C */ u8 mUndeleteFlag;
}; // Size: 0x60
/**
* @ingroup jsystem-j2d
*
*/
class J2DTevBlock2 : public J2DTevBlock {
public:
/* 802EC5B8 */ J2DTevBlock2();
@@ -224,6 +239,10 @@ private:
/* 0x078 */ u8 mUndeleteFlag;
}; // Size: 0x7C
/**
* @ingroup jsystem-j2d
*
*/
class J2DTevBlock4 : public J2DTevBlock {
public:
/* 802ED8BC */ J2DTevBlock4();
@@ -293,6 +312,10 @@ private:
/* 0x0B0 */ u8 mUndeleteFlag;
}; // Size: 0xB4
/**
* @ingroup jsystem-j2d
*
*/
class J2DTevBlock8 : public J2DTevBlock {
public:
/* 802EED64 */ J2DTevBlock8();
@@ -363,6 +386,10 @@ private:
/* 0x121 */ bool mFontUndeleteFlag;
};
/**
* @ingroup jsystem-j2d
*
*/
class J2DTevBlock16 : public J2DTevBlock {
public:
/* 802F01E4 */ J2DTevBlock16();
@@ -433,6 +460,10 @@ public:
/* 0x1B1 */ bool mFontUndeleteFlag;
}; // Size: 0x1B4
/**
* @ingroup jsystem-j2d
*
*/
struct J2DAlphaCompInfo {
/* 0x0 */ u8 field_0x0;
/* 0x1 */ u8 field_0x1;
@@ -448,6 +479,10 @@ inline u16 J2DCalcAlphaCmp(s32 param_1, u32 param_2, u32 param_3) {
return ((param_1) << 5) | ((param_2 & 0xff) << 3) | (param_3 & 0xff);
}
/**
* @ingroup jsystem-j2d
*
*/
struct J2DAlphaComp {
J2DAlphaComp() {
mAlphaCmp = j2dDefaultAlphaCmp;
@@ -470,6 +505,10 @@ struct J2DAlphaComp {
/* 0x3 */ u8 mRef1;
};
/**
* @ingroup jsystem-j2d
*
*/
struct J2DBlendInfo {
void operator=(J2DBlendInfo const& other) {
mType = other.mType;
@@ -486,6 +525,10 @@ struct J2DBlendInfo {
extern const J2DBlendInfo j2dDefaultBlendInfo;
/**
* @ingroup jsystem-j2d
*
*/
struct J2DBlend {
J2DBlend() { mBlendInfo = j2dDefaultBlendInfo; }
J2DBlend(const J2DBlendInfo& info) { mBlendInfo = info; }
@@ -498,6 +541,10 @@ struct J2DBlend {
/* 0x0 */ J2DBlendInfo mBlendInfo;
};
/**
* @ingroup jsystem-j2d
*
*/
class J2DPEBlock {
public:
J2DPEBlock() { initialize(); }
@@ -514,6 +561,10 @@ private:
/* 0x8 */ u8 mDither;
};
/**
* @ingroup jsystem-j2d
*
*/
class J2DIndBlock {
public:
/* 802EB24C */ virtual void initialize();
@@ -530,6 +581,10 @@ public:
/* 802EB13C */ virtual ~J2DIndBlock() {}
};
/**
* @ingroup jsystem-j2d
*
*/
class J2DIndBlockFull : public J2DIndBlock {
public:
J2DIndBlockFull() { initialize(); }
@@ -554,6 +609,10 @@ private:
/* 0x64 */ J2DIndTexCoordScale mTexCoordScale[4];
};
/**
* @ingroup jsystem-j2d
*
*/
class J2DIndBlockNull : public J2DIndBlock {
public:
J2DIndBlockNull() {}
@@ -563,6 +622,10 @@ public:
/* 802EB1F0 */ virtual ~J2DIndBlockNull();
};
/**
* @ingroup jsystem-j2d
*
*/
class J2DTexGenBlock {
private:
/* 0x00 */ u32 mTexGenNum;
@@ -585,6 +648,10 @@ public:
/* 802EB620 */ virtual ~J2DTexGenBlock();
}; // Size: 0x48
/**
* @ingroup jsystem-j2d
*
*/
struct J2DColorChanInfo {
/* 0x0 */ u8 field_0x0;
/* 0x0 */ u8 field_0x1;
@@ -595,6 +662,10 @@ struct J2DColorChanInfo {
inline u8 J2DCalcColorChanID(u8 param_1) { return param_1; }
extern const J2DColorChanInfo j2dDefaultColorChanInfo;
/**
* @ingroup jsystem-j2d
*
*/
class J2DColorChan {
public:
/* 802EB280 */ J2DColorChan() {
@@ -613,6 +684,10 @@ private:
/* 0x0 */ u16 mColorChan;
};
/**
* @ingroup jsystem-j2d
*
*/
class J2DColorBlock {
private:
/* 0x00 */ JUtility::TColor mMatColor[2];
+4
View File
@@ -4,6 +4,10 @@
#include "JSystem/J2DGraph/J2DAnimation.h"
#include "JSystem/J2DGraph/J2DMatBlock.h"
/**
* @ingroup jsystem-j2d
*
*/
class J2DMaterial {
public:
struct J2DMaterialAnmPointer {
+16 -1
View File
@@ -3,8 +3,11 @@
#include "JSystem/J2DGraph/J2DManage.h"
#include "JSystem/J2DGraph/J2DMatBlock.h"
#include "dolphin/types.h"
/**
* @ingroup jsystem-j2d
*
*/
struct J2DMaterialBlock {
u32 field_0x0;
u32 field_0x4;
@@ -42,6 +45,10 @@ struct J2DBlendInfo;
struct J2DColorChanInfo;
class J2DMaterial;
/**
* @ingroup jsystem-j2d
*
*/
struct J2DIndInitData {
u8 field_0x0;
u8 field_0x1;
@@ -53,6 +60,10 @@ struct J2DIndInitData {
u8 field_0xac[0x90];
};
/**
* @ingroup jsystem-j2d
*
*/
struct J2DMaterialInitData {
u8 field_0x0;
u8 field_0x1;
@@ -88,6 +99,10 @@ struct J2DTexCoordInfo;
struct J2DTexMtxInfo;
class JKRArchive;
/**
* @ingroup jsystem-j2d
*
*/
class J2DMaterialFactory {
public:
/* 802F2AD0 */ J2DMaterialFactory(J2DMaterialBlock const&);
+4
View File
@@ -3,6 +3,10 @@
#include "JSystem/J2DGraph/J2DGrafContext.h"
/**
* @ingroup jsystem-j2d
*
*/
class J2DOrthoGraph : public J2DGrafContext {
public:
/* 802E9670 */ J2DOrthoGraph();
+8
View File
@@ -35,11 +35,19 @@ enum J2DBasePosition {
J2DBasePosition_4,
};
/**
* @ingroup jsystem-j2d
*
*/
struct J2DPaneHeader {
/* 0x0 */ u32 mKind;
/* 0x4 */ u32 mSize;
};
/**
* @ingroup jsystem-j2d
*
*/
class J2DPane {
public:
J2DPane();
+12 -1
View File
@@ -3,7 +3,6 @@
#include "JSystem/J2DGraph/J2DPane.h"
#include "JSystem/JUtility/TColor.h"
#include "dolphin/types.h"
class J2DMaterial;
class JUTPalette;
@@ -26,11 +25,19 @@ enum J2DBinding {
/* 0xF */ BIND15 = 15, // temp, figure out later
};
/**
* @ingroup jsystem-j2d
*
*/
struct J2DPicHeader {
/* 0x0 */ u32 mTag;
/* 0x4 */ u32 mSize;
};
/**
* @ingroup jsystem-j2d
*
*/
struct J2DScrnBlockPictureParameter {
/* 0x00 */ u16 field_0x0;
/* 0x02 */ u16 mMaterialNum;
@@ -41,6 +48,10 @@ struct J2DScrnBlockPictureParameter {
/* 0x20 */ u32 mCornerColor[4];
}; // Size: 0x30
/**
* @ingroup jsystem-j2d
*
*/
class J2DPicture : public J2DPane {
public:
/* 802FCFF0 */ virtual ~J2DPicture();
+4 -1
View File
@@ -3,10 +3,13 @@
#include "JSystem/J2DGraph/J2DPicture.h"
#include "JSystem/J2DGraph/J2DTevs.h"
#include "dolphin/types.h"
class J2DMaterial;
/**
* @ingroup jsystem-j2d
*
*/
class J2DPictureEx : public J2DPicture {
public:
enum stage_enum {};
+4 -1
View File
@@ -3,10 +3,13 @@
#include "JSystem/J2DGraph/J2DTextBox.h"
#include "__va_arg.h"
#include "dolphin/types.h"
class JUTFont;
/**
* @ingroup jsystem-j2d
*
*/
class J2DPrint {
public:
struct TSize {
+16
View File
@@ -8,6 +8,10 @@
class J2DMaterial;
class JUTNameTab;
/**
* @ingroup jsystem-j2d
*
*/
struct J2DScrnHeader {
/* 0x00 */ u32 mTag;
/* 0x04 */ u32 mType;
@@ -16,6 +20,10 @@ struct J2DScrnHeader {
/* 0x10 */ u8 padding[0x10];
};
/**
* @ingroup jsystem-j2d
*
*/
struct J2DScrnInfoHeader {
/* 0x0 */ u32 mTag;
/* 0x4 */ u32 mSize;
@@ -24,11 +32,19 @@ struct J2DScrnInfoHeader {
/* 0xC */ u32 mColor;
};
/**
* @ingroup jsystem-j2d
*
*/
struct J2DScrnBlockHeader {
/* 0x00 */ u32 mTag;
/* 0x04 */ s32 mSize;
};
/**
* @ingroup jsystem-j2d
*
*/
class J2DScreen : public J2DPane {
public:
/* 802F8540 */ virtual ~J2DScreen();
+80 -1
View File
@@ -1,10 +1,13 @@
#ifndef J2DTEVS_H
#define J2DTEVS_H
#include "dolphin/gx/GXEnum.h"
#include "dolphin/gx/GXStruct.h"
#include "dolphin/mtx.h"
/**
* @ingroup jsystem-j2d
*
*/
struct J2DTextureSRTInfo {
/* 0x00 */ f32 field_0x0;
/* 0x04 */ f32 field_0x4;
@@ -13,6 +16,10 @@ struct J2DTextureSRTInfo {
/* 0x10 */ f32 field_0x10;
}; // Size: 0x14
/**
* @ingroup jsystem-j2d
*
*/
struct J2DTexMtxInfo {
enum {
/* 0x0 */ DCC_NONE,
@@ -39,6 +46,10 @@ struct J2DTexMtxInfo {
extern J2DTexMtxInfo const j2dDefaultTexMtxInfo;
/**
* @ingroup jsystem-j2d
*
*/
class J2DTexMtx {
public:
J2DTexMtx() { mInfo = j2dDefaultTexMtxInfo; }
@@ -55,6 +66,10 @@ private:
/* 0x24 */ Mtx mTexMtx;
};
/**
* @ingroup jsystem-j2d
*
*/
struct J2DIndTexOrderInfo {
/* 0x0 */ u8 mTexCoordID;
/* 0x1 */ u8 mTexMapID;
@@ -70,6 +85,10 @@ struct J2DIndTexOrderInfo {
extern const J2DIndTexOrderInfo j2dDefaultIndTexOrderNull;
/**
* @ingroup jsystem-j2d
*
*/
class J2DIndTexOrder {
public:
/* 802EB378 */ J2DIndTexOrder() {
@@ -84,6 +103,10 @@ private:
/* 0x0 */ J2DIndTexOrderInfo mInfo;
};
/**
* @ingroup jsystem-j2d
*
*/
struct J2DIndTexMtxInfo {
/* 0x00 */ Mtx23 mMtx;
/* 0x18 */ s8 mScaleExp;
@@ -101,6 +124,10 @@ struct J2DIndTexMtxInfo {
extern J2DIndTexMtxInfo const j2dDefaultIndTexMtxInfo;
/**
* @ingroup jsystem-j2d
*
*/
class J2DIndTexMtx {
public:
/* 802EB2E4 */ ~J2DIndTexMtx() {}
@@ -118,6 +145,10 @@ private:
/* 0x0 */ J2DIndTexMtxInfo mIndTexMtxInfo;
}; // Size: 0x1C
/**
* @ingroup jsystem-j2d
*
*/
struct J2DIndTexCoordScaleInfo {
/* 0x0 */ u8 mScaleS;
/* 0x1 */ u8 mScaleT;
@@ -133,6 +164,10 @@ struct J2DIndTexCoordScaleInfo {
extern const J2DIndTexCoordScaleInfo j2dDefaultIndTexCoordScaleInfo;
/**
* @ingroup jsystem-j2d
*
*/
class J2DIndTexCoordScale {
public:
/* 802EB290 */ ~J2DIndTexCoordScale() {}
@@ -148,6 +183,10 @@ private:
/* 0x0 */ J2DIndTexCoordScaleInfo mInfo;
}; // Size: 0x2
/**
* @ingroup jsystem-j2d
*
*/
struct J2DIndTevStageInfo {
/* 0x0 */ u8 mIndStage;
/* 0x1 */ u8 mIndFormat;
@@ -171,6 +210,10 @@ inline u32 J2DCalcIndTevStage(J2DIndTevStageInfo info) {
extern const J2DIndTevStageInfo j2dDefaultIndTevStageInfo;
/**
* @ingroup jsystem-j2d
*
*/
class J2DIndTevStage {
public:
/* 802EA044 */ void load(u8);
@@ -197,6 +240,10 @@ private:
GXIndTexAlphaSel getAlphaSel() const { return (GXIndTexAlphaSel)((mFlags >> 22) & 0x03); }
};
/**
* @ingroup jsystem-j2d
*
*/
struct J2DTexCoordInfo {
/* 0x0 */ u8 mTexGenType;
/* 0x1 */ u8 mTexGenSrc;
@@ -213,6 +260,10 @@ struct J2DTexCoordInfo {
extern J2DTexCoordInfo const j2dDefaultTexCoordInfo[8];
/**
* @ingroup jsystem-j2d
*
*/
class J2DTexCoord {
public:
/* 802EB260 */ inline J2DTexCoord() {
@@ -231,6 +282,10 @@ private:
/* 0x0 */ J2DTexCoordInfo mTexCoordInfo;
};
/**
* @ingroup jsystem-j2d
*
*/
struct J2DTevOrderInfo {
/* 0x0 */ u8 mTexCoord;
/* 0x1 */ u8 mTexMap;
@@ -247,6 +302,10 @@ struct J2DTevOrderInfo {
extern const J2DTevOrderInfo j2dDefaultTevOrderInfoNull;
/**
* @ingroup jsystem-j2d
*
*/
class J2DTevOrder {
public:
/* 802F1B70 */ J2DTevOrder() {
@@ -265,6 +324,10 @@ public:
/* 0x0 */ J2DTevOrderInfo mTevOrderInfo;
};
/**
* @ingroup jsystem-j2d
*
*/
struct J2DTevStageInfo {
/* 0x00 */ u8 field_0x0;
/* 0x01 */ u8 mColorA;
@@ -288,6 +351,10 @@ struct J2DTevStageInfo {
/* 0x13 */ u8 field_0x13;
};
/**
* @ingroup jsystem-j2d
*
*/
struct J2DTevSwapModeInfo {
/* 0x0 */ u8 mRasSel;
/* 0x1 */ u8 mTexSel;
@@ -297,6 +364,10 @@ struct J2DTevSwapModeInfo {
extern const J2DTevSwapModeInfo j2dDefaultTevSwapMode;
/**
* @ingroup jsystem-j2d
*
*/
class J2DTevStage {
public:
/* 802F4110 */ J2DTevStage(J2DTevStageInfo const&);
@@ -426,6 +497,10 @@ private:
/* 0x7 */ u8 field_0x7;
};
/**
* @ingroup jsystem-j2d
*
*/
struct J2DTevSwapModeTableInfo {
/* 0x0 */ u8 field_0x0;
/* 0x1 */ u8 field_0x1;
@@ -439,6 +514,10 @@ inline u8 J2DCalcTevSwapTable(u8 param_0, u8 param_1, u8 param_2, u8 param_3) {
extern const J2DTevSwapModeTableInfo j2dDefaultTevSwapModeTable;
/**
* @ingroup jsystem-j2d
*
*/
class J2DTevSwapModeTable {
public:
/* 802F1934 */ J2DTevSwapModeTable();
+12
View File
@@ -19,11 +19,19 @@ enum J2DTextBoxHBinding {
/* 0x2 */ HBIND_LEFT
};
/**
* @ingroup jsystem-j2d
*
*/
struct J2DTbxBlockHeader {
/* 0x00 */ u32 mTag;
/* 0x04 */ s32 mSize;
};
/**
* @ingroup jsystem-j2d
*
*/
struct J2DTextBoxInfo {
/* 0x00 */ u16 field_0x0;
/* 0x02 */ u16 field_0x2;
@@ -42,6 +50,10 @@ struct J2DTextBoxInfo {
/* 0x1E */ u16 field_0x1e;
}; // Size: 0x20
/**
* @ingroup jsystem-j2d
*
*/
class J2DTextBox : public J2DPane {
public:
struct TFontSize {
+4 -1
View File
@@ -2,10 +2,13 @@
#define J2DTEXTBOXEX_H
#include "JSystem/J2DGraph/J2DTextBox.h"
#include "dolphin/types.h"
class J2DMaterial;
/**
* @ingroup jsystem-j2d
*
*/
class J2DTextBoxEx : public J2DTextBox {
public:
enum stage_enum {
+4
View File
@@ -7,6 +7,10 @@
class JSURandomInputStream;
class JUTTexture;
/**
* @ingroup jsystem-j2d
*
*/
class J2DWindow : public J2DPane {
public:
struct TMaterial {
+4 -1
View File
@@ -2,8 +2,11 @@
#define J2DWINDOWEX_H
#include "JSystem/J2DGraph/J2DWindow.h"
#include "dolphin/types.h"
/**
* @ingroup jsystem-j2d
*
*/
class J2DWindowEx : public J2DWindow {
public:
enum stage_enum {
+180 -1
View File
@@ -3,7 +3,6 @@
#include "JSystem/J3DGraphAnimator/J3DModelData.h"
#include "JSystem/JUtility/JUTNameTab.h"
#include "global.h"
struct JUTDataBlockHeader {
/* 0x0 */ u32 mType;
@@ -28,12 +27,20 @@ struct JUTDataFileHeader { // actual struct name unknown
typedef struct _GXColor GXColor;
typedef struct _GXColorS10 GXColorS10;
/**
* @ingroup jsystem-j3d
*
*/
struct J3DAnmKeyTableBase {
/* 0x00 */ u16 mMaxFrame;
/* 0x02 */ u16 mOffset;
/* 0x04 */ u16 mType;
}; // Size = 0x6
/**
* @ingroup jsystem-j3d
*
*/
struct J3DAnmColorKeyTable {
J3DAnmKeyTableBase mRInfo;
J3DAnmKeyTableBase mGInfo;
@@ -41,11 +48,19 @@ struct J3DAnmColorKeyTable {
J3DAnmKeyTableBase mAInfo;
}; // Size = 0x18
/**
* @ingroup jsystem-j3d
*
*/
struct J3DAnmVtxColorIndexData {
/* 0x00 */ u16 mNum;
/* 0x04 */ void* mpData;
};
/**
* @ingroup jsystem-j3d
*
*/
struct J3DAnmColorFullTable {
/* 0x00 */ u16 mRMaxFrame;
/* 0x02 */ u16 mROffset;
@@ -57,17 +72,29 @@ struct J3DAnmColorFullTable {
/* 0x0E */ u16 mAOffset;
}; // Size = 0x10
/**
* @ingroup jsystem-j3d
*
*/
struct J3DAnmVisibilityFullTable {
u16 _0;
u16 _2;
}; // Size = 0x4
/**
* @ingroup jsystem-j3d
*
*/
struct J3DAnmTransformKeyTable {
J3DAnmKeyTableBase mScaleInfo;
J3DAnmKeyTableBase mRotationInfo;
J3DAnmKeyTableBase mTranslateInfo;
}; // Size = 0x12
/**
* @ingroup jsystem-j3d
*
*/
struct J3DAnmTransformFullTable {
/* 0x00 */ u16 mScaleMaxFrame;
/* 0x02 */ u16 mScaleOffset;
@@ -77,6 +104,10 @@ struct J3DAnmTransformFullTable {
/* 0x0A */ u16 mTranslateOffset;
}; // Size = 0xC
/**
* @ingroup jsystem-j3d
*
*/
struct J3DAnmTexPatternFullTable {
/* 0x00 */ u16 mMaxFrame;
/* 0x02 */ u16 mOffset;
@@ -84,6 +115,10 @@ struct J3DAnmTexPatternFullTable {
/* 0x06 */ u16 _6;
}; // Size = 0x8
/**
* @ingroup jsystem-j3d
*
*/
struct J3DAnmCRegKeyTable {
/* 0x00 */ J3DAnmKeyTableBase mRTable;
/* 0x06 */ J3DAnmKeyTableBase mGTable;
@@ -93,6 +128,10 @@ struct J3DAnmCRegKeyTable {
u8 padding[3];
}; // Size = 0x1C
/**
* @ingroup jsystem-j3d
*
*/
struct J3DAnmKRegKeyTable {
/* 0x00 */ J3DAnmKeyTableBase mRTable;
/* 0x06 */ J3DAnmKeyTableBase mGTable;
@@ -102,11 +141,19 @@ struct J3DAnmKRegKeyTable {
u8 padding[3];
}; // Size = 0x1C
/**
* @ingroup jsystem-j3d
*
*/
struct J3DAnmDataBlockHeader { // actual name unknown
/* 0x0 */ u32 mType;
/* 0x4 */ u32 mNextOffset;
}; // Size = 0x8
/**
* @ingroup jsystem-j3d
*
*/
struct J3DAnmDataHeader { // actual name unknown
/* 0x00 */ u32 mMagic;
/* 0x04 */ u32 mType;
@@ -116,6 +163,10 @@ struct J3DAnmDataHeader { // actual name unknown
/* 0x20 */ J3DAnmDataBlockHeader mFirst;
};
/**
* @ingroup jsystem-j3d
*
*/
struct J3DAnmVtxColorFullData {
/* 0x00 */ J3DAnmDataBlockHeader mHeader;
/* 0x08 */ u8 field_0x8;
@@ -134,6 +185,10 @@ struct J3DAnmVtxColorFullData {
STATIC_ASSERT(sizeof(J3DAnmVtxColorFullData) == 0x40);
/**
* @ingroup jsystem-j3d
*
*/
struct J3DAnmVisibilityFullData {
/* 0x00 */ J3DAnmDataBlockHeader mHeader;
/* 0x08 */ u8 field_0x8;
@@ -147,6 +202,10 @@ struct J3DAnmVisibilityFullData {
STATIC_ASSERT(sizeof(J3DAnmVisibilityFullData) == 0x18);
/**
* @ingroup jsystem-j3d
*
*/
struct J3DAnmTransformFullData {
/* 0x00 */ J3DAnmDataBlockHeader mHeader;
/* 0x08 */ u8 field_0x8;
@@ -162,6 +221,10 @@ struct J3DAnmTransformFullData {
STATIC_ASSERT(sizeof(J3DAnmTransformFullData) == 0x24);
/**
* @ingroup jsystem-j3d
*
*/
struct J3DAnmColorKeyData {
/* 0x00 */ J3DAnmDataBlockHeader mHeader;
/* 0x08 */ u8 field_0x8;
@@ -183,6 +246,10 @@ struct J3DAnmColorKeyData {
STATIC_ASSERT(sizeof(J3DAnmColorKeyData) == 0x34);
/**
* @ingroup jsystem-j3d
*
*/
struct J3DAnmTextureSRTKeyData {
/* 0x00 */ J3DAnmDataBlockHeader mHeader;
/* 0x08 */ u8 field_0x8;
@@ -217,6 +284,10 @@ struct J3DAnmTextureSRTKeyData {
STATIC_ASSERT(sizeof(J3DAnmTextureSRTKeyData) == 0x60);
/**
* @ingroup jsystem-j3d
*
*/
struct J3DAnmVtxColorKeyData {
/* 0x00 */ J3DAnmDataBlockHeader mHeader;
/* 0x08 */ u8 field_0x8;
@@ -235,6 +306,10 @@ struct J3DAnmVtxColorKeyData {
STATIC_ASSERT(sizeof(J3DAnmVtxColorKeyData) == 0x40);
/**
* @ingroup jsystem-j3d
*
*/
struct J3DAnmTexPatternFullData {
/* 0x00 */ J3DAnmDataBlockHeader mHeader;
/* 0x08 */ u8 field_0x8;
@@ -250,6 +325,10 @@ struct J3DAnmTexPatternFullData {
STATIC_ASSERT(sizeof(J3DAnmTexPatternFullData) == 0x20);
/**
* @ingroup jsystem-j3d
*
*/
struct J3DAnmTevRegKeyData {
/* 0x00 */ J3DAnmDataBlockHeader mHeader;
/* 0x08 */ u8 field_0x8;
@@ -283,6 +362,10 @@ struct J3DAnmTevRegKeyData {
STATIC_ASSERT(sizeof(J3DAnmTevRegKeyData) == 0x58);
/**
* @ingroup jsystem-j3d
*
*/
struct J3DAnmColorFullData { /* PlaceHolder Structure */
/* 0x00 */ J3DAnmDataBlockHeader mHeader;
/* 0x08 */ u8 field_0x8;
@@ -301,10 +384,18 @@ struct J3DAnmColorFullData { /* PlaceHolder Structure */
STATIC_ASSERT(sizeof(J3DAnmColorFullData) == 0x34);
/**
* @ingroup jsystem-j3d
*
*/
struct J3DAnmClusterKeyTable {
/* 0x00 */ J3DAnmKeyTableBase mWeightTable;
};
/**
* @ingroup jsystem-j3d
*
*/
struct J3DAnmTransformKeyData {
/* 0x00 */ JUTDataBlockHeader mHeader;
/* 0x08 */ u8 field_0x8;
@@ -318,6 +409,10 @@ struct J3DAnmTransformKeyData {
/* 0x20 */ s32 field_0x20;
};
/**
* @ingroup jsystem-j3d
*
*/
struct J3DAnmClusterKeyData {
/* 0x00 */ JUTDataBlockHeader mHeader;
/* 0x08 */ u8 field_0x8;
@@ -327,6 +422,10 @@ struct J3DAnmClusterKeyData {
/* 0x14 */ s32 mWeightOffset;
};
/**
* @ingroup jsystem-j3d
*
*/
struct J3DAnmClusterFullData {
/* 0x00 */ JUTDataBlockHeader mHeader;
/* 0x08 */ u8 field_0x8;
@@ -336,11 +435,19 @@ struct J3DAnmClusterFullData {
/* 0x14 */ s32 mWeightOffset;
};
/**
* @ingroup jsystem-j3d
*
*/
struct J3DAnmClusterFullTable {
u16 mMaxFrame;
u16 mOffset;
};
/**
* @ingroup jsystem-j3d
*
*/
class J3DAnmBase {
public:
J3DAnmBase() {
@@ -371,6 +478,10 @@ public:
/* 0x8 */ f32 mFrame;
}; // Size: 0xC
/**
* @ingroup jsystem-j3d
*
*/
class J3DAnmTransform : public J3DAnmBase {
public:
/* 80328E40 */ J3DAnmTransform(s16, f32*, s16*, f32*);
@@ -388,6 +499,10 @@ public:
/* 0x1E */ s16 field_0x1e;
}; // Size: 0x20
/**
* @ingroup jsystem-j3d
*
*/
class J3DAnmTransformKey : public J3DAnmTransform {
public:
J3DAnmTransformKey() : J3DAnmTransform(0, NULL, NULL, NULL) {
@@ -405,6 +520,10 @@ public:
/* 0x24 */ J3DAnmTransformKeyTable* mAnmTable;
}; // Size: 0x28
/**
* @ingroup jsystem-j3d
*
*/
class J3DAnmTransformFull : public J3DAnmTransform {
public:
J3DAnmTransformFull() : J3DAnmTransform(0, NULL, NULL, NULL) { mAnmTable = NULL; }
@@ -416,6 +535,10 @@ public:
/* 0x20 */ J3DAnmTransformFullTable* mAnmTable;
}; // Size: 0x24
/**
* @ingroup jsystem-j3d
*
*/
class J3DAnmTransformFullWithLerp : public J3DAnmTransformFull {
public:
/* 8032C228 */ virtual ~J3DAnmTransformFullWithLerp();
@@ -427,6 +550,10 @@ struct J3DTextureSRTInfo;
class J3DModelData;
class J3DMaterialTable;
/**
* @ingroup jsystem-j3d
*
*/
class J3DAnmTextureSRTKey : public J3DAnmBase {
public:
/* 80329E5C */ J3DAnmTextureSRTKey();
@@ -477,6 +604,10 @@ public:
/* 0x78 */ u32 mTexMtxCalcType;
}; // Size: 0x7C
/**
* @ingroup jsystem-j3d
*
*/
class J3DAnmTexPattern : public J3DAnmBase {
public:
/* 8032AED8 */ J3DAnmTexPattern();
@@ -500,6 +631,10 @@ public:
/* 0x1C */ JUTNameTab mUpdateMaterialName;
}; // Size: 0x2C
/**
* @ingroup jsystem-j3d
*
*/
class J3DAnmTevRegKey : public J3DAnmBase {
public:
/* 8032AE18 */ J3DAnmTevRegKey();
@@ -549,6 +684,10 @@ public:
/* 0x6C */ s16* mAnmKRegDataA;
}; // Size: 0x70
/**
* @ingroup jsystem-j3d
*
*/
class J3DAnmColor : public J3DAnmBase {
public:
/* 8032A828 */ J3DAnmColor();
@@ -571,6 +710,10 @@ public:
/* 0x1C */ JUTNameTab mUpdateMaterialName;
}; // Size: 0x2C
/**
* @ingroup jsystem-j3d
*
*/
class J3DAnmColorKey : public J3DAnmColor {
public:
/* 8032AB00 */ J3DAnmColorKey();
@@ -586,6 +729,10 @@ public:
/* 0x3C */ J3DAnmColorKeyTable* field_0x3c;
};
/**
* @ingroup jsystem-j3d
*
*/
class J3DAnmColorFull : public J3DAnmColor {
public:
/* 8032AB00 */ J3DAnmColorFull();
@@ -601,6 +748,10 @@ public:
/* 0x3C */ J3DAnmColorFullTable* mAnmTable;
};
/**
* @ingroup jsystem-j3d
*
*/
class J3DAnmVtxColor : public J3DAnmBase {
public:
J3DAnmVtxColor();
@@ -613,6 +764,10 @@ public:
/* 0x10 */ J3DAnmVtxColorIndexData* mAnmVtxColorIndexData[2];
}; // Size: 0x18
/**
* @ingroup jsystem-j3d
*
*/
class J3DAnmVtxColorKey : public J3DAnmVtxColor {
public:
/* 8032A4E0 */ J3DAnmVtxColorKey();
@@ -628,6 +783,10 @@ public:
/* 0x30 */ s16* mColorA;
};
/**
* @ingroup jsystem-j3d
*
*/
class J3DAnmVtxColorFull : public J3DAnmVtxColor {
public:
/* 8032A30C */ J3DAnmVtxColorFull();
@@ -643,6 +802,10 @@ public:
/* 0x30 */ u8* mColorA;
};
/**
* @ingroup jsystem-j3d
*
*/
class J3DAnmCluster : public J3DAnmBase {
public:
J3DAnmCluster(s16 param_1, f32* param_2) : J3DAnmBase(param_1) { mWeight = param_2; }
@@ -654,6 +817,10 @@ public:
/* 0x0C */ f32* mWeight;
}; // Size: 0x10
/**
* @ingroup jsystem-j3d
*
*/
class J3DAnmClusterFull : public J3DAnmCluster {
public:
J3DAnmClusterFull() : J3DAnmCluster(0, 0) { mAnmTable = NULL; }
@@ -665,6 +832,10 @@ public:
/* 0x10 */ J3DAnmClusterFullTable* mAnmTable;
};
/**
* @ingroup jsystem-j3d
*
*/
class J3DAnmClusterKey : public J3DAnmCluster {
public:
J3DAnmClusterKey() : J3DAnmCluster(0, NULL) { mAnmTable = NULL; }
@@ -676,6 +847,10 @@ public:
/* 0x10 */ J3DAnmClusterKeyTable* mAnmTable;
};
/**
* @ingroup jsystem-j3d
*
*/
class J3DAnmVisibilityFull : public J3DAnmBase {
public:
J3DAnmVisibilityFull() : J3DAnmBase(0) {
@@ -694,6 +869,10 @@ public:
/* 0x14 */ u8* mVisibility;
};
/**
* @ingroup jsystem-j3d
*
*/
class J3DFrameCtrl {
public:
enum Attribute_e {
@@ -11,6 +11,10 @@ class J3DModel;
class J3DAnmCluster;
class JUTNameTab;
/**
* @ingroup jsystem-j3d
*
*/
class J3DCluster {
public:
void operator=(const J3DCluster& other) {
@@ -44,6 +48,10 @@ public:
/* 0x20 */ J3DDeformer* mDeformer;
};
/**
* @ingroup jsystem-j3d
*
*/
class J3DClusterKey {
public:
void operator=(const J3DClusterKey& other) {
@@ -59,6 +67,10 @@ public:
/* 0x08 */ void* field_0x8;
}; // Size: 0x0C
/**
* @ingroup jsystem-j3d
*
*/
class J3DDeformData {
public:
/* 8032E1F8 */ J3DDeformData();
@@ -88,6 +100,10 @@ public:
/* 0x24 */ JUTNameTab* mClusterKeyName;
}; // Size: 0x28
/**
* @ingroup jsystem-j3d
*
*/
class J3DClusterVertex {
public:
void operator=(const J3DClusterVertex& other) {
@@ -8,6 +8,10 @@ class J3DJoint;
class J3DMaterial;
class J3DMtxBuffer;
/**
* @ingroup jsystem-j3d
*
*/
class J3DMtxCalc {
public:
/* 80325D1C */ static void setMtxBuffer(J3DMtxBuffer*);
@@ -30,11 +34,19 @@ public:
static J3DJoint* mJoint;
}; // Size: 0x4
/**
* @ingroup jsystem-j3d
*
*/
class J3DMtxCalcNoAnmBase : public J3DMtxCalc {
public:
/* 8000FA8C */ virtual ~J3DMtxCalcNoAnmBase();
};
/**
* @ingroup jsystem-j3d
*
*/
template <class A, class B>
class J3DMtxCalcNoAnm : public J3DMtxCalcNoAnmBase {
public:
@@ -47,6 +59,10 @@ public:
class J3DJoint;
typedef int (*J3DJointCallBack)(J3DJoint*, int);
/**
* @ingroup jsystem-j3d
*
*/
class J3DJoint {
public:
/* 8032F13C */ void appendChild(J3DJoint*);
@@ -93,22 +109,42 @@ private:
/* 0x58 */ J3DMaterial* mMesh;
}; // Size: 0x5C
/**
* @ingroup jsystem-j3d
*
*/
struct J3DMtxCalcJ3DSysInitMaya {
/* 8032ECAC */ static void init(const Vec&, const Mtx& param_1);
};
/**
* @ingroup jsystem-j3d
*
*/
struct J3DMtxCalcJ3DSysInitBasic {
/* 8032EC28 */ static void init(const Vec&, const Mtx& param_1);
};
/**
* @ingroup jsystem-j3d
*
*/
struct J3DMtxCalcCalcTransformSoftimage {
/* 8032EE50 */ static void calcTransform(J3DTransformInfo const&);
};
/**
* @ingroup jsystem-j3d
*
*/
struct J3DMtxCalcCalcTransformMaya {
/* 8032EFBC */ static void calcTransform(J3DTransformInfo const&);
};
/**
* @ingroup jsystem-j3d
*
*/
struct J3DMtxCalcCalcTransformBasic {
/* 8032ED30 */ static void calcTransform(J3DTransformInfo const&);
};
@@ -2,10 +2,13 @@
#define J3DJOINTTREE_H
#include "JSystem/J3DGraphAnimator/J3DJoint.h"
#include "dolphin/types.h"
class JUTNameTab;
/**
* @ingroup jsystem-j3d
*
*/
struct J3DModelHierarchy {
/* 0x0 */ u16 mType;
/* 0x2 */ u16 mValue;
@@ -13,6 +16,10 @@ struct J3DModelHierarchy {
class J3DMaterialTable;
/**
* @ingroup jsystem-j3d
*
*/
struct J3DDrawMtxData {
/* 803115E0 */ J3DDrawMtxData();
/* 803115F4 */ ~J3DDrawMtxData();
@@ -25,6 +32,10 @@ struct J3DDrawMtxData {
class J3DShapeTable;
/**
* @ingroup jsystem-j3d
*
*/
class J3DJointTree {
public:
/* 80325A18 */ J3DJointTree();
@@ -6,6 +6,10 @@
typedef struct _GXColor GXColor;
typedef struct _GXColorS10 GXColorS10;
/**
* @ingroup jsystem-j3d
*
*/
class J3DMatColorAnm {
public:
/* 8003B2B8 */ ~J3DMatColorAnm() {};
@@ -32,6 +36,10 @@ private:
/* 0x4 */ J3DAnmColor* mAnmColor;
}; // Size: 0x8
/**
* @ingroup jsystem-j3d
*
*/
class J3DTexNoAnm {
public:
/* 8003B1F8 */ ~J3DTexNoAnm() {};
@@ -59,6 +67,10 @@ private:
/* 0x8 */ J3DAnmTexPattern* mAnmTexPattern;
}; // Size: 0xC
/**
* @ingroup jsystem-j3d
*
*/
class J3DTexMtxAnm {
public:
/* 8003B264 */ ~J3DTexMtxAnm() {};
@@ -87,6 +99,10 @@ private:
/* 0x4 */ J3DAnmTextureSRTKey* mAnmTransform;
}; // Size: 0x8
/**
* @ingroup jsystem-j3d
*
*/
class J3DTevKColorAnm {
public:
/* 8003B150 */ ~J3DTevKColorAnm() {}
@@ -113,6 +129,10 @@ private:
/* 0x4 */ J3DAnmTevRegKey* mAnmTevReg;
}; // Size: 0x8
/**
* @ingroup jsystem-j3d
*
*/
class J3DTevColorAnm {
public:
/* 8003B1A4 */ ~J3DTevColorAnm() {}
@@ -139,6 +159,10 @@ private:
/* 0x4 */ J3DAnmTevRegKey* mAnmTevReg;
}; // Size: 0x8
/**
* @ingroup jsystem-j3d
*
*/
class J3DMaterialAnm {
public:
J3DMaterialAnm() { initialize(); }
@@ -11,6 +11,10 @@ class J3DAnmTextureSRTKey;
class J3DAnmTevRegKey;
class JUTNameTab;
/**
* @ingroup jsystem-j3d
*
*/
class J3DMaterialTable {
public:
/* 8032F5A8 */ void clear();
+12 -2
View File
@@ -3,8 +3,6 @@
#include "JSystem/J3DGraphAnimator/J3DSkinDeform.h"
#include "JSystem/J3DGraphBase/J3DPacket.h"
#include "JSystem/J3DGraphBase/J3DVertex.h"
#include "dolphin/mtx.h"
#include "dolphin/types.h"
enum J3DMdlFlag {
@@ -18,10 +16,18 @@ enum J3DMdlFlag {
/* 0x80000 */ J3DMdlFlag_Unk80000 = 0x80000,
};
/**
* @ingroup jsystem-j3d
*
*/
struct J3DUnkCalc1 {
virtual void calc(J3DModel* model);
};
/**
* @ingroup jsystem-j3d
*
*/
struct J3DUnkCalc2 {
virtual void unk();
virtual void calc(J3DModelData* mpModelData);
@@ -29,6 +35,10 @@ struct J3DUnkCalc2 {
typedef void (*J3DCalcCallBack)(J3DModel*, u32 timing);
/**
* @ingroup jsystem-j3d
*
*/
class J3DModel {
public:
J3DModel() {
@@ -10,6 +10,10 @@
typedef struct _GXColor GXColor;
class JUTNameTab;
/**
* @ingroup jsystem-j3d
*
*/
class J3DModelData {
public:
/* 80325D88 */ void clear();
@@ -2,10 +2,13 @@
#define J3DMTXBUFFER_H
#include "JSystem/J3DGraphAnimator/J3DModelData.h"
#include "dolphin/types.h"
class J3DModelData;
/**
* @ingroup jsystem-j3d
*
*/
class J3DMtxBuffer {
public:
J3DMtxBuffer() { initialize(); }
@@ -2,10 +2,13 @@
#define J3DSHAPETABLE_H
#include "JSystem/J3DGraphBase/J3DShape.h"
#include "dolphin/types.h"
class JUTNameTab;
/**
* @ingroup jsystem-j3d
*
*/
class J3DShapeTable {
public:
J3DShapeTable() {
@@ -3,7 +3,6 @@
#include "JSystem/J3DGraphAnimator/J3DCluster.h"
#include "JSystem/J3DGraphAnimator/J3DMtxBuffer.h"
#include "JSystem/J3DGraphBase/J3DTransform.h"
#include "dolphin/types.h"
class J3DModel;
@@ -11,6 +10,10 @@ class J3DAnmCluster;
class J3DClusterVertex;
class JUTNameTab;
/**
* @ingroup jsystem-j3d
*
*/
struct J3DSkinNList {
/* 8032C6E4 */ J3DSkinNList();
/* 8032C85C */ void calcSkin_VtxPosF32(f32 (*)[4], void*, void*);
@@ -24,6 +27,10 @@ struct J3DSkinNList {
/* 0x12 */ u16 field_0x12;
}; // Size: 0x14
/**
* @ingroup jsystem-j3d
*
*/
class J3DSkinDeform {
public:
/* 8032C96C */ J3DSkinDeform();
@@ -68,6 +75,10 @@ private:
/* 0x24 */ J3DSkinNList* mSkinNList;
};
/**
* @ingroup jsystem-j3d
*
*/
class J3DDeformer {
public:
/* 8032E39C */ J3DDeformer(J3DDeformData*);
+4 -1
View File
@@ -2,7 +2,6 @@
#define J3DDRAWBUFFER_H
#include "JSystem/J3DGraphBase/J3DSys.h"
#include "dolphin/types.h"
// matches debug
inline f32 J3DCalcZValue(register MtxP m, register Vec v) {
@@ -37,6 +36,10 @@ class J3DShapePacket;
typedef int (J3DDrawBuffer::*sortFunc)(J3DMatPacket*);
typedef void (J3DDrawBuffer::*drawFunc)() const;
/**
* @ingroup jsystem-j3d
*
*/
class J3DDrawBuffer {
public:
enum EDrawType {
-1
View File
@@ -2,7 +2,6 @@
#define J3DGD_H
#include "dolphin/gd/GDBase.h"
#include "dolphin/gx.h"
inline void J3DGDWrite_u8(u8 param) {
__GDWrite(param);
+172 -1
View File
@@ -1,23 +1,34 @@
#ifndef J3DMATBLOCK_H
#define J3DMATBLOCK_H
#include "JSystem/J3DGraphBase/J3DStruct.h"
#include "JSystem/J3DGraphBase/J3DTevs.h"
#include "JSystem/J3DGraphBase/J3DTexture.h"
#include "dolphin/types.h"
/**
* @ingroup jsystem-j3d
*
*/
struct J3DGXColorS10 : public GXColorS10 {
/* 8000E460 */ J3DGXColorS10() {}
J3DGXColorS10(J3DGXColorS10 const& other) { __memcpy(this, &other, sizeof(J3DGXColorS10)); }
J3DGXColorS10(GXColorS10 const& color) : GXColorS10(color) {}
};
/**
* @ingroup jsystem-j3d
*
*/
struct J3DGXColor : public GXColor {
/* 8000E538 */ J3DGXColor() {}
J3DGXColor(J3DGXColor const& other) { __memcpy(this, &other, sizeof(J3DGXColor)); }
J3DGXColor(GXColor const& color) : GXColor(color) {}
};
/**
* @ingroup jsystem-j3d
*
*/
struct J3DNBTScale : public J3DNBTScaleInfo {
J3DNBTScale() {}
J3DNBTScale(J3DNBTScaleInfo const& info) {
@@ -29,6 +40,10 @@ struct J3DNBTScale : public J3DNBTScaleInfo {
extern const J3DNBTScaleInfo j3dDefaultNBTScaleInfo;
/**
* @ingroup jsystem-j3d
*
*/
class J3DTexGenBlock {
public:
/* 80317354 */ virtual void reset(J3DTexGenBlock*);
@@ -72,6 +87,10 @@ struct J3DTexGenBlockNull : public J3DTexGenBlock {
/* 80332AD0 */ virtual ~J3DTexGenBlockNull(); // {}
};
/**
* @ingroup jsystem-j3d
*
*/
class J3DTexGenBlockPatched : public J3DTexGenBlock {
public:
J3DTexGenBlockPatched() {
@@ -108,6 +127,10 @@ public:
/* 0x58 */ u32 mTexMtxOffset;
}; // Size: 0x5C
/**
* @ingroup jsystem-j3d
*
*/
class J3DTexGenBlockBasic : public J3DTexGenBlockPatched {
public:
J3DTexGenBlockBasic() : mNBTScale(j3dDefaultNBTScaleInfo) {
@@ -128,6 +151,10 @@ public:
/* 0x5C */ J3DNBTScale mNBTScale;
}; // Size: 0x6C
/**
* @ingroup jsystem-j3d
*
*/
class J3DTexGenBlock4 : public J3DTexGenBlockPatched {
public:
J3DTexGenBlock4() : mNBTScale(j3dDefaultNBTScaleInfo) {
@@ -148,6 +175,10 @@ public:
/* 0x5C */ J3DNBTScale mNBTScale;
}; // Size: 0x6C
/**
* @ingroup jsystem-j3d
*
*/
class J3DTevBlock {
public:
/* 80317350 */ virtual void reset(J3DTevBlock*);
@@ -210,6 +241,10 @@ protected:
/* 0x4 */ u32 mTexNoOffset;
};
/**
* @ingroup jsystem-j3d
*
*/
class J3DTevBlockNull : public J3DTevBlock {
public:
J3DTevBlockNull() { initialize(); }
@@ -221,6 +256,10 @@ public:
/* 80332A44 */ virtual ~J3DTevBlockNull(); // {}
};
/**
* @ingroup jsystem-j3d
*
*/
class J3DTevBlockPatched : public J3DTevBlock {
public:
J3DTevBlockPatched() {
@@ -283,6 +322,10 @@ public:
/* 0xD4 */ u32 mTevRegOffset;
}; // Size: 0xD8
/**
* @ingroup jsystem-j3d
*
*/
class J3DTevBlock4 : public J3DTevBlock {
public:
J3DTevBlock4() {
@@ -355,6 +398,10 @@ public:
/* 0x90 */ u32 mTevRegOffset;
}; // Size: 0x94
/**
* @ingroup jsystem-j3d
*
*/
class J3DTevBlock2 : public J3DTevBlock {
public:
J3DTevBlock2() {
@@ -427,6 +474,10 @@ public:
/* 0x68 */ u32 mTevRegOffset;
}; // Size: 0x6C
/**
* @ingroup jsystem-j3d
*
*/
class J3DTevBlock16 : public J3DTevBlock {
public:
J3DTevBlock16() {
@@ -499,6 +550,10 @@ public:
/* 0x170 */ u32 mTevRegOffset;
}; // Size: 0x174
/**
* @ingroup jsystem-j3d
*
*/
class J3DTevBlock1 : public J3DTevBlock {
public:
J3DTevBlock1() {
@@ -551,6 +606,10 @@ inline u16 calcZModeID(u8 param_0, u8 param_1, u8 param_2) {
return param_1 * 2 + param_0 * 0x10 + param_2;
}
/**
* @ingroup jsystem-j3d
*
*/
struct J3DZModeInfo {
/* 0x0 */ u8 field_0x0;
/* 0x1 */ u8 field_0x1;
@@ -558,6 +617,10 @@ struct J3DZModeInfo {
/* 0x3 */ u8 pad;
};
/**
* @ingroup jsystem-j3d
*
*/
struct J3DZMode {
J3DZMode() : mZModeID(j3dDefaultZModeID) {}
J3DZMode(J3DZModeInfo const& info) : mZModeID(calcZModeID(info.field_0x0, info.field_0x1, info.field_0x2)) {}
@@ -569,6 +632,10 @@ struct J3DZMode {
/* 0x0 */ u16 mZModeID;
};
/**
* @ingroup jsystem-j3d
*
*/
struct J3DBlendInfo {
void operator=(J3DBlendInfo const& other) {
*(int*)&mType = *(int*)&other.mType;
@@ -581,6 +648,10 @@ struct J3DBlendInfo {
extern const J3DBlendInfo j3dDefaultBlendInfo;
/**
* @ingroup jsystem-j3d
*
*/
struct J3DBlend : public J3DBlendInfo {
J3DBlend() : J3DBlendInfo(j3dDefaultBlendInfo) {}
J3DBlend(J3DBlendInfo const& info) : J3DBlendInfo(info) {}
@@ -588,12 +659,20 @@ struct J3DBlend : public J3DBlendInfo {
extern const J3DFogInfo j3dDefaultFogInfo;
/**
* @ingroup jsystem-j3d
*
*/
struct J3DFog : public J3DFogInfo {
J3DFog() { *(J3DFogInfo*)this = j3dDefaultFogInfo; }
J3DFogInfo* getFogInfo() { return this; }
void setFogInfo(J3DFogInfo info) { *(J3DFogInfo*)this = info; }
};
/**
* @ingroup jsystem-j3d
*
*/
struct J3DAlphaCompInfo {
/* 0x0 */ u8 field_0x0;
/* 0x1 */ u8 field_0x1;
@@ -616,6 +695,10 @@ inline u32 calcAlphaCmpID(u32 param_1, u32 param_2, u32 param_3) {
// return param_1 * 0x20 + param_2 * 8 + param_3;
// }
/**
* @ingroup jsystem-j3d
*
*/
struct J3DAlphaComp {
J3DAlphaComp() : mID(j3dDefaultAlphaCmpID), mRef0(0), mRef1(0) {}
J3DAlphaComp(u16 id) : mID(id), mRef0(0), mRef1(0) {}
@@ -641,6 +724,10 @@ struct J3DAlphaComp {
/* 0x03 */ u8 mRef1;
}; // Size: 0x4
/**
* @ingroup jsystem-j3d
*
*/
class J3DPEBlock {
public:
/* 80317348 */ virtual void reset(J3DPEBlock*);
@@ -674,12 +761,20 @@ public:
virtual ~J3DPEBlock() {}
};
/**
* @ingroup jsystem-j3d
*
*/
struct J3DPEBlockNull : public J3DPEBlock {
/* 803329A0 */ virtual void load(); // {}
/* 803329A4 */ virtual u32 getType(); // { return 'PENL'; }
/* 803329B0 */ virtual ~J3DPEBlockNull(); // {}
};
/**
* @ingroup jsystem-j3d
*
*/
class J3DPEBlockXlu : public J3DPEBlock {
public:
/* 8031E98C */ virtual void load();
@@ -688,6 +783,10 @@ public:
/* 80323264 */ virtual ~J3DPEBlockXlu();
};
/**
* @ingroup jsystem-j3d
*
*/
class J3DPEBlockTexEdge : public J3DPEBlock {
public:
/* 8031E6C8 */ virtual void load();
@@ -696,6 +795,10 @@ public:
/* 803232CC */ virtual ~J3DPEBlockTexEdge();
};
/**
* @ingroup jsystem-j3d
*
*/
class J3DPEBlockOpa : public J3DPEBlock {
public:
/* 8031E408 */ virtual void load();
@@ -704,6 +807,10 @@ public:
/* 80323334 */ virtual ~J3DPEBlockOpa();
};
/**
* @ingroup jsystem-j3d
*
*/
class J3DPEBlockFull : public J3DPEBlock {
public:
J3DPEBlockFull() {
@@ -750,6 +857,10 @@ public:
/* 0x3C */ u32 mFogOffset;
}; // Size: 0x40
/**
* @ingroup jsystem-j3d
*
*/
class J3DPEBlockFogOff : public J3DPEBlock {
public:
J3DPEBlockFogOff() {
@@ -787,6 +898,10 @@ public:
/* 0x0F */ u8 mDither;
}; // Size: 0x10
/**
* @ingroup jsystem-j3d
*
*/
struct J3DIndTexCoordScaleInfo {
/* 0x0 */ u8 mScaleS;
/* 0x1 */ u8 mScaleT;
@@ -796,6 +911,10 @@ struct J3DIndTexCoordScaleInfo {
extern const J3DIndTexCoordScaleInfo j3dDefaultIndTexCoordScaleInfo;
/**
* @ingroup jsystem-j3d
*
*/
struct J3DIndTexCoordScale : public J3DIndTexCoordScaleInfo {
/* 8000E0E4 */ J3DIndTexCoordScale() : J3DIndTexCoordScaleInfo(j3dDefaultIndTexCoordScaleInfo) {}
J3DIndTexCoordScale(J3DIndTexCoordScaleInfo const& info) : J3DIndTexCoordScaleInfo(info) {}
@@ -804,12 +923,20 @@ struct J3DIndTexCoordScale : public J3DIndTexCoordScaleInfo {
extern J3DIndTexMtxInfo const j3dDefaultIndTexMtxInfo;
/**
* @ingroup jsystem-j3d
*
*/
struct J3DIndTexMtx : public J3DIndTexMtxInfo {
/* 8000E0F0 */ J3DIndTexMtx() { *(J3DIndTexMtxInfo*)this = j3dDefaultIndTexMtxInfo; }
J3DIndTexMtx(J3DIndTexMtxInfo const& info) { *(J3DIndTexMtxInfo*)this = info; }
/* 8000E064 */ ~J3DIndTexMtx() {}
}; // Size: 0x1C
/**
* @ingroup jsystem-j3d
*
*/
struct J3DIndTexOrderInfo {
/* 0x0 */ u8 mMap;
/* 0x1 */ u8 mCoord;
@@ -819,11 +946,19 @@ struct J3DIndTexOrderInfo {
extern const J3DIndTexOrderInfo j3dDefaultIndTexOrderNull;
/**
* @ingroup jsystem-j3d
*
*/
struct J3DIndTexOrder : public J3DIndTexOrderInfo {
/* 8000E128 */ J3DIndTexOrder() : J3DIndTexOrderInfo(j3dDefaultIndTexOrderNull) {}
J3DIndTexOrder(J3DIndTexOrderInfo const& info) : J3DIndTexOrderInfo(info) {}
}; // Size: 0x04
/**
* @ingroup jsystem-j3d
*
*/
class J3DIndBlock {
public:
/* 8031734C */ virtual void reset(J3DIndBlock*);
@@ -845,6 +980,10 @@ public:
/* 8031726C */ virtual ~J3DIndBlock();
};
/**
* @ingroup jsystem-j3d
*
*/
class J3DIndBlockNull : public J3DIndBlock {
public:
/* 803173A0 */ virtual void reset(J3DIndBlock*);
@@ -854,6 +993,10 @@ public:
/* 803173B0 */ virtual ~J3DIndBlockNull();
};
/**
* @ingroup jsystem-j3d
*
*/
class J3DIndBlockFull : public J3DIndBlock {
public:
J3DIndBlockFull() {
@@ -885,6 +1028,10 @@ public:
/* 0x6C */ J3DIndTexCoordScale mIndTexCoordScale[4];
}; // Size: 0x7C
/**
* @ingroup jsystem-j3d
*
*/
struct J3DColorChanInfo {
/* 0x0 */ u8 field_0x0;
/* 0x1 */ u8 field_0x1;
@@ -901,6 +1048,10 @@ extern const J3DColorChanInfo j3dDefaultColorChanInfo;
} */
/**
* @ingroup jsystem-j3d
*
*/
struct J3DColorChan {
/* 8000E47C */ J3DColorChan() {
setColorChanInfo(j3dDefaultColorChanInfo);
@@ -940,6 +1091,10 @@ struct J3DColorChan {
/* 0x0 */ u16 mColorChanID;
};
/**
* @ingroup jsystem-j3d
*
*/
class J3DColorBlock {
public:
/* 80317324 */ virtual void load();
@@ -978,11 +1133,19 @@ public:
/* 80317138 */ virtual ~J3DColorBlock() {}
};
/**
* @ingroup jsystem-j3d
*
*/
struct J3DColorBlockNull : public J3DColorBlock {
/* 80332B2C */ virtual u32 getType(); // { return 'CLNL'; }
/* 80332B38 */ virtual ~J3DColorBlockNull(); // {}
};
/**
* @ingroup jsystem-j3d
*
*/
class J3DColorBlockLightOn : public J3DColorBlock {
public:
J3DColorBlockLightOn() {
@@ -1035,6 +1198,10 @@ public:
/* 0x48 */ u32 mColorChanOffset;
}; // Size: 0x4C
/**
* @ingroup jsystem-j3d
*
*/
class J3DColorBlockLightOff : public J3DColorBlock {
public:
J3DColorBlockLightOff() {
@@ -1078,6 +1245,10 @@ public:
/* 0x1C */ u32 mColorChanOffset;
}; // Size: 0x20
/**
* @ingroup jsystem-j3d
*
*/
class J3DColorBlockAmbientOn : public J3DColorBlockLightOff {
public:
J3DColorBlockAmbientOn() {
+142 -131
View File
@@ -1,131 +1,142 @@
#ifndef J3DMATERIAL_H
#define J3DMATERIAL_H
#include "JSystem/J3DGraphBase/J3DMatBlock.h"
#include "JSystem/J3DGraphBase/J3DPacket.h"
#include "JSystem/J3DGraphBase/J3DShape.h"
#include "JSystem/J3DGraphBase/J3DTexture.h"
#include "dolphin/types.h"
class J3DJoint;
class J3DMaterialAnm;
class J3DMaterial {
public:
/* 803157A0 */ static J3DColorBlock* createColorBlock(u32);
/* 803159A0 */ static J3DTexGenBlock* createTexGenBlock(u32);
/* 80315B04 */ static J3DTevBlock* createTevBlock(int);
/* 80315E78 */ static J3DIndBlock* createIndBlock(int);
/* 80315F60 */ static J3DPEBlock* createPEBlock(u32, u32);
/* 80316100 */ static u32 calcSizeColorBlock(u32);
/* 80316150 */ static u32 calcSizeTexGenBlock(u32);
/* 8031617C */ static u32 calcSizeTevBlock(int);
/* 803161C4 */ static u32 calcSizeIndBlock(int);
/* 803161D8 */ static u32 calcSizePEBlock(u32, u32);
/* 80316240 */ void initialize();
/* 80316290 */ u32 countDLSize();
/* 80316344 */ void makeDisplayList_private(J3DDisplayListObj*);
/* 80316AB0 */ void setCurrentMtx();
/* 80316AC8 */ void calcCurrentMtx();
/* 80316D68 */ void copy(J3DMaterial*);
/* 80316E90 */ s32 newSharedDisplayList(u32);
/* 80316F24 */ s32 newSingleSharedDisplayList(u32);
/* 803169DC */ virtual void calc(f32 const (*)[4]);
/* 80316A54 */ virtual void calcDiffTexMtx(f32 const (*)[4]);
/* 80316620 */ virtual void makeDisplayList();
/* 80316668 */ virtual void makeSharedDisplayList();
/* 8031668C */ virtual void load();
/* 803166DC */ virtual void loadSharedDL();
/* 80316740 */ virtual void patch();
/* 803167D8 */ virtual void diff(u32);
/* 80316E14 */ virtual void reset();
/* 80316E70 */ virtual void change();
J3DMaterial() { initialize(); }
~J3DMaterial() {}
J3DMaterial* getNext() const { return mNext; }
J3DShape* getShape() const { return mShape; }
J3DTevBlock* getTevBlock() const { return mTevBlock; }
J3DColorBlock* getColorBlock() const { return mColorBlock; }
J3DTexGenBlock* getTexGenBlock() const { return mTexGenBlock; }
J3DDisplayListObj* getSharedDisplayListObj() const { return mSharedDLObj; }
J3DIndBlock* getIndBlock() const { return mIndBlock; }
J3DShape* getShape() { return mShape; }
J3DJoint* getJoint() { return mJoint; }
J3DMaterialAnm* getMaterialAnm() const {
if ((u32)mMaterialAnm < 0xC0000000) {
return mMaterialAnm;
} else {
return NULL;
}
}
J3DNBTScale* getNBTScale() const { return mTexGenBlock->getNBTScale(); }
u16 getTexNo(u32 idx) const { return mTevBlock->getTexNo(idx); }
GXColor* getTevKColor(u32 param_0) { return mTevBlock->getTevKColor(param_0); }
GXColorS10* getTevColor(u32 param_0) { return mTevBlock->getTevColor(param_0); }
J3DFog* getFog() { return mPEBlock->getFog(); }
J3DTexMtx* getTexMtx(u32 idx) { return mTexGenBlock->getTexMtx(idx); }
u16 getIndex() { return mIndex; }
bool isDrawModeOpaTexEdge() { return (mMaterialMode & 3) == 0; }
J3DPEBlock* getPEBlock() { return mPEBlock; }
void onInvalid() { mInvalid = 1; }
u32 getTexGenNum() const { return mTexGenBlock->getTexGenNum(); }
u8 getTevStageNum() const { return mTevBlock->getTevStageNum(); }
J3DTexCoord* getTexCoord(u32 idx) { return mTexGenBlock->getTexCoord(idx); }
void setTevColor(u32 i, const J3DGXColorS10* i_color) { mTevBlock->setTevColor(i, i_color); }
void setTevKColor(u32 i, const J3DGXColor* i_color) { mTevBlock->setTevKColor(i, i_color); }
void setMaterialAnm(J3DMaterialAnm* i_anm) { mMaterialAnm = i_anm; }
void setCullMode(u8 i_mode) { mColorBlock->setCullMode(i_mode); }
void setTexMtx(u32 idx, J3DTexMtx* mtx) { mTexGenBlock->setTexMtx(idx, mtx); }
public:
/* 0x04 */ J3DMaterial* mNext;
/* 0x08 */ J3DShape* mShape;
/* 0x0C */ J3DJoint* mJoint;
/* 0x10 */ u32 mMaterialMode;
/* 0x14 */ u16 mIndex;
/* 0x18 */ u32 mInvalid;
/* 0x1C */ u32 field_0x1c;
/* 0x20 */ u32 mDiffFlag;
/* 0x24 */ J3DColorBlock* mColorBlock;
/* 0x28 */ J3DTexGenBlock* mTexGenBlock;
/* 0x2C */ J3DTevBlock* mTevBlock;
/* 0x30 */ J3DIndBlock* mIndBlock;
/* 0x34 */ J3DPEBlock* mPEBlock;
/* 0x38 */ J3DMaterial* mpOrigMaterial;
/* 0x3C */ J3DMaterialAnm* mMaterialAnm;
/* 0x40 */ J3DCurrentMtx mCurrentMtx;
/* 0x48 */ J3DDisplayListObj* mSharedDLObj;
};
class J3DPatchedMaterial : public J3DMaterial {
public:
/* 80316FB8 */ void initialize();
/* 80316FD8 */ virtual void makeDisplayList();
/* 80316FDC */ virtual void makeSharedDisplayList();
/* 80316FE0 */ virtual void load();
/* 80316FFC */ virtual void loadSharedDL();
/* 8031703C */ virtual void reset();
/* 80317040 */ virtual void change();
};
class J3DLockedMaterial : public J3DMaterial {
public:
J3DLockedMaterial() { initialize(); }
/* 80317044 */ void initialize();
/* 803170D0 */ virtual void calc(f32 const (*)[4]);
/* 80317064 */ virtual void makeDisplayList();
/* 80317068 */ virtual void makeSharedDisplayList();
/* 8031706C */ virtual void load();
/* 80317088 */ virtual void loadSharedDL();
/* 803170C8 */ virtual void patch();
/* 803170CC */ virtual void diff(u32);
/* 803170D4 */ virtual void reset();
/* 803170D8 */ virtual void change();
};
#endif /* J3DMATERIAL_H */
#ifndef J3DMATERIAL_H
#define J3DMATERIAL_H
#include "JSystem/J3DGraphBase/J3DMatBlock.h"
#include "JSystem/J3DGraphBase/J3DPacket.h"
#include "JSystem/J3DGraphBase/J3DShape.h"
#include "dolphin/types.h"
class J3DJoint;
class J3DMaterialAnm;
/**
* @ingroup jsystem-j3d
*
*/
class J3DMaterial {
public:
/* 803157A0 */ static J3DColorBlock* createColorBlock(u32);
/* 803159A0 */ static J3DTexGenBlock* createTexGenBlock(u32);
/* 80315B04 */ static J3DTevBlock* createTevBlock(int);
/* 80315E78 */ static J3DIndBlock* createIndBlock(int);
/* 80315F60 */ static J3DPEBlock* createPEBlock(u32, u32);
/* 80316100 */ static u32 calcSizeColorBlock(u32);
/* 80316150 */ static u32 calcSizeTexGenBlock(u32);
/* 8031617C */ static u32 calcSizeTevBlock(int);
/* 803161C4 */ static u32 calcSizeIndBlock(int);
/* 803161D8 */ static u32 calcSizePEBlock(u32, u32);
/* 80316240 */ void initialize();
/* 80316290 */ u32 countDLSize();
/* 80316344 */ void makeDisplayList_private(J3DDisplayListObj*);
/* 80316AB0 */ void setCurrentMtx();
/* 80316AC8 */ void calcCurrentMtx();
/* 80316D68 */ void copy(J3DMaterial*);
/* 80316E90 */ s32 newSharedDisplayList(u32);
/* 80316F24 */ s32 newSingleSharedDisplayList(u32);
/* 803169DC */ virtual void calc(f32 const (*)[4]);
/* 80316A54 */ virtual void calcDiffTexMtx(f32 const (*)[4]);
/* 80316620 */ virtual void makeDisplayList();
/* 80316668 */ virtual void makeSharedDisplayList();
/* 8031668C */ virtual void load();
/* 803166DC */ virtual void loadSharedDL();
/* 80316740 */ virtual void patch();
/* 803167D8 */ virtual void diff(u32);
/* 80316E14 */ virtual void reset();
/* 80316E70 */ virtual void change();
J3DMaterial() { initialize(); }
~J3DMaterial() {}
J3DMaterial* getNext() const { return mNext; }
J3DShape* getShape() const { return mShape; }
J3DTevBlock* getTevBlock() const { return mTevBlock; }
J3DColorBlock* getColorBlock() const { return mColorBlock; }
J3DTexGenBlock* getTexGenBlock() const { return mTexGenBlock; }
J3DDisplayListObj* getSharedDisplayListObj() const { return mSharedDLObj; }
J3DIndBlock* getIndBlock() const { return mIndBlock; }
J3DShape* getShape() { return mShape; }
J3DJoint* getJoint() { return mJoint; }
J3DMaterialAnm* getMaterialAnm() const {
if ((u32)mMaterialAnm < 0xC0000000) {
return mMaterialAnm;
} else {
return NULL;
}
}
J3DNBTScale* getNBTScale() const { return mTexGenBlock->getNBTScale(); }
u16 getTexNo(u32 idx) const { return mTevBlock->getTexNo(idx); }
GXColor* getTevKColor(u32 param_0) { return mTevBlock->getTevKColor(param_0); }
GXColorS10* getTevColor(u32 param_0) { return mTevBlock->getTevColor(param_0); }
J3DFog* getFog() { return mPEBlock->getFog(); }
J3DTexMtx* getTexMtx(u32 idx) { return mTexGenBlock->getTexMtx(idx); }
u16 getIndex() { return mIndex; }
bool isDrawModeOpaTexEdge() { return (mMaterialMode & 3) == 0; }
J3DPEBlock* getPEBlock() { return mPEBlock; }
void onInvalid() { mInvalid = 1; }
u32 getTexGenNum() const { return mTexGenBlock->getTexGenNum(); }
u8 getTevStageNum() const { return mTevBlock->getTevStageNum(); }
J3DTexCoord* getTexCoord(u32 idx) { return mTexGenBlock->getTexCoord(idx); }
void setTevColor(u32 i, const J3DGXColorS10* i_color) { mTevBlock->setTevColor(i, i_color); }
void setTevKColor(u32 i, const J3DGXColor* i_color) { mTevBlock->setTevKColor(i, i_color); }
void setMaterialAnm(J3DMaterialAnm* i_anm) { mMaterialAnm = i_anm; }
void setCullMode(u8 i_mode) { mColorBlock->setCullMode(i_mode); }
void setTexMtx(u32 idx, J3DTexMtx* mtx) { mTexGenBlock->setTexMtx(idx, mtx); }
public:
/* 0x04 */ J3DMaterial* mNext;
/* 0x08 */ J3DShape* mShape;
/* 0x0C */ J3DJoint* mJoint;
/* 0x10 */ u32 mMaterialMode;
/* 0x14 */ u16 mIndex;
/* 0x18 */ u32 mInvalid;
/* 0x1C */ u32 field_0x1c;
/* 0x20 */ u32 mDiffFlag;
/* 0x24 */ J3DColorBlock* mColorBlock;
/* 0x28 */ J3DTexGenBlock* mTexGenBlock;
/* 0x2C */ J3DTevBlock* mTevBlock;
/* 0x30 */ J3DIndBlock* mIndBlock;
/* 0x34 */ J3DPEBlock* mPEBlock;
/* 0x38 */ J3DMaterial* mpOrigMaterial;
/* 0x3C */ J3DMaterialAnm* mMaterialAnm;
/* 0x40 */ J3DCurrentMtx mCurrentMtx;
/* 0x48 */ J3DDisplayListObj* mSharedDLObj;
};
/**
* @ingroup jsystem-j3d
*
*/
class J3DPatchedMaterial : public J3DMaterial {
public:
/* 80316FB8 */ void initialize();
/* 80316FD8 */ virtual void makeDisplayList();
/* 80316FDC */ virtual void makeSharedDisplayList();
/* 80316FE0 */ virtual void load();
/* 80316FFC */ virtual void loadSharedDL();
/* 8031703C */ virtual void reset();
/* 80317040 */ virtual void change();
};
/**
* @ingroup jsystem-j3d
*
*/
class J3DLockedMaterial : public J3DMaterial {
public:
J3DLockedMaterial() { initialize(); }
/* 80317044 */ void initialize();
/* 803170D0 */ virtual void calc(f32 const (*)[4]);
/* 80317064 */ virtual void makeDisplayList();
/* 80317068 */ virtual void makeSharedDisplayList();
/* 8031706C */ virtual void load();
/* 80317088 */ virtual void loadSharedDL();
/* 803170C8 */ virtual void patch();
/* 803170CC */ virtual void diff(u32);
/* 803170D4 */ virtual void reset();
/* 803170D8 */ virtual void change();
};
#endif /* J3DMATERIAL_H */
+20 -1
View File
@@ -3,7 +3,6 @@
#include "JSystem/J3DGraphBase/J3DSys.h"
#include "dolphin/gd/GDBase.h"
#include "dolphin/types.h"
class J3DMatPacket;
@@ -59,6 +58,10 @@ inline int calcDifferedBufferSize_TevStageDirectSize(int param_1) {
return param_1 * 5;
}
/**
* @ingroup jsystem-j3d
*
*/
class J3DDisplayListObj {
public:
J3DDisplayListObj() {
@@ -90,6 +93,10 @@ public:
/* 0xC */ u32 mCapacity;
}; // Size: 0x10
/**
* @ingroup jsystem-j3d
*
*/
class J3DPacket {
public:
J3DPacket() {
@@ -121,6 +128,10 @@ public:
/* 0x0C */ void* mpUserData;
}; // Size: 0x10
/**
* @ingroup jsystem-j3d
*
*/
class J3DDrawPacket : public J3DPacket {
public:
J3DDrawPacket();
@@ -156,6 +167,10 @@ public:
/* 0x24 */ J3DTexMtxObj* mpTexMtxObj;
}; // Size: 0x28
/**
* @ingroup jsystem-j3d
*
*/
class J3DShapePacket : public J3DDrawPacket {
public:
J3DShapePacket();
@@ -184,6 +199,10 @@ public:
/* 0x38 */ J3DModel* mpModel;
}; // Size: 0x3C
/**
* @ingroup jsystem-j3d
*
*/
class J3DMatPacket : public J3DDrawPacket {
public:
J3DMatPacket();
+169 -158
View File
@@ -1,158 +1,169 @@
#ifndef J3DSHAPE_H
#define J3DSHAPE_H
#include "JSystem/J3DGraphBase/J3DShapeDraw.h"
#include "JSystem/J3DGraphBase/J3DShapeMtx.h"
#include "dolphin/gx.h"
#include "dolphin/types.h"
class J3DCurrentMtxInfo {
public:
u32 mMtxIdxRegA;
u32 mMtxIdxRegB;
};
static inline void J3DFifoWriteCPCmd(u8 cmd, u32 param) {
GXWGFifo.u8 = GX_CMD_LOAD_CP_REG;
GXWGFifo.u8 = cmd;
GXWGFifo.u32 = param;
}
static inline void J3DFifoWriteXFCmd(u16 cmd, u16 len) {
GXWGFifo.u8 = GX_CMD_LOAD_XF_REG;
GXWGFifo.u16 = (len - 1);
GXWGFifo.u16 = cmd;
}
class J3DCurrentMtx : public J3DCurrentMtxInfo {
public:
J3DCurrentMtx() {
mMtxIdxRegA = 0x3cf3cf00;
mMtxIdxRegB = 0x00f3cf3c;
}
J3DCurrentMtx& operator=(J3DCurrentMtxInfo const& info) {
mMtxIdxRegA = info.mMtxIdxRegA;
mMtxIdxRegB = info.mMtxIdxRegB;
return *this;
}
u32 getMtxIdxRegA() const { return mMtxIdxRegA; }
u32 getMtxIdxRegB() const { return mMtxIdxRegB; }
inline void load() const {
J3DFifoWriteCPCmd(0x30, getMtxIdxRegA()); // CP_MATINDEX_A
J3DFifoWriteCPCmd(0x40, getMtxIdxRegB()); // CP_MATINDEX_B
J3DFifoWriteXFCmd(0x1018, 2);
GXWGFifo.u32 = getMtxIdxRegA();
GXWGFifo.u32 = getMtxIdxRegB();
}
void setCurrentTexMtx(u8 param_1, u8 param_2, u8 param_3, u8 param_4,
u8 param_5, u8 param_6, u8 param_7, u8 param_8) {
mMtxIdxRegA = ((param_1 & 0xff) << 6) | (param_2 << 0xc)| (param_3 << 0x12) | (param_4 << 0x18);
mMtxIdxRegB = (param_5) | param_6 << 6 | param_7 << 0xc | param_8 << 0x12;
}
};
class J3DMaterial;
class J3DVertexData;
class J3DDrawMtxData;
enum J3DShpFlag {
J3DShpFlag_Visible = 0x0001,
J3DShpFlag_SkinPosCpu = 0x0004,
J3DShpFlag_SkinNrmCpu = 0x0008,
J3DShpFlag_Hidden = 0x0010,
J3DShpFlag_EnableLod = 0x0100,
J3DShpFlag_NoMtx = 0x0200,
};
class J3DShape {
public:
J3DShape() {
initialize();
}
enum {
kVcdVatDLSize = 0xC0,
};
/* 80314B48 */ void initialize();
/* 80314BB8 */ void addTexMtxIndexInDL(_GXAttr, u32);
/* 80314CBC */ void addTexMtxIndexInVcd(_GXAttr);
/* 80314DA8 */ void calcNBTScale(Vec const&, f32 (*)[3][3], f32 (*)[3][3]);
/* 80314E28 */ u32 countBumpMtxNum() const;
/* 80314EEC */ void loadVtxArray() const;
/* 80314F5C */ bool isSameVcdVatCmd(J3DShape*);
/* 80314F98 */ void makeVtxArrayCmd();
/* 80315260 */ void makeVcdVatCmd();
/* 80315300 */ void loadPreDrawSetting() const;
/* 80315398 */ void setArrayAndBindPipeline() const;
/* 803155E0 */ virtual void draw() const;
/* 8031544C */ virtual void drawFast() const;
/* 80315628 */ virtual void simpleDraw() const;
/* 803156AC */ virtual void simpleDrawCache() const;
void onFlag(u32 flag) { mFlags |= flag; }
void offFlag(u32 flag) { mFlags &= ~flag; }
bool checkFlag(u32 flag) const { return !!(mFlags & flag); }
void setDrawMtxDataPointer(J3DDrawMtxData* pMtxData) { mDrawMtxData = pMtxData; }
void setVertexDataPointer(J3DVertexData* pVtxData) { mVertexData = pVtxData; }
void* getVcdVatCmd() const { return mVcdVatCmd; }
void setVcdVatCmd(void* pVatCmd) { mVcdVatCmd = (u8*)pVatCmd; }
void show() { offFlag(J3DShpFlag_Visible); }
void hide() { onFlag(J3DShpFlag_Visible); }
void setCurrentViewNoPtr(u32* pViewNoPtr) { mCurrentViewNo = pViewNoPtr; }
void setCurrentMtx(J3DCurrentMtx& mtx) { mCurrentMtx = mtx; }
void setScaleFlagArray(u8* pScaleFlagArray) { mScaleFlagArray = pScaleFlagArray; }
void setDrawMtx(Mtx** pDrawMtx) { mDrawMtx = pDrawMtx; }
void setNrmMtx(Mtx33** pNrmMtx) { mNrmMtx = pNrmMtx; }
void setTexMtxLoadType(u32 type) { mFlags = (mFlags & 0xFFFF0FFF) | type; }
bool getNBTFlag() const { return mHasNBT; }
u32 getBumpMtxOffset() const { return mBumpMtxOffset; }
GXVtxDescList* getVtxDesc() const { return mVtxDesc; }
J3DMaterial* getMaterial() const { return mMaterial; }
u32 getIndex() const { return mIndex; }
u32 getPipeline() const { return (mFlags >> 2) & 0x07; }
u32 getTexMtxLoadType() const { return mFlags & 0xF000; }
u32 getMtxGroupNum() const { return mMtxGroupNum; }
J3DShapeDraw* getShapeDraw(u32 idx) const { return mShapeDraw[idx]; }
J3DShapeMtx* getShapeMtx(u32 idx) const { return mShapeMtx[idx]; }
Vec* getMin() { return &mMin; }
Vec* getMax() { return &mMax; }
static void resetVcdVatCache() { sOldVcdVatCmd = NULL; }
static void* sOldVcdVatCmd;
private:
friend struct J3DShapeFactory;
friend class J3DJointTree;
/* 0x04 */ J3DMaterial* mMaterial;
/* 0x08 */ u16 mIndex;
/* 0x0A */ u16 mMtxGroupNum;
/* 0x0C */ u32 mFlags;
/* 0x10 */ f32 mRadius;
/* 0x14 */ Vec mMin;
/* 0x20 */ Vec mMax;
/* 0x2C */ u8* mVcdVatCmd;
/* 0x30 */ GXVtxDescList* mVtxDesc;
/* 0x34 */ bool mHasNBT;
/* 0x38 */ J3DShapeMtx** mShapeMtx;
/* 0x3C */ J3DShapeDraw** mShapeDraw;
/* 0x40 */ J3DCurrentMtx mCurrentMtx;
/* 0x48 */ bool mHasPNMTXIdx;
/* 0x4C */ J3DVertexData* mVertexData;
/* 0x50 */ J3DDrawMtxData* mDrawMtxData;
/* 0x54 */ u8* mScaleFlagArray;
/* 0x58 */ Mtx** mDrawMtx;
/* 0x5C */ Mtx33** mNrmMtx;
/* 0x60 */ u32* mCurrentViewNo;
/* 0x64 */ u32 mBumpMtxOffset;
};
#endif /* J3DSHAPE_H */
#ifndef J3DSHAPE_H
#define J3DSHAPE_H
#include "JSystem/J3DGraphBase/J3DShapeDraw.h"
#include "JSystem/J3DGraphBase/J3DShapeMtx.h"
#include "dolphin/gx.h"
/**
* @ingroup jsystem-j3d
*
*/
class J3DCurrentMtxInfo {
public:
u32 mMtxIdxRegA;
u32 mMtxIdxRegB;
};
static inline void J3DFifoWriteCPCmd(u8 cmd, u32 param) {
GXWGFifo.u8 = GX_CMD_LOAD_CP_REG;
GXWGFifo.u8 = cmd;
GXWGFifo.u32 = param;
}
static inline void J3DFifoWriteXFCmd(u16 cmd, u16 len) {
GXWGFifo.u8 = GX_CMD_LOAD_XF_REG;
GXWGFifo.u16 = (len - 1);
GXWGFifo.u16 = cmd;
}
/**
* @ingroup jsystem-j3d
*
*/
class J3DCurrentMtx : public J3DCurrentMtxInfo {
public:
J3DCurrentMtx() {
mMtxIdxRegA = 0x3cf3cf00;
mMtxIdxRegB = 0x00f3cf3c;
}
J3DCurrentMtx& operator=(J3DCurrentMtxInfo const& info) {
mMtxIdxRegA = info.mMtxIdxRegA;
mMtxIdxRegB = info.mMtxIdxRegB;
return *this;
}
u32 getMtxIdxRegA() const { return mMtxIdxRegA; }
u32 getMtxIdxRegB() const { return mMtxIdxRegB; }
inline void load() const {
J3DFifoWriteCPCmd(0x30, getMtxIdxRegA()); // CP_MATINDEX_A
J3DFifoWriteCPCmd(0x40, getMtxIdxRegB()); // CP_MATINDEX_B
J3DFifoWriteXFCmd(0x1018, 2);
GXWGFifo.u32 = getMtxIdxRegA();
GXWGFifo.u32 = getMtxIdxRegB();
}
void setCurrentTexMtx(u8 param_1, u8 param_2, u8 param_3, u8 param_4,
u8 param_5, u8 param_6, u8 param_7, u8 param_8) {
mMtxIdxRegA = ((param_1 & 0xff) << 6) | (param_2 << 0xc)| (param_3 << 0x12) | (param_4 << 0x18);
mMtxIdxRegB = (param_5) | param_6 << 6 | param_7 << 0xc | param_8 << 0x12;
}
};
class J3DMaterial;
class J3DVertexData;
class J3DDrawMtxData;
enum J3DShpFlag {
J3DShpFlag_Visible = 0x0001,
J3DShpFlag_SkinPosCpu = 0x0004,
J3DShpFlag_SkinNrmCpu = 0x0008,
J3DShpFlag_Hidden = 0x0010,
J3DShpFlag_EnableLod = 0x0100,
J3DShpFlag_NoMtx = 0x0200,
};
/**
* @ingroup jsystem-j3d
*
*/
class J3DShape {
public:
J3DShape() {
initialize();
}
enum {
kVcdVatDLSize = 0xC0,
};
/* 80314B48 */ void initialize();
/* 80314BB8 */ void addTexMtxIndexInDL(_GXAttr, u32);
/* 80314CBC */ void addTexMtxIndexInVcd(_GXAttr);
/* 80314DA8 */ void calcNBTScale(Vec const&, f32 (*)[3][3], f32 (*)[3][3]);
/* 80314E28 */ u32 countBumpMtxNum() const;
/* 80314EEC */ void loadVtxArray() const;
/* 80314F5C */ bool isSameVcdVatCmd(J3DShape*);
/* 80314F98 */ void makeVtxArrayCmd();
/* 80315260 */ void makeVcdVatCmd();
/* 80315300 */ void loadPreDrawSetting() const;
/* 80315398 */ void setArrayAndBindPipeline() const;
/* 803155E0 */ virtual void draw() const;
/* 8031544C */ virtual void drawFast() const;
/* 80315628 */ virtual void simpleDraw() const;
/* 803156AC */ virtual void simpleDrawCache() const;
void onFlag(u32 flag) { mFlags |= flag; }
void offFlag(u32 flag) { mFlags &= ~flag; }
bool checkFlag(u32 flag) const { return !!(mFlags & flag); }
void setDrawMtxDataPointer(J3DDrawMtxData* pMtxData) { mDrawMtxData = pMtxData; }
void setVertexDataPointer(J3DVertexData* pVtxData) { mVertexData = pVtxData; }
void* getVcdVatCmd() const { return mVcdVatCmd; }
void setVcdVatCmd(void* pVatCmd) { mVcdVatCmd = (u8*)pVatCmd; }
void show() { offFlag(J3DShpFlag_Visible); }
void hide() { onFlag(J3DShpFlag_Visible); }
void setCurrentViewNoPtr(u32* pViewNoPtr) { mCurrentViewNo = pViewNoPtr; }
void setCurrentMtx(J3DCurrentMtx& mtx) { mCurrentMtx = mtx; }
void setScaleFlagArray(u8* pScaleFlagArray) { mScaleFlagArray = pScaleFlagArray; }
void setDrawMtx(Mtx** pDrawMtx) { mDrawMtx = pDrawMtx; }
void setNrmMtx(Mtx33** pNrmMtx) { mNrmMtx = pNrmMtx; }
void setTexMtxLoadType(u32 type) { mFlags = (mFlags & 0xFFFF0FFF) | type; }
bool getNBTFlag() const { return mHasNBT; }
u32 getBumpMtxOffset() const { return mBumpMtxOffset; }
GXVtxDescList* getVtxDesc() const { return mVtxDesc; }
J3DMaterial* getMaterial() const { return mMaterial; }
u32 getIndex() const { return mIndex; }
u32 getPipeline() const { return (mFlags >> 2) & 0x07; }
u32 getTexMtxLoadType() const { return mFlags & 0xF000; }
u32 getMtxGroupNum() const { return mMtxGroupNum; }
J3DShapeDraw* getShapeDraw(u32 idx) const { return mShapeDraw[idx]; }
J3DShapeMtx* getShapeMtx(u32 idx) const { return mShapeMtx[idx]; }
Vec* getMin() { return &mMin; }
Vec* getMax() { return &mMax; }
static void resetVcdVatCache() { sOldVcdVatCmd = NULL; }
static void* sOldVcdVatCmd;
private:
friend struct J3DShapeFactory;
friend class J3DJointTree;
/* 0x04 */ J3DMaterial* mMaterial;
/* 0x08 */ u16 mIndex;
/* 0x0A */ u16 mMtxGroupNum;
/* 0x0C */ u32 mFlags;
/* 0x10 */ f32 mRadius;
/* 0x14 */ Vec mMin;
/* 0x20 */ Vec mMax;
/* 0x2C */ u8* mVcdVatCmd;
/* 0x30 */ GXVtxDescList* mVtxDesc;
/* 0x34 */ bool mHasNBT;
/* 0x38 */ J3DShapeMtx** mShapeMtx;
/* 0x3C */ J3DShapeDraw** mShapeDraw;
/* 0x40 */ J3DCurrentMtx mCurrentMtx;
/* 0x48 */ bool mHasPNMTXIdx;
/* 0x4C */ J3DVertexData* mVertexData;
/* 0x50 */ J3DDrawMtxData* mDrawMtxData;
/* 0x54 */ u8* mScaleFlagArray;
/* 0x58 */ Mtx** mDrawMtx;
/* 0x5C */ Mtx33** mNrmMtx;
/* 0x60 */ u32* mCurrentViewNo;
/* 0x64 */ u32 mBumpMtxOffset;
};
#endif /* J3DSHAPE_H */
@@ -3,6 +3,10 @@
#include "dolphin/types.h"
/**
* @ingroup jsystem-j3d
*
*/
class J3DShapeDraw {
public:
/* 80314924 */ u32 countVertex(u32);
@@ -6,6 +6,10 @@
class J3DTexMtx;
class J3DTexGenBlock;
/**
* @ingroup jsystem-j3d
*
*/
class J3DTexMtxObj {
public:
Mtx& getMtx(u16 idx) { return mpTexMtx[idx]; }
@@ -17,6 +21,10 @@ public:
/* 0x08 */ u16 mTexMtxNum;
};
/**
* @ingroup jsystem-j3d
*
*/
class J3DDifferedTexMtx {
public:
/* 8031322C */ static void loadExecute(f32 const (*)[4]);
@@ -33,6 +41,10 @@ public:
class J3DShapeMtx;
typedef void (J3DShapeMtx::*J3DShapeMtx_LoadFunc)(int, u16) const;
/**
* @ingroup jsystem-j3d
*
*/
class J3DShapeMtx {
public:
J3DShapeMtx(u16 useMtxIndex)
@@ -71,6 +83,10 @@ protected:
class J3DShapeMtxConcatView;
typedef void (J3DShapeMtxConcatView::*J3DShapeMtxConcatView_LoadFunc)(int, u16) const;
/**
* @ingroup jsystem-j3d
*
*/
class J3DShapeMtxConcatView : public J3DShapeMtx {
public:
J3DShapeMtxConcatView(u16 useMtxIndex)
@@ -94,6 +110,10 @@ public:
static MtxP sMtxPtrTbl[2];
};
/**
* @ingroup jsystem-j3d
*
*/
class J3DShapeMtxYBBoardConcatView : public J3DShapeMtxConcatView {
public:
J3DShapeMtxYBBoardConcatView(u16 useMtxIndex)
@@ -105,6 +125,10 @@ public:
/* 803143E4 */ virtual void load() const;
};
/**
* @ingroup jsystem-j3d
*
*/
class J3DShapeMtxBBoardConcatView : public J3DShapeMtxConcatView {
public:
J3DShapeMtxBBoardConcatView(u16 useMtxIndex)
@@ -116,6 +140,10 @@ public:
/* 803142D4 */ virtual void load() const;
};
/**
* @ingroup jsystem-j3d
*
*/
class J3DShapeMtxMulti : public J3DShapeMtx {
public:
J3DShapeMtxMulti(u16 useMtxIndex, u16 useMtxNum, u16* useMtxIndexTable)
@@ -136,6 +164,10 @@ private:
/* 0xC */ u16* mUseMtxIndexTable;
};
/**
* @ingroup jsystem-j3d
*
*/
class J3DShapeMtxMultiConcatView : public J3DShapeMtxConcatView {
public:
J3DShapeMtxMultiConcatView(u16 useMtxIndex, u16 useMtxNum, u16* useMtxIndexTable)
+28 -1
View File
@@ -3,9 +3,12 @@
#include "dolphin/gx/GXStruct.h"
#include "dolphin/mtx.h"
#include "dolphin/mtx/mtx44.h"
#include "dolphin/mtx/vec.h"
/**
* @ingroup jsystem-j3d
*
*/
class J3DLightInfo {
public:
/* 803256C4 */ J3DLightInfo& operator=(J3DLightInfo const&);
@@ -19,6 +22,10 @@ public:
extern "C" extern J3DLightInfo const j3dDefaultLightInfo;
/**
* @ingroup jsystem-j3d
*
*/
class J3DLightObj {
public:
/* 80018C0C */ J3DLightObj() { mInfo = j3dDefaultLightInfo; }
@@ -34,6 +41,10 @@ public:
/* 0x34 */ GXLightObj mLightObj;
}; // Size = 0x74
/**
* @ingroup jsystem-j3d
*
*/
struct J3DTextureSRTInfo {
/* 0x00 */ f32 mScaleX;
/* 0x04 */ f32 mScaleY;
@@ -60,6 +71,10 @@ struct J3DTextureSRTInfo {
}
}; // Size: 0x14
/**
* @ingroup jsystem-j3d
*
*/
struct J3DTexMtxInfo {
/* 80325718 */ J3DTexMtxInfo& operator=(J3DTexMtxInfo const&);
/* 80325794 */ void setEffectMtx(Mtx);
@@ -73,12 +88,20 @@ struct J3DTexMtxInfo {
/* 0x24 */ Mtx44 mEffectMtx;
}; // Size: 0x64
/**
* @ingroup jsystem-j3d
*
*/
struct J3DIndTexMtxInfo {
J3DIndTexMtxInfo& operator=(J3DIndTexMtxInfo const&);
/* 0x00 */ Mtx23 field_0x0;
/* 0x18 */ u8 field_0x18;
}; // Size: 0x1C
/**
* @ingroup jsystem-j3d
*
*/
struct J3DFogInfo {
/* 80325800 */ J3DFogInfo& operator=(J3DFogInfo const&);
@@ -93,6 +116,10 @@ struct J3DFogInfo {
/* 0x18 */ GXFogAdjTable field_0x18;
}; // Size: 0x2C
/**
* @ingroup jsystem-j3d
*
*/
struct J3DNBTScaleInfo {
/* 8032587C */ J3DNBTScaleInfo& operator=(J3DNBTScaleInfo const&);
+8 -1
View File
@@ -2,7 +2,6 @@
#define J3DSYS_H
#include "dolphin/gx.h"
#include "dolphin/types.h"
// Perhaps move to a new J3DEnum.h?
enum J3DError {
@@ -23,6 +22,10 @@ class J3DShape;
class J3DDrawBuffer;
class J3DTexture;
/**
* @ingroup jsystem-j3d
*
*/
struct J3DTexCoordScaleInfo {
/* 0x0 */ u16 field_0x00;
/* 0x2 */ u16 field_0x02;
@@ -36,6 +39,10 @@ enum J3DSysFlag {
J3DSysFlag_PostTexMtx = 0x40000000,
};
/**
* @ingroup jsystem-j3d
*
*/
struct J3DSys {
/* 0x000 */ Mtx mViewMtx;
/* 0x030 */ J3DMtxCalc* mCurrentMtxCalc;
+36
View File
@@ -3,6 +3,10 @@
#include "dolphin/types.h"
/**
* @ingroup jsystem-j3d
*
*/
struct J3DTevStageInfo {
/* 0x0 */ u8 field_0x0;
/* 0x1 */ u8 mTevColorOp;
@@ -28,6 +32,10 @@ struct J3DTevStageInfo {
extern J3DTevStageInfo const j3dDefaultTevStageInfo;
/**
* @ingroup jsystem-j3d
*
*/
struct J3DTevSwapModeTableInfo {
/* 0x0 */ u8 field_0x0;
/* 0x1 */ u8 field_0x1;
@@ -37,6 +45,10 @@ struct J3DTevSwapModeTableInfo {
extern const J3DTevSwapModeTableInfo j3dDefaultTevSwapModeTable;
/**
* @ingroup jsystem-j3d
*
*/
struct J3DTevSwapModeInfo {
/* 0x0 */ u8 mRasSel;
/* 0x1 */ u8 mTexSel;
@@ -46,6 +58,10 @@ struct J3DTevSwapModeInfo {
extern J3DTevSwapModeInfo const j3dDefaultTevSwapMode;
/**
* @ingroup jsystem-j3d
*
*/
struct J3DTevStage {
/* 8000E230 */ J3DTevStage();
void setTevColorOp(u8 param_1, u8 param_2, u8 param_3, u8 param_4, u8 param_5) {
@@ -120,6 +136,10 @@ struct J3DTevStage {
/* 0x7 */ u8 mTevSwapModeInfo;
};
/**
* @ingroup jsystem-j3d
*
*/
struct J3DIndTevStageInfo {
/* 0x0 */ u8 mIndStage;
/* 0x1 */ u8 mIndFormat;
@@ -135,6 +155,10 @@ struct J3DIndTevStageInfo {
extern J3DIndTevStageInfo const j3dDefaultIndTevStageInfo;
/**
* @ingroup jsystem-j3d
*
*/
struct J3DIndTevStage {
/* 8000E14C */ J3DIndTevStage() : mInfo(0) { setIndTevStageInfo(j3dDefaultIndTevStageInfo); }
J3DIndTevStage(J3DIndTevStageInfo const& info) : mInfo(0) { setIndTevStageInfo(info); }
@@ -162,6 +186,10 @@ struct J3DIndTevStage {
/* 0x0 */ u32 mInfo;
};
/**
* @ingroup jsystem-j3d
*
*/
struct J3DTevOrderInfo {
void operator=(const J3DTevOrderInfo& other) {
*(u32*) this = *(u32*)&other;
@@ -175,6 +203,10 @@ struct J3DTevOrderInfo {
extern const J3DTevOrderInfo j3dDefaultTevOrderInfoNull;
/**
* @ingroup jsystem-j3d
*
*/
struct J3DTevOrder : public J3DTevOrderInfo {
/* 8000E140 */ J3DTevOrder() : J3DTevOrderInfo(j3dDefaultTevOrderInfoNull) {}
J3DTevOrder(const J3DTevOrderInfo& info) : J3DTevOrderInfo(info) {}
@@ -182,6 +214,10 @@ struct J3DTevOrder : public J3DTevOrderInfo {
u8 getTexMap() { return mTexMap; }
};
/**
* @ingroup jsystem-j3d
*
*/
struct J3DTevSwapModeTable {
/* 8000E134 */ J3DTevSwapModeTable();
J3DTevSwapModeTable(J3DTevSwapModeTableInfo const& info) {
+107 -92
View File
@@ -1,92 +1,107 @@
#ifndef J3DTEXTURE_H
#define J3DTEXTURE_H
#include "JSystem/J3DGraphBase/J3DStruct.h"
#include "JSystem/JUtility/JUTTexture.h"
#include "dolphin/mtx.h"
#include "dolphin/types.h"
class J3DTexture {
private:
/* 0x0 */ u16 mNum;
/* 0x2 */ u16 field_0x2;
/* 0x4 */ ResTIMG* mpRes;
public:
J3DTexture(u16 num, ResTIMG* res) : mNum(num), field_0x2(0), mpRes(res) {}
/* 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]; }
void setResTIMG(u16 entry, const ResTIMG& timg) {
mpRes[entry] = timg;
mpRes[entry].imageOffset = ((mpRes[entry].imageOffset + (u32)&timg - (u32)(mpRes + entry)));
mpRes[entry].paletteOffset = ((mpRes[entry].paletteOffset + (u32)&timg - (u32)(mpRes + entry)));
}
};
extern J3DTexMtxInfo const j3dDefaultTexMtxInfo;
class J3DTexMtx {
public:
J3DTexMtx() {
mTexMtxInfo = j3dDefaultTexMtxInfo;
}
J3DTexMtx(const J3DTexMtxInfo& info) {
mTexMtxInfo = info;
}
/* 803238C4 */ void load(u32) const;
/* 80323900 */ void calc(const Mtx);
/* 80323920 */ void calcTexMtx(const Mtx);
/* 80323C0C */ void calcPostTexMtx(const Mtx);
/* 80324358 */ void loadTexMtx(u32) const;
/* 803243BC */ void loadPostTexMtx(u32) const;
J3DTexMtxInfo& getTexMtxInfo() { return mTexMtxInfo; }
Mtx& getMtx() { return mMtx; }
void setEffectMtx(Mtx effectMtx) { mTexMtxInfo.setEffectMtx(effectMtx); }
private:
/* 0x00 */ J3DTexMtxInfo mTexMtxInfo;
/* 0x64 */ Mtx mMtx;
}; // Size: 0x94
struct J3DTexCoordInfo {
/* 0x0 */ u8 mTexGenType;
/* 0x1 */ u8 mTexGenSrc;
/* 0x2 */ u8 mTexGenMtx;
/* 0x3 */ u8 pad;
};
extern J3DTexCoordInfo const j3dDefaultTexCoordInfo[8];
struct J3DTexCoord : public J3DTexCoordInfo {
/* 8000E464 */ J3DTexCoord() {
setTexCoordInfo(j3dDefaultTexCoordInfo[0]);
resetTexMtxReg();
}
J3DTexCoord(J3DTexCoordInfo const& info) {
setTexCoordInfo(info);
resetTexMtxReg();
}
void setTexCoordInfo(J3DTexCoordInfo const& info) {
__memcpy(this, &info, sizeof(J3DTexCoordInfo));
}
u8 getTexGenType() { return mTexGenType; }
u8 getTexGenSrc() { return mTexGenSrc; }
u8 getTexGenMtx() { return mTexGenMtx & 0xff; }
u16 getTexMtxReg() { return mTexMtxReg & 0xff; }
void setTexGenMtx(u8 param_1) { mTexGenMtx = param_1; }
void resetTexMtxReg() {
mTexMtxReg = mTexGenMtx;
}
/* 0x4 */ u16 mTexMtxReg;
}; // Size: 0x6
#endif /* J3DTEXTURE_H */
#ifndef J3DTEXTURE_H
#define J3DTEXTURE_H
#include "JSystem/J3DGraphBase/J3DStruct.h"
#include "JSystem/JUtility/JUTTexture.h"
#include "dolphin/types.h"
/**
* @ingroup jsystem-j3d
*
*/
class J3DTexture {
private:
/* 0x0 */ u16 mNum;
/* 0x2 */ u16 field_0x2;
/* 0x4 */ ResTIMG* mpRes;
public:
J3DTexture(u16 num, ResTIMG* res) : mNum(num), field_0x2(0), mpRes(res) {}
/* 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]; }
void setResTIMG(u16 entry, const ResTIMG& timg) {
mpRes[entry] = timg;
mpRes[entry].imageOffset = ((mpRes[entry].imageOffset + (u32)&timg - (u32)(mpRes + entry)));
mpRes[entry].paletteOffset = ((mpRes[entry].paletteOffset + (u32)&timg - (u32)(mpRes + entry)));
}
};
extern J3DTexMtxInfo const j3dDefaultTexMtxInfo;
/**
* @ingroup jsystem-j3d
*
*/
class J3DTexMtx {
public:
J3DTexMtx() {
mTexMtxInfo = j3dDefaultTexMtxInfo;
}
J3DTexMtx(const J3DTexMtxInfo& info) {
mTexMtxInfo = info;
}
/* 803238C4 */ void load(u32) const;
/* 80323900 */ void calc(const Mtx);
/* 80323920 */ void calcTexMtx(const Mtx);
/* 80323C0C */ void calcPostTexMtx(const Mtx);
/* 80324358 */ void loadTexMtx(u32) const;
/* 803243BC */ void loadPostTexMtx(u32) const;
J3DTexMtxInfo& getTexMtxInfo() { return mTexMtxInfo; }
Mtx& getMtx() { return mMtx; }
void setEffectMtx(Mtx effectMtx) { mTexMtxInfo.setEffectMtx(effectMtx); }
private:
/* 0x00 */ J3DTexMtxInfo mTexMtxInfo;
/* 0x64 */ Mtx mMtx;
}; // Size: 0x94
/**
* @ingroup jsystem-j3d
*
*/
struct J3DTexCoordInfo {
/* 0x0 */ u8 mTexGenType;
/* 0x1 */ u8 mTexGenSrc;
/* 0x2 */ u8 mTexGenMtx;
/* 0x3 */ u8 pad;
};
extern J3DTexCoordInfo const j3dDefaultTexCoordInfo[8];
/**
* @ingroup jsystem-j3d
*
*/
struct J3DTexCoord : public J3DTexCoordInfo {
/* 8000E464 */ J3DTexCoord() {
setTexCoordInfo(j3dDefaultTexCoordInfo[0]);
resetTexMtxReg();
}
J3DTexCoord(J3DTexCoordInfo const& info) {
setTexCoordInfo(info);
resetTexMtxReg();
}
void setTexCoordInfo(J3DTexCoordInfo const& info) {
__memcpy(this, &info, sizeof(J3DTexCoordInfo));
}
u8 getTexGenType() { return mTexGenType; }
u8 getTexGenSrc() { return mTexGenSrc; }
u8 getTexGenMtx() { return mTexGenMtx & 0xff; }
u16 getTexMtxReg() { return mTexMtxReg & 0xff; }
void setTexGenMtx(u8 param_1) { mTexGenMtx = param_1; }
void resetTexMtxReg() {
mTexMtxReg = mTexGenMtx;
}
/* 0x4 */ u16 mTexMtxReg;
}; // Size: 0x6
#endif /* J3DTEXTURE_H */
@@ -6,6 +6,10 @@
struct J3DTextureSRTInfo;
/**
* @ingroup jsystem-j3d
*
*/
struct J3DTransformInfo {
/* 0x00 */ JGeometry::TVec3<f32> mScale;
/* 0x0C */ JGeometry::TVec3<s16> mRotation;
+12 -1
View File
@@ -3,13 +3,16 @@
#include "dolphin/gx/GXAttr.h"
#include "dolphin/mtx/vec.h"
#include "dolphin/types.h"
typedef struct _GXColor GXColor;
class J3DModel;
class J3DAnmVtxColor;
class J3DVertexBuffer;
/**
* @ingroup jsystem-j3d
*
*/
struct J3DVtxColorCalc {
/* 8032E180 */ void calc(J3DModel*);
virtual void calc(J3DVertexBuffer*);
@@ -19,6 +22,10 @@ struct J3DVtxColorCalc {
/* 0x8 */ J3DAnmVtxColor* mpVtxColor;
};
/**
* @ingroup jsystem-j3d
*
*/
class J3DVertexData {
public:
J3DVertexData();
@@ -61,6 +68,10 @@ private:
/* 0x58 */ GXCompType mVtxNrmType;
};
/**
* @ingroup jsystem-j3d
*
*/
class J3DVertexBuffer {
public:
J3DVertexBuffer() { init(); }
@@ -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*);
+4 -1
View File
@@ -2,8 +2,11 @@
#define J3DUCLIPPER_H
#include "dolphin/mtx.h"
#include "dolphin/types.h"
/**
* @ingroup jsystem-j3d
*
*/
class J3DUClipper {
public:
J3DUClipper() { init(); }
-1
View File
@@ -1,7 +1,6 @@
#ifndef J3DUD_H
#define J3DUD_H
#include "math.h"
#include "dolphin/types.h"
namespace J3DUD {
+4
View File
@@ -5,6 +5,10 @@
struct JASSoundParams;
/**
* @ingroup jsystem-jaudio
*
*/
class JAIAudible {
public:
virtual ~JAIAudible();
+4
View File
@@ -7,6 +7,10 @@ class JAIAudible;
class JAISoundID;
struct JASSoundParams;
/**
* @ingroup jsystem-jaudio
*
*/
struct JAIAudience {
virtual ~JAIAudience();
virtual JAIAudible* newAudible(JGeometry::TVec3<f32> const&, JAISoundID,
+4 -1
View File
@@ -3,10 +3,13 @@
#include "JSystem/JAudio2/JAISeqDataMgr.h"
#include "JSystem/JAudio2/JASTrack.h"
#include "JSystem/JSupport/JSUList.h"
class JAISeMgr;
/**
* @ingroup jsystem-jaudio
*
*/
class JAISe : public JSULink<JAISe>, public JAISound {
public:
class TInner {
+20 -2
View File
@@ -2,28 +2,42 @@
#define JAISEMGR_H
#include "JSystem/JAudio2/JAISe.h"
#include "JSystem/JAudio2/JASHeapCtrl.h"
#include "JSystem/JSupport/JSUList.h"
#include "global.h"
struct JAIAudience;
struct JASSoundParams;
/**
* @ingroup jsystem-jaudio
*
*/
struct JASNonCopyable {
/* 0x0 */ int field_0x0;
}; // Size: 0x4
/**
* @ingroup jsystem-jaudio
*
*/
struct JAISeCategoryArrangementItem {
u8 mMaxActiveSe;
u8 mMaxInactiveSe;
};
/**
* @ingroup jsystem-jaudio
*
*/
struct JAISeCategoryArrangement {
JAISeCategoryArrangementItem mItems[16];
};
class JAISeMgr;
/**
* @ingroup jsystem-jaudio
*
*/
class JAISeCategoryMgr : public JAISeqDataUser {
public:
/* 8029F9C4 */ void JAISeMgr_calc_();
@@ -59,6 +73,10 @@ public:
/* 0x68 */ int mMaxActiveSe;
}; // Size: 0x6C
/**
* @ingroup jsystem-jaudio
*
*/
class JAISeMgr : public JASGlobalInstance<JAISeMgr>,
public JAISeqDataUser,
public JAISoundActivity {
+4 -1
View File
@@ -2,13 +2,16 @@
#define JAISEQ_H
#include "JSystem/JAudio2/JAISeqDataMgr.h"
#include "JSystem/JAudio2/JASHeapCtrl.h"
#include "JSystem/JAudio2/JASTrack.h"
#include "JSystem/JSupport/JSUList.h"
class JAISeqMgr;
class JAISoundChild;
/**
* @ingroup jsystem-jaudio
*
*/
class JAISeq : public JASPoolAllocObject<JAISeq>, public JAISound, public JSULink<JAISeq> {
public:
class TInner {
+16 -1
View File
@@ -3,6 +3,10 @@
#include "JSystem/JAudio2/JAISound.h"
/**
* @ingroup jsystem-jaudio
*
*/
struct JAISeqData {
JAISeqData(void* param_0, u32 param_1) {
field_0x0 = param_0;
@@ -18,6 +22,10 @@ struct JAISeqData {
/* 0x04 */ u32 field_0x4;
};
/**
* @ingroup jsystem-jaudio
*
*/
struct JAISeqDataRegion {
bool intersects(JAISeqData& seqData) const {
if ((u32)addr + size < (u32)seqData.field_0x0) {
@@ -33,13 +41,20 @@ struct JAISeqDataRegion {
/* 0x04 */ u32 size;
};
/**
* @ingroup jsystem-jaudio
*
*/
struct JAISeqDataUser {
virtual ~JAISeqDataUser();
virtual bool isUsingSeqData(JAISeqDataRegion const&) = 0;
virtual int releaseSeqData(JAISeqDataRegion const&) = 0;
};
/**
* @ingroup jsystem-jaudio
*
*/
struct JAISeqDataMgr {
enum SeqDataReturnValue{ SeqDataReturnValue_0 = 0, SeqDataReturnValue_1 = 1, SeqDataReturnValue_2 = 2};
virtual ~JAISeqDataMgr();
+4 -1
View File
@@ -4,11 +4,14 @@
#include "JSystem/JAudio2/JAISeqDataMgr.h"
#include "JSystem/JAudio2/JASGadget.h"
#include "JSystem/JSupport/JSUList.h"
#include "JSystem/JUtility/JUTAssert.h"
struct JAIAudience;
class JAISeq;
/**
* @ingroup jsystem-jaudio
*
*/
class JAISeqMgr : public JASGlobalInstance<JAISeqMgr>, public JAISeqDataUser {
public:
enum ReleaseSeqResult {
+34
View File
@@ -5,6 +5,10 @@
#include "JSystem/JAudio2/JAIAudible.h"
#include "global.h"
/**
* @ingroup jsystem-jaudio
*
*/
class JAISoundID {
public:
operator u32() const { return this->mId.mFullId; }
@@ -36,6 +40,10 @@ public:
class JASTrack;
/**
* @ingroup jsystem-jaudio
*
*/
struct JAISoundStatus_ {
/* 802A2220 */ s32 lockWhenPrepared();
/* 802A2244 */ s32 unlockIfLocked();
@@ -99,6 +107,10 @@ struct JAISoundStatus_ {
/* 0x4 */ u32 user_data;
}; // Size: 0x8
/**
* @ingroup jsystem-jaudio
*
*/
struct JAISoundFader {
void forceIn() {
mIntensity = 1.0f;
@@ -135,6 +147,11 @@ struct JAISoundFader {
/* 0x00 */ f32 mIntensity;
/* 0x04 */ JAISoundParamsTransition::TTransition mTransition;
}; // Size: 0x10
/**
* @ingroup jsystem-jaudio
*
*/
template <typename A0>
struct JAISoundStrategyMgr__unknown {
virtual void virtual2();
@@ -142,6 +159,10 @@ struct JAISoundStrategyMgr__unknown {
virtual void virtual4(A0*, const JASSoundParams&);
};
/**
* @ingroup jsystem-jaudio
*
*/
template <typename A0>
struct JAISoundStrategyMgr {
virtual void virtual2();
@@ -155,6 +176,10 @@ struct JAISoundStrategyMgr__template1 {};
/* JAISoundStrategyMgr<JAIStream> */
struct JAISoundStrategyMgr__template2 {};
/**
* @ingroup jsystem-jaudio
*
*/
class JAISoundActivity {
public:
void init() { field_0x0.value = 0; }
@@ -174,6 +199,10 @@ public:
} field_0x0;
};
/**
* @ingroup jsystem-jaudio
*
*/
class JAITempoMgr {
public:
/* 0x00 */ f32 mTempo;
@@ -197,6 +226,11 @@ class JAISeq;
class JAISoundChild;
class JAIStream;
class JAITempoMgr;
/**
* @ingroup jsystem-jaudio
*
*/
class JAISound {
public:
/* 802A21A0 */ void releaseHandle();
+4
View File
@@ -5,6 +5,10 @@
struct JASTrack;
/**
* @ingroup jsystem-jaudio
*
*/
struct JAISoundChild {
/* 802A2AB0 */ void init();
/* 802A2B28 */ void mixOut(JASTrack*);
@@ -7,6 +7,10 @@
class JAISound;
class JAISoundID;
/**
* @ingroup jsystem-jaudio
*
*/
class JAISoundHandle {
public:
JAISoundHandle() {sound_ = NULL;};
@@ -28,6 +32,10 @@ public:
JAISound* sound_; // member from assert in operator->()
};
/**
* @ingroup jsystem-jaudio
*
*/
class JAISoundHandles {
public:
JAISoundHandles(JAISoundHandle* pHandle, int param_1) {
+4
View File
@@ -4,6 +4,10 @@
#include "JSystem/JAudio2/JAISound.h"
#include "JSystem/JAudio2/JASGadget.h"
/**
* @ingroup jsystem-jaudio
*
*/
struct JAISoundInfo : public JASGlobalInstance<JAISoundInfo> {
/* 802A2D34 */ JAISoundInfo(bool);
virtual int getSoundType(JAISoundID) const = 0;
+16
View File
@@ -3,6 +3,10 @@
#include "JSystem/JAudio2/JASSoundParams.h"
/**
* @ingroup jsystem-jaudio
*
*/
struct JAISoundParamsProperty {
void init() {
field_0x0 = 1.0f;
@@ -15,6 +19,10 @@ struct JAISoundParamsProperty {
/* 0x08 */ f32 field_0x8;
}; // Size: 0xC
/**
* @ingroup jsystem-jaudio
*
*/
struct JAISoundParamsTransition {
struct TTransition {
void zero() {
@@ -70,6 +78,10 @@ struct JAISoundParamsTransition {
/* 0x30 */ TTransition mDolby;
}; // Size: 0x3C
/**
* @ingroup jsystem-jaudio
*
*/
struct JAISoundParamsMove {
JAISoundParamsMove() : mParams() {}
@@ -90,6 +102,10 @@ struct JAISoundParamsMove {
/* 0x14 */ JAISoundParamsTransition mTransition;
}; // Size: 0x50
/**
* @ingroup jsystem-jaudio
*
*/
struct JAISoundParams {
JAISoundParams() : mMove() {}
void mixOutAll(JASSoundParams const&, JASSoundParams*, f32);
@@ -4,6 +4,10 @@
#include "JSystem/JAudio2/JAISound.h"
#include "JSystem/JAudio2/JASGadget.h"
/**
* @ingroup jsystem-jaudio
*
*/
struct JAISoundStarter : public JASGlobalInstance<JAISoundStarter> {
/* 802A2F6C */ JAISoundStarter(bool);
+4 -1
View File
@@ -3,11 +3,14 @@
#include "JSystem/JAudio2/JAISound.h"
#include "JSystem/JAudio2/JASAramStream.h"
#include "JSystem/JAudio2/JASHeapCtrl.h"
#include "JSystem/JSupport/JSUList.h"
class JAIStreamMgr;
/**
* @ingroup jsystem-jaudio
*
*/
class JAIStream : public JASPoolAllocObject<JAIStream>, public JAISound, public JSULink<JAIStream> {
public:
struct TInner {
@@ -3,11 +3,19 @@
#include "JSystem/JAudio2/JAISound.h"
/**
* @ingroup jsystem-jaudio
*
*/
struct JAIStreamDataMgr {
virtual s32 getStreamFileEntry(JAISoundID) = 0;
virtual ~JAIStreamDataMgr();
};
/**
* @ingroup jsystem-jaudio
*
*/
struct JAIStreamAramMgr {
virtual void* newStreamAram(u32*) = 0;
virtual void deleteStreamAram(u32) = 0;
+4 -2
View File
@@ -1,15 +1,17 @@
#ifndef JAISTREAMMGR_H
#define JAISTREAMMGR_H
#include "JSystem/JAudio2/JAISound.h"
#include "JSystem/JAudio2/JASGadget.h"
#include "JSystem/JAudio2/JAIStream.h"
#include "JSystem/JSupport/JSUList.h"
#include "JSystem/JUtility/JUTAssert.h"
class JAIStreamAramMgr;
class JAIStreamDataMgr;
/**
* @ingroup jsystem-jaudio
*
*/
class JAIStreamMgr : public JASGlobalInstance<JAIStreamMgr> {
public:
/* 802A3B68 */ JAIStreamMgr(bool);
+4 -1
View File
@@ -2,7 +2,6 @@
#define JASARAMSTREAM_H
#include "JSystem/JAudio2/JASTaskThread.h"
#include "dolphin/os/OSMessage.h"
#include "JSystem/JUtility/JUTAssert.h"
#include "dolphin/dvd.h"
@@ -14,6 +13,10 @@ namespace JASDsp {
#define CHANNEL_MAX 6
/**
* @ingroup jsystem-jaudio
*
*/
class JASAramStream {
public:
typedef void (*StreamCallback)(u32, JASAramStream*, void*);
@@ -3,6 +3,10 @@
#include "dolphin/types.h"
/**
* @ingroup jsystem-jaudio
*
*/
struct JASAudioReseter {
/* 8029D0B4 */ JASAudioReseter();
/* 8029D0FC */ ~JASAudioReseter();
+4
View File
@@ -10,6 +10,10 @@ enum JASAudioMessage {
AUDIOMSG_STOP = 2,
};
/**
* @ingroup jsystem-jaudio
*
*/
struct JASAudioThread : public JKRThread, public JASGlobalInstance<JASAudioThread> {
/* 8029CCDC */ JASAudioThread(int, int, u32);
/* 8029CD4C */ static void create(s32);
+4
View File
@@ -11,6 +11,10 @@ namespace JASDsp {
class TChannel;
}
/**
* @ingroup jsystem-jaudio
*
*/
class JASBank {
public:
JASBank() { mWaveBank = NULL; }
+4
View File
@@ -5,6 +5,10 @@
class JASBank;
/**
* @ingroup jsystem-jaudio
*
*/
class JASBankList {
public:
virtual JASBank* getBank(u32 param_0) const = 0;
+8
View File
@@ -4,6 +4,10 @@
#include "JSystem/JAudio2/JASBankList.h"
#include "JSystem/JAudio2/JASGadget.h"
/**
* @ingroup jsystem-jaudio
*
*/
template<size_t N>
class JASBankTable : public JASBankList {
public:
@@ -15,6 +19,10 @@ private:
JASPtrArray<JASBank, N> mArray;
};
/**
* @ingroup jsystem-jaudio
*
*/
class JASDefaultBankTable : public JASBankTable<256>, public JASGlobalInstance<JASDefaultBankTable> {
public:
JASDefaultBankTable() : JASGlobalInstance(true) {}
+13
View File
@@ -5,6 +5,11 @@
#include "JSystem/JAudio2/JASSoundParams.h"
struct JKRHeap;
/**
* @ingroup jsystem-jaudio
*
*/
struct JASInstParam : public JASSoundParams {
JASInstParam() {
field_0x14 = NULL;
@@ -23,12 +28,20 @@ struct JASInstParam : public JASSoundParams {
u8 field_0x1e;
};
/**
* @ingroup jsystem-jaudio
*
*/
struct JASInst {
virtual ~JASInst() {}
virtual bool getParam(int, int, JASInstParam*) const = 0;
virtual u32 getType() const = 0;
};
/**
* @ingroup jsystem-jaudio
*
*/
struct JASBasicInst : public JASInst {
struct TKeymap {
/* 80298250 */ ~TKeymap();
+12 -1
View File
@@ -3,8 +3,11 @@
#include "JSystem/JAudio2/JASWaveArcLoader.h"
#include "JSystem/JAudio2/JASWaveInfo.h"
#include "dolphin/os/OSMutex.h"
/**
* @ingroup jsystem-jaudio
*
*/
class JASWaveHandle {
public:
/* virtual */ ~JASWaveHandle() {};
@@ -14,6 +17,10 @@ public:
void* vtable;
};
/**
* @ingroup jsystem-jaudio
*
*/
class JASWaveBank {
public:
/* 80298B88 */ /* virtual */ ~JASWaveBank() {};
@@ -24,6 +31,10 @@ public:
void* vtable;
};
/**
* @ingroup jsystem-jaudio
*
*/
struct JASBasicWaveBank : public JASWaveBank {
struct TWaveHandle : public JASWaveHandle {
/* 802985E4 */ ~TWaveHandle();
+4
View File
@@ -3,6 +3,10 @@
#include "dolphin/types.h"
/**
* @ingroup jsystem-jaudio
*
*/
struct JASCalc {
/* 8028F2E8 */ static void imixcopy(s16 const*, s16 const*, s16*, u32);
/* 8028F318 */ static void bcopyfast(void const*, void*, u32);
+4
View File
@@ -5,6 +5,10 @@
typedef long JASCallback(void*);
/**
* @ingroup jsystem-jaudio
*
*/
struct JASCallbackMgr {
struct TCallback {
TCallback()
+8
View File
@@ -14,6 +14,10 @@ namespace JASDsp {
struct TChannel;
}
/**
* @ingroup jsystem-jaudio
*
*/
class JASChannelParams {
public:
JASChannelParams() {
@@ -41,6 +45,10 @@ public:
/* 0x14 */ f32 mDolby;
};
/**
* @ingroup jsystem-jaudio
*
*/
class JASChannel : public JASPoolAllocObject_MultiThreaded<JASChannel> {
public:
typedef void (*Callback)(u32, JASChannel*, JASDsp::TChannel*, void*);
+8 -1
View File
@@ -1,11 +1,14 @@
#ifndef JASCMDSTACK_H
#define JASCMDSTACK_H
#include "dolphin/types.h"
#include "JSystem/JSupport/JSUList.h"
class JASTrack;
/**
* @ingroup jsystem-jaudio
*
*/
struct JASPortArgs {
JASTrack* _00;
u32 _04;
@@ -20,6 +23,10 @@ struct JASPortArgs {
f32 _28;
};
/**
* @ingroup jsystem-jaudio
*
*/
struct JASPortCmd : JSULink<JASPortCmd> {
typedef void (*Command)(JASPortArgs*);
@@ -3,6 +3,10 @@
#include "dolphin/os/OSInterrupt.h"
/**
* @ingroup jsystem-jaudio
*
*/
class JASCriticalSection {
public:
JASCriticalSection() { mInterruptState = OSDisableInterrupts(); };
+4
View File
@@ -3,6 +3,10 @@
#include "JSystem/JAudio2/JASDSPInterface.h"
/**
* @ingroup jsystem-jaudio
*
*/
struct JASDSPChannel {
typedef s32 (*Callback)(u32, JASDsp::TChannel*, void*);
+4
View File
@@ -5,6 +5,10 @@
struct JKRHeap;
/**
* @ingroup jsystem-jaudio
*
*/
struct JASDrumSet : public JASInst {
struct TPerc {
/* 802984C4 */ TPerc();
+4
View File
@@ -5,6 +5,10 @@
class JASTaskThread;
/**
* @ingroup jsystem-jaudio
*
*/
class JASDvd {
public:
/* 8028FEFC */ static JASTaskThread* getThreadPointer();
+12
View File
@@ -4,6 +4,10 @@
#include "JSystem/JUtility/JUTAssert.h"
#include "string.h"
/**
* @ingroup jsystem-jaudio
*
*/
template<class T>
class JASGlobalInstance {
public:
@@ -29,6 +33,10 @@ public:
static T* sInstance;
};
/**
* @ingroup jsystem-jaudio
*
*/
template<class T>
class JASPtrTable {
public:
@@ -59,6 +67,10 @@ private:
/* 0x04 */ u32 mSize;
};
/**
* @ingroup jsystem-jaudio
*
*/
template<class T, size_t N>
class JASPtrArray : public JASPtrTable<T> {
public:
+28
View File
@@ -9,6 +9,10 @@ class JASDisposer;
class JKRHeap;
class JKRSolidHeap;
/**
* @ingroup jsystem-jaudio
*
*/
class JASHeap {
public:
/* 80290140 */ JASHeap(JASDisposer* param_0 = NULL);
@@ -33,6 +37,10 @@ public:
/* 0x40 */ JASHeap* field_0x40;
};
/**
* @ingroup jsystem-jaudio
*
*/
struct JASGenericMemPool {
/* 80290848 */ JASGenericMemPool();
/* 80290860 */ ~JASGenericMemPool();
@@ -77,6 +85,10 @@ namespace JASThreadingModel {
};
};
/**
* @ingroup jsystem-jaudio
*
*/
template <typename T>
class JASMemPool : public JASGenericMemPool {
public:
@@ -85,6 +97,10 @@ public:
void free(void* ptr, u32 n) { JASGenericMemPool::free(ptr, n); }
};
/**
* @ingroup jsystem-jaudio
*
*/
template<u32 ChunkSize, typename T>
class JASMemChunkPool {
struct MemoryChunk {
@@ -207,6 +223,10 @@ namespace JASKernel {
extern JASMemChunkPool<1024, JASThreadingModel::ObjectLevelLockable>* sCommandHeap;
};
/**
* @ingroup jsystem-jaudio
*
*/
template <typename T>
class JASPoolAllocObject {
public:
@@ -233,6 +253,10 @@ private:
}
};
/**
* @ingroup jsystem-jaudio
*
*/
template <typename T>
class JASMemPool_MultiThreaded : public JASGenericMemPool {
public:
@@ -252,6 +276,10 @@ public:
}
};
/**
* @ingroup jsystem-jaudio
*
*/
template <typename T>
class JASPoolAllocObject_MultiThreaded {
public:
+4
View File
@@ -3,6 +3,10 @@
#include "dolphin/types.h"
/**
* @ingroup jsystem-jaudio
*
*/
struct JASLfo {
/* 8029BD14 */ JASLfo();
/* 8029BD44 */ f32 getValue() const;
+4
View File
@@ -3,6 +3,10 @@
#include "dolphin/os/OSMutex.h"
/**
* @ingroup jsystem-jaudio
*
*/
struct JASMutexLock {
JASMutexLock(OSMutex* mutex) {
mMutex = mutex;
+4 -1
View File
@@ -3,7 +3,10 @@
#include "dolphin/types.h"
/**
* @ingroup jsystem-jaudio
*
*/
struct JASOscillator {
struct Point {
/* 0x0 */ s16 _0;
+4
View File
@@ -3,6 +3,10 @@
#include "dolphin/types.h"
/**
* @ingroup jsystem-jaudio
*
*/
struct JASProbe {
/* 80290EE4 */ static void start(s32, char const*);
/* 80290D74 */ void start(char const*);
@@ -3,6 +3,10 @@
#include "dolphin/types.h"
/**
* @ingroup jsystem-jaudio
*
*/
class JASRegisterParam {
public:
enum RegID {
-1
View File
@@ -1,7 +1,6 @@
#ifndef JASREPORT_H
#define JASREPORT_H
void JASReport(const char* message, ...);
#endif /* JASREPORT_H */
+4
View File
@@ -6,6 +6,10 @@
class JASTrack;
class JASSeqParser;
/**
* @ingroup jsystem-jaudio
*
*/
class JASSeqCtrl {
public:
enum IntrType {
+4
View File
@@ -5,6 +5,10 @@
class JASTrack;
/**
* @ingroup jsystem-jaudio
*
*/
class JASSeqParser {
public:
enum BranchCondition {};
+4
View File
@@ -3,6 +3,10 @@
#include "dolphin/types.h"
/**
* @ingroup jsystem-jaudio
*
*/
class JASSeqReader {
public:
/* 80296108 */ void init();
+4
View File
@@ -3,6 +3,10 @@
#include "dolphin/types.h"
/**
* @ingroup jsystem-jaudio
*
*/
struct JASSoundParams {
/* 8029E3B0 */ void clamp();
/* 8029E47C */ void combine(JASSoundParams const&, JASSoundParams const&);
+4
View File
@@ -4,6 +4,10 @@
#include "JSystem/JKernel/JKRThread.h"
#include "JSystem/JAudio2/JASHeapCtrl.h"
/**
* @ingroup jsystem-jaudio
*
*/
class JASTaskThread : public JKRThread {
private:
struct JASThreadCallStack {
+4 -3
View File
@@ -3,9 +3,6 @@
#include "JSystem/JAudio2/JASBankTable.h"
#include "JSystem/JAudio2/JASChannel.h"
#include "JSystem/JAudio2/JASGadget.h"
#include "JSystem/JAudio2/JASHeapCtrl.h"
#include "JSystem/JAudio2/JASOscillator.h"
#include "JSystem/JAudio2/JASRegisterParam.h"
#include "JSystem/JAudio2/JASSeqCtrl.h"
#include "JSystem/JAudio2/JASTrackPort.h"
@@ -19,6 +16,10 @@ namespace JASDsp {
extern u32 FILTER_MODE_IIR;
};
/**
* @ingroup jsystem-jaudio
*
*/
struct JASTrack : public JASPoolAllocObject_MultiThreaded<JASTrack> {
enum Status {
STATUS_FREE,
+4
View File
@@ -3,6 +3,10 @@
#include "dolphin/types.h"
/**
* @ingroup jsystem-jaudio
*
*/
class JASTrackPort {
public:
/* 8029354C */ void init();
+4
View File
@@ -4,6 +4,10 @@
#include "JSystem/JAudio2/JASBank.h"
#include "JSystem/JAudio2/JASOscillator.h"
/**
* @ingroup jsystem-jaudio
*
*/
class JASVoiceBank : public JASBank {
public:
/* 80297F74 */ virtual bool getInstParam(int, int, int, JASInstParam*) const;

Some files were not shown because too many files have changed in this diff Show More