summaryrefslogtreecommitdiff
path: root/include/JSystem/JParticle
diff options
context:
space:
mode:
authorJcw87 <Jcw87@users.noreply.github.com>2023-12-19 02:54:59 -0800
committerJcw87 <Jcw87@users.noreply.github.com>2023-12-19 03:22:43 -0800
commitde811bc95e770282d535fccdd5a2d5b1d47db1dc (patch)
tree40d9c998600e474a3acf9978fb49d10ae9afc7af /include/JSystem/JParticle
parent985f1df0b7746b6ebc159d07fc7581bd3ead1b20 (diff)
JParticle
Diffstat (limited to 'include/JSystem/JParticle')
-rw-r--r--include/JSystem/JParticle/JPABaseShape.h20
-rw-r--r--include/JSystem/JParticle/JPADraw.h76
-rw-r--r--include/JSystem/JParticle/JPADrawSetupTev.h18
-rw-r--r--include/JSystem/JParticle/JPADrawVisitor.h523
-rw-r--r--include/JSystem/JParticle/JPAExtraShape.h12
-rw-r--r--include/JSystem/JParticle/JPASweepShape.h4
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; }