Loading [MathJax]/extensions/tex2jax.js
Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
d_a_passer_mng.h
Go to the documentation of this file.
1#ifndef D_A_PASSER_MNG_H
2#define D_A_PASSER_MNG_H
3
6
7class dPath;
8
17class daPasserMng_c : public fopAc_ac_c {
18public:
19 /* 80D45738 */ int execute();
20 /* 80D4597C */ int getPasserParam();
21 /* 80D45E14 */ int getLuggageParamHigh(u32);
22 /* 80D46768 */ int create();
23 /* 80D467C0 */ void create_init();
25
27 u8 getPathID() { return fopAcM_GetParam(this); }
28 u8 getIntervalTime() { return fopAcM_GetParam(this) >> 24; }
29 int getStartTime() { return (fopAcM_GetParam(this) >> 8) & 0xff; }
30 u8 getEndTime() { return (fopAcM_GetParam(this) >> 16) & 0xff; }
31 u8 getMaxNum() { return shape_angle.x; }
32 u8 getGroupNo() { return (shape_angle.x >> 8) & 0xff; }
33
35 if (dKy_darkworld_check()) {
36 return dKy_getDarktime_hour();
37 }
38 return dKy_getdaytime_hour();
39 }
40
42 if (dKy_darkworld_check()) {
44 }
45 return dKy_getdaytime_minute();
46 }
47
48 int getTime() {
49 return getTimeHour() * 60 + getTimeMinute();
50 }
51
53 if (dKy_darkworld_check()) {
54 return dKy_getDarktime_week();
55 }
56 return dKy_get_dayofweek();
57 }
58
60 int childNum = 0;
61 fopAc_ac_c* pActor = NULL;
62 for (int i = 0; i < getMaxNum(); i++) {
64 if (pActor != NULL) {
65 childNum++;
66 }
67 }
68 return childNum;
69 }
70
71 bool checkOverlapping(int param_1, int param_2) {
72 int iVar1;
73 if ((u32)param_2 <= 6) {
74 iVar1 = (u8)param_2 - 1;
75 } else {
76 iVar1 = 6;
77 }
78 for (int i = 0; i < iVar1; i++) {
79 if (field_0x58a[i] == param_1) {
80 return true;
81 }
82 }
83 return false;
84 }
85
86 int getLuggageParamLow(u32 param_1) {
87 int paramLow;
88
89 paramLow = 0;
90 switch (param_1) {
91 case 0:
92 case 1:
93 if (cLib_getRndValue(0, 2) != 0) {
94 paramLow = 2;
95 }
96 break;
97 case 2:
98 case 8:
99 case 9:
100 case 10:
101 case 15:
102 switch(cLib_getRndValue(0, 3)) {
103 case 0:
104 paramLow = 0;
105 break;
106 case 1:
107 paramLow = 1;
108 break;
109 case 2:
110 paramLow = 4;
111 break;
112 }
113 break;
114 case 3:
115 case 11:
116 switch(cLib_getRndValue(0, 2)) {
117 case 0:
118 paramLow = 0;
119 break;
120 case 1:
121 paramLow = 4;
122 break;
123 }
124 break;
125 case 4:
126 case 5:
127 case 12:
128 case 13:
129 switch(cLib_getRndValue(0, 3)) {
130 case 0:
131 paramLow = 0;
132 break;
133 case 1:
134 paramLow = 1;
135 break;
136 case 2:
137 paramLow = 4;
138 break;
139 }
140 break;
141 case 6:
142 case 14:
143 switch (cLib_getRndValue(0, 2)) {
144 case 0:
145 paramLow = 0;
146 break;
147 case 1:
148 paramLow = 1;
149 break;
150 }
151 break;
152 case 7:
153 switch (cLib_getRndValue(0, 2)) {
154 case 0:
155 paramLow = 0;
156 break;
157 case 1:
158 paramLow = 4;
159 break;
160 }
161 break;
162 case 0x10:
163 case 0x17:
164 switch(cLib_getRndValue(0, 3)) {
165 case 0:
166 paramLow = 0;
167 break;
168 case 1:
169 paramLow = 8;
170 break;
171 case 2:
172 paramLow = 5;
173 break;
174 }
175 break;
176 case 0x11:
177 case 0x18:
178 switch(cLib_getRndValue(0, 3)) {
179 case 0:
180 paramLow = 0;
181 break;
182 case 1:
183 paramLow = 8;
184 break;
185 case 2:
186 paramLow = 5;
187 break;
188 }
189 break;
190 case 0x12:
191 case 0x19:
192 switch(cLib_getRndValue(0, 4)) {
193 case 0:
194 paramLow = 0;
195 break;
196 case 1:
197 paramLow = 8;
198 break;
199 case 2:
200 paramLow = 5;
201 break;
202 case 3:
203 paramLow = 3;
204 break;
205 }
206 break;
207 case 0x13:
208 case 0x1a:
209 switch (cLib_getRndValue(0, 2)) {
210 case 0:
211 paramLow = 0;
212 break;
213 case 1:
214 paramLow = 5;
215 break;
216 }
217 break;
218 case 0x14:
219 case 0x1b:
220 switch (cLib_getRndValue(0, 2)) {
221 case 0:
222 paramLow = 0;
223 break;
224 case 1:
225 paramLow = 5;
226 break;
227 }
228 break;
229 case 0x15:
230 case 0x1c:
231 switch (cLib_getRndValue(0, 2)) {
232 case 0:
233 paramLow = 0;
234 break;
235 case 1:
236 paramLow = 5;
237 break;
238 }
239 break;
240 case 0x16:
241 case 0x1d:
242 switch(cLib_getRndValue(0, 3)) {
243 case 0:
244 paramLow = 0;
245 break;
246 case 1:
247 paramLow = 5;
248 break;
249 case 2:
250 paramLow = 3;
251 break;
252 }
253 break;
254 default:
255 OS_REPORT("%s: Line.%d arg=%d\n", "d_a_passer_mng.cpp", 1049, param_1);
256 JUT_PANIC(1050, 0);
257 break;
258 }
259 return paramLow << 8;
260 }
261
262 struct Group {
265 };
266
267 static Group* mGroupTbl[4];
268
269private:
271 /* 0x56C */ dPath* mPath;
272 /* 0x570 */ int startTime;
273 /* 0x574 */ int endTime;
274 /* 0x578 */ int intervalTime;
275 /* 0x57C */ int mTime;
276 /* 0x580 */ int dayOfWeek;
277 /* 0x584 */ int currentChildIndex;
278 /* 0x588 */ s16 npcId;
279 /* 0x58A */ s16 field_0x58a[5];
280 /* 0x594 */ s16 field_0x594;
281 /* 0x596 */ u8 field_0x596;
282 /* 0x597 */ u8 field_0x597;
283 };
284
285STATIC_ASSERT(sizeof(daPasserMng_c) == 0x598);
286
287
288#endif /* D_A_PASSER_MNG_H */
T cLib_getRndValue(T min, T range)
Definition c_lib.h:75
Hylian Passerby Manager?
Definition d_a_passer_mng.h:17
s16 field_0x594
Definition d_a_passer_mng.h:280
~daPasserMng_c()
Definition d_a_passer_mng.h:24
u8 getEndTime()
Definition d_a_passer_mng.h:30
int getTimeMinute()
Definition d_a_passer_mng.h:41
int getLuggageParamHigh(u32)
Definition d_a_passer_mng.cpp:123
int getTime()
Definition d_a_passer_mng.h:48
int intervalTime
Definition d_a_passer_mng.h:274
static Group * mGroupTbl[4]
Definition d_a_passer_mng.h:69
u8 getPathID()
Definition d_a_passer_mng.h:27
u8 getMaxNum()
Definition d_a_passer_mng.h:31
int getLuggageParamLow(u32 param_1)
Definition d_a_passer_mng.h:86
int getTimeHour()
Definition d_a_passer_mng.h:34
int currentChildIndex
Definition d_a_passer_mng.h:277
int dayOfWeek
Definition d_a_passer_mng.h:276
void create_init()
Definition d_a_passer_mng.cpp:523
bool checkOverlapping(int param_1, int param_2)
Definition d_a_passer_mng.h:71
int getPasserParam()
Definition d_a_passer_mng.cpp:78
u8 field_0x597
Definition d_a_passer_mng.h:282
int startTime
Definition d_a_passer_mng.h:272
fpc_ProcID * childProcIds
Definition d_a_passer_mng.h:270
dPath * mPath
Definition d_a_passer_mng.h:271
u8 getDetailLevel()
Definition d_a_passer_mng.h:26
int create()
Definition d_a_passer_mng.cpp:516
int getStartTime()
Definition d_a_passer_mng.h:29
s16 npcId
Definition d_a_passer_mng.h:278
s16 field_0x58a[5]
Definition d_a_passer_mng.h:279
u8 getIntervalTime()
Definition d_a_passer_mng.h:28
int endTime
Definition d_a_passer_mng.h:273
int getDayOfWeek()
Definition d_a_passer_mng.h:52
u8 getGroupNo()
Definition d_a_passer_mng.h:32
u8 field_0x596
Definition d_a_passer_mng.h:281
int mTime
Definition d_a_passer_mng.h:275
int execute()
Definition d_a_passer_mng.cpp:18
int getChildNum()
Definition d_a_passer_mng.h:59
STATIC_ASSERT(sizeof(daPasserMng_c)==0x598)
int dKy_getdaytime_hour()
Definition d_kankyo.cpp:1501
u8 dKy_getDarktime_week()
Definition d_kankyo.cpp:1534
int dKy_getDarktime_hour()
Definition d_kankyo.cpp:1522
int dKy_getdaytime_minute()
Definition d_kankyo.cpp:1506
int dKy_getDarktime_minute()
Definition d_kankyo.cpp:1527
bool dKy_darkworld_check()
Definition d_kankyo.cpp:6572
int dKy_get_dayofweek()
Definition d_kankyo.cpp:5299
int i
Definition e_pow.c:165
s32 fopAcM_SearchByID(fpc_ProcID i_actorID, fopAc_ac_c **i_outActor)
Definition f_op_actor_mng.cpp:49
u32 fopAcM_GetParam(const void *i_actor)
Definition f_op_actor_mng.h:186
unsigned int fpc_ProcID
Definition f_pc_base.h:10
s16 x
Definition c_sxyz.h:7
Definition d_path.h:18
Definition d_a_passer_mng.h:262
u8 field_0x00
Definition d_a_passer_mng.h:263
int field_0x04[0]
Definition d_a_passer_mng.h:264
Definition d_a_hozelda.cpp:74
s8 subtype
Definition f_op_actor.h:214
csXyz shape_angle
Definition f_op_actor.h:222
unsigned long u32
Definition types.h:9
signed short int s16
Definition types.h:6
unsigned char u8
Definition types.h:5