Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_event.h
Go to the documentation of this file.
1#ifndef D_EVENT_D_EVENT_H
2#define D_EVENT_D_EVENT_H
3
5
6int dEv_defaultSkipProc(void* actor, int parameter);
7int dEv_defaultSkipZev(void* actor, int parameter);
8int dEv_defaultSkipStb(void* actor, int parameter);
9int dEv_noFinishSkipProc(void* actor, int parameter);
10
12class fopAc_ac_c;
13
15public:
18
19 /* 0x00 */ u16 mEventType;
20 /* 0x02 */ u16 mFlag;
21 /* 0x04 */ u16 mHindFlag;
24 /* 0x10 */ s16 mEventId;
25 /* 0x12 */ u16 mPriority;
26 /* 0x14 */ s8 mNextOrderIdx;
27 /* 0x15 */ u8 mMapToolId;
28}; // Size = 0x18
29
30STATIC_ASSERT(sizeof(dEvt_order_c) == 0x18);
31
32typedef int (*dEvt_SkipCb)(void*, int);
33
40
53
55 /* 0x0 */ STATUS_NONE,
56};
57
59public:
61
62 s32 orderOld(u16 type, u16 prio, u16 flag, u16 hind, void* requestActor,
63 void* targetActor, const void* eventName);
64 s32 order(u16 type, u16 prio, u16 flag, u16 hind, void* requestActor,
65 void* targetActor, s16 id, u8 mapToolId);
69 int commonCheck(dEvt_order_c* order, u16 condition, u16 command);
73 int talkEnd();
75 int demoEnd();
79 int endProc();
80 int change();
81 int entry();
82 void reset(void*);
83 void reset();
84 void clearSkipSystem();
85 char* getSkipEventName();
86 void setSkipProc(void* skipActor, dEvt_SkipCb skipCb, int skipParameter);
87 void setSkipZev(void* skipActor, char* eventName);
88 void onSkipFade();
89 void offSkipFade();
90 bool skipper();
91 int Step();
92 int moveApproval(void*);
93 BOOL compulsory(void*, const char* eventName, u16 hind);
94 void remove();
96 void sceneChange(int exitId);
97 fpc_ProcID getPId(void* actor);
99 void* getStbDemoData(char* resName);
100 static dStage_MapEvent_dt_c* searchMapEventData(u8 mapToolID, s32 roomNo);
101 static dStage_MapEvent_dt_c* searchMapEventData(u8 mapToolID);
102 s16 runningEventID(s16 eventID);
103 void setPt1(void* actor);
104 void setPt2(void* actor);
105 void setPtT(void* actor);
106 void setPtI(void* actor);
107 void setPtI_Id(fpc_ProcID id);
108 void setPtD(void* actor);
109 void setGtItm(u8 itemNo);
110
112
114 #if DEBUG
115 return mEventStatus != 0 || mDebugStb != 0;
116 #else
117 return mEventStatus != 0;
118 #endif
119 }
120
122 void setCullRate(f32 rate) { mCullRate = rate; }
123
126 void offEventFlag(u16 flag) { mEventFlag &= ~flag; }
127
128 u8 getMode() const { return mMode; }
129
131 #if DEBUG
133 #else
134 void offHindFlag(u16 flag) { mHindFlag &= ~flag; }
135 #endif
136
140
141 void onFlag2(u16 flag) { mFlag2 |= flag; }
142 void offFlag2(u16 flag) { mFlag2 &= ~flag; }
143
145 {
146#if PLATFORM_WII || PLATFORM_SHIELD
147 return mTalkXyType == 1 || mTalkXyType == 2 || mTalkXyType == 3 || mTalkXyType == 4;
148#else
149 return mTalkXyType == 1 || mTalkXyType == 2;
150#endif
151 }
152
153 BOOL isOrderOK() { return mEventStatus == 0 || mEventStatus == 2; }
154
160
161 bool isChangeOK(void* actor) { return mChangeActor == actor; }
163 u8 getGtItm() { return mGtItm; }
164 void startCheckSkipEdge(void* actor) { setSkipProc(actor, dEv_noFinishSkipProc, 0); }
165 bool checkSkipEdge() { return chkFlag2(8) != false; }
166 void setDebugStb(u8 stb) { mDebugStb = stb; }
167
168public:
169 /* 0x000 */ u8 unk_0x0[4];
170 /* 0x004 */ dEvt_order_c mOrder[8];
171 /* 0x0C4 */ fpc_ProcID mPt1;
172 /* 0x0C8 */ fpc_ProcID mPt2;
173 /* 0x0CC */ fpc_ProcID mPtT;
174 /* 0x0D0 */ fpc_ProcID mPtI;
175 /* 0x0D4 */ fpc_ProcID mPtd;
176 /* 0x0D8 */ u16 mEventFlag;
177 /* 0x0DA */ u16 mFlag2;
178 /* 0x0DC */ u16 mHindFlag;
179 /* 0x0DE */ s16 mEventId;
180 /* 0x0E0 */ s16 mUnkEventId; // unknown purpose
181 /* 0x0E2 */ s8 mNum;
182 /* 0x0E3 */ s8 mOrderIdx;
183 /* 0x0E4 */ u8 mMode;
184 /* 0x0E5 */ u8 mEventStatus;
185 /* 0x0E6 */ u8 field_0xe6;
186 /* 0x0E7 */ u8 field_0xe7;
187 /* 0x0E8 */ s8 field_0xe8;
188 /* 0x0E9 */ u8 mDebugStb;
189 /* 0x0EA */ u8 field_0xea;
190 /* 0x0EB */ u8 mMapToolId;
191 /* 0x0EC */ u8 field_0xec;
192 /* 0x0ED */ u8 mTalkXyType;
193 /* 0x0EE */ u8 mPreItemNo;
194 /* 0x0EF */ u8 mGtItm;
195 /* 0x0F0 */ f32 mCullRate;
197 /* 0x0F8 */ void* mChangeActor;
198 /* 0x0FC */ u8 unk_0xfc[4];
201 /* 0x108 */ int mSkipTimer;
202 /* 0x10C */ int mSkipParameter;
203 /* 0x110 */ BOOL mIsSkipFade;
204 /* 0x114 */ char mSkipEventName[20];
205 /* 0x128 */ u8 mCompulsory;
206 /* 0x129 */ bool mRoomInfoSet;
207 /* 0x12C */ int mRoomNo;
208#if PLATFORM_WII || PLATFORM_SHIELD
209 /* 0x130 */ u8 field_0x130;
210#endif
211};
212
213#endif /* D_EVENT_D_EVENT_H */
static BOOL flag
Definition DEMOAVX.c:20
Definition d_event.h:58
fpc_ProcID mPt1
Definition d_event.h:171
void setPt2(void *actor)
Definition d_event.cpp:1382
int mSkipTimer
Definition d_event.h:201
u16 mFlag2
Definition d_event.h:177
bool mRoomInfoSet
Definition d_event.h:206
int potentialCheck(dEvt_order_c *order)
Definition d_event.cpp:455
void setSkipZev(void *skipActor, char *eventName)
Definition d_event.cpp:851
fopAc_ac_c * getPtI()
Definition d_event.h:158
u8 field_0xe6
Definition d_event.h:185
void setPt1(void *actor)
Definition d_event.cpp:1378
dEvt_SkipCb mSkipFunc
Definition d_event.h:199
void setGtItm(u8 itemNo)
Definition d_event.cpp:1402
void afterFlagProc(dEvt_order_c *order)
Definition d_event.cpp:209
int talkCheck(dEvt_order_c *order)
Definition d_event.cpp:230
u8 field_0xe7
Definition d_event.h:186
int catchCheck(dEvt_order_c *order)
Definition d_event.cpp:338
fopAc_ac_c * getPtT()
Definition d_event.h:157
u8 field_0xec
Definition d_event.h:191
u8 mTalkXyType
Definition d_event.h:192
void onFlag2(u16 flag)
Definition d_event.h:141
u8 mEventStatus
Definition d_event.h:184
u8 getMapToolId()
Definition d_event.h:139
u8 mMode
Definition d_event.h:183
u16 mHindFlag
Definition d_event.h:178
void setPtD(void *actor)
Definition d_event.cpp:1398
dEvt_control_c()
Definition d_event.cpp:39
void * getStbDemoData(char *resName)
Definition d_event.cpp:1254
int doorCheck(dEvt_order_c *order)
Definition d_event.cpp:490
u8 mGtItm
Definition d_event.h:194
u8 mDebugStb
Definition d_event.h:188
void * mChangeActor
Definition d_event.h:197
s16 runningEventID(s16 eventID)
Definition d_event.cpp:1370
int Step()
Definition d_event.cpp:943
void setParam(dEvt_order_c *order)
Definition d_event.cpp:152
dStage_MapEvent_dt_c * mStageEventDt
Definition d_event.h:196
u16 chkEventFlag(u16 flag)
Definition d_event.h:124
fpc_ProcID getPId(void *actor)
Definition d_event.cpp:1242
void clearSkipSystem()
Definition d_event.cpp:715
void setSkipProc(void *skipActor, dEvt_SkipCb skipCb, int skipParameter)
Definition d_event.cpp:845
char * getSkipEventName()
Definition d_event.cpp:841
dEvt_order_c mOrder[8]
Definition d_event.h:170
bool isChangeOK(void *actor)
Definition d_event.h:161
void setCullRate(f32 rate)
Definition d_event.h:122
u16 checkHind(u16 flag)
Definition d_event.h:137
void setPtI(void *actor)
Definition d_event.cpp:1390
int change()
Definition d_event.cpp:587
int commonCheck(dEvt_order_c *order, u16 condition, u16 command)
Definition d_event.cpp:215
fpc_ProcID mPt2
Definition d_event.h:172
u8 field_0xea
Definition d_event.h:189
fopAc_ac_c * getPt2()
Definition d_event.h:156
BOOL compulsory(void *, const char *eventName, u16 hind)
Definition d_event.cpp:1201
s8 field_0xe8
Definition d_event.h:187
fpc_ProcID mPtd
Definition d_event.h:175
u16 mEventFlag
Definition d_event.h:176
s8 mNum
Definition d_event.h:181
s16 mEventId
Definition d_event.h:179
u8 getMode() const
Definition d_event.h:128
BOOL isOrderOK()
Definition d_event.h:153
u8 field_0x130
Definition d_event.h:209
fopAc_ac_c * convPId(fpc_ProcID id)
Definition d_event.cpp:1250
int moveApproval(void *)
Definition d_event.cpp:1133
void startCheckSkipEdge(void *actor)
Definition d_event.h:164
static dStage_MapEvent_dt_c * searchMapEventData(u8 mapToolID, s32 roomNo)
Definition d_event.cpp:1337
f32 getCullRate()
Definition d_event.h:121
fpc_ProcID mPtI
Definition d_event.h:174
int demoEnd()
Definition d_event.cpp:436
void reset()
Definition d_event.cpp:691
u8 unk_0x0[4]
Definition d_event.h:169
void onHindFlag(u16 flag)
Definition d_event.h:130
void setPtI_Id(fpc_ProcID id)
Definition d_event.cpp:1394
s8 mOrderIdx
Definition d_event.h:182
int mSkipParameter
Definition d_event.h:202
u8 unk_0xfc[4]
Definition d_event.h:198
char mSkipEventName[20]
Definition d_event.h:204
BOOL runCheck()
Definition d_event.h:113
fpc_ProcID mSkipActorId
Definition d_event.h:200
int endProc()
Definition d_event.cpp:557
f32 mCullRate
Definition d_event.h:195
void offSkipFade()
Definition d_event.cpp:860
u8 checkCompulsory()
Definition d_event.h:138
void setPtT(void *actor)
Definition d_event.cpp:1386
void setDebugStb(u8 stb)
Definition d_event.h:166
bool skipper()
Definition d_event.cpp:868
BOOL chkTalkXY()
Definition d_event.h:144
bool checkSkipEdge()
Definition d_event.h:165
fopAc_ac_c * getPt1()
Definition d_event.h:155
u8 getGtItm()
Definition d_event.h:163
u8 mPreItemNo
Definition d_event.h:193
u8 mCompulsory
Definition d_event.h:205
void offFlag2(u16 flag)
Definition d_event.h:142
int mRoomNo
Definition d_event.h:207
int demoCheck(dEvt_order_c *order)
Definition d_event.cpp:390
void onSkipFade()
Definition d_event.cpp:856
s32 beforeFlagProc(dEvt_order_c *order)
Definition d_event.cpp:195
void offEventFlag(u16 flag)
Definition d_event.h:126
int itemCheck(dEvt_order_c *order)
Definition d_event.cpp:534
void remove()
Definition d_event.cpp:1210
void onEventFlag(u16 flag)
Definition d_event.h:125
s32 order(u16 type, u16 prio, u16 flag, u16 hind, void *requestActor, void *targetActor, s16 id, u8 mapToolId)
Definition d_event.cpp:60
dStage_MapEvent_dt_c * getStageEventDt()
Definition d_event.cpp:1234
u16 chkFlag2(u16 flag)
Definition d_event.h:111
void sceneChange(int exitId)
Definition d_event.cpp:1238
s32 orderOld(u16 type, u16 prio, u16 flag, u16 hind, void *requestActor, void *targetActor, const void *eventName)
Definition d_event.cpp:45
u8 getPreItemNo()
Definition d_event.h:162
s16 mUnkEventId
Definition d_event.h:180
fpc_ProcID mPtT
Definition d_event.h:173
BOOL mIsSkipFade
Definition d_event.h:203
int talkEnd()
Definition d_event.cpp:366
int entry()
Definition d_event.cpp:610
int talkXyCheck(dEvt_order_c *order)
Definition d_event.cpp:275
u8 mMapToolId
Definition d_event.h:190
void offHindFlag(u16 flag)
Definition d_event.h:132
fopAc_ac_c * getPtD()
Definition d_event.h:159
Definition d_event.h:14
s8 mNextOrderIdx
Definition d_event.h:26
~dEvt_order_c()
Definition d_event.h:16
s16 mEventId
Definition d_event.h:24
fopAc_ac_c * mpTargetActor
Definition d_event.h:23
u16 mHindFlag
Definition d_event.h:21
dEvt_order_c()
Definition d_event.cpp:43
u16 mEventType
Definition d_event.h:19
u8 mMapToolId
Definition d_event.h:27
u16 mFlag
Definition d_event.h:20
fopAc_ac_c * mpRequestActor
Definition d_event.h:22
u16 mPriority
Definition d_event.h:25
Definition f_op_actor.h:230
static u8 const itemNo[4]
Definition d_a_obj_poFire.cpp:78
int dEv_noFinishSkipProc(void *actor, int parameter)
Definition d_event.cpp:836
dEvt_mode_e
Definition d_event.h:34
@ dEvt_mode_TALK_e
Definition d_event.h:36
@ dEvt_mode_COMPULSORY_e
Definition d_event.h:38
@ dEvt_mode_DEMO_e
Definition d_event.h:37
@ dEvt_mode_WAIT_e
Definition d_event.h:35
int dEv_defaultSkipZev(void *actor, int parameter)
Definition d_event.cpp:737
dEvt_type_e
Definition d_event.h:41
@ dEvt_type_TREASURE_e
Definition d_event.h:51
@ dEvt_type_COMPULSORY_e
Definition d_event.h:45
@ dEvt_type_OTHER_e
Definition d_event.h:44
@ dEvt_type_DOOR_e
Definition d_event.h:43
@ dEvt_type_SHOWITEM_X_e
Definition d_event.h:48
@ dEvt_type_POTENTIAL_e
Definition d_event.h:46
@ dEvt_type_SHOWITEM_Y_e
Definition d_event.h:49
@ dEvt_type_CATCH_e
Definition d_event.h:50
@ dEvt_type_TALK_e
Definition d_event.h:42
@ dEvt_type_ITEM_e
Definition d_event.h:47
STATIC_ASSERT(sizeof(dEvt_order_c)==0x18)
int(* dEvt_SkipCb)(void *, int)
Definition d_event.h:32
EventStatus
Definition d_event.h:54
@ STATUS_NONE
Definition d_event.h:55
int dEv_defaultSkipProc(void *actor, int parameter)
Definition d_event.cpp:728
int dEv_defaultSkipStb(void *actor, int parameter)
Definition d_event.cpp:786
int BOOL
Definition types.h:33
signed char s8
Definition types.h:7
signed short int s16
Definition types.h:9
float f32
Definition types.h:25
unsigned short int u16
Definition types.h:10
signed long s32
Definition types.h:11
unsigned char u8
Definition types.h:8
unsigned int fpc_ProcID
Definition f_pc_base.h:10
Definition d_stage.h:392