diff options
| author | Jcw87 <Jcw87@users.noreply.github.com> | 2023-12-19 02:54:59 -0800 |
|---|---|---|
| committer | Jcw87 <Jcw87@users.noreply.github.com> | 2023-12-19 03:22:43 -0800 |
| commit | de811bc95e770282d535fccdd5a2d5b1d47db1dc (patch) | |
| tree | 40d9c998600e474a3acf9978fb49d10ae9afc7af /include/JSystem/JParticle | |
| parent | 985f1df0b7746b6ebc159d07fc7581bd3ead1b20 (diff) | |
JParticle
Diffstat (limited to 'include/JSystem/JParticle')
| -rw-r--r-- | include/JSystem/JParticle/JPABaseShape.h | 20 | ||||
| -rw-r--r-- | include/JSystem/JParticle/JPADraw.h | 76 | ||||
| -rw-r--r-- | include/JSystem/JParticle/JPADrawSetupTev.h | 18 | ||||
| -rw-r--r-- | include/JSystem/JParticle/JPADrawVisitor.h | 523 | ||||
| -rw-r--r-- | include/JSystem/JParticle/JPAExtraShape.h | 12 | ||||
| -rw-r--r-- | include/JSystem/JParticle/JPASweepShape.h | 4 |
6 files changed, 599 insertions, 54 deletions
diff --git a/include/JSystem/JParticle/JPABaseShape.h b/include/JSystem/JParticle/JPABaseShape.h index 4683e2d0..738c2cfc 100644 --- a/include/JSystem/JParticle/JPABaseShape.h +++ b/include/JSystem/JParticle/JPABaseShape.h @@ -52,12 +52,12 @@ public: virtual GXAlphaOp getAlphaCmpOp() = 0; virtual u8 getAlphaCmpRef0() = 0; virtual u8 getAlphaCmpRef1() = 0; - virtual BOOL isEnableAnmTone() = 0; - virtual BOOL isEnableProjection() = 0; + virtual u32 isEnableAnmTone() = 0; + virtual u32 isEnableProjection() = 0; virtual BOOL isClipOn() = 0; virtual BOOL isEnableTextureAnm() = 0; virtual BOOL textureIsEmpty() = 0; - virtual u32 getTextureAnmType() = 0; + virtual u8 getTextureAnmType() = 0; virtual u8 getTextureAnmKeyNum() = 0; virtual u8 getTextureIndex() = 0; virtual u8 getTextureIndex(u8 idx) = 0; @@ -69,9 +69,9 @@ public: virtual GXColor getEnvColor() = 0; virtual GXColor getPrmColor(s16) = 0; virtual GXColor getEnvColor(s16) = 0; - virtual u32 getColorRegAnmType() = 0; + virtual u8 getColorRegAnmType() = 0; virtual u32 getColorRegAnmMaxFrm() = 0; - virtual BOOL isEnableTexScrollAnm() = 0; + virtual u32 isEnableTexScrollAnm() = 0; virtual f32 getTilingX() = 0; virtual f32 getTilingY() = 0; virtual f32 getTexStaticTransX() = 0; @@ -160,12 +160,12 @@ public: virtual GXAlphaOp getAlphaCmpOp() { return stAlphaOp[(pBsd->mAlphaFlags >> 3) & 0x03]; } virtual u8 getAlphaCmpRef0() { return pBsd->mAlphaCmpRef0; } virtual u8 getAlphaCmpRef1() { return pBsd->mAlphaCmpRef1; } - virtual BOOL isEnableAnmTone() { return pBsd->mFlags & 0x80000; } - virtual BOOL isEnableProjection() { return pBsd->mFlags & 0x100000; } + virtual u32 isEnableAnmTone() { return pBsd->mFlags & 0x80000; } + virtual u32 isEnableProjection() { return pBsd->mFlags & 0x100000; } virtual BOOL isClipOn() { return pBsd->mFlags & 0x800000; } virtual BOOL isEnableTextureAnm() { return pBsd->mTextureFlags & 0x01; } virtual BOOL textureIsEmpty() { return !(pBsd->mTextureFlags & 0x02); } - virtual u32 getTextureAnmType() { return (pBsd->mTextureFlags >> 2) & 0x07; } + virtual u8 getTextureAnmType() { return (pBsd->mTextureFlags >> 2) & 0x07; } virtual u8 getTextureAnmKeyNum() { return pBsd->mTextureAnmKeyNum; } virtual u8 getTextureIndex() { return pBsd->mTextureIndex; } virtual u8 getTextureIndex(u8 idx) { return mpTexAnmIdxArr[idx]; } @@ -177,9 +177,9 @@ public: virtual GXColor getEnvColor() { return pBsd->mEnvColor; } virtual GXColor getPrmColor(s16 idx) { return mpPrmColorArr[idx]; } virtual GXColor getEnvColor(s16 idx) { return mpEnvColorArr[idx]; } - virtual u32 getColorRegAnmType() { return (pBsd->mColorFlags >> 4) & 0x07; } + virtual u8 getColorRegAnmType() { return (pBsd->mColorFlags >> 4) & 0x07; } virtual u32 getColorRegAnmMaxFrm() { return pBsd->mColorRegAnmMaxFrm; } - virtual BOOL isEnableTexScrollAnm() { return pBsd->mFlags & 0x1000000; } + virtual u32 isEnableTexScrollAnm() { return pBsd->mFlags & 0x1000000; } virtual f32 getTilingX() { return pBsd->mTilingX; } virtual f32 getTilingY() { return pBsd->mTilingY; } virtual f32 getTexStaticTransX() { return pBsd->mTexStaticTransX; } diff --git a/include/JSystem/JParticle/JPADraw.h b/include/JSystem/JParticle/JPADraw.h index aa3e4956..267de7a6 100644 --- a/include/JSystem/JParticle/JPADraw.h +++ b/include/JSystem/JParticle/JPADraw.h @@ -1,50 +1,54 @@ #ifndef JPADRAW_H #define JPADRAW_H -#include "dolphin/types.h" +#include "JSystem/JGeometry.h" +#include "JSystem/JParticle/JPADrawVisitor.h" +#include "JSystem/JParticle/JPADrawSetupTev.h" #include "dolphin/gx/GXStruct.h" #include "dolphin/gx/GXEnum.h" #include "dolphin/mtx/mtx.h" +#include "global.h" -class JPABaseShape; -class JPAExtraShape; -class JPASweepShape; -class JPAExTexShape; -class JPATextureResource; -class JPABaseEmitter; -class JPABaseParticle; -struct JSUPtrList; - -class JPADraw; -class JPADrawExecEmitterVisitor; -class JPADrawExecParticleVisitor; -class JPADrawClipBoard; -class JPADrawVisitorContainer; - -class JPADrawContext { +class JPADrawClipBoard { public: - /* 0x00 */ JPABaseEmitter* pbe; - /* 0x04 */ JPABaseShape* pbsp; - /* 0x08 */ JPAExtraShape* pesp; - /* 0x0C */ JPASweepShape* pssp; - /* 0x10 */ JPAExTexShape* petx; - /* 0x14 */ JPADraw* mpDraw; - /* 0x18 */ JSUPtrList* mpActiveParticles; - /* 0x1C */ JPATextureResource* mpTextureResource; - /* 0x20 */ u16* pTexIdx; + JPADrawClipBoard() {} + ~JPADrawClipBoard() {} - static JPADrawClipBoard* pcb; + JPADrawSetupTev field_0x0; + f32 field_0x4; + f32 field_0x8; + f32 field_0xc; + f32 field_0x10; + JGeometry::TVec2<f32> field_0x14[4]; + MtxP field_0x34; + f32 field_0x38; + f32 field_0x3c; + f32 field_0x40; + f32 field_0x44; + f32 field_0x48; + f32 field_0x4c; + f32 field_0x50; + f32 field_0x54; + f32 field_0x58; + f32 field_0x5c; + f32 field_0x60; + f32 field_0x64; + Mtx field_0x68; + GXColor field_0x98; + GXColor field_0x9c; + void* field_0xa0; + u8 field_0xa4[0xb4 - 0xa4]; }; class JPADraw { public: struct JPADrawVisitorDefFlags { - /* 0x00 */ u32 mbIsEnableDrawParent; - /* 0x04 */ u32 mbHasPrmAnm; - /* 0x08 */ u32 mbHasEnvAnm; - /* 0x0C */ u32 mbIsStripe; - /* 0x10 */ u32 mbIsPointOrLine; - /* 0x04 */ u32 mbIsEnableAlpha; + /* 0x00 */ BOOL mbIsEnableDrawParent; + /* 0x04 */ BOOL mbHasPrmAnm; + /* 0x08 */ BOOL mbHasEnvAnm; + /* 0x0C */ BOOL mbIsStripe; + /* 0x10 */ BOOL mbIsPointOrLine; + /* 0x14 */ BOOL mbIsEnableAlpha; }; bool initialize(JPABaseEmitter*, JPATextureResource*); @@ -73,11 +77,11 @@ public: /* 0x00 */ JPADrawExecEmitterVisitor* mpExecEmtrVis[1]; /* 0x04 */ JPADrawExecEmitterVisitor* mpExecEmtrPVis[5]; /* 0x18 */ JPADrawExecEmitterVisitor* mpExecEmtrCVis[3]; - /* 0x24 */ JPADrawExecParticleVisitor* mpCalcEmtrVis[4]; + /* 0x24 */ JPADrawCalcEmitterVisitor* mpCalcEmtrVis[4]; /* 0x34 */ JPADrawExecParticleVisitor* mpExecPtclVis[5]; - /* 0x48 */ JPADrawExecParticleVisitor* mpCalcPtclVis[10]; + /* 0x48 */ JPADrawCalcParticleVisitor* mpCalcPtclVis[10]; /* 0x70 */ JPADrawExecParticleVisitor* mpExecChldVis[4]; - /* 0x80 */ JPADrawExecParticleVisitor* mpCalcChldVis[2]; + /* 0x80 */ JPADrawCalcParticleVisitor* mpCalcChldVis[2]; /* 0x88 */ u8 execEmtrVisNum; /* 0x89 */ u8 execEmtrPVisNum; /* 0x8A */ u8 execEmtrCVisNum; diff --git a/include/JSystem/JParticle/JPADrawSetupTev.h b/include/JSystem/JParticle/JPADrawSetupTev.h new file mode 100644 index 00000000..0294ce26 --- /dev/null +++ b/include/JSystem/JParticle/JPADrawSetupTev.h @@ -0,0 +1,18 @@ +#ifndef JPADRAWSETUPTEV_H +#define JPADRAWSETUPTEV_H + +#include "dolphin/types.h" + +class JPABaseShape; +class JPAExTexShape; + +class JPADrawSetupTev { +public: + void setupTev(JPABaseShape* param_1, JPAExTexShape* param_2); + + u8 field_0x0; + u8 field_0x1; + u8 field_0x2; +}; + +#endif /* JPADRAWSETUPTEV_H */ diff --git a/include/JSystem/JParticle/JPADrawVisitor.h b/include/JSystem/JParticle/JPADrawVisitor.h new file mode 100644 index 00000000..dcb4b044 --- /dev/null +++ b/include/JSystem/JParticle/JPADrawVisitor.h @@ -0,0 +1,523 @@ +#ifndef JPADRAWVISITOR_H +#define JPADRAWVISITOR_H + +#include "JSystem/JSupport/JSUList.h" +#include "dolphin/types.h" + +class JPABaseEmitter; +class JPABaseParticle; +class JPABaseShape; +class JPAExTexShape; +class JPAExtraShape; +class JPASweepShape; +class JPADraw; +class JPADrawClipBoard; +class JPATextureResource; + +class JPADrawContext { +public: + /* 0x00 */ JPABaseEmitter* pbe; + /* 0x04 */ JPABaseShape* pbsp; + /* 0x08 */ JPAExtraShape* pesp; + /* 0x0C */ JPASweepShape* pssp; + /* 0x10 */ JPAExTexShape* petx; + /* 0x14 */ JPADraw* mpDraw; + /* 0x18 */ JSUList<JPABaseParticle>* mpActiveParticles; + /* 0x1C */ JPATextureResource* mpTextureResource; + /* 0x20 */ u16* pTexIdx; + + static JPADrawClipBoard* pcb; +}; + +class JPADrawExecEmitterVisitor { +public: + virtual ~JPADrawExecEmitterVisitor() {} + virtual void exec(const JPADrawContext* pDC) = 0; +}; + +class JPADrawExecParticleVisitor { +public: + virtual ~JPADrawExecParticleVisitor() {} + virtual void exec(const JPADrawContext* pDC, JPABaseParticle* param_2) = 0; +}; + +class JPADrawExecGenPrjMtx : public JPADrawExecEmitterVisitor { +public: + virtual ~JPADrawExecGenPrjMtx() {} + virtual void exec(const JPADrawContext* pDC); +}; + +class JPADrawExecGenPrjTexMtx : public JPADrawExecEmitterVisitor { +public: + virtual ~JPADrawExecGenPrjTexMtx() {} + virtual void exec(const JPADrawContext* pDC); +}; + +class JPADrawExecGenTexMtx0 : public JPADrawExecEmitterVisitor { +public: + virtual ~JPADrawExecGenTexMtx0() {} + virtual void exec(const JPADrawContext* pDC); +}; + +class JPADrawExecGenIdtMtx : public JPADrawExecEmitterVisitor { +public: + virtual ~JPADrawExecGenIdtMtx() {} + virtual void exec(const JPADrawContext* pDC); +}; + +class JPADrawExecSetTexMtx : public JPADrawExecEmitterVisitor, public JPADrawExecParticleVisitor { +public: + virtual ~JPADrawExecSetTexMtx() {} + virtual void exec(const JPADrawContext* pDC, JPABaseParticle* param_2); + virtual void exec(const JPADrawContext* pDC); +}; + +class JPADrawExecSetPointSize : public JPADrawExecParticleVisitor { +public: + virtual ~JPADrawExecSetPointSize() {} + virtual void exec(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawExecSetLineWidth : public JPADrawExecParticleVisitor { +public: + virtual ~JPADrawExecSetLineWidth() {} + virtual void exec(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawExecRegisterColorEmitterPE : public JPADrawExecEmitterVisitor { +public: + virtual ~JPADrawExecRegisterColorEmitterPE() {} + virtual void exec(const JPADrawContext* pDC); +}; + +class JPADrawExecRegisterColorEmitterP : public JPADrawExecEmitterVisitor { +public: + virtual ~JPADrawExecRegisterColorEmitterP() {} + virtual void exec(const JPADrawContext* pDC); +}; + +class JPADrawExecRegisterColorEmitterE : public JPADrawExecEmitterVisitor { +public: + virtual ~JPADrawExecRegisterColorEmitterE() {} + virtual void exec(const JPADrawContext* pDC); +}; + +class JPADrawExecRegisterColorChildPE : public JPADrawExecEmitterVisitor { +public: + virtual ~JPADrawExecRegisterColorChildPE() {} + virtual void exec(const JPADrawContext* pDC); +}; + +class JPADrawExecRegisterPrmColorAnm : public JPADrawExecParticleVisitor { +public: + virtual ~JPADrawExecRegisterPrmColorAnm() {} + virtual void exec(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawExecRegisterPrmAlphaAnm : public JPADrawExecParticleVisitor { +public: + virtual ~JPADrawExecRegisterPrmAlphaAnm() {} + virtual void exec(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawExecRegisterEnvColorAnm : public JPADrawExecParticleVisitor { +public: + virtual ~JPADrawExecRegisterEnvColorAnm() {} + virtual void exec(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawExecRegisterPrmCEnv : public JPADrawExecParticleVisitor { +public: + virtual ~JPADrawExecRegisterPrmCEnv() {} + virtual void exec(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawExecRegisterPrmAEnv : public JPADrawExecParticleVisitor { +public: + virtual ~JPADrawExecRegisterPrmAEnv() {} + virtual void exec(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawExecLoadDefaultTexture : public JPADrawExecEmitterVisitor { +public: + virtual ~JPADrawExecLoadDefaultTexture() {} + virtual void exec(const JPADrawContext* pDC); +}; + +class JPADrawExecLoadTexture : public JPADrawExecEmitterVisitor, public JPADrawExecParticleVisitor { +public: + virtual ~JPADrawExecLoadTexture() {} + virtual void exec(const JPADrawContext* pDC, JPABaseParticle* param_2); + virtual void exec(const JPADrawContext* pDC); +}; + +class JPADrawExecLoadExTex : public JPADrawExecEmitterVisitor { +public: + virtual ~JPADrawExecLoadExTex() {} + virtual void exec(const JPADrawContext* pDC); +}; + +class JPADrawExecBillBoard : public JPADrawExecParticleVisitor { +public: + virtual ~JPADrawExecBillBoard() {} + virtual void exec(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawExecRotBillBoard : public JPADrawExecParticleVisitor { +public: + virtual ~JPADrawExecRotBillBoard() {} + virtual void exec(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawExecYBillBoard : public JPADrawExecParticleVisitor { +public: + virtual ~JPADrawExecYBillBoard() {} + virtual void exec(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawExecRotYBillBoard : public JPADrawExecParticleVisitor { +public: + virtual ~JPADrawExecRotYBillBoard() {} + virtual void exec(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawExecDirectional : public JPADrawExecParticleVisitor { +public: + virtual ~JPADrawExecDirectional() {} + virtual void exec(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawExecRotDirectional : public JPADrawExecParticleVisitor { +public: + virtual ~JPADrawExecRotDirectional() {} + virtual void exec(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawExecDirectionalCross : public JPADrawExecParticleVisitor { +public: + virtual ~JPADrawExecDirectionalCross() {} + virtual void exec(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawExecRotDirectionalCross : public JPADrawExecParticleVisitor { +public: + virtual ~JPADrawExecRotDirectionalCross() {} + virtual void exec(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawExecDirBillBoard : public JPADrawExecParticleVisitor { +public: + virtual ~JPADrawExecDirBillBoard() {} + virtual void exec(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawExecRotation : public JPADrawExecParticleVisitor { +public: + virtual ~JPADrawExecRotation() {} + virtual void exec(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawExecRotationCross : public JPADrawExecParticleVisitor { +public: + virtual ~JPADrawExecRotationCross() {} + virtual void exec(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawExecPoint : public JPADrawExecParticleVisitor { +public: + virtual ~JPADrawExecPoint() {} + virtual void exec(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawExecLine : public JPADrawExecParticleVisitor { +public: + virtual ~JPADrawExecLine() {} + virtual void exec(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawExecStripe : public JPADrawExecEmitterVisitor { +public: + virtual ~JPADrawExecStripe() {} + virtual void exec(const JPADrawContext* pDC); +}; + +class JPADrawExecStripeCross : public JPADrawExecEmitterVisitor { +public: + virtual ~JPADrawExecStripeCross() {} + virtual void exec(const JPADrawContext* pDC); +}; + +class JPADrawExecCallBack : public JPADrawExecEmitterVisitor, public JPADrawExecParticleVisitor { +public: + virtual ~JPADrawExecCallBack() {} + virtual void exec(const JPADrawContext* pDC, JPABaseParticle* param_2); + virtual void exec(const JPADrawContext* pDC); +}; + +class JPADrawCalcEmitterVisitor { +public: + virtual ~JPADrawCalcEmitterVisitor() {} + virtual void calc(const JPADrawContext* pDC) = 0; +}; + +class JPADrawCalcParticleVisitor { +public: + virtual ~JPADrawCalcParticleVisitor() {} + virtual void calc(const JPADrawContext* pDC, JPABaseParticle* param_2) = 0; +}; + +class JPADrawCalcScaleX : public JPADrawCalcParticleVisitor { +public: + virtual ~JPADrawCalcScaleX() {} + virtual void calc(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawCalcScaleXBySpeed : public JPADrawCalcParticleVisitor { +public: + virtual ~JPADrawCalcScaleXBySpeed() {} + virtual void calc(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawCalcScaleY : public JPADrawCalcParticleVisitor { +public: + virtual ~JPADrawCalcScaleY() {} + virtual void calc(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawCalcScaleYBySpeed : public JPADrawCalcParticleVisitor { +public: + virtual ~JPADrawCalcScaleYBySpeed() {} + virtual void calc(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawCalcScaleCopyX2Y : public JPADrawCalcParticleVisitor { +public: + virtual ~JPADrawCalcScaleCopyX2Y() {} + virtual void calc(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawCalcScaleAnmTimingNormal : public JPADrawCalcParticleVisitor { +public: + virtual ~JPADrawCalcScaleAnmTimingNormal() {} + virtual void calc(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawCalcScaleAnmTimingRepeatX : public JPADrawCalcParticleVisitor { +public: + virtual ~JPADrawCalcScaleAnmTimingRepeatX() {} + virtual void calc(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawCalcScaleAnmTimingRepeatY : public JPADrawCalcParticleVisitor { +public: + virtual ~JPADrawCalcScaleAnmTimingRepeatY() {} + virtual void calc(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawCalcScaleAnmTimingReverseX : public JPADrawCalcParticleVisitor { +public: + virtual ~JPADrawCalcScaleAnmTimingReverseX() {} + virtual void calc(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawCalcScaleAnmTimingReverseY : public JPADrawCalcParticleVisitor { +public: + virtual ~JPADrawCalcScaleAnmTimingReverseY() {} + virtual void calc(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawCalcColorPrm : public JPADrawCalcEmitterVisitor, public JPADrawCalcParticleVisitor { +public: + virtual ~JPADrawCalcColorPrm() {} + virtual void calc(const JPADrawContext* pDC, JPABaseParticle* param_2); + virtual void calc(const JPADrawContext* pDC); +}; + +class JPADrawCalcColorEnv : public JPADrawCalcEmitterVisitor, public JPADrawCalcParticleVisitor { +public: + virtual ~JPADrawCalcColorEnv() {} + virtual void calc(const JPADrawContext* pDC, JPABaseParticle* param_2); + virtual void calc(const JPADrawContext* pDC); +}; + +class JPADrawCalcColorCopyFromEmitter : public JPADrawCalcParticleVisitor { +public: + virtual ~JPADrawCalcColorCopyFromEmitter() {} + virtual void calc(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawCalcColorAnmFrameNormal : public JPADrawCalcEmitterVisitor, public JPADrawCalcParticleVisitor { +public: + virtual ~JPADrawCalcColorAnmFrameNormal() {} + virtual void calc(const JPADrawContext* pDC, JPABaseParticle* param_2); + virtual void calc(const JPADrawContext* pDC); +}; + +class JPADrawCalcColorAnmFrameRepeat : public JPADrawCalcEmitterVisitor, public JPADrawCalcParticleVisitor { +public: + virtual ~JPADrawCalcColorAnmFrameRepeat() {} + virtual void calc(const JPADrawContext* pDC, JPABaseParticle* param_2); + virtual void calc(const JPADrawContext* pDC); +}; + +class JPADrawCalcColorAnmFrameReverse : public JPADrawCalcEmitterVisitor, public JPADrawCalcParticleVisitor { +public: + virtual ~JPADrawCalcColorAnmFrameReverse() {} + virtual void calc(const JPADrawContext* pDC, JPABaseParticle* param_2); + virtual void calc(const JPADrawContext* pDC); +}; + +class JPADrawCalcColorAnmFrameMerge : public JPADrawCalcEmitterVisitor, public JPADrawCalcParticleVisitor { +public: + virtual ~JPADrawCalcColorAnmFrameMerge() {} + virtual void calc(const JPADrawContext* pDC, JPABaseParticle* param_2); + virtual void calc(const JPADrawContext* pDC); +}; + +class JPADrawCalcColorAnmFrameRandom : public JPADrawCalcEmitterVisitor, public JPADrawCalcParticleVisitor { +public: + virtual ~JPADrawCalcColorAnmFrameRandom() {} + virtual void calc(const JPADrawContext* pDC, JPABaseParticle* param_2); + virtual void calc(const JPADrawContext* pDC); +}; + +class JPADrawCalcAlpha : public JPADrawCalcParticleVisitor { +public: + virtual ~JPADrawCalcAlpha() {} + virtual void calc(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawCalcAlphaFlickNrmSin : public JPADrawCalcParticleVisitor { +public: + virtual ~JPADrawCalcAlphaFlickNrmSin() {} + virtual void calc(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawCalcAlphaFlickAddSin : public JPADrawCalcParticleVisitor { +public: + virtual ~JPADrawCalcAlphaFlickAddSin() {} + virtual void calc(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawCalcAlphaFlickMultSin : public JPADrawCalcParticleVisitor { +public: + virtual ~JPADrawCalcAlphaFlickMultSin() {} + virtual void calc(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawCalcTextureAnmIndexNormal : public JPADrawCalcEmitterVisitor, public JPADrawCalcParticleVisitor { +public: + virtual ~JPADrawCalcTextureAnmIndexNormal() {} + virtual void calc(const JPADrawContext* pDC, JPABaseParticle* param_2); + virtual void calc(const JPADrawContext* pDC); +}; + +class JPADrawCalcTextureAnmIndexRepeat : public JPADrawCalcEmitterVisitor, public JPADrawCalcParticleVisitor { +public: + virtual ~JPADrawCalcTextureAnmIndexRepeat() {} + virtual void calc(const JPADrawContext* pDC, JPABaseParticle* param_2); + virtual void calc(const JPADrawContext* pDC); +}; + +class JPADrawCalcTextureAnmIndexReverse : public JPADrawCalcEmitterVisitor, public JPADrawCalcParticleVisitor { +public: + virtual ~JPADrawCalcTextureAnmIndexReverse() {} + virtual void calc(const JPADrawContext* pDC, JPABaseParticle* param_2); + virtual void calc(const JPADrawContext* pDC); +}; + +class JPADrawCalcTextureAnmIndexMerge : public JPADrawCalcEmitterVisitor, public JPADrawCalcParticleVisitor { +public: + virtual ~JPADrawCalcTextureAnmIndexMerge() {} + virtual void calc(const JPADrawContext* pDC, JPABaseParticle* param_2); + virtual void calc(const JPADrawContext* pDC); +}; + +class JPADrawCalcTextureAnmIndexRandom : public JPADrawCalcEmitterVisitor, public JPADrawCalcParticleVisitor { +public: + virtual ~JPADrawCalcTextureAnmIndexRandom() {} + virtual void calc(const JPADrawContext* pDC, JPABaseParticle* param_2); + virtual void calc(const JPADrawContext* pDC); +}; + +class JPADrawCalcChildAlphaOut : public JPADrawCalcParticleVisitor { +public: + virtual ~JPADrawCalcChildAlphaOut() {} + virtual void calc(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawCalcChildScaleOut : public JPADrawCalcParticleVisitor { +public: + virtual ~JPADrawCalcChildScaleOut() {} + virtual void calc(const JPADrawContext* pDC, JPABaseParticle* param_2); +}; + +class JPADrawVisitorContainer { +public: + JPADrawExecGenPrjMtx field_0x0; + JPADrawExecGenPrjTexMtx field_0x4; + JPADrawExecGenTexMtx0 field_0x8; + JPADrawExecGenIdtMtx field_0xc; + JPADrawExecSetTexMtx field_0x10; + JPADrawExecSetPointSize field_0x18; + JPADrawExecSetLineWidth field_0x1c; + JPADrawExecRegisterColorEmitterPE field_0x20; + JPADrawExecRegisterColorEmitterP field_0x24; + JPADrawExecRegisterColorEmitterE field_0x28; + JPADrawExecRegisterColorChildPE field_0x2c; + JPADrawExecRegisterPrmColorAnm field_0x30; + JPADrawExecRegisterPrmAlphaAnm field_0x34; + JPADrawExecRegisterEnvColorAnm field_0x38; + JPADrawExecRegisterPrmCEnv field_0x3c; + JPADrawExecRegisterPrmAEnv field_0x40; + JPADrawExecLoadDefaultTexture field_0x44; + JPADrawExecLoadTexture field_0x48; + JPADrawExecLoadExTex field_0x50; + JPADrawExecBillBoard field_0x54; + JPADrawExecRotBillBoard field_0x58; + JPADrawExecYBillBoard field_0x5c; + JPADrawExecRotYBillBoard field_0x60; + JPADrawExecDirectional field_0x64; + JPADrawExecRotDirectional field_0x68; + JPADrawExecDirectionalCross field_0x6c; + JPADrawExecRotDirectionalCross field_0x70; + JPADrawExecDirBillBoard field_0x74; + JPADrawExecRotation field_0x78; + JPADrawExecRotationCross field_0x7c; + JPADrawExecPoint field_0x80; + JPADrawExecLine field_0x84; + JPADrawExecStripe field_0x88; + JPADrawExecStripeCross field_0x8c; + JPADrawExecCallBack field_0x90; + JPADrawCalcScaleX field_0x98; + JPADrawCalcScaleXBySpeed field_0x9c; + JPADrawCalcScaleY field_0xa0; + JPADrawCalcScaleYBySpeed field_0xa4; + JPADrawCalcScaleCopyX2Y field_0xa8; + JPADrawCalcScaleAnmTimingNormal field_0xac; + JPADrawCalcScaleAnmTimingRepeatX field_0xb0; + JPADrawCalcScaleAnmTimingRepeatY field_0xb4; + JPADrawCalcScaleAnmTimingReverseX field_0xb8; + JPADrawCalcScaleAnmTimingReverseY field_0xbc; + JPADrawCalcColorPrm field_0xc0; + JPADrawCalcColorEnv field_0xc8; + JPADrawCalcColorCopyFromEmitter field_0xd0; + JPADrawCalcColorAnmFrameNormal field_0xd4; + JPADrawCalcColorAnmFrameRepeat field_0xdc; + JPADrawCalcColorAnmFrameReverse field_0xe4; + JPADrawCalcColorAnmFrameMerge field_0xec; + JPADrawCalcColorAnmFrameRandom field_0xf4; + JPADrawCalcAlpha field_0xfc; + JPADrawCalcAlphaFlickNrmSin field_0x100; + JPADrawCalcAlphaFlickAddSin field_0x104; + JPADrawCalcAlphaFlickMultSin field_0x108; + JPADrawCalcTextureAnmIndexNormal field_0x10c; + JPADrawCalcTextureAnmIndexRepeat field_0x114; + JPADrawCalcTextureAnmIndexReverse field_0x11c; + JPADrawCalcTextureAnmIndexMerge field_0x124; + JPADrawCalcTextureAnmIndexRandom field_0x12c; + JPADrawCalcChildAlphaOut field_0x134; + JPADrawCalcChildScaleOut field_0x138; +}; + +#endif /* JPADRAWVISITOR_H */ diff --git a/include/JSystem/JParticle/JPAExtraShape.h b/include/JSystem/JParticle/JPAExtraShape.h index 66887233..093a97c7 100644 --- a/include/JSystem/JParticle/JPAExtraShape.h +++ b/include/JSystem/JParticle/JPAExtraShape.h @@ -44,8 +44,8 @@ public: virtual f32 getScaleOutTiming() = 0; virtual f32 getScaleInValueX() = 0; virtual f32 getScaleInValueY() = 0; - virtual u32 getAnmTypeX() = 0; - virtual u32 getAnmTypeY() = 0; + virtual u8 getAnmTypeX() = 0; + virtual u8 getAnmTypeY() = 0; virtual u32 getAnmCycleX() = 0; virtual u32 getAnmCycleY() = 0; virtual f32 getIncreaseRateX() = 0; @@ -61,7 +61,7 @@ public: virtual f32 getAlphaOutTiming() = 0; virtual f32 getAlphaInValue() = 0; virtual f32 getAlphaBaseValue() = 0; - virtual u32 getAlphaWaveType() = 0; + virtual u8 getAlphaWaveType() = 0; virtual f32 getAlphaWaveParam1() = 0; virtual f32 getAlphaWaveParam2() = 0; virtual f32 getAlphaWaveParam3() = 0; @@ -90,8 +90,8 @@ public: virtual f32 getScaleOutTiming() { return mpData->mScaleOutTiming; } virtual f32 getScaleInValueX() { return mpData->mScaleInValueX; } virtual f32 getScaleInValueY() { return mpData->mScaleInValueY; } - virtual u32 getAnmTypeX() { return (mpData->mFlag >> 18) & 0x01; } - virtual u32 getAnmTypeY() { return (mpData->mFlag >> 19) & 0x01; } + virtual u8 getAnmTypeX() { return (mpData->mFlag >> 18) & 0x01; } + virtual u8 getAnmTypeY() { return (mpData->mFlag >> 19) & 0x01; } virtual u32 getAnmCycleX() { return mpData->mAnmCycleX; } virtual u32 getAnmCycleY() { return mpData->mAnmCycleY; } virtual f32 getIncreaseRateX() { return mIncreaseRateX; } @@ -107,7 +107,7 @@ public: virtual f32 getAlphaOutTiming() { return mpData->mAlphaOutTiming; } virtual f32 getAlphaInValue() { return mpData->mAlphaInValue; } virtual f32 getAlphaBaseValue() { return mpData->mAlphaBaseValue; } - virtual u32 getAlphaWaveType() { return (mpData->mFlag >> 2) & 0x03; } + virtual u8 getAlphaWaveType() { return (mpData->mFlag >> 2) & 0x03; } virtual f32 getAlphaWaveParam1() { return mpData->mAlphaWaveParam1; } virtual f32 getAlphaWaveParam2() { return mpData->mAlphaWaveParam2; } virtual f32 getAlphaWaveParam3() { return mpData->mAlphaWaveParam3; } diff --git a/include/JSystem/JParticle/JPASweepShape.h b/include/JSystem/JParticle/JPASweepShape.h index fe5291f2..05ccc8b5 100644 --- a/include/JSystem/JParticle/JPASweepShape.h +++ b/include/JSystem/JParticle/JPASweepShape.h @@ -29,7 +29,7 @@ struct JPASweepShapeData { class JPASweepShape { public: virtual ~JPASweepShape() {}; - virtual u32 getType() = 0; + virtual u8 getType() = 0; virtual u32 getDirType() = 0; virtual u32 getRotType() = 0; virtual u32 getBasePlaneType() = 0; @@ -68,7 +68,7 @@ class JPASweepShapeArc : public JPASweepShape { public: JPASweepShapeArc(const u8*); virtual ~JPASweepShapeArc() {}; - virtual u32 getType() { return (mpData->mFlag >> 0) & 0x0F; } + virtual u8 getType() { return (mpData->mFlag >> 0) & 0x0F; } virtual u32 getDirType() { return (mpData->mFlag >> 4) & 0x07; } virtual u32 getRotType() { return (mpData->mFlag >> 7) & 0x07; } virtual u32 getBasePlaneType() { return (mpData->mFlag >> 10) & 0x01; } |
