Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
JPAParticle.h
Go to the documentation of this file.
1#ifndef JPAPARTICLE_H
2#define JPAPARTICLE_H
3
4#include <dolphin/gx.h>
5#include "JSystem/JGeometry.h"
6
7class JKRHeap;
15
21public:
28 f32 getWidth(JPABaseEmitter const*) const;
29 f32 getHeight(JPABaseEmitter const*) const;
30 int getAge() const { return mAge; }
35 u16 getRotateAngle() const { return mRotateAngle; }
40 u32 checkStatus(u32 flag) const { return mStatus & flag; }
44 void getVelVec(JGeometry::TVec3<f32>* vec) const { vec->set(mVelocity); }
47 void getBaseAxis(JGeometry::TVec3<f32>* vec) const { vec->set(mBaseAxis); }
48
49public:
58 /* 0x60 */ f32 mParticleScaleX;
59 /* 0x64 */ f32 mParticleScaleY;
60 /* 0x68 */ f32 mScaleOut;
62 /* 0x70 */ f32 mMoment;
63 /* 0x74 */ f32 mDrag;
64 /* 0x78 */ u32 field_0x78;
65 /* 0x7C */ u32 mStatus;
66 /* 0x80 */ s16 mAge;
67 /* 0x82 */ s16 mLifeTime;
68 /* 0x84 */ f32 mTime;
69 /* 0x88 */ u16 mRotateAngle;
70 /* 0x8A */ s16 mRotateSpeed;
71 /* 0x8C */ GXColor mPrmClr;
72 /* 0x90 */ GXColor mEnvClr;
73 /* 0x94 */ u8 mTexAnmIdx;
74 /* 0x95 */ u8 mAnmRandom;
76};
77
83public:
84 virtual ~JPAParticleCallBack() = 0;
87};
88
89// not sure where this belongs
90static inline u32 COLOR_MULTI(u32 a, u32 b) {
91 return ((a * (b + 1)) * 0x10000) >> 24;
92}
93
94#endif /* JPAPARTICLE_H */
static BOOL flag
Definition DEMOAVX.c:20
static u32 COLOR_MULTI(u32 a, u32 b)
Definition JPAParticle.h:90
Definition JKRHeap.h:23
Definition JPAEmitter.h:99
Definition JPAParticle.h:20
f32 mParticleScaleY
Definition JPAParticle.h:59
void getLocalPosition(JGeometry::TVec3< f32 > *vec) const
Definition JPAParticle.h:45
u8 mPrmColorAlphaAnm
Definition JPAParticle.h:75
JGeometry::TVec3< f32 > mVelType1
Definition JPAParticle.h:54
void setInvisibleParticleFlag()
Definition JPAParticle.h:42
GXColor mEnvClr
Definition JPAParticle.h:72
u32 field_0x78
Definition JPAParticle.h:64
f32 mMoment
Definition JPAParticle.h:62
u8 mTexAnmIdx
Definition JPAParticle.h:73
void getOffsetPosition(JGeometry::TVec3< f32 > *pos) const
Definition JPAParticle.h:34
void initStatus(u32 status)
Definition JPAParticle.h:41
s16 mLifeTime
Definition JPAParticle.h:67
s16 mRotateSpeed
Definition JPAParticle.h:70
JGeometry::TVec3< f32 > mOffsetPosition
Definition JPAParticle.h:52
bool calc_c(JPAEmitterWorkData *)
Definition JPAParticle.cpp:253
JGeometry::TVec3< f32 > mVelType2
Definition JPAParticle.h:56
f32 getWidth(JPABaseEmitter const *) const
Definition JPAParticle.cpp:305
JGeometry::TVec3< f32 > mBaseAxis
Definition JPAParticle.h:57
void getBaseAxis(JGeometry::TVec3< f32 > *vec) const
Definition JPAParticle.h:47
GXColor mPrmClr
Definition JPAParticle.h:71
JGeometry::TVec3< f32 > mPosition
Definition JPAParticle.h:50
JGeometry::TVec3< f32 > mVelocity
Definition JPAParticle.h:53
f32 mParticleScaleX
Definition JPAParticle.h:58
f32 mScaleOut
Definition JPAParticle.h:60
void getBaseAxis(JGeometry::TVec3< f32 > &vec) const
Definition JPAParticle.h:46
f32 getParticleScaleY() const
Definition JPAParticle.h:38
u32 mStatus
Definition JPAParticle.h:65
u32 checkStatus(u32 flag) const
Definition JPAParticle.h:40
f32 getHeight(JPABaseEmitter const *) const
Definition JPAParticle.cpp:309
JGeometry::TVec3< f32 > mLocalPosition
Definition JPAParticle.h:51
int getAge() const
Definition JPAParticle.h:30
void setDeleteParticleFlag()
Definition JPAParticle.h:43
bool canCreateChild(JPAEmitterWorkData *)
Definition JPAParticle.cpp:295
s16 mAge
Definition JPAParticle.h:66
u16 mRotateAngle
Definition JPAParticle.h:69
void getVelVec(JGeometry::TVec3< f32 > *vec) const
Definition JPAParticle.h:44
bool calc_p(JPAEmitterWorkData *)
Definition JPAParticle.cpp:207
void setStatus(u32 flag)
Definition JPAParticle.h:39
u16 getRotateAngle() const
Definition JPAParticle.h:35
void init_p(JPAEmitterWorkData *)
Definition JPAParticle.cpp:14
void getOffsetPosition(JGeometry::TVec3< f32 > &pos)
Definition JPAParticle.h:33
void setOffsetPosition(const JGeometry::TVec3< f32 > &pos)
Definition JPAParticle.h:31
void init_c(JPAEmitterWorkData *, JPABaseParticle *)
Definition JPAParticle.cpp:124
void setOffsetPosition(f32 x, f32 y, f32 z)
Definition JPAParticle.h:32
~JPABaseParticle()
Definition JPAParticle.h:22
void getGlobalPosition(JGeometry::TVec3< f32 > *pos) const
Definition JPAParticle.h:36
u8 mAnmRandom
Definition JPAParticle.h:74
f32 mTime
Definition JPAParticle.h:68
f32 mDrag
Definition JPAParticle.h:63
JGeometry::TVec3< f32 > mVelType0
Definition JPAParticle.h:55
f32 mAlphaWaveRandom
Definition JPAParticle.h:61
f32 getParticleScaleX() const
Definition JPAParticle.h:37
Definition JPAEmitter.h:75
Definition JPAEmitterManager.h:23
Definition JPAParticle.h:82
virtual void execute(JPABaseEmitter *, JPABaseParticle *)
Definition JPAParticle.h:85
virtual void draw(JPABaseEmitter *, JPABaseParticle *)
Definition JPAParticle.h:86
virtual ~JPAParticleCallBack()=0
Definition JPAParticle.cpp:10
Definition JPAResourceManager.h:14
double x double x
Definition e_atan2.c:58
double x double y
Definition e_atan2.c:58
z
Definition e_log.c:139
static u32 status
Definition fstload.c:9
unsigned long u32
Definition types.h:12
signed short int s16
Definition types.h:9
float f32
Definition types.h:25
unsigned short int u16
Definition types.h:10
unsigned char u8
Definition types.h:8
a
Definition k_cos.c:89
void set(const TVec3< U > &other)
Definition JGeometry.h:199
Definition JGeometry.h:75
void set(const TVec3 &other)
Definition JGeometry.h:80
Definition JPAEmitter.h:22
Definition GXStruct.h:30