mirror of
https://github.com/zeldaret/tww.git
synced 2026-06-19 23:23:14 -04:00
JPADraw more work
This commit is contained in:
@@ -14,13 +14,17 @@ public:
|
||||
JPADrawClipBoard() {}
|
||||
~JPADrawClipBoard() {}
|
||||
|
||||
typedef void(*DirTypeFunc)(JPABaseParticle*, JPABaseEmitter*, JGeometry::TVec3<f32>&);
|
||||
typedef void(*RotTypeFunc)(f32, f32, Mtx&);
|
||||
typedef void(*BasePlaneTypeFunc)(f32, f32, f32, f32, JGeometry::TVec3<f32>*);
|
||||
|
||||
/* 0x00 */ JPADrawSetupTev mSetupTev;
|
||||
/* 0x04 */ f32 mGlobalScaleX;
|
||||
/* 0x08 */ f32 mGlobalScaleY;
|
||||
/* 0x0C */ f32 mPivotX;
|
||||
/* 0x10 */ f32 mPivotY;
|
||||
/* 0x14 */ JGeometry::TVec2<f32> field_0x14[4];
|
||||
/* 0x34 */ MtxP mDrawMtx;
|
||||
/* 0x34 */ MtxP mDrawMtxPtr;
|
||||
/* 0x38 */ f32 field_0x38;
|
||||
/* 0x3C */ f32 field_0x3c;
|
||||
/* 0x40 */ f32 field_0x40;
|
||||
@@ -33,11 +37,13 @@ public:
|
||||
/* 0x5C */ f32 field_0x5c;
|
||||
/* 0x60 */ f32 field_0x60;
|
||||
/* 0x64 */ f32 field_0x64;
|
||||
/* 0x68 */ Mtx field_0x68;
|
||||
/* 0x68 */ Mtx mDrawMtx;
|
||||
/* 0x98 */ GXColor mPrmColor;
|
||||
/* 0x9C */ GXColor mEnvColor;
|
||||
/* 0xA0 */ void* field_0xa0;
|
||||
/* 0xA4 */ u8 field_0xa4[0xb4 - 0xa4];
|
||||
/* 0xA0 */ DirTypeFunc mDirTypeFunc;
|
||||
/* 0xA4 */ RotTypeFunc mRotTypeFunc;
|
||||
/* 0xA8 */ BasePlaneTypeFunc mBasePlaneTypeFunc;
|
||||
/* 0xAC */ u8 field_0xa4[0xb4 - 0xac];
|
||||
};
|
||||
|
||||
class JPADraw {
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define JPADRAWVISITOR_H
|
||||
|
||||
#include "JSystem/JSupport/JSUList.h"
|
||||
#include "dolphin/mtx/mtx.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
class JPABaseEmitter;
|
||||
@@ -520,4 +521,19 @@ public:
|
||||
/* 0x138 */ JPADrawCalcChildScaleOut mCalcChildScaleOut;
|
||||
};
|
||||
|
||||
void dirTypeVel(JPABaseParticle*, JPABaseEmitter*, JGeometry::TVec3<f32>&);
|
||||
void dirTypePos(JPABaseParticle*, JPABaseEmitter*, JGeometry::TVec3<f32>&);
|
||||
void dirTypePosInv(JPABaseParticle*, JPABaseEmitter*, JGeometry::TVec3<f32>&);
|
||||
void dirTypeEmtrDir(JPABaseParticle*, JPABaseEmitter*, JGeometry::TVec3<f32>&);
|
||||
void dirTypePrevPtcl(JPABaseParticle*, JPABaseEmitter*, JGeometry::TVec3<f32>&);
|
||||
|
||||
void rotTypeY(f32, f32, Mtx&);
|
||||
void rotTypeX(f32, f32, Mtx&);
|
||||
void rotTypeZ(f32, f32, Mtx&);
|
||||
void rotTypeXYZ(f32, f32, Mtx&);
|
||||
void rotTypeYJiggle(f32, f32, Mtx&);
|
||||
|
||||
void basePlaneTypeXY(f32, f32, f32, f32, JGeometry::TVec3<f32>*);
|
||||
void basePlaneTypeXZ(f32, f32, f32, f32, JGeometry::TVec3<f32>*);
|
||||
|
||||
#endif /* JPADRAWVISITOR_H */
|
||||
|
||||
@@ -52,8 +52,8 @@ public:
|
||||
virtual f32 getIncreaseRateY() = 0;
|
||||
virtual f32 getDecreaseRateX() = 0;
|
||||
virtual f32 getDecreaseRateY() = 0;
|
||||
virtual u32 getPivotX() = 0;
|
||||
virtual u32 getPivotY() = 0;
|
||||
virtual u8 getPivotX() = 0;
|
||||
virtual u8 getPivotY() = 0;
|
||||
virtual f32 getRandomScale() = 0;
|
||||
virtual BOOL isEnableAlpha() = 0;
|
||||
virtual BOOL isEnableSinWave() = 0;
|
||||
@@ -98,8 +98,8 @@ public:
|
||||
virtual f32 getIncreaseRateY() { return mIncreaseRateY; }
|
||||
virtual f32 getDecreaseRateX() { return mDecreaseRateX; }
|
||||
virtual f32 getDecreaseRateY() { return mDecreaseRateY; }
|
||||
virtual u32 getPivotX() { return (mpData->mFlag >> 14) & 0x03; }
|
||||
virtual u32 getPivotY() { return (mpData->mFlag >> 16) & 0x03; }
|
||||
virtual u8 getPivotX() { return (mpData->mFlag >> 14) & 0x03; }
|
||||
virtual u8 getPivotY() { return (mpData->mFlag >> 16) & 0x03; }
|
||||
virtual f32 getRandomScale() { return mpData->mRandomScale; }
|
||||
virtual BOOL isEnableAlpha() { return (mpData->mFlag & 0x01); }
|
||||
virtual BOOL isEnableSinWave() { return (mpData->mFlag & 0x02); }
|
||||
|
||||
@@ -18,6 +18,10 @@ public:
|
||||
pTexResArray[id]->load(texMap);
|
||||
}
|
||||
|
||||
inline void loadDefaultTexture(GXTexMapID texMap) {
|
||||
defaultTex.load(texMap);
|
||||
}
|
||||
|
||||
public:
|
||||
/* 0x00 */ JPADefaultTexture defaultTex;
|
||||
/* 0x24 */ u32 registNum;
|
||||
|
||||
@@ -30,9 +30,9 @@ class JPASweepShape {
|
||||
public:
|
||||
virtual ~JPASweepShape() {};
|
||||
virtual u8 getType() = 0;
|
||||
virtual u32 getDirType() = 0;
|
||||
virtual u32 getRotType() = 0;
|
||||
virtual u32 getBasePlaneType() = 0;
|
||||
virtual u8 getDirType() = 0;
|
||||
virtual u8 getRotType() = 0;
|
||||
virtual u8 getBasePlaneType() = 0;
|
||||
virtual s16 getLife() = 0;
|
||||
virtual s16 getRate() = 0;
|
||||
virtual f32 getTiming() = 0;
|
||||
@@ -69,9 +69,9 @@ public:
|
||||
JPASweepShapeArc(const u8*);
|
||||
virtual ~JPASweepShapeArc() {};
|
||||
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; }
|
||||
virtual u8 getDirType() { return (mpData->mFlag >> 4) & 0x07; }
|
||||
virtual u8 getRotType() { return (mpData->mFlag >> 7) & 0x07; }
|
||||
virtual u8 getBasePlaneType() { return (mpData->mFlag >> 10) & 0x01; }
|
||||
virtual s16 getLife() { return mpData->mLife; }
|
||||
virtual s16 getRate() { return mpData->mRate; }
|
||||
virtual f32 getTiming() { return mpData->mTiming; }
|
||||
|
||||
@@ -32,15 +32,22 @@ public:
|
||||
virtual JUTTexture* getJUTTexture() { return &mTexture; }
|
||||
|
||||
public:
|
||||
JUTTexture mTexture;
|
||||
const JPATextureData* mpData;
|
||||
/* 0x00 */ JUTTexture mTexture;
|
||||
/* 0x40 */ const JPATextureData* mpData;
|
||||
};
|
||||
|
||||
struct JPADefaultTexture {
|
||||
public:
|
||||
JPADefaultTexture() : imgBuf(NULL) {}
|
||||
void initialize(JKRHeap *);
|
||||
u8 * imgBuf;
|
||||
GXTexObj mTexObj;
|
||||
|
||||
inline void load(GXTexMapID texMap) {
|
||||
GXLoadTexObj(&mTexObj, texMap);
|
||||
}
|
||||
|
||||
public:
|
||||
/* 0x00 */ u8 * imgBuf;
|
||||
/* 0x04 */ GXTexObj mTexObj;
|
||||
};
|
||||
|
||||
#endif /* JPATEXTURE_H */
|
||||
|
||||
Reference in New Issue
Block a user