Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_particle_copoly.h
Go to the documentation of this file.
1#ifndef D_PARTICLE_D_PARTICLE_COPOLY_H
2#define D_PARTICLE_D_PARTICLE_COPOLY_H
3
4#include "d/d_com_inf_game.h"
5
6class dBgS_Acch;
7class dKy_tevstr_c;
9
25class dPaPo_c {
26public:
27 void init(dBgS_Acch*, f32, f32);
28 int checkWaterIn(cXyz*, cXyz const*, dKy_tevstr_c const*, u32, s8, f32, f32);
29 void setEffect(u32*, int, dKy_tevstr_c const*, cXyz const*, u32, u32,
30 cXyz const*, csXyz const*, s8, u8*, u8*);
31 int setEffectCenter(dKy_tevstr_c const*, cXyz const*, u32, u32, cXyz const*,
32 csXyz const*, cXyz const*, s8, f32, f32);
33 void clearID(u32*, u8*);
34
36 void changeWaterOffset(f32 i_offset) { mWaterOffset = i_offset; }
37 void changeRippleOffset(f32 i_offset) { mRippleOffset = i_offset; }
38 u8 getCenterEffType(int i_idx) const { return mCenterEffType[i_idx]; }
39 JPABaseEmitter* getCenterEmitter(int param_0, int param_1) {
40 return dComIfGp_particle_getEmitter(field_0x8[param_0][param_1]);
41 }
42
43 /* 0x00 */ u32 field_0x0[2];
44 /* 0x08 */ u32 field_0x8[2][4];
45 /* 0x28 */ dBgS_Acch* field_0x28;
46 /* 0x2C */ f32 mWaterOffset;
47 /* 0x30 */ f32 mRippleOffset;
48 /* 0x34 */ u8 mCenterEffType[2];
49 /* 0x36 */ u8 field_0x36;
50 /* 0x37 */ u8 field_0x37;
51};
52
53class dPaPoT_c : public dPaPo_c {
54public:
55 int setEffectTwo(dKy_tevstr_c const*, cXyz const*, u32, u32, cXyz const*,
56 cXyz const*, cXyz const*, csXyz const*, cXyz const*, s8, f32,
57 f32);
58 void clearTwoAllID();
59
62 u8 getRightEffType(int i_idx) const { return mRightEffType[i_idx]; }
63 u8 getLeftEffType(int i_idx) const { return mLeftEffType[i_idx]; }
64 JPABaseEmitter* getRightEmitter(int param_0, int param_1) {
65 return dComIfGp_particle_getEmitter(mRightEmitter[param_0][param_1]);
66 }
67 JPABaseEmitter* getLeftEmitter(int param_0, int param_1) {
68 return dComIfGp_particle_getEmitter(mLeftEmitter[param_0][param_1]);
69 }
70
71 typedef u8 (dPaPoT_c::*effTypeFunc)(int) const;
72 typedef JPABaseEmitter* (dPaPoT_c::*emitterFunc)(int, int);
73
74 u8 getTypeTwo(int param_0, int param_1) const {
75 return (this->*m_typeTwoData[param_0])(param_1);
76 }
77 JPABaseEmitter* getEmitterTwo(int param_0, int param_1, int param_2) {
78 return (this->*m_emitterTwoData[param_0])(param_1, param_2);
79 }
80
83
84 /* 0x38 */ u32 mLeftEmitter[2][4];
85 /* 0x58 */ u32 mRightEmitter[2][4];
86 /* 0x78 */ u8 mLeftEffType[2];
87 /* 0x7A */ u8 mRightEffType[2];
88 /* 0x7C */ u8 field_0x7c;
89 /* 0x7D */ u8 field_0x7d;
90};
91
92class dPaPoF_c : public dPaPoT_c {
93public:
94 int setEffectFour(dKy_tevstr_c const*, cXyz const*, u32, u32, cXyz const*,
95 cXyz const*, cXyz const*, cXyz const*, cXyz const*,
96 csXyz const*, cXyz const*, s8, f32, f32);
97 void clearFourAllID();
98
101 u8 getBackRightEffType(int i_idx) const { return mBackRightEffType[i_idx]; }
102 u8 getBackLeftEffType(int i_idx) const { return mBackLeftEffType[i_idx]; }
103 JPABaseEmitter* getBackRightEmitter(int param_0, int param_1) {
104 return dComIfGp_particle_getEmitter(mBackRightEmitter[param_0][param_1]);
105 }
106 JPABaseEmitter* getBackLeftEmitter(int param_0, int param_1) {
107 return dComIfGp_particle_getEmitter(mBackLeftEmitter[param_0][param_1]);
108 }
109
110 typedef u8 (dPaPoF_c::*effTypeFunc)(int) const;
111 typedef JPABaseEmitter* (dPaPoF_c::*emitterFunc)(int, int);
112
113 u8 getTypeFour(int param_0, int param_1) const {
114 return (this->*m_typeFourData[param_0])(param_1);
115 }
116 JPABaseEmitter* getEmitterFour(int param_0, int param_1, int param_2) {
117 return (this->*m_emitterFourData[param_0])(param_1, param_2);
118 }
119
122
123 /* 0x80 */ u32 mBackLeftEmitter[2][4];
124 /* 0xA0 */ u32 mBackRightEmitter[2][4];
125 /* 0xC0 */ u8 mBackLeftEffType[2];
126 /* 0xC2 */ u8 mBackRightEffType[2];
127 /* 0xC4 */ u8 field_0xc4;
128 /* 0xC5 */ u8 field_0xc5;
129};
130
131#endif /* D_PARTICLE_D_PARTICLE_COPOLY_H */
Definition JPAEmitter.h:101
Definition c_sxyz.h:10
Definition d_bg_s_acch.h:62
Definition d_kankyo_tev_str.h:7
Definition d_particle_copoly.h:92
JPABaseEmitter * getBackLeftEmitter(int param_0, int param_1)
Definition d_particle_copoly.h:106
u8 mBackLeftEffType[2]
Definition d_particle_copoly.h:125
int setEffectFour(dKy_tevstr_c const *, cXyz const *, u32, u32, cXyz const *, cXyz const *, cXyz const *, cXyz const *, cXyz const *, csXyz const *, cXyz const *, s8, f32, f32)
Definition d_particle_copoly.cpp:184
JPABaseEmitter * getBackRightEmitter(int param_0, int param_1)
Definition d_particle_copoly.h:103
u8 getTypeFour(int param_0, int param_1) const
Definition d_particle_copoly.h:113
void clearBRightID()
Definition d_particle_copoly.h:100
u8(dPaPoF_c::*) effTypeFunc(int) const
Definition d_particle_copoly.h:110
u32 mBackLeftEmitter[2][4]
Definition d_particle_copoly.h:123
JPABaseEmitter * getEmitterFour(int param_0, int param_1, int param_2)
Definition d_particle_copoly.h:116
u8 mBackRightEffType[2]
Definition d_particle_copoly.h:126
JPABaseEmitter *(dPaPoF_c::*) emitterFunc(int, int)
Definition d_particle_copoly.h:111
static emitterFunc m_emitterFourData[]
Definition d_particle_copoly.h:237
static effTypeFunc m_typeFourData[]
Definition d_particle_copoly.h:232
u8 field_0xc4
Definition d_particle_copoly.h:127
u8 getBackLeftEffType(int i_idx) const
Definition d_particle_copoly.h:102
u8 field_0xc5
Definition d_particle_copoly.h:128
u32 mBackRightEmitter[2][4]
Definition d_particle_copoly.h:124
u8 getBackRightEffType(int i_idx) const
Definition d_particle_copoly.h:101
void clearBLeftID()
Definition d_particle_copoly.h:99
void clearFourAllID()
Definition d_particle_copoly.cpp:214
Definition d_particle_copoly.h:53
u32 mRightEmitter[2][4]
Definition d_particle_copoly.h:85
static emitterFunc m_emitterTwoData[]
Definition d_particle_copoly.h:226
u8 getLeftEffType(int i_idx) const
Definition d_particle_copoly.h:63
JPABaseEmitter *(dPaPoT_c::*) emitterFunc(int, int)
Definition d_particle_copoly.h:72
u8 field_0x7c
Definition d_particle_copoly.h:88
void clearRightID()
Definition d_particle_copoly.h:61
JPABaseEmitter * getLeftEmitter(int param_0, int param_1)
Definition d_particle_copoly.h:67
void clearTwoAllID()
Definition d_particle_copoly.cpp:175
int setEffectTwo(dKy_tevstr_c const *, cXyz const *, u32, u32, cXyz const *, cXyz const *, cXyz const *, csXyz const *, cXyz const *, s8, f32, f32)
Definition d_particle_copoly.cpp:146
void clearLeftID()
Definition d_particle_copoly.h:60
u8 field_0x7d
Definition d_particle_copoly.h:89
JPABaseEmitter * getEmitterTwo(int param_0, int param_1, int param_2)
Definition d_particle_copoly.h:77
static effTypeFunc m_typeTwoData[]
Definition d_particle_copoly.h:220
u8(dPaPoT_c::*) effTypeFunc(int) const
Definition d_particle_copoly.h:71
u8 mRightEffType[2]
Definition d_particle_copoly.h:87
u8 mLeftEffType[2]
Definition d_particle_copoly.h:86
JPABaseEmitter * getRightEmitter(int param_0, int param_1)
Definition d_particle_copoly.h:64
u8 getTypeTwo(int param_0, int param_1) const
Definition d_particle_copoly.h:74
u8 getRightEffType(int i_idx) const
Definition d_particle_copoly.h:62
u32 mLeftEmitter[2][4]
Definition d_particle_copoly.h:84
Particle effect management class for center-based effects.
Definition d_particle_copoly.h:25
u8 field_0x36
Definition d_particle_copoly.h:49
u32 field_0x8[2][4]
Definition d_particle_copoly.h:44
dBgS_Acch * field_0x28
Definition d_particle_copoly.h:45
int setEffectCenter(dKy_tevstr_c const *, cXyz const *, u32, u32, cXyz const *, csXyz const *, cXyz const *, s8, f32, f32)
Definition d_particle_copoly.cpp:110
int checkWaterIn(cXyz *, cXyz const *, dKy_tevstr_c const *, u32, s8, f32, f32)
Definition d_particle_copoly.cpp:20
void clearCenterID()
Definition d_particle_copoly.h:35
void changeRippleOffset(f32 i_offset)
Definition d_particle_copoly.h:37
void changeWaterOffset(f32 i_offset)
Definition d_particle_copoly.h:36
f32 mWaterOffset
Definition d_particle_copoly.h:46
u8 getCenterEffType(int i_idx) const
Definition d_particle_copoly.h:38
void clearID(u32 *, u8 *)
Definition d_particle_copoly.cpp:137
void setEffect(u32 *, int, dKy_tevstr_c const *, cXyz const *, u32, u32, cXyz const *, csXyz const *, s8, u8 *, u8 *)
Definition d_particle_copoly.cpp:61
JPABaseEmitter * getCenterEmitter(int param_0, int param_1)
Definition d_particle_copoly.h:39
u32 field_0x0[2]
Definition d_particle_copoly.h:43
f32 mRippleOffset
Definition d_particle_copoly.h:47
u8 field_0x37
Definition d_particle_copoly.h:50
u8 mCenterEffType[2]
Definition d_particle_copoly.h:48
JPABaseEmitter * dComIfGp_particle_getEmitter(u32 param_0)
Definition d_com_inf_game.h:4132
static initFunc init[]
Definition d_menu_collect.cpp:39
signed char s8
Definition types.h:7
unsigned long u32
Definition types.h:12
float f32
Definition types.h:25
unsigned char u8
Definition types.h:8
Definition c_xyz.h:7