Files
tww/include/JSystem/J3DGraphAnimator/J3DMaterialAnm.h
T
Jasper St. Pierre 5ac0b8b9ec J3DMaterialAnm match
2023-10-17 18:50:20 -07:00

181 lines
5.1 KiB
C++

#ifndef J3DMATERIALANM_H
#define J3DMATERIALANM_H
#include "JSystem/J3DGraphAnimator/J3DAnimation.h"
typedef struct _GXColor GXColor;
typedef struct _GXColorS10 GXColorS10;
class J3DMatColorAnm {
public:
~J3DMatColorAnm() {}
J3DMatColorAnm() {
mAnmColor = NULL;
mAnmIndex = 0;
}
J3DMatColorAnm(J3DAnmColor* pAnm, u16 anmIdx) {
mAnmColor = pAnm;
mAnmIndex = anmIdx;
}
void operator=(J3DMatColorAnm const& other) {
mAnmColor = other.mAnmColor;
mAnmIndex = other.mAnmIndex;
mAnmFlag = other.mAnmFlag;
}
void setAnmIndex(u16 index) { mAnmIndex = index; }
void setAnmFlag(bool flag) { mAnmFlag = flag; }
bool getAnmFlag() const { return mAnmFlag; }
void setAnmColor(J3DAnmColor* anmColor) { mAnmColor = anmColor; }
void calc(GXColor* pColor) const;
private:
/* 0x0 */ u16 mAnmIndex;
/* 0x2 */ u16 mAnmFlag;
/* 0x4 */ J3DAnmColor* mAnmColor;
}; // Size: 0x8
class J3DTexNoAnm {
public:
~J3DTexNoAnm() {};
J3DTexNoAnm() {
mAnmTexPattern = NULL;
mAnmIndex = 0;
};
virtual void calc(u16* param_0) const;
void operator=(J3DTexNoAnm const& other) {
mAnmTexPattern = other.mAnmTexPattern;
mAnmIndex = other.mAnmIndex;
mAnmFlag = other.mAnmFlag;
}
void setAnmIndex(u16 index) { mAnmIndex = index; }
void setAnmFlag(bool flag) { mAnmFlag = flag; }
bool getAnmFlag() const { return mAnmFlag; }
J3DAnmTexPattern* getAnmTexPattern() { return mAnmTexPattern; }
void setAnmTexPattern(J3DAnmTexPattern* pattern) { mAnmTexPattern = pattern; }
private:
/* 0x4 */ u16 mAnmIndex;
/* 0x6 */ u16 mAnmFlag;
/* 0x8 */ J3DAnmTexPattern* mAnmTexPattern;
}; // Size: 0xC
class J3DTexMtxAnm {
public:
~J3DTexMtxAnm() {}
J3DTexMtxAnm() {
mAnmIndex = 0;
mAnmTransform = NULL;
}
J3DTexMtxAnm(J3DAnmTextureSRTKey * pAnm, u16 anmIdx) {
mAnmTransform = pAnm;
mAnmIndex = anmIdx;
}
void operator=(J3DTexMtxAnm const& other) {
mAnmTransform = other.mAnmTransform;
mAnmIndex = other.mAnmIndex;
mAnmFlag = other.mAnmFlag;
}
void setAnmIndex(u16 index) { mAnmIndex = index; }
bool getAnmFlag() const { return mAnmFlag; }
void setAnmFlag(bool flag) { mAnmFlag = flag; }
void setAnmTransform(J3DAnmTextureSRTKey* transform) { mAnmTransform = transform; }
void calc(J3DTextureSRTInfo* pSRTInfo) const;
private:
/* 0x0 */ u16 mAnmIndex;
/* 0x2 */ u16 mAnmFlag;
/* 0x4 */ J3DAnmTextureSRTKey* mAnmTransform;
}; // Size: 0x8
class J3DTevKColorAnm {
public:
~J3DTevKColorAnm() {}
J3DTevKColorAnm() {
mAnmTevReg = NULL;
mAnmIndex = 0;
}
J3DTevKColorAnm(J3DAnmTevRegKey * pAnm, u16 anmIdx) {
mAnmTevReg = pAnm;
mAnmIndex = anmIdx;
}
void operator=(J3DTevKColorAnm const& other) {
mAnmTevReg = other.mAnmTevReg;
mAnmIndex = other.mAnmIndex;
mAnmFlag = other.mAnmFlag;
}
void setAnmIndex(u16 index) { mAnmIndex = index; }
void setAnmFlag(bool flag) { mAnmFlag = flag; }
bool getAnmFlag() const { return mAnmFlag; }
void setAnmTevReg(J3DAnmTevRegKey* tevReg) { mAnmTevReg = tevReg; }
void calc(GXColor* pColor) const;
private:
/* 0x0 */ u16 mAnmIndex;
/* 0x2 */ u16 mAnmFlag;
/* 0x4 */ J3DAnmTevRegKey* mAnmTevReg;
}; // Size: 0x8
class J3DTevColorAnm {
public:
~J3DTevColorAnm() {}
J3DTevColorAnm() {
mAnmTevReg = NULL;
mAnmIndex = 0;
}
J3DTevColorAnm(J3DAnmTevRegKey * pAnm, u16 anmIdx) {
mAnmTevReg = pAnm;
mAnmIndex = anmIdx;
}
void operator=(J3DTevColorAnm const& other) {
mAnmTevReg = other.mAnmTevReg;
mAnmIndex = other.mAnmIndex;
mAnmFlag = other.mAnmFlag;
}
void setAnmIndex(u16 index) { mAnmIndex = index; }
void setAnmFlag(bool flag) { mAnmFlag = flag; }
bool getAnmFlag() const { return mAnmFlag; }
void setAnmTevReg(J3DAnmTevRegKey* tevReg) { mAnmTevReg = tevReg; }
void calc(GXColorS10* pColor) const;
private:
/* 0x0 */ u16 mAnmIndex;
/* 0x2 */ u16 mAnmFlag;
/* 0x4 */ J3DAnmTevRegKey* mAnmTevReg;
}; // Size: 0x8
class J3DMaterialAnm {
public:
J3DMaterialAnm() { initialize(); }
void initialize();
inline void setMatColorAnm(int i, J3DMatColorAnm* pAnm) { mMatColorAnm[i] = pAnm; }
inline void setTexMtxAnm(int i, J3DTexMtxAnm* pAnm) { mTexMtxAnm[i] = pAnm; }
inline void setTexNoAnm(int i, J3DTexNoAnm* pAnm) { mTexNoAnm[i] = pAnm; }
inline void setTevColorAnm(int i, J3DTevColorAnm* pAnm) { mTevColorAnm[i] = pAnm; }
inline void setTevKColorAnm(int i, J3DTevKColorAnm* pAnm) { mTevKColorAnm[i] = pAnm; }
virtual ~J3DMaterialAnm() {};
virtual void calc(J3DMaterial*) const;
const J3DTexMtxAnm& getTexMtxAnm(int i) const { return *mTexMtxAnm[i]; }
private:
/* 0x04 */ J3DMatColorAnm * mMatColorAnm[2];
/* 0x14 */ J3DTexMtxAnm * mTexMtxAnm[8];
/* 0x54 */ J3DTexNoAnm * mTexNoAnm[8];
/* 0xB4 */ J3DTevColorAnm * mTevColorAnm[4];
/* 0xD4 */ J3DTevKColorAnm * mTevKColorAnm[4];
}; // Size: 0xF4
#endif /* J3DMATERIALANM_H */