Loading [MathJax]/jax/input/TeX/config.js
Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
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
10class dPaPo_c {
11public:
12 /* 80050C9C */ void init(dBgS_Acch*, f32, f32);
13 /* 80050CC4 */ int checkWaterIn(cXyz*, cXyz const*, dKy_tevstr_c const*, u32, s8, f32, f32);
14 /* 80050E7C */ void setEffect(u32*, int, dKy_tevstr_c const*, cXyz const*, u32, u32,
15 cXyz const*, csXyz const*, s8, u8*, u8*);
16 /* 80051008 */ int setEffectCenter(dKy_tevstr_c const*, cXyz const*, u32, u32, cXyz const*,
17 csXyz const*, cXyz const*, s8, f32, f32);
18 /* 8005113C */ void clearID(u32*, u8*);
19
21 void changeWaterOffset(f32 i_offset) { mWaterOffset = i_offset; }
22 void changeRippleOffset(f32 i_offset) { mRippleOffset = i_offset; }
23 u8 getCenterEffType(int i_idx) const { return mCenterEffType[i_idx]; }
24 JPABaseEmitter* getCenterEmitter(int param_0, int param_1) {
25 return dComIfGp_particle_getEmitter(field_0x8[param_0][param_1]);
26 }
27
28 /* 0x00 */ u32 field_0x0[2];
29 /* 0x08 */ u32 field_0x8[2][4];
30 /* 0x28 */ dBgS_Acch* field_0x28;
31 /* 0x2C */ f32 mWaterOffset;
32 /* 0x30 */ f32 mRippleOffset;
33 /* 0x34 */ u8 mCenterEffType[2];
34 /* 0x36 */ u8 field_0x36;
35 /* 0x37 */ u8 field_0x37;
36};
37
38class dPaPoT_c : public dPaPo_c {
39public:
40 /* 8005115C */ int setEffectTwo(dKy_tevstr_c const*, cXyz const*, u32, u32, cXyz const*,
41 cXyz const*, cXyz const*, csXyz const*, cXyz const*, s8, f32,
42 f32);
43 /* 80051294 */ void clearTwoAllID();
44
47 u8 getRightEffType(int i_idx) const { return mRightEffType[i_idx]; }
48 u8 getLeftEffType(int i_idx) const { return mLeftEffType[i_idx]; }
49 JPABaseEmitter* getRightEmitter(int param_0, int param_1) {
50 return dComIfGp_particle_getEmitter(mRightEmitter[param_0][param_1]);
51 }
52 JPABaseEmitter* getLeftEmitter(int param_0, int param_1) {
53 return dComIfGp_particle_getEmitter(mLeftEmitter[param_0][param_1]);
54 }
55
56 typedef u8 (dPaPoT_c::*effTypeFunc)(int) const;
57 typedef JPABaseEmitter* (dPaPoT_c::*emitterFunc)(int, int);
58
59 u8 getTypeTwo(int param_0, int param_1) const {
60 return (this->*m_typeTwoData[param_0])(param_1);
61 }
62 JPABaseEmitter* getEmitterTwo(int param_0, int param_1, int param_2) {
63 return (this->*m_emitterTwoData[param_0])(param_1, param_2);
64 }
65
68
69 /* 0x38 */ u32 mLeftEmitter[2][4];
70 /* 0x58 */ u32 mRightEmitter[2][4];
71 /* 0x78 */ u8 mLeftEffType[2];
72 /* 0x7A */ u8 mRightEffType[2];
73 /* 0x7C */ u8 field_0x7c;
74 /* 0x7D */ u8 field_0x7d;
75};
76
77class dPaPoF_c : public dPaPoT_c {
78public:
79 /* 800512E8 */ int setEffectFour(dKy_tevstr_c const*, cXyz const*, u32, u32, cXyz const*,
80 cXyz const*, cXyz const*, cXyz const*, cXyz const*,
81 csXyz const*, cXyz const*, s8, f32, f32);
82 /* 80051424 */ void clearFourAllID();
83
86 u8 getBackRightEffType(int i_idx) const { return mBackRightEffType[i_idx]; }
87 u8 getBackLeftEffType(int i_idx) const { return mBackLeftEffType[i_idx]; }
88 JPABaseEmitter* getBackRightEmitter(int param_0, int param_1) {
89 return dComIfGp_particle_getEmitter(mBackRightEmitter[param_0][param_1]);
90 }
91 JPABaseEmitter* getBackLeftEmitter(int param_0, int param_1) {
92 return dComIfGp_particle_getEmitter(mBackLeftEmitter[param_0][param_1]);
93 }
94
95 typedef u8 (dPaPoF_c::*effTypeFunc)(int) const;
96 typedef JPABaseEmitter* (dPaPoF_c::*emitterFunc)(int, int);
97
98 u8 getTypeFour(int param_0, int param_1) const {
99 return (this->*m_typeFourData[param_0])(param_1);
100 }
101 JPABaseEmitter* getEmitterFour(int param_0, int param_1, int param_2) {
102 return (this->*m_emitterFourData[param_0])(param_1, param_2);
103 }
104
107
108 /* 0x80 */ u32 mBackLeftEmitter[2][4];
109 /* 0xA0 */ u32 mBackRightEmitter[2][4];
110 /* 0xC0 */ u8 mBackLeftEffType[2];
111 /* 0xC2 */ u8 mBackRightEffType[2];
112 /* 0xC4 */ u8 field_0xc4;
113 /* 0xC5 */ u8 field_0xc5;
114};
115
116#endif /* D_PARTICLE_D_PARTICLE_COPOLY_H */
Definition JPAEmitter.h:100
Definition d_particle_copoly.h:77
JPABaseEmitter * getBackLeftEmitter(int param_0, int param_1)
Definition d_particle_copoly.h:91
u8 mBackLeftEffType[2]
Definition d_particle_copoly.h:110
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:193
JPABaseEmitter * getBackRightEmitter(int param_0, int param_1)
Definition d_particle_copoly.h:88
u8 getTypeFour(int param_0, int param_1) const
Definition d_particle_copoly.h:98
void clearBRightID()
Definition d_particle_copoly.h:85
u8(dPaPoF_c::*) effTypeFunc(int) const
Definition d_particle_copoly.h:95
u32 mBackLeftEmitter[2][4]
Definition d_particle_copoly.h:108
JPABaseEmitter * getEmitterFour(int param_0, int param_1, int param_2)
Definition d_particle_copoly.h:101
u8 mBackRightEffType[2]
Definition d_particle_copoly.h:111
JPABaseEmitter *(dPaPoF_c::*) emitterFunc(int, int)
Definition d_particle_copoly.h:96
static emitterFunc m_emitterFourData[]
Definition d_particle_copoly.h:257
static effTypeFunc m_typeFourData[]
Definition d_particle_copoly.h:251
u8 field_0xc4
Definition d_particle_copoly.h:112
u8 getBackLeftEffType(int i_idx) const
Definition d_particle_copoly.h:87
u8 field_0xc5
Definition d_particle_copoly.h:113
u32 mBackRightEmitter[2][4]
Definition d_particle_copoly.h:109
u8 getBackRightEffType(int i_idx) const
Definition d_particle_copoly.h:86
void clearBLeftID()
Definition d_particle_copoly.h:84
void clearFourAllID()
Definition d_particle_copoly.cpp:224
Definition d_particle_copoly.h:38
u32 mRightEmitter[2][4]
Definition d_particle_copoly.h:70
static emitterFunc m_emitterTwoData[]
Definition d_particle_copoly.h:244
u8 getLeftEffType(int i_idx) const
Definition d_particle_copoly.h:48
JPABaseEmitter *(dPaPoT_c::*) emitterFunc(int, int)
Definition d_particle_copoly.h:57
u8 field_0x7c
Definition d_particle_copoly.h:73
void clearRightID()
Definition d_particle_copoly.h:46
JPABaseEmitter * getLeftEmitter(int param_0, int param_1)
Definition d_particle_copoly.h:52
void clearTwoAllID()
Definition d_particle_copoly.cpp:184
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:154
void clearLeftID()
Definition d_particle_copoly.h:45
u8 field_0x7d
Definition d_particle_copoly.h:74
JPABaseEmitter * getEmitterTwo(int param_0, int param_1, int param_2)
Definition d_particle_copoly.h:62
static effTypeFunc m_typeTwoData[]
Definition d_particle_copoly.h:237
u8(dPaPoT_c::*) effTypeFunc(int) const
Definition d_particle_copoly.h:56
u8 mRightEffType[2]
Definition d_particle_copoly.h:72
u8 mLeftEffType[2]
Definition d_particle_copoly.h:71
JPABaseEmitter * getRightEmitter(int param_0, int param_1)
Definition d_particle_copoly.h:49
u8 getTypeTwo(int param_0, int param_1) const
Definition d_particle_copoly.h:59
u8 getRightEffType(int i_idx) const
Definition d_particle_copoly.h:47
u32 mLeftEmitter[2][4]
Definition d_particle_copoly.h:69
Definition d_particle_copoly.h:10
u8 field_0x36
Definition d_particle_copoly.h:34
u32 field_0x8[2][4]
Definition d_particle_copoly.h:29
dBgS_Acch * field_0x28
Definition d_particle_copoly.h:30
int setEffectCenter(dKy_tevstr_c const *, cXyz const *, u32, u32, cXyz const *, csXyz const *, cXyz const *, s8, f32, f32)
Definition d_particle_copoly.cpp:115
int checkWaterIn(cXyz *, cXyz const *, dKy_tevstr_c const *, u32, s8, f32, f32)
Definition d_particle_copoly.cpp:21
void clearCenterID()
Definition d_particle_copoly.h:20
void changeRippleOffset(f32 i_offset)
Definition d_particle_copoly.h:22
void changeWaterOffset(f32 i_offset)
Definition d_particle_copoly.h:21
f32 mWaterOffset
Definition d_particle_copoly.h:31
u8 getCenterEffType(int i_idx) const
Definition d_particle_copoly.h:23
void clearID(u32 *, u8 *)
Definition d_particle_copoly.cpp:143
void setEffect(u32 *, int, dKy_tevstr_c const *, cXyz const *, u32, u32, cXyz const *, csXyz const *, s8, u8 *, u8 *)
Definition d_particle_copoly.cpp:64
JPABaseEmitter * getCenterEmitter(int param_0, int param_1)
Definition d_particle_copoly.h:24
u32 field_0x0[2]
Definition d_particle_copoly.h:28
f32 mRippleOffset
Definition d_particle_copoly.h:32
u8 field_0x37
Definition d_particle_copoly.h:35
u8 mCenterEffType[2]
Definition d_particle_copoly.h:33
JPABaseEmitter * dComIfGp_particle_getEmitter(u32 param_0)
Definition d_com_inf_game.h:3933
static initFunc init[]
Definition d_menu_collect.cpp:42
Definition d_a_hozelda.cpp:20
Definition d_a_hozelda.cpp:161
Definition d_a_npc_fguard.cpp:115
Definition d_a_hozelda.cpp:133
signed char s8
Definition types.h:4
unsigned long u32
Definition types.h:9
float f32
Definition types.h:22
unsigned char u8
Definition types.h:5