Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_event_data.h
Go to the documentation of this file.
1#ifndef D_EVENT_D_EVENT_DATA_H
2#define D_EVENT_D_EVENT_DATA_H
3
4#include "global.h"
5#include "f_pc/f_pc_base.h"
6
7class msg_class;
8
10 /* 0x00 */ u32 eventTop; // offset to Event chunk
11 /* 0x04 */ s32 eventNum;
12 /* 0x08 */ u32 staffTop; // offset to Staff chunk
13 /* 0x0C */ s32 staffNum;
14 /* 0x10 */ u32 cutTop; // offset to Cut chunk
15 /* 0x14 */ s32 cutNum;
16 /* 0x18 */ u32 dataTop; // offset to Data chunk
17 /* 0x1C */ s32 dataNum;
18 /* 0x20 */ u32 fDataTop; // offset to FData chunk
19 /* 0x24 */ s32 fDataNum;
20 /* 0x28 */ u32 iDataTop; // offset to IData chunk
21 /* 0x2C */ s32 iDataNum;
22 /* 0x30 */ u32 sDataTop; // offset to SData chunk
23 /* 0x34 */ s32 sDataNum;
24 /* 0x38 */ u8 unk[8];
25}; // Size: 0x40
26
31
33public:
34 enum DataType {
35 /* 0x0 */ TYPE_FLOAT,
36 /* 0x1 */ TYPE_VEC,
37 /* 0x3 */ TYPE_INT = 3,
38 /* 0x4 */ TYPE_STRING
39 };
40
41 int getIndex() { return mDataIndex; }
42 int getNumber() { return mNumber; }
43 int getType() { return mType; }
44 int getNext() { return mNext; }
45 char* getName() { return mName; }
46
47 /* 0x00 */ char mName[32];
48 /* 0x20 */ u32 mIndex;
49 /* 0x24 */ int mType;
50 /* 0x28 */ int mDataIndex;
51 /* 0x2C */ int mNumber;
52 /* 0x30 */ int mNext;
53 /* 0x34 */ u8 field_0x34[12];
54}; // Size: 0x40
55
56#if DEBUG
58public:
59 void Init() {
60 mName[0] = '\0';
61 mIndex = 0;
62 mType = 5;
63 mDataIndex = 0;
64 mNumber = 0;
65 mNext = -1;
66 }
67};
68#endif
69
71public:
72 int startCheck();
73
74 int getDataTop() { return mDataTop; }
75 int getFlagId() { return mFlagId; }
76 char* getName() { return mName; }
77 int getNext() { return mNext; }
78 int getStartFlag(int idx) { return mFlags[idx]; }
79 u32 getTagId() { return mTagID; }
80
81 /* 0x00 */ char mName[32];
82 /* 0x20 */ u32 mTagID;
83 /* 0x24 */ u32 mIndex;
84 /* 0x28 */ int mFlags[3];
85 /* 0x34 */ u32 mFlagId;
86 /* 0x38 */ int mDataTop;
87 /* 0x3C */ int mNext;
88 /* 0x40 */ u8 field_0x40[0x10];
89}; // Size: 0x50
90
91#if DEBUG
92class dEvDtCut_DBG_c : public dEvDtCut_c {
93public:
94 void Init() {
95 int i;
96
97 mName[0] = '\0';
98 mTagID = 0;
99 mIndex = 0;
100
101 for (i = 0; i < 3; i++) {
102 mFlags[i] = -1;
103 }
104
105 mFlagId = 0;
106 mDataTop = -1;
107 mNext = -1;
108 }
109};
110#endif
111
113public:
115 /* 0x0 */ TYPE_DEFAULT,
116 /* 0x1 */ TYPE_ALL,
117 /* 0x2 */ TYPE_CAMERA,
118 /* 0x3 */ TYPE_EFFECT,
120 /* 0x6 */ TYPE_DIRECTOR = 6,
121 /* 0x7 */ TYPE_MESSAGE,
122 /* 0x8 */ TYPE_SOUND,
123 /* 0x9 */ TYPE_LIGHT,
124 /* 0xB */ TYPE_PACKAGE = 11,
125 /* 0xC */ TYPE_CREATE,
126 };
127
128 struct StaffWork {
132 struct {
133 int n; // substance num
134 int* d; // data
136 };
137
138 struct MessageData {
140 };
141
142 struct SoundData {
145 };
146
149 };
150
155
156 struct EffectData {
157 u8 pad[8];
159 };
160
162 void specialProc_WaitProc(int);
163 void specialProc();
164 void init();
165 void advanceCut(int cut);
166 void specialProcLight();
167 void specialProcMessage();
168 void specialProcSound();
169 void specialProcCreate();
170 void specialProcDirector();
171 void specialProcPackage();
173 void specialProcEffect();
174
175 int getType() { return mType; }
176 char* getName() { return mName; }
177 s32 getTagID() { return mTagID; }
178 int getCurrentCut() { return mCurrentCut; }
179 int getStartCut() { return mStartCut; }
180
181 // private:
182 /* 0x00 */ char mName[8];
183 /* 0x08 */ u8 mWork[0x18];
184 /* 0x20 */ s32 mTagID;
185 /* 0x24 */ u32 mIndex;
186 /* 0x28 */ u32 mFlagID;
187 /* 0x2C */ int mType;
188 /* 0x30 */ int mStartCut;
189 /* 0x34 */ s16 field_0x34;
190 /* 0x36 */ s16 mWaitTimer;
191 /* 0x38 */ int mCurrentCut;
192 /* 0x3C */ s32 field_0x3c;
193 /* 0x40 */ bool field_0x40;
194 /* 0x41 */ bool field_0x41;
195 /* 0x42 */ u8 mData[0x50 - 0x42];
196}; // Size: 0x50
197
199
200#if DEBUG
202public:
203 void Init() {
204 mName[0] = '\0';
205 mTagID = 0;
206 mIndex = 0;
207 mFlagID = 0;
208 mType = 13;
209 mStartCut = 0;
210 field_0x34 = 0;
211 }
212};
213#endif
214
216public:
217 int finishCheck();
218 int forceFinish();
219 void specialStaffProc(dEvDtStaff_c* p_staff);
220 int getNStaff() { return mNStaff; }
221 int getStaff(int idx) { return mStaff[idx]; }
222 char* getName() { return mName; }
223 int getPriority() { return mPriority; }
224
225 /* 0x00 */ char mName[32];
226 /* 0x20 */ u32 mIndex;
227 /* 0x24 */ int field_0x24;
228 /* 0x28 */ int mPriority;
229 /* 0x2C */ int mStaff[20];
230 /* 0x7C */ int mNStaff;
231 /* 0x80 */ int field_0x80;
232 /* 0x84 */ int field_0x84;
233 /* 0x88 */ int mFlags[3];
234 /* 0x94 */ bool mPlaySound;
235 /* 0x96 */ s16 field_0x96;
236 /* 0x98 */ f32 field_0x98;
237 /* 0x9C */ f32 field_0x9c;
238 /* 0xA0 */ f32 field_0xa0;
239 /* 0xA4 */ int mEventState;
240 /* 0xA8 */ int field_0xa8;
241 /* 0xAC */ u8 field_0xac[4];
242}; // Size: 0xB0
243
244#if DEBUG
246public:
247 void Init() {
248 int i;
249
250 mName[0] = '\0';
251 mIndex = 0;
252 mStaff[0] = 0;
253 mNStaff = 0;
254
255 for (i = 0; i < 3; i++) {
256 mFlags[i] = -1;
257 }
258
260 mPlaySound = false;
261 field_0x24 = 1;
262 mPriority = 0;
263 mEventState = 0;
264 field_0xa8 = 0;
265 field_0x96 = 0;
266 field_0x98 = 0.0f;
267 field_0x9c = 0.0f;
268 field_0xa0 = 0.0f;
269 }
270}; // Size: 0xB0
271#endif
272
274public:
277 BOOL flagCheck(int flag);
278 BOOL flagSet(int flag);
280 void init();
281
282 static const int FlagMax = 0x2800;
283
284private:
286}; // Size = 0x500
287
289public:
292 int init();
293 int init(char* p_data, int roomNo);
294 void advanceCut(dEvDtEvent_c* p_event);
296
298 dEvDtStaff_c* getStaffP(int i) { return &mStaffP[i]; }
300 dEvDtEvent_c* getEventP(int i) { return &mEventP[i]; }
302 dEvDtData_c* getDataP(int i) { return &mDataP[i]; }
303 dEvDtCut_c* getCutP(int i) { return &mCutP[i]; }
304 char* getEventName(int i) { return mEventP[i].getName(); }
307 int getStaffStartCut(int i) { return mStaffP[i].getStartCut(); }
309 int* getIDataP(int i) { return &mIDataP[i]; }
310 f32* getFDataP(int i) { return &mFDataP[i]; }
311 char* getSDataP(int i) { return &mSDataP[i]; }
326 s32 roomNo() { return mRoomNo; }
327
328 void setHeaderP(event_binary_data_header* p_header) { mHeaderP = p_header; }
329 void setEventP(dEvDtEvent_c* p_event) { mEventP = p_event; }
330 void setStaffP(dEvDtStaff_c* p_staff) { mStaffP = p_staff; }
331 void setCutP(dEvDtCut_c* p_cut) { mCutP = p_cut; }
332 void setDataP(dEvDtData_c* p_data) { mDataP = p_data; }
333 void setFDataP(f32* p_fdata) { mFDataP = p_fdata; }
334 void setIDataP(int* p_idata) { mIDataP = p_idata; }
335 void setSDataP(char* p_sdata) { mSDataP = p_sdata; }
336
337 // private:
341 /* 0x0C */ dEvDtCut_c* mCutP;
342 /* 0x10 */ dEvDtData_c* mDataP;
343 /* 0x14 */ f32* mFDataP;
344 /* 0x18 */ int* mIDataP;
345 /* 0x1C */ char* mSDataP;
346 /* 0x20 */ s32 mRoomNo;
347}; // Size = 0x24
348
349STATIC_ASSERT(sizeof(dEvDtBase_c) == 0x24);
350
351#endif /* D_EVENT_D_EVENT_DATA_H */
static BOOL flag
Definition DEMOAVX.c:20
static u8 index[20][3]
Definition GXDraw.c:434
Definition d_event_data.h:288
char * getSDataP(int i)
Definition d_event_data.h:311
dEvDtCut_c * mCutP
Definition d_event_data.h:341
dEvDtEvent_c * getEventP(int i)
Definition d_event_data.h:300
dEvDtData_c * mDataP
Definition d_event_data.h:342
void setStaffP(dEvDtStaff_c *p_staff)
Definition d_event_data.h:330
s32 getDataNum()
Definition d_event_data.h:319
s32 roomNo()
Definition d_event_data.h:326
dEvDtCut_c * getCutStaffStartCutP(int i)
Definition d_event_data.h:308
dEvDtCut_c * getCutStaffCurrentCutP(int i)
Definition d_event_data.h:306
s32 getCutNum()
Definition d_event_data.h:317
void setIDataP(int *p_idata)
Definition d_event_data.h:334
void setSDataP(char *p_sdata)
Definition d_event_data.h:335
void setCutP(dEvDtCut_c *p_cut)
Definition d_event_data.h:331
char * mSDataP
Definition d_event_data.h:345
s32 getIDataNum()
Definition d_event_data.h:323
void setDataP(dEvDtData_c *p_data)
Definition d_event_data.h:332
u32 getIDataTop()
Definition d_event_data.h:322
s32 getEventNum()
Definition d_event_data.h:313
s32 mRoomNo
Definition d_event_data.h:346
s32 getSDataNum()
Definition d_event_data.h:325
dEvDtStaff_c * getStaffP()
Definition d_event_data.h:299
dEvDtCut_c * getCutP(int i)
Definition d_event_data.h:303
char * getEventName(int i)
Definition d_event_data.h:304
s32 getFDataNum()
Definition d_event_data.h:321
u32 getCutTop()
Definition d_event_data.h:316
void setEventP(dEvDtEvent_c *p_event)
Definition d_event_data.h:329
int init()
Definition d_event_data.cpp:1520
int * mIDataP
Definition d_event_data.h:344
dEvDtEvent_c * getEventP()
Definition d_event_data.h:301
dEvDtData_c * getDataP(int i)
Definition d_event_data.h:302
event_binary_data_header * getHeaderP()
Definition d_event_data.h:297
dEvDtStaff_c * getStaffP(int i)
Definition d_event_data.h:298
int * getIDataP(int i)
Definition d_event_data.h:309
u32 getFDataTop()
Definition d_event_data.h:320
u32 getSDataTop()
Definition d_event_data.h:324
u32 getDataTop()
Definition d_event_data.h:318
void setFDataP(f32 *p_fdata)
Definition d_event_data.h:333
int getStaffStartCut(int i)
Definition d_event_data.h:307
void setHeaderP(event_binary_data_header *p_header)
Definition d_event_data.h:328
dEvDtEvent_c * mEventP
Definition d_event_data.h:339
dEvDtStaff_c * mStaffP
Definition d_event_data.h:340
void advanceCut(dEvDtEvent_c *p_event)
Definition d_event_data.cpp:1573
f32 * mFDataP
Definition d_event_data.h:343
event_binary_data_header * mHeaderP
Definition d_event_data.h:338
s32 getStaffNum()
Definition d_event_data.h:315
f32 * getFDataP(int i)
Definition d_event_data.h:310
u32 getStaffTop()
Definition d_event_data.h:314
~dEvDtBase_c()
Definition d_event_data.h:291
dEvDtBase_c()
Definition d_event_data.h:290
u32 getEventTop()
Definition d_event_data.h:312
BOOL advanceCutLocal(dEvDtStaff_c *p_staff)
Definition d_event_data.cpp:1583
int getStaffCurrentCut(int i)
Definition d_event_data.h:305
Definition d_event_data.h:92
void Init()
Definition d_event_data.h:94
Definition d_event_data.h:70
int getFlagId()
Definition d_event_data.h:75
u32 mIndex
Definition d_event_data.h:83
u32 mTagID
Definition d_event_data.h:82
u32 mFlagId
Definition d_event_data.h:85
int getStartFlag(int idx)
Definition d_event_data.h:78
int startCheck()
Definition d_event_data.cpp:1498
int mDataTop
Definition d_event_data.h:86
int mFlags[3]
Definition d_event_data.h:84
int getNext()
Definition d_event_data.h:77
int getDataTop()
Definition d_event_data.h:74
int mNext
Definition d_event_data.h:87
u32 getTagId()
Definition d_event_data.h:79
char * getName()
Definition d_event_data.h:76
char mName[32]
Definition d_event_data.h:81
u8 field_0x40[0x10]
Definition d_event_data.h:88
Definition d_event_data.h:57
void Init()
Definition d_event_data.h:59
Definition d_event_data.h:32
int getType()
Definition d_event_data.h:43
char mName[32]
Definition d_event_data.h:47
int getNext()
Definition d_event_data.h:44
char * getName()
Definition d_event_data.h:45
int mNumber
Definition d_event_data.h:51
int getNumber()
Definition d_event_data.h:42
int mType
Definition d_event_data.h:49
u8 field_0x34[12]
Definition d_event_data.h:53
int mDataIndex
Definition d_event_data.h:50
u32 mIndex
Definition d_event_data.h:48
int getIndex()
Definition d_event_data.h:41
DataType
Definition d_event_data.h:34
@ TYPE_VEC
Definition d_event_data.h:36
@ TYPE_STRING
Definition d_event_data.h:38
@ TYPE_INT
Definition d_event_data.h:37
@ TYPE_FLOAT
Definition d_event_data.h:35
int mNext
Definition d_event_data.h:52
Definition d_event_data.h:245
void Init()
Definition d_event_data.h:247
Definition d_event_data.h:215
int field_0x24
Definition d_event_data.h:227
char mName[32]
Definition d_event_data.h:225
u8 field_0xac[4]
Definition d_event_data.h:241
int mFlags[3]
Definition d_event_data.h:233
bool mPlaySound
Definition d_event_data.h:234
int field_0x84
Definition d_event_data.h:232
f32 field_0x98
Definition d_event_data.h:236
int getPriority()
Definition d_event_data.h:223
int getStaff(int idx)
Definition d_event_data.h:221
char * getName()
Definition d_event_data.h:222
int field_0x80
Definition d_event_data.h:231
int mNStaff
Definition d_event_data.h:230
s16 field_0x96
Definition d_event_data.h:235
int mEventState
Definition d_event_data.h:239
int mPriority
Definition d_event_data.h:228
int mStaff[20]
Definition d_event_data.h:229
f32 field_0x9c
Definition d_event_data.h:237
int forceFinish()
Definition d_event_data.cpp:377
int field_0xa8
Definition d_event_data.h:240
int finishCheck()
Definition d_event_data.cpp:362
int getNStaff()
Definition d_event_data.h:220
f32 field_0xa0
Definition d_event_data.h:238
u32 mIndex
Definition d_event_data.h:226
void specialStaffProc(dEvDtStaff_c *p_staff)
Definition d_event_data.cpp:390
Definition d_event_data.h:273
u32 mFlags[320]
Definition d_event_data.h:285
BOOL flagSet(int flag)
Definition d_event_data.cpp:332
~dEvDtFlag_c()
Definition d_event_data.h:276
dEvDtFlag_c()
Definition d_event_data.h:275
void init()
Definition d_event_data.cpp:355
static const int FlagMax
Definition d_event_data.h:282
BOOL flagCheck(int flag)
Definition d_event_data.cpp:320
BOOL flagMaxCheck(int flag)
Definition d_event_data.cpp:341
Definition d_event_data.h:201
void Init()
Definition d_event_data.h:203
Definition d_event_data.h:112
int getType()
Definition d_event_data.h:175
void specialProcMessage()
Definition d_event_data.cpp:527
int mStartCut
Definition d_event_data.h:188
int mCurrentCut
Definition d_event_data.h:191
s32 field_0x3c
Definition d_event_data.h:192
u32 mFlagID
Definition d_event_data.h:186
u8 mWork[0x18]
Definition d_event_data.h:183
void specialProcCreate()
Definition d_event_data.cpp:797
char mName[8]
Definition d_event_data.h:182
s32 getTagID()
Definition d_event_data.h:177
StaffType
Definition d_event_data.h:114
@ TYPE_DEFAULT
Definition d_event_data.h:115
@ TYPE_MESSAGE
Definition d_event_data.h:121
@ TYPE_TIMEKEEPER
Definition d_event_data.h:119
@ TYPE_EFFECT
Definition d_event_data.h:118
@ TYPE_LIGHT
Definition d_event_data.h:123
@ TYPE_SOUND
Definition d_event_data.h:122
@ TYPE_CREATE
Definition d_event_data.h:125
@ TYPE_PACKAGE
Definition d_event_data.h:124
@ TYPE_ALL
Definition d_event_data.h:116
@ TYPE_CAMERA
Definition d_event_data.h:117
@ TYPE_DIRECTOR
Definition d_event_data.h:120
int getCurrentCut()
Definition d_event_data.h:178
void specialProcLight()
Definition d_event_data.cpp:478
bool field_0x41
Definition d_event_data.h:194
s32 mTagID
Definition d_event_data.h:184
s16 field_0x34
Definition d_event_data.h:189
void specialProcSound()
Definition d_event_data.cpp:728
u32 mIndex
Definition d_event_data.h:185
void specialProc()
Definition d_event_data.cpp:417
u8 mData[0x50 - 0x42]
Definition d_event_data.h:195
int getStartCut()
Definition d_event_data.h:179
char * getName()
Definition d_event_data.h:176
void advanceCut(int cut)
Definition d_event_data.cpp:471
void init()
Definition d_event_data.cpp:450
void specialProc_WaitProc(int)
Definition d_event_data.cpp:409
void specialProcTimekeeper()
Definition d_event_data.cpp:1312
void specialProcPackage()
Definition d_event_data.cpp:1221
void specialProcDirector()
Definition d_event_data.cpp:866
void specialProcEffect()
Definition d_event_data.cpp:1364
int mType
Definition d_event_data.h:187
bool field_0x40
Definition d_event_data.h:193
s16 mWaitTimer
Definition d_event_data.h:190
void specialProc_WaitStart(int index)
Definition d_event_data.cpp:400
dEvDt_State_e
Definition d_event_data.h:27
@ dEvDt_State_START_e
Definition d_event_data.h:28
@ dEvDt_State_END_e
Definition d_event_data.h:29
STATIC_ASSERT(sizeof(dEvDtStaff_c)==0x50)
int BOOL
Definition types.h:33
unsigned long u32
Definition types.h:12
signed short int s16
Definition types.h:9
float f32
Definition types.h:25
signed long s32
Definition types.h:11
unsigned char u8
Definition types.h:8
int i
Definition e_pow.c:165
unsigned int fpc_ProcID
Definition f_pc_base.h:10
Definition d_event_data.h:151
s16 unk
Definition d_event_data.h:152
s16 unk2
Definition d_event_data.h:153
Definition d_event_data.h:156
s32 unk
Definition d_event_data.h:158
u8 pad[8]
Definition d_event_data.h:157
Definition d_event_data.h:138
s16 unk
Definition d_event_data.h:139
Definition d_event_data.h:142
s16 timer
Definition d_event_data.h:144
s16 unk
Definition d_event_data.h:143
Definition d_event_data.h:128
int n
Definition d_event_data.h:133
msg_class * l_msg
Definition d_event_data.h:130
u32 l_msgNo
Definition d_event_data.h:131
int * d
Definition d_event_data.h:134
fpc_ProcID l_msgId
Definition d_event_data.h:129
struct dEvDtStaff_c::StaffWork::@80 msgs
Definition d_event_data.h:147
s32 timer
Definition d_event_data.h:148
Definition d_event_data.h:9
u32 dataTop
Definition d_event_data.h:16
u32 fDataTop
Definition d_event_data.h:18
u32 cutTop
Definition d_event_data.h:14
u8 unk[8]
Definition d_event_data.h:24
u32 iDataTop
Definition d_event_data.h:20
u32 staffTop
Definition d_event_data.h:12
s32 staffNum
Definition d_event_data.h:13
s32 fDataNum
Definition d_event_data.h:19
s32 iDataNum
Definition d_event_data.h:21
u32 eventTop
Definition d_event_data.h:10
s32 dataNum
Definition d_event_data.h:17
u32 sDataTop
Definition d_event_data.h:22
s32 eventNum
Definition d_event_data.h:11
s32 sDataNum
Definition d_event_data.h:23
s32 cutNum
Definition d_event_data.h:15
Definition f_op_msg.h:25