#ifndef JPADRAW_H #define JPADRAW_H #include "dolphin/types.h" #include "dolphin/gx/GXStruct.h" #include "dolphin/gx/GXEnum.h" #include "dolphin/mtx/mtx.h" #include "JSystem/JParticle/JPAParticle.h" class JPABaseShapeArc; class JPAExtraShapeArc; class JPASweepShapeArc; class JPAExTexShapeArc; class JPATextureResource; class JPABaseEmitter; class JPABaseParticle; class JPADraw; class JPADrawExecEmitterVisitor; class JPADrawExecParticleVisitor; class JPADrawContext { /* 0x00 */ JPABaseEmitter* mpBaseEmitter; /* 0x04 */ JPABaseShapeArc* mpBaseArc; /* 0x08 */ JPAExtraShapeArc* mpExtraArc; /* 0x0C */ JPASweepShapeArc* mpSweepArc; /* 0x10 */ JPAExTexShapeArc* mpExTexShape; /* 0x14 */ JPADraw* mpDraw; /* 0x18 */ JSUPtrList* mpActiveParticles; /* 0x1C */ JPATextureResource* mpTextureResource; /* 0x20 */ s16* mpTexIdxArray; }; class JPADraw { public: enum JPADrawVisitorDefFlags {}; void initialize(JPABaseEmitter*, JPATextureResource*); void draw(MtxP); void calc(); void calcParticle(JPABaseParticle*); void calcChild(JPABaseParticle*); void initParticle(JPABaseParticle*); void initChild(JPABaseParticle*, JPABaseParticle*); void loadTexture(unsigned char, _GXTexMapID); void setDrawExecVisitorsBeforeCB(const JPADraw::JPADrawVisitorDefFlags&); void setDrawExecVisitorsAfterCB(const JPADraw::JPADrawVisitorDefFlags&); void setDrawCalcVisitors(const JPADraw::JPADrawVisitorDefFlags&); void setParticleClipBoard(); void setChildClipBoard(); void drawParticle(); void drawChild(); void zDraw(); void zDrawParticle(); void zDrawChild(); void loadYBBMtx(MtxP); /* 0x00 */ JPADrawExecEmitterVisitor* mpExecEmtrVis[1]; /* 0x04 */ JPADrawExecEmitterVisitor* mpExecEmtrPVis[5]; /* 0x18 */ JPADrawExecEmitterVisitor* mpExecEmtrCVis[3]; /* 0x24 */ JPADrawExecParticleVisitor* mpCalcEmtrVis[4]; /* 0x34 */ JPADrawExecParticleVisitor* mpExecPtclVis[5]; /* 0x48 */ JPADrawExecParticleVisitor* mpCalcPtclVis[10]; /* 0x70 */ JPADrawExecParticleVisitor* mpExecChldVis[4]; /* 0x80 */ JPADrawExecParticleVisitor* mpCalcChldVis[2]; /* 0x88 */ u8 mExecEmtrVisNum; /* 0x89 */ u8 mExecEmtrPVisNum; /* 0x8A */ u8 mExecEmtrCVisNum; /* 0x8B */ u8 mCalcEmtrVisNum; /* 0x8C */ u8 mExecPtclVisNum; /* 0x8D */ u8 mCalcPtclVisNum; /* 0x8E */ u8 mExecChldVisNum; /* 0x8F */ u8 mCalcChldVisNum; /* 0x90 */ JPADrawContext mDrawContext; /* 0xB4 */ f32 mScaleOut; /* 0xB8 */ GXColor mPrmColor; /* 0xBC */ GXColor mEnvColor; /* 0xC0 */ s16 mTexIdx; /* 0xC2 */ u8 field_0xc2; /* 0xC3 */ u8 field_0xC3[0xC4 - 0xC3]; }; #endif /* JPADRAW_H */