Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_a_npc_passer.h
Go to the documentation of this file.
1#ifndef D_A_NPC_PASSER_H
2#define D_A_NPC_PASSER_H
3
4#include "d/actor/d_a_npc.h"
6
16class daNpcPasser_c : public daNpcCd2_c {
17public:
18 typedef void (daNpcPasser_c::*actionFunc)();
19 typedef BOOL (daNpcPasser_c::*seqFunc)(void*);
20
21 enum Mode_e {
22 /* 0x0 */ MODE_0,
23 /* 0x1 */ MODE_1,
24 /* 0x2 */ MODE_2,
25 /* 0x3 */ MODE_3,
26 /* 0x4 */ MODE_4,
27 /* 0x5 */ MODE_MAX_e,
28 };
29
31 int createHeap();
33 int execute();
34 int draw();
36 void callInit();
37 void callExecute();
38 void initPath();
39 void executePath();
40 void initEscape();
41 void executeEscape();
42 void initFear();
43 void executeFear();
44 void initFight();
45 void executeFight();
46 void initRelief();
47 void executeRelief();
48 void create_init();
49 void setAngle();
50 void setSpeed(f32, f32, f32*, int);
51 void pathMoveF();
52 void setBaseMtx();
53 void initCollision();
54 void setCollision();
55 BOOL waita(void*);
56 BOOL talka(void*);
57 BOOL waitwall(void*);
58 BOOL talkwall(void*);
59 BOOL talkbwall(void*);
60 BOOL talkb(void*);
61 BOOL talkc(void*);
62 BOOL waitb(void*);
63 BOOL sitwaita(void*);
64 BOOL sittalka(void*);
65 BOOL sittalkab(void*);
66 BOOL sitwaitb(void*);
67 BOOL sittalkb(void*);
68 BOOL sittalkbb(void*);
69 BOOL looka(void*);
70 BOOL lookb(void*);
71 BOOL playm(void*);
72 BOOL turnr(void*);
73 BOOL turnl(void*);
74 BOOL walka(void*);
75 BOOL runa(void*);
76 BOOL runb(void*);
77 BOOL walkb(void*);
78 BOOL browsea(void*);
79 BOOL browseb(void*);
80 BOOL waitTime(void*);
81
82 int getObjNum() { return (fopAcM_GetParam(this) >> 8) & 0xFF; }
85 int getTime() {return (getTimeHour() * 60) + getTimeMinute(); }
87 int getEndTime() { return current.angle.x; }
88 int getType() { return fopAcM_GetParam(this) & 0xFF; }
89 u8 getMoveType() { return (fopAcM_GetParam(this) >> 24) & 0xF; }
90 u8 getWalkMotionType() { return (fopAcM_GetParam(this) >> 28) & 3; }
91 u8 getRunMotionType() { return fopAcM_GetParam(this) >> 30; }
92 u8 getPathID() { return (fopAcM_GetParam(this) >> 16) & 0xFF; }
93 BOOL isStop() { return TRUE; }
94
95 static actionFunc ActionTable[5][2];
96 static seqFunc* m_funcTbl[28];
97 static seqFunc m_seq00_funcTbl[2];
98 static seqFunc m_seq01_funcTbl[2];
99 static seqFunc m_seq02_funcTbl[2];
100 static seqFunc m_seq03_funcTbl[2];
101 static seqFunc m_seq04_funcTbl[2];
102 static seqFunc m_seq05_funcTbl[4];
103 static seqFunc m_seq06_funcTbl[4];
104 static seqFunc m_seq07_funcTbl[2];
105 static seqFunc m_seq08_funcTbl[7];
106 static seqFunc m_seq09_funcTbl[2];
107 static seqFunc m_seq10_funcTbl[2];
108 static seqFunc m_seq11_funcTbl[6];
109 static seqFunc m_seq12_funcTbl[2];
110 static seqFunc m_seq13_funcTbl[6];
111 static seqFunc m_seq14_funcTbl[2];
112 static seqFunc m_seq15_funcTbl[2];
113 static seqFunc m_seq16_funcTbl[7];
114 static seqFunc m_seq17_funcTbl[2];
115 static seqFunc m_seq18_funcTbl[2];
116 static seqFunc m_seq19_funcTbl[7];
117 static seqFunc m_seq20_funcTbl[2];
118 static seqFunc m_seq21_funcTbl[2];
119 static seqFunc m_seq22_funcTbl[4];
120 static seqFunc m_seq23_funcTbl[7];
121 static seqFunc m_seq24_funcTbl[5];
122 static seqFunc m_seq25_funcTbl[7];
123 static seqFunc m_seq26_funcTbl[3];
124 static seqFunc m_seq27_funcTbl[1];
125
126private:
127 /* 0xAC8 */ J3DModel* mpModel;
128 /* 0xACC */ PathTrace_c m_path;
130 /* 0xAF8 */ int mActionIdx;
131 /* 0xAFC */ int mPrevActionIdx;
132 /* 0xB00 */ int m_objNum;
133 /* 0xB04 */ int arg0;
134 /* 0xB08 */ int m_dayOfWeek;
135 /* 0xB0C */ int m_endTime;
136 /* 0xB10 */ f32 field_0xb10;
137 /* 0xB14 */ f32 field_0xb14;
138 /* 0xB18 */ f32 mPosY;
139 /* 0xB1C */ u32 field_0xb1c;
140 /* 0xB20 */ s16 mTargetAngleY;
141 /* 0xB22 */ u8 field_0xb22;
142 /* 0xB23 */ u8 field_0xb23;
143 /* 0xB24 */ u8 mPathMode;
144 /* 0xB25 */ u8 field_0xb25;
145};
146
147STATIC_ASSERT(sizeof(daNpcPasser_c) == 0xb28);
148
149
150#endif /* D_A_NPC_PASSER_H */
cPhs__Step
Definition c_phase.h:8
Definition J3DModel.h:43
Definition d_a_npc_cd2.h:222
Definition d_a_npc_cd2.h:257
Hylian Passerby.
Definition d_a_npc_passer.h:16
void(daNpcPasser_c::*) actionFunc()
Definition d_a_npc_passer.h:18
daNpcPasser_c::actionFunc * mAction
Definition d_a_npc_passer.h:129
u8 field_0xb22
Definition d_a_npc_passer.h:141
void initEscape()
Definition d_a_npc_passer.cpp:283
BOOL turnr(void *)
Definition d_a_npc_passer.cpp:1031
int execute()
Definition d_a_npc_passer.cpp:97
void setSpeed(f32, f32, f32 *, int)
Definition d_a_npc_passer.cpp:687
void executeFight()
Definition d_a_npc_passer.cpp:390
static seqFunc m_seq11_funcTbl[6]
Definition d_a_npc_passer.h:565
int mActionIdx
Definition d_a_npc_passer.h:130
f32 field_0xb10
Definition d_a_npc_passer.h:136
BOOL walka(void *)
Definition d_a_npc_passer.cpp:1073
void setAction(daNpcPasser_c::Mode_e)
Definition d_a_npc_passer.cpp:129
static actionFunc ActionTable[5][2]
Definition d_a_npc_passer.h:476
int arg0
Definition d_a_npc_passer.h:133
static seqFunc m_seq20_funcTbl[2]
Definition d_a_npc_passer.h:628
int createHeap()
Definition d_a_npc_passer.cpp:23
static seqFunc m_seq27_funcTbl[1]
Definition d_a_npc_passer.h:679
static seqFunc m_seq04_funcTbl[2]
Definition d_a_npc_passer.h:521
BOOL lookb(void *)
Definition d_a_npc_passer.cpp:1003
static seqFunc m_seq25_funcTbl[7]
Definition d_a_npc_passer.h:663
int getDayOfWeek()
Definition d_a_npc_passer.h:86
BOOL turnl(void *)
Definition d_a_npc_passer.cpp:1052
int draw()
Definition d_a_npc_passer.cpp:116
static seqFunc m_seq18_funcTbl[2]
Definition d_a_npc_passer.h:613
void initFight()
Definition d_a_npc_passer.cpp:381
static seqFunc m_seq01_funcTbl[2]
Definition d_a_npc_passer.h:506
BOOL waitwall(void *)
Definition d_a_npc_passer.cpp:821
BOOL talkbwall(void *)
Definition d_a_npc_passer.cpp:849
void callInit()
Definition d_a_npc_passer.cpp:137
s16 mTargetAngleY
Definition d_a_npc_passer.h:140
void executePath()
Definition d_a_npc_passer.cpp:190
void initPath()
Definition d_a_npc_passer.cpp:156
BOOL sittalkb(void *)
Definition d_a_npc_passer.cpp:961
void callExecute()
Definition d_a_npc_passer.cpp:142
u8 mPathMode
Definition d_a_npc_passer.h:143
BOOL browsea(void *)
Definition d_a_npc_passer.cpp:1097
BOOL waitTime(void *)
Definition d_a_npc_passer.cpp:1125
u8 getMoveType()
Definition d_a_npc_passer.h:89
static seqFunc m_seq02_funcTbl[2]
Definition d_a_npc_passer.h:511
int m_endTime
Definition d_a_npc_passer.h:135
static seqFunc m_seq08_funcTbl[7]
Definition d_a_npc_passer.h:545
BOOL sittalkbb(void *)
Definition d_a_npc_passer.cpp:975
u8 getPathID()
Definition d_a_npc_passer.h:92
u8 getRunMotionType()
Definition d_a_npc_passer.h:91
BOOL talkwall(void *)
Definition d_a_npc_passer.cpp:835
BOOL sitwaitb(void *)
Definition d_a_npc_passer.cpp:947
static seqFunc m_seq15_funcTbl[2]
Definition d_a_npc_passer.h:593
static seqFunc m_seq21_funcTbl[2]
Definition d_a_npc_passer.h:633
u8 field_0xb25
Definition d_a_npc_passer.h:144
void create_init()
Definition d_a_npc_passer.cpp:444
int getObjNum()
Definition d_a_npc_passer.h:82
int m_dayOfWeek
Definition d_a_npc_passer.h:134
PathTrace_c m_path
Definition d_a_npc_passer.h:128
static seqFunc m_seq03_funcTbl[2]
Definition d_a_npc_passer.h:516
void executeFear()
Definition d_a_npc_passer.cpp:369
BOOL runa(void *)
Definition d_a_npc_passer.cpp:1079
cPhs__Step create()
Definition d_a_npc_passer.cpp:45
static seqFunc m_seq14_funcTbl[2]
Definition d_a_npc_passer.h:588
f32 field_0xb14
Definition d_a_npc_passer.h:137
int getTimeMinute()
Definition d_a_npc_passer.h:84
BOOL(daNpcPasser_c::*) seqFunc(void *)
Definition d_a_npc_passer.h:19
BOOL runb(void *)
Definition d_a_npc_passer.cpp:1085
void executeRelief()
Definition d_a_npc_passer.cpp:423
static seqFunc m_seq19_funcTbl[7]
Definition d_a_npc_passer.h:618
u8 getWalkMotionType()
Definition d_a_npc_passer.h:90
BOOL waitb(void *)
Definition d_a_npc_passer.cpp:891
~daNpcPasser_c()
Definition d_a_npc_passer.cpp:11
Mode_e
Definition d_a_npc_passer.h:21
@ MODE_MAX_e
Definition d_a_npc_passer.h:27
@ MODE_2
Definition d_a_npc_passer.h:24
@ MODE_1
Definition d_a_npc_passer.h:23
@ MODE_4
Definition d_a_npc_passer.h:26
@ MODE_0
Definition d_a_npc_passer.h:22
@ MODE_3
Definition d_a_npc_passer.h:25
int getEndTime()
Definition d_a_npc_passer.h:87
int getTime()
Definition d_a_npc_passer.h:85
BOOL talkb(void *)
Definition d_a_npc_passer.cpp:863
BOOL sitwaita(void *)
Definition d_a_npc_passer.cpp:905
void initFear()
Definition d_a_npc_passer.cpp:361
static seqFunc m_seq13_funcTbl[6]
Definition d_a_npc_passer.h:579
int getType()
Definition d_a_npc_passer.h:88
static seqFunc m_seq12_funcTbl[2]
Definition d_a_npc_passer.h:574
f32 mPosY
Definition d_a_npc_passer.h:138
static seqFunc m_seq17_funcTbl[2]
Definition d_a_npc_passer.h:608
static seqFunc m_seq26_funcTbl[3]
Definition d_a_npc_passer.h:673
void executeEscape()
Definition d_a_npc_passer.cpp:305
J3DModel * mpModel
Definition d_a_npc_passer.h:127
void initCollision()
Definition d_a_npc_passer.cpp:770
static seqFunc m_seq00_funcTbl[2]
Definition d_a_npc_passer.h:501
void pathMoveF()
Definition d_a_npc_passer.cpp:705
BOOL walkb(void *)
Definition d_a_npc_passer.cpp:1091
BOOL sittalkab(void *)
Definition d_a_npc_passer.cpp:933
static seqFunc m_seq10_funcTbl[2]
Definition d_a_npc_passer.h:560
u8 field_0xb23
Definition d_a_npc_passer.h:142
int m_objNum
Definition d_a_npc_passer.h:132
BOOL browseb(void *)
Definition d_a_npc_passer.cpp:1111
BOOL isStop()
Definition d_a_npc_passer.h:93
BOOL playm(void *)
Definition d_a_npc_passer.cpp:1017
static seqFunc m_seq22_funcTbl[4]
Definition d_a_npc_passer.h:638
BOOL sittalka(void *)
Definition d_a_npc_passer.cpp:919
BOOL talkc(void *)
Definition d_a_npc_passer.cpp:877
BOOL looka(void *)
Definition d_a_npc_passer.cpp:989
u32 field_0xb1c
Definition d_a_npc_passer.h:139
int mPrevActionIdx
Definition d_a_npc_passer.h:131
void initRelief()
Definition d_a_npc_passer.cpp:416
static seqFunc m_seq09_funcTbl[2]
Definition d_a_npc_passer.h:555
void setBaseMtx()
Definition d_a_npc_passer.cpp:762
BOOL waita(void *)
Definition d_a_npc_passer.cpp:793
static seqFunc m_seq05_funcTbl[4]
Definition d_a_npc_passer.h:526
static seqFunc m_seq16_funcTbl[7]
Definition d_a_npc_passer.h:598
static seqFunc m_seq23_funcTbl[7]
Definition d_a_npc_passer.h:645
BOOL talka(void *)
Definition d_a_npc_passer.cpp:807
static seqFunc m_seq24_funcTbl[5]
Definition d_a_npc_passer.h:655
static seqFunc m_seq06_funcTbl[4]
Definition d_a_npc_passer.h:533
void setAngle()
Definition d_a_npc_passer.cpp:683
static seqFunc m_seq07_funcTbl[2]
Definition d_a_npc_passer.h:540
void setCollision()
Definition d_a_npc_passer.cpp:779
int getTimeHour()
Definition d_a_npc_passer.h:83
static seqFunc * m_funcTbl[28]
Definition d_a_npc_passer.h:484
actor_place current
Definition f_op_actor.h:251
STATIC_ASSERT(sizeof(daNpcPasser_c)==0xb28)
int dKy_getdaytime_hour()
Definition d_kankyo.cpp:1711
u8 dKy_getDarktime_week()
Definition d_kankyo.cpp:1742
int dKy_getDarktime_hour()
Definition d_kankyo.cpp:1731
u8 dKy_darkworld_check()
Definition d_kankyo.cpp:11379
int dKy_getdaytime_minute()
Definition d_kankyo.cpp:1716
int dKy_getDarktime_minute()
Definition d_kankyo.cpp:1736
int dKy_get_dayofweek()
Definition d_kankyo.cpp:9938
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
unsigned char u8
Definition types.h:8
u32 fopAcM_GetParam(const void *i_actor)
Definition f_op_actor_mng.h:192
s16 x
Definition c_sxyz.h:7
csXyz angle
Definition f_op_actor.h:206