Files
tp/include/JSystem/J3DGraphAnimator/J3DMaterialAnm.h
T

215 lines
5.7 KiB
C++
Raw Normal View History

2021-03-28 22:49:05 +02:00
#ifndef J3DMATERIALANM_H
#define J3DMATERIALANM_H
2021-10-11 09:38:53 -07:00
#include "JSystem/J3DGraphAnimator/J3DAnimation.h"
2021-03-28 22:49:05 +02:00
2024-04-12 00:10:30 -06:00
/**
* @ingroup jsystem-j3d
*
*/
2021-10-11 09:38:53 -07:00
class J3DMatColorAnm {
public:
2025-08-24 02:52:08 -04:00
/* 8003B2B8 */ ~J3DMatColorAnm() {}
2025-09-04 07:56:59 -07:00
2025-08-24 02:52:08 -04:00
/* 8003B2F4 */ J3DMatColorAnm() : field_0x0(0), mAnmFlag(1), mAnmColor(NULL) {}
2025-09-04 07:56:59 -07:00
J3DMatColorAnm(u16 param_1, J3DAnmColor* pAnmColor) {
2024-02-06 07:04:35 +02:00
field_0x0 = param_1;
mAnmFlag = 1;
2025-09-04 07:56:59 -07:00
mAnmColor = pAnmColor;
J3D_ASSERT_NULLPTR(56, pAnmColor != NULL);
2024-02-06 07:04:35 +02:00
}
2021-10-11 09:38:53 -07:00
void operator=(J3DMatColorAnm const& other) {
mAnmColor = other.mAnmColor;
field_0x0 = other.field_0x0;
mAnmFlag = other.mAnmFlag;
}
void setAnmFlag(bool flag) { mAnmFlag = flag; }
bool getAnmFlag() const { return mAnmFlag; }
2025-09-04 07:56:59 -07:00
void calc(GXColor* pColor) const {
J3D_ASSERT_NULLPTR(507, pColor != NULL);
mAnmColor->getColor(field_0x0, pColor);
}
2021-10-11 09:38:53 -07:00
private:
/* 0x0 */ u16 field_0x0;
/* 0x2 */ u16 mAnmFlag;
/* 0x4 */ J3DAnmColor* mAnmColor;
}; // Size: 0x8
2025-09-04 07:56:59 -07:00
/**
* @ingroup jsystem-j3d
*
*/
class J3DTexMtxAnm {
public:
/* 8003B264 */ ~J3DTexMtxAnm() {}
/* 8003B2A0 */ J3DTexMtxAnm() : field_0x0(0), mAnmFlag(1), mAnmTransform(NULL) {}
J3DTexMtxAnm(u16 param_1, J3DAnmTextureSRTKey* pSRTKey) {
field_0x0 = param_1;
mAnmFlag = 1;
mAnmTransform = pSRTKey;
J3D_ASSERT_NULLPTR(134, pSRTKey != NULL);
}
void operator=(J3DTexMtxAnm const& other) {
mAnmTransform = other.mAnmTransform;
field_0x0 = other.field_0x0;
mAnmFlag = other.mAnmFlag;
}
void setAnmFlag(bool flag) { mAnmFlag = flag; }
void calc(J3DTextureSRTInfo* pSRTInfo) const {
J3D_ASSERT_NULLPTR(519, pSRTInfo != NULL);
mAnmTransform->getTransform(field_0x0, pSRTInfo);
}
bool getAnmFlag() const { return mAnmFlag; }
private:
/* 0x0 */ u16 field_0x0;
/* 0x2 */ u16 mAnmFlag;
/* 0x4 */ J3DAnmTextureSRTKey* mAnmTransform;
}; // Size: 0x8
2024-04-12 00:10:30 -06:00
/**
* @ingroup jsystem-j3d
*
*/
2021-10-11 09:38:53 -07:00
class J3DTexNoAnm {
public:
2025-08-24 02:52:08 -04:00
/* 8003B1F8 */ ~J3DTexNoAnm() {}
/* 8003B240 */ J3DTexNoAnm() : field_0x4(0), mAnmFlag(1), mAnmTexPattern(NULL) {}
2025-09-04 07:56:59 -07:00
J3DTexNoAnm(u16 param_1, J3DAnmTexPattern* pAnmTexPattern) {
2024-02-06 07:04:35 +02:00
field_0x4 = param_1;
mAnmFlag = 1;
2025-09-04 07:56:59 -07:00
mAnmTexPattern = pAnmTexPattern;
J3D_ASSERT_NULLPTR(214, pAnmTexPattern != NULL);
2024-02-06 07:04:35 +02:00
}
2025-09-04 07:56:59 -07:00
/* 8003C82C */ virtual void calc(u16* param_0) const { mAnmTexPattern->getTexNo(field_0x4, param_0); }
2021-10-11 09:38:53 -07:00
void operator=(J3DTexNoAnm const& other) {
mAnmTexPattern = other.mAnmTexPattern;
field_0x4 = other.field_0x4;
mAnmFlag = other.mAnmFlag;
}
void setAnmFlag(bool flag) { mAnmFlag = flag; }
bool getAnmFlag() const { return mAnmFlag; }
J3DAnmTexPattern* getAnmTexPattern() { return mAnmTexPattern; }
private:
/* 0x4 */ u16 field_0x4;
/* 0x6 */ u16 mAnmFlag;
/* 0x8 */ J3DAnmTexPattern* mAnmTexPattern;
}; // Size: 0xC
2024-04-12 00:10:30 -06:00
/**
* @ingroup jsystem-j3d
*
*/
2025-09-04 07:56:59 -07:00
class J3DTevColorAnm {
2021-10-11 09:38:53 -07:00
public:
2025-09-04 07:56:59 -07:00
/* 8003B1A4 */ ~J3DTevColorAnm() {}
/* 8003B1E0 */ J3DTevColorAnm() : field_0x0(0), mAnmFlag(1), mAnmTevReg(NULL) {}
J3DTevColorAnm(u16 param_1, J3DAnmTevRegKey* pTevRegKey) {
2024-02-06 07:04:35 +02:00
field_0x0 = param_1;
mAnmFlag = 1;
2025-09-04 07:56:59 -07:00
mAnmTevReg = pTevRegKey;
J3D_ASSERT_NULLPTR(293, pTevRegKey != NULL);
2024-02-06 07:04:35 +02:00
}
2021-10-11 09:38:53 -07:00
2025-09-04 07:56:59 -07:00
void operator=(J3DTevColorAnm const& other) {
2021-10-11 09:38:53 -07:00
mAnmTevReg = other.mAnmTevReg;
field_0x0 = other.field_0x0;
mAnmFlag = other.mAnmFlag;
}
void setAnmFlag(bool flag) { mAnmFlag = flag; }
bool getAnmFlag() const { return mAnmFlag; }
2025-09-04 07:56:59 -07:00
void calc(GXColorS10* pColor) const {
J3D_ASSERT_NULLPTR(545, pColor != NULL);
mAnmTevReg->getTevColorReg(field_0x0, pColor);
}
2021-10-11 09:38:53 -07:00
private:
/* 0x0 */ u16 field_0x0;
/* 0x2 */ u16 mAnmFlag;
/* 0x4 */ J3DAnmTevRegKey* mAnmTevReg;
}; // Size: 0x8
2024-04-12 00:10:30 -06:00
/**
* @ingroup jsystem-j3d
*
*/
2025-09-04 07:56:59 -07:00
class J3DTevKColorAnm {
2021-10-11 09:38:53 -07:00
public:
2025-09-04 07:56:59 -07:00
/* 8003B150 */ ~J3DTevKColorAnm() {}
/* 8003B18C */ J3DTevKColorAnm() : field_0x0(0), mAnmFlag(1), mAnmTevReg(NULL) {}
J3DTevKColorAnm(u16 param_1, J3DAnmTevRegKey* pTevRegKey) {
2024-02-06 07:04:35 +02:00
field_0x0 = param_1;
mAnmFlag = 1;
2025-09-04 07:56:59 -07:00
mAnmTevReg = pTevRegKey;
J3D_ASSERT_NULLPTR(371, pTevRegKey != NULL);
2024-02-06 07:04:35 +02:00
}
2021-10-11 09:38:53 -07:00
2025-09-04 07:56:59 -07:00
void operator=(J3DTevKColorAnm const& other) {
2021-10-11 09:38:53 -07:00
mAnmTevReg = other.mAnmTevReg;
field_0x0 = other.field_0x0;
mAnmFlag = other.mAnmFlag;
}
void setAnmFlag(bool flag) { mAnmFlag = flag; }
bool getAnmFlag() const { return mAnmFlag; }
2025-09-04 07:56:59 -07:00
void calc(GXColor* pColor) const {
J3D_ASSERT_NULLPTR(558, pColor != NULL);
mAnmTevReg->getTevKonstReg(field_0x0, pColor);
}
2021-10-11 09:38:53 -07:00
private:
/* 0x0 */ u16 field_0x0;
/* 0x2 */ u16 mAnmFlag;
/* 0x4 */ J3DAnmTevRegKey* mAnmTevReg;
}; // Size: 0x8
2024-04-12 00:10:30 -06:00
/**
* @ingroup jsystem-j3d
*
*/
2021-10-11 09:38:53 -07:00
class J3DMaterialAnm {
public:
2022-06-01 03:49:32 -07:00
J3DMaterialAnm() { initialize(); }
2021-10-11 09:38:53 -07:00
/* 8032C320 */ void initialize();
/* 8032C5A4 */ void setMatColorAnm(int, J3DMatColorAnm*);
/* 8032C5E4 */ void setTexMtxAnm(int, J3DTexMtxAnm*);
/* 8032C624 */ void setTexNoAnm(int, J3DTexNoAnm*);
/* 8032C664 */ void setTevColorAnm(int, J3DTevColorAnm*);
/* 8032C6A4 */ void setTevKColorAnm(int, J3DTevKColorAnm*);
2025-08-24 02:52:08 -04:00
/* 800A4820 */ virtual ~J3DMaterialAnm() {}
2021-10-11 09:38:53 -07:00
/* 8032C3C4 */ virtual void calc(J3DMaterial*) const;
2021-11-10 23:54:31 -08:00
const J3DTexMtxAnm& getTexMtxAnm(int i) const { return mTexMtxAnm[i]; }
2021-10-11 09:38:53 -07:00
private:
/* 0x04 */ J3DMatColorAnm mMatColorAnm[2];
/* 0x14 */ J3DTexMtxAnm mTexMtxAnm[8];
/* 0x54 */ J3DTexNoAnm mTexNoAnm[8];
/* 0xB4 */ J3DTevColorAnm mTevColorAnm[4];
/* 0xD4 */ J3DTevKColorAnm mTevKColorAnm[4];
}; // Size: 0xF4
2021-03-28 22:49:05 +02:00
#endif /* J3DMATERIALANM_H */