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
118 void offEventFlag(u16 flag) { mEventFlag &= ~flag; }
120 void onFlag2(u16 flag) { mFlag2 |= flag; }
121 void offFlag2(u16 flag) { mFlag2 &= ~flag; }
122 bool checkSkipEdge() { return chkFlag2(8) != false; }
125 #if DEBUG
127 #else
128 void offHindFlag(u16 flag) { mHindFlag &= ~flag; }
129 #endif
130 u8 getMode() const { return mMode; }
132 #if DEBUG
133 return mEventStatus != 0 || mDebugStb != 0;
134 #else
135 return mEventStatus != 0;
136 #endif
137 }
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; }
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 }
155 u8 getGtItm() { return mGtItm; }
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 */
static BOOL flag
Definition DEMOAVX.c:20
Definition d_event.h:58
fpc_ProcID mPt1
Definition d_event.h:166
void setPt2(void *actor)
Definition d_event.cpp:1382
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:455
void setSkipZev(void *skipActor, char *eventName)
Definition d_event.cpp:851
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:1378
dEvt_SkipCb mSkipFunc
Definition d_event.h:194
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:181
int catchCheck(dEvt_order_c *order)
Definition d_event.cpp:338
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: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:189
u8 mDebugStb
Definition d_event.h:183
void * mChangeActor
Definition d_event.h:192
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:191
u16 chkEventFlag(u16 flag)
Definition d_event.h:116
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: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: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: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:1201
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:1250
int moveApproval(void *)
Definition d_event.cpp:1133
void startCheckSkipEdge(void *actor)
Definition d_event.h:161
static dStage_MapEvent_dt_c * searchMapEventData(u8 mapToolID, s32 roomNo)
Definition d_event.cpp:1337
f32 getCullRate()
Definition d_event.h:156
fpc_ProcID mPtI
Definition d_event.h:169
int demoEnd()
Definition d_event.cpp:436
void reset()
Definition d_event.cpp:691
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:1394
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:557
f32 mCullRate
Definition d_event.h:190
void offSkipFade()
Definition d_event.cpp:860
u8 checkCompulsory()
Definition d_event.h:159
void setPtT(void *actor)
Definition d_event.cpp:1386
void setDebugStb(u8 stb)
Definition d_event.h:145
bool skipper()
Definition d_event.cpp:868
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: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:118
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:117
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:119
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: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: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: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: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:243
static u8 const itemNo[4]
Definition d_a_obj_poFire.cpp:76
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
unsigned int fpc_ProcID
Definition f_pc_base.h:10
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
Definition d_stage.h:402