#ifndef J3DTEVS_H #define J3DTEVS_H #include "dolphin/types.h" struct J3DTevStageInfo { /* 0x0 */ u8 field_0x0; /* 0x1 */ u8 field_0x1; /* 0x2 */ u8 field_0x2; /* 0x3 */ u8 field_0x3; /* 0x4 */ u8 field_0x4; /* 0x5 */ u8 field_0x5; /* 0x6 */ u8 field_0x6; /* 0x7 */ u8 field_0x7; /* 0x8 */ u8 field_0x8; /* 0x9 */ u8 field_0x9; /* 0xA */ u8 field_0xa; /* 0xB */ u8 field_0xb; /* 0xC */ u8 field_0xc; /* 0xD */ u8 field_0xd; /* 0xE */ u8 field_0xe; /* 0xF */ u8 field_0xf; /* 0x10 */ u8 field_0x10; /* 0x11 */ u8 field_0x11; /* 0x12 */ u8 field_0x12; /* 0x13 */ u8 field_0x13; }; STATIC_ASSERT(sizeof(J3DTevStageInfo) == 0x14); struct J3DTevStageTevSwapModeInfo { u8 field_0x0_29 : 2; u8 field_0x0_31 : 2; }; struct J3DTevStage { J3DTevStage() { // TODO // setTevStageInfo(j3dDefaultTevStageInfo); mTevSwapModeInfo.field_0x0_29 = 0; mTevSwapModeInfo.field_0x0_31 = 0; } J3DTevStage(const J3DTevStageInfo& info) { setTevStageInfo(info); mTevSwapModeInfo.field_0x0_29 = 0; mTevSwapModeInfo.field_0x0_31 = 0; } J3DTevStage& operator=(const J3DTevStage& other) { this->field_0x1 = other.field_0x1; this->field_0x2 = other.field_0x2; this->field_0x3 = other.field_0x3; this->field_0x5 = other.field_0x5; this->field_0x6 = other.field_0x6; this->mTevSwapModeInfo = other.mTevSwapModeInfo; return *this; } void setTevStageInfo(const J3DTevStageInfo&); /* 0x0 */ u8 field_0x0; /* 0x1 */ u8 field_0x1; /* 0x1 */ u8 field_0x2; /* 0x3 */ u8 field_0x3; /* 0x4 */ u8 field_0x4; /* 0x5 */ u8 field_0x5; /* 0x6 */ u8 field_0x6; /* 0x7 */ J3DTevStageTevSwapModeInfo mTevSwapModeInfo; }; struct J3DIndTevStageInfo { /* 0x0 */ u8 mIndStage; /* 0x1 */ u8 mIndFormat; /* 0x2 */ u8 mBiasSel; /* 0x3 */ u8 mMtxSel; /* 0x4 */ u8 mWrapS; /* 0x5 */ u8 mWrapT; /* 0x6 */ u8 mPrev; /* 0x7 */ u8 mLod; /* 0x8 */ u8 mAlphaSel; }; struct J3DIndTevStage { J3DIndTevStage(); /* 0x0 */ u32 mInfo; }; struct J3DTevOrderInfo { /* 0x0 */ u8 mTexCoord __attribute__((aligned(2))); /* 0x1 */ u8 mTexMap; /* 0x2 */ u8 mColorChan; }; struct J3DTevOrder : public J3DTevOrderInfo { J3DTevOrder(); u8 getTexMap() { return mTexMap; } }; struct J3DTevSwapModeTable { J3DTevSwapModeTable(); /* 0x0 */ u8 field_0x0; }; // Size: 0x1 struct J3DTevSwapModeInfo { /* 0x0 */ u8 field_0x0; }; struct J3DNBTScale; void loadNBTScale(J3DNBTScale& param_0); #endif /* J3DTEVS_H */