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
116 u16 chkEventFlag(u16 flag) { return flag & mEventFlag; }
117 void onEventFlag(u16 flag) { mEventFlag |= flag; }
118 void offEventFlag(u16 flag) { mEventFlag &= ~flag; }
119 u16 chkFlag2(u16 flag) { return flag & mFlag2; }
120 void onFlag2(u16 flag) { mFlag2 |= flag; }
121 void offFlag2(u16 flag) { mFlag2 &= ~flag; }
122 bool checkSkipEdge() { return chkFlag2(8) != false; }
123 u16 checkHind(u16 flag) { return flag & mHindFlag; }
124 void onHindFlag(u16 flag) { mHindFlag |= flag; }
125 #if DEBUG
126 void offHindFlag(u16 flag) { mHindFlag &= (u16)~flag; }
127 #else
128 void offHindFlag(u16 flag) { mHindFlag &= ~flag; }
129 #endif
130 u8 getMode() const { return mMode; }
131 BOOL runCheck() {
132 #if DEBUG
133 return mEventStatus != 0 || mDebugStb != 0;
134 #else
135 return mEventStatus != 0;
136 #endif
137 }
138 BOOL isOrderOK() {
139#if DEBUG
140 return (mEventStatus == 0 || mEventStatus == 2) && !mDebugStb;
141#else
142 return mEventStatus == 0 || mEventStatus == 2;
143#endif
144 }
145 void setDebugStb(u8 stb) { mDebugStb = stb; }
146 u8 getMapToolId() { return mMapToolId; }
147 BOOL chkTalkXY() {
148#if PLATFORM_WII || PLATFORM_SHIELD
149 return mTalkXyType == 1 || mTalkXyType == 2 || mTalkXyType == 3 || mTalkXyType == 4;
150#else
151 return mTalkXyType == 1 || mTalkXyType == 2;
152#endif
153 }
154 u8 getPreItemNo() { return mPreItemNo; }
155 u8 getGtItm() { return mGtItm; }
156 f32 getCullRate() { return mCullRate; }
157 void setCullRate(f32 rate) { mCullRate = rate; }
158 bool isChangeOK(void* actor) { return mChangeActor == actor; }
160
161 void startCheckSkipEdge(void* actor) { setSkipProc(actor, dEv_noFinishSkipProc, 0); }
162
163public:
164 /* 0x000 */ u8 unk_0x0[4];
165 /* 0x004 */ dEvt_order_c mOrder[8];
166 /* 0x0C4 */ fpc_ProcID mPt1;
167 /* 0x0C8 */ fpc_ProcID mPt2;
168 /* 0x0CC */ fpc_ProcID mPtT;
169 /* 0x0D0 */ fpc_ProcID mPtI;
170 /* 0x0D4 */ fpc_ProcID mPtd;
171 /* 0x0D8 */ u16 mEventFlag;
172 /* 0x0DA */ u16 mFlag2;
173 /* 0x0DC */ u16 mHindFlag;
174 /* 0x0DE */ s16 mEventId;
175 /* 0x0E0 */ s16 mUnkEventId; // unknown purpose
176 /* 0x0E2 */ s8 mNum;
177 /* 0x0E3 */ s8 mOrderIdx;
178 /* 0x0E4 */ u8 mMode;
179 /* 0x0E5 */ u8 mEventStatus;
180 /* 0x0E6 */ u8 field_0xe6;
181 /* 0x0E7 */ u8 field_0xe7;
182 /* 0x0E8 */ s8 field_0xe8;
183 /* 0x0E9 */ u8 mDebugStb;
184 /* 0x0EA */ u8 field_0xea;
185 /* 0x0EB */ u8 mMapToolId;
186 /* 0x0EC */ u8 field_0xec;
187 /* 0x0ED */ u8 mTalkXyType;
188 /* 0x0EE */ u8 mPreItemNo;
189 /* 0x0EF */ u8 mGtItm;
190 /* 0x0F0 */ f32 mCullRate;
192 /* 0x0F8 */ void* mChangeActor;
193 /* 0x0FC */ u8 unk_0xfc[4];
196 /* 0x108 */ int mSkipTimer;
197 /* 0x10C */ int mSkipParameter;
198 /* 0x110 */ BOOL mIsSkipFade;
199 /* 0x114 */ char mSkipEventName[20];
200 /* 0x128 */ u8 mCompulsory;
201 /* 0x129 */ bool mRoomInfoSet;
202 /* 0x12C */ int mRoomNo;
203#if PLATFORM_WII || PLATFORM_SHIELD
204 /* 0x130 */ u8 field_0x130;
205#endif
206};
207
208#endif /* D_EVENT_D_EVENT_H */
Definition d_event.h:58
fpc_ProcID mPt1
Definition d_event.h:166
void setPt2(void *actor)
Definition d_event.cpp:1383
int mSkipTimer
Definition d_event.h:196
u16 mFlag2
Definition d_event.h:172
bool mRoomInfoSet
Definition d_event.h:201
int potentialCheck(dEvt_order_c *order)
Definition d_event.cpp:456
void setSkipZev(void *skipActor, char *eventName)
Definition d_event.cpp:852
fopAc_ac_c * getPtI()
Definition d_event.h:114
u8 field_0xe6
Definition d_event.h:180
void setPt1(void *actor)
Definition d_event.cpp:1379
dEvt_SkipCb mSkipFunc
Definition d_event.h:194
void setGtItm(u8 itemNo)
Definition d_event.cpp:1403
void afterFlagProc(dEvt_order_c *order)
Definition d_event.cpp:210
int talkCheck(dEvt_order_c *order)
Definition d_event.cpp:231
u8 field_0xe7
Definition d_event.h:181
int catchCheck(dEvt_order_c *order)
Definition d_event.cpp:339
fopAc_ac_c * getPtT()
Definition d_event.h:113
u8 field_0xec
Definition d_event.h:186
u8 mTalkXyType
Definition d_event.h:187
void onFlag2(u16 flag)
Definition d_event.h:120
u8 mEventStatus
Definition d_event.h:179
u8 getMapToolId()
Definition d_event.h:146
u8 mMode
Definition d_event.h:178
u16 mHindFlag
Definition d_event.h:173
void setPtD(void *actor)
Definition d_event.cpp:1399
dEvt_control_c()
Definition d_event.cpp:40
void * getStbDemoData(char *resName)
Definition d_event.cpp:1255
int doorCheck(dEvt_order_c *order)
Definition d_event.cpp:491
u8 mGtItm
Definition d_event.h:189
u8 mDebugStb
Definition d_event.h:183
void * mChangeActor
Definition d_event.h:192
s16 runningEventID(s16 eventID)
Definition d_event.cpp:1371
int Step()
Definition d_event.cpp:944
void setParam(dEvt_order_c *order)
Definition d_event.cpp:153
dStage_MapEvent_dt_c * mStageEventDt
Definition d_event.h:191
u16 chkEventFlag(u16 flag)
Definition d_event.h:116
fpc_ProcID getPId(void *actor)
Definition d_event.cpp:1243
void clearSkipSystem()
Definition d_event.cpp:716
void setSkipProc(void *skipActor, dEvt_SkipCb skipCb, int skipParameter)
Definition d_event.cpp:846
char * getSkipEventName()
Definition d_event.cpp:842
dEvt_order_c mOrder[8]
Definition d_event.h:165
bool isChangeOK(void *actor)
Definition d_event.h:158
void setCullRate(f32 rate)
Definition d_event.h:157
u16 checkHind(u16 flag)
Definition d_event.h:123
void setPtI(void *actor)
Definition d_event.cpp:1391
int change()
Definition d_event.cpp:588
int commonCheck(dEvt_order_c *order, u16 condition, u16 command)
Definition d_event.cpp:216
fpc_ProcID mPt2
Definition d_event.h:167
u8 field_0xea
Definition d_event.h:184
fopAc_ac_c * getPt2()
Definition d_event.h:112
BOOL compulsory(void *, const char *eventName, u16 hind)
Definition d_event.cpp:1202
s8 field_0xe8
Definition d_event.h:182
fpc_ProcID mPtd
Definition d_event.h:170
u16 mEventFlag
Definition d_event.h:171
s8 mNum
Definition d_event.h:176
s16 mEventId
Definition d_event.h:174
u8 getMode() const
Definition d_event.h:130
BOOL isOrderOK()
Definition d_event.h:138
u8 field_0x130
Definition d_event.h:204
fopAc_ac_c * convPId(fpc_ProcID id)
Definition d_event.cpp:1251
int moveApproval(void *)
Definition d_event.cpp:1134
void startCheckSkipEdge(void *actor)
Definition d_event.h:161
static dStage_MapEvent_dt_c * searchMapEventData(u8 mapToolID, s32 roomNo)
Definition d_event.cpp:1338
f32 getCullRate()
Definition d_event.h:156
fpc_ProcID mPtI
Definition d_event.h:169
int demoEnd()
Definition d_event.cpp:437
void reset()
Definition d_event.cpp:692
u8 unk_0x0[4]
Definition d_event.h:164
void onHindFlag(u16 flag)
Definition d_event.h:124
void setPtI_Id(fpc_ProcID id)
Definition d_event.cpp:1395
s8 mOrderIdx
Definition d_event.h:177
int mSkipParameter
Definition d_event.h:197
u8 unk_0xfc[4]
Definition d_event.h:193
char mSkipEventName[20]
Definition d_event.h:199
BOOL runCheck()
Definition d_event.h:131
fpc_ProcID mSkipActorId
Definition d_event.h:195
int endProc()
Definition d_event.cpp:558
f32 mCullRate
Definition d_event.h:190
void offSkipFade()
Definition d_event.cpp:861
u8 checkCompulsory()
Definition d_event.h:159
void setPtT(void *actor)
Definition d_event.cpp:1387
void setDebugStb(u8 stb)
Definition d_event.h:145
bool skipper()
Definition d_event.cpp:869
BOOL chkTalkXY()
Definition d_event.h:147
bool checkSkipEdge()
Definition d_event.h:122
fopAc_ac_c * getPt1()
Definition d_event.h:111
u8 getGtItm()
Definition d_event.h:155
u8 mPreItemNo
Definition d_event.h:188
u8 mCompulsory
Definition d_event.h:200
void offFlag2(u16 flag)
Definition d_event.h:121
int mRoomNo
Definition d_event.h:202
int demoCheck(dEvt_order_c *order)
Definition d_event.cpp:391
void onSkipFade()
Definition d_event.cpp:857
s32 beforeFlagProc(dEvt_order_c *order)
Definition d_event.cpp:196
void offEventFlag(u16 flag)
Definition d_event.h:118
int itemCheck(dEvt_order_c *order)
Definition d_event.cpp:535
void remove()
Definition d_event.cpp:1211
void onEventFlag(u16 flag)
Definition d_event.h:117
s32 order(u16 type, u16 prio, u16 flag, u16 hind, void *requestActor, void *targetActor, s16 id, u8 mapToolId)
Definition d_event.cpp:61
dStage_MapEvent_dt_c * getStageEventDt()
Definition d_event.cpp:1235
u16 chkFlag2(u16 flag)
Definition d_event.h:119
void sceneChange(int exitId)
Definition d_event.cpp:1239
s32 orderOld(u16 type, u16 prio, u16 flag, u16 hind, void *requestActor, void *targetActor, const void *eventName)
Definition d_event.cpp:46
u8 getPreItemNo()
Definition d_event.h:154
s16 mUnkEventId
Definition d_event.h:175
fpc_ProcID mPtT
Definition d_event.h:168
BOOL mIsSkipFade
Definition d_event.h:198
int talkEnd()
Definition d_event.cpp:367
int entry()
Definition d_event.cpp:611
int talkXyCheck(dEvt_order_c *order)
Definition d_event.cpp:276
u8 mMapToolId
Definition d_event.h:185
void offHindFlag(u16 flag)
Definition d_event.h:126
fopAc_ac_c * getPtD()
Definition d_event.h:115
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:44
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:271
static u8 const itemNo[4]
Definition d_a_obj_poFire.cpp:76
int dEv_noFinishSkipProc(void *actor, int parameter)
Definition d_event.cpp:837
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:738
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:729
int dEv_defaultSkipStb(void *actor, int parameter)
Definition d_event.cpp:787
unsigned int fpc_ProcID
Definition f_pc_base.h:10
Definition d_stage.h:402