Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_a_npc_bouS.h
Go to the documentation of this file.
1#ifndef D_A_NPC_BOUS_H
2#define D_A_NPC_BOUS_H
3
4#include "d/actor/d_a_npc4.h"
5
18 /* 0x70 */ f32 talk_dist;
19 /* 0x74 */ f32 gaze_x;
20 /* 0x78 */ f32 gaze_y;
21 /* 0x7C */ f32 gaze_z;
22 /* 0x80 */ f32 eye_dist;
23 /* 0x84 */ s16 eye_angle_x;
24 /* 0x86 */ s16 eye_angle_y;
25 /* 0x88 */ s16 field_0x88;
26};
27
29public:
30 virtual ~daNpcBouS_Param_c() {}
31
32 static daNpcBouS_HIOParam const m;
33};
34
35#if DEBUG
37public:
41
43};
44#define NPC_BOUS_HIO_CLASS daNpcBouS_HIO_c
45#else
46#define NPC_BOUS_HIO_CLASS daNpcBouS_Param_c
47#endif
48
49class daNpcBouS_c : public daNpcF_c {
50public:
51 typedef bool (daNpcBouS_c::*actionFunc)(void*);
52 typedef int (daNpcBouS_c::*eventFunc)(int);
53
57 int CreateHeap();
58 int Delete();
59 int Execute();
60 int Draw();
62 static int createHeapCallBack(fopAc_ac_c*);
63 static int ctrlJointCallBack(J3DJoint*, int);
64 bool setExpressionAnm(int, bool);
65 bool setExpressionBtp(int);
66 void setMotionAnm(int, f32);
67 void reset();
70 bool wait(void*);
71 void setMotion(int, f32, int);
72 void setExpression(int, f32);
73 bool talk(void*);
74 bool demo(void*);
76 bool instruction(void*);
78 int EvCut_BousIntroSumo1(int);
79 int EvCut_BousIntroSumo2(int);
80 int EvCut_BousIntroSumo3(int);
81 inline void setParam();
82 inline BOOL main();
83 inline void playExpression();
84 inline void playMotion();
85 inline BOOL ctrlBtk();
86 inline void setAttnPos();
87 inline void lookat();
88 inline BOOL step(s16, int);
89 inline int drawDbgInfo();
90 inline void drawOtherMdls();
92
93 s16 getMessageNo() { return (fopAcM_GetParam(this) >> 8) & 0xFFFF; }
94 s8 getArenaNo() { return fopAcM_GetParam(this) & 0xFF; }
95
97 BOOL inArea = FALSE;
98 if (mActorMngrs[0].getActorP() == NULL) {
99 inArea = chkPlayerInSpeakArea(this);
100 } else {
101 inArea = chkPlayerInTalkArea(this);
102 }
103
104 if (inArea) {
106 } else {
107 mActorMngrs[0].remove();
108 }
109
110 return inArea;
111 }
112
113 void setLookMode(int i_lookMode) { if (i_lookMode >= 0 && i_lookMode < 4 && i_lookMode != mLookMode) mLookMode = i_lookMode; }
114
115 inline void setExpressionTalkAfter();
116
117 s8 getType() { return argument & 0x7F; }
118
121 if (actor != NULL) {
123 old.pos = current.pos;
125 cXyz pos(0.0f, 0.0f, 220.0f);
128 mDoMtx_stack_c::multVec(&pos, &pos);
130 }
131 }
132
133 void setHome() {
136 }
137 void offDispFlag() { mDispFlag = 0; }
138 void onDispFlag() { mDispFlag = 1; }
139 void setMessageNo(s16 i_msgNo) {
140 mMsgNo = i_msgNo;
141 }
143 mForcibleTalk = 1;
144 }
145
146 static eventFunc mEvtSeqList[4];
147
148private:
149 /* 0xB48 */ Z2Creature mSound;
153 /* 0xC80 */ NPC_BOUS_HIO_CLASS* mHIO;
154 /* 0xC84 */ dCcD_Cyl mCyl;
155 /* 0xDC0 */ actionFunc mAction;
156 /* 0xDCC */ u8 field_0xdcc[0xdd4 - 0xdcc];
159 /* 0xDE8 */ int mTimer;
160 /* 0xDEC */ int mInstructionMode;
161 /* 0xDF0 */ int mMsgNo;
162 /* 0xDF4 */ u8 field_0xdf4[0xdf8 - 0xdf4];
163 /* 0xDF8 */ s16 mLookMode;
165 /* 0xDFC */ u16 mMode;
166 /* 0xDFE */ u8 mForcibleTalk;
167 /* 0xDFF */ u8 mDispFlag;
168};
169
170STATIC_ASSERT(sizeof(daNpcBouS_c) == 0xe00);
171
172#endif /* D_A_NPC_BOUS_H */
cPhs__Step
Definition c_phase.h:8
Definition J3DJoint.h:63
Definition J3DModel.h:43
Definition JORMContext.h:120
Definition Z2Creature.h:7
Definition d_cc_d.h:461
Definition d_a_npc_bouS.h:36
void listenPropertyEvent(const JORPropertyEvent *)
Definition d_a_npc_bouS.cpp:228
daNpcBouS_HIOParam m
Definition d_a_npc_bouS.h:42
void genMessage(JORMContext *)
Definition d_a_npc_bouS.cpp:251
daNpcBouS_HIO_c()
Definition d_a_npc_bouS.cpp:224
Definition d_a_npc_bouS.h:28
virtual ~daNpcBouS_Param_c()
Definition d_a_npc_bouS.h:30
static daNpcBouS_HIOParam const m
Definition d_a_npc_bouS.h:288
Mayor Bo (inside house)
Definition d_a_npc_bouS.h:49
void playMotion()
Definition d_a_npc_bouS.cpp:755
u8 mDispFlag
Definition d_a_npc_bouS.h:167
void setLookMode(int i_lookMode)
Definition d_a_npc_bouS.h:113
void setForcibleTalk()
Definition d_a_npc_bouS.h:142
void setHome()
Definition d_a_npc_bouS.h:133
bool setExpressionAnm(int, bool)
Definition d_a_npc_bouS.cpp:505
bool checkInstructionTag(fopAc_ac_c *)
Definition d_a_npc_bouS.cpp:684
int EvCut_BousIntroSumo1(int)
Definition d_a_npc_bouS.cpp:1340
int EvCut_BousIntroSumo3(int)
Definition d_a_npc_bouS.cpp:1469
bool demo(void *)
Definition d_a_npc_bouS.cpp:1175
bool setExpressionBtp(int)
Definition d_a_npc_bouS.cpp:571
u8 mForcibleTalk
Definition d_a_npc_bouS.h:166
daNpcF_MatAnm_c * mpMatAnm
Definition d_a_npc_bouS.h:150
BOOL setAction(actionFunc)
Definition d_a_npc_bouS.cpp:656
BOOL chkFindPlayer()
Definition d_a_npc_bouS.h:96
int mTimer
Definition d_a_npc_bouS.h:159
bool wait(void *)
Definition d_a_npc_bouS.cpp:990
void lookat()
Definition d_a_npc_bouS.cpp:901
s16 mLookMode
Definition d_a_npc_bouS.h:163
static int createHeapCallBack(fopAc_ac_c *)
Definition d_a_npc_bouS.cpp:488
void setMotionAnm(int, f32)
Definition d_a_npc_bouS.cpp:595
void reset()
Definition d_a_npc_bouS.cpp:620
int drawDbgInfo()
Definition d_a_npc_bouS.cpp:1586
NPC_BOUS_HIO_CLASS * mHIO
Definition d_a_npc_bouS.h:153
bool talk(void *)
Definition d_a_npc_bouS.cpp:1097
cPhs__Step Create()
Definition d_a_npc_bouS.cpp:333
int mMsgNo
Definition d_a_npc_bouS.h:161
daNpcF_ActorMngr_c mActorMngrs[1]
Definition d_a_npc_bouS.h:152
s8 getArenaNo()
Definition d_a_npc_bouS.h:94
static eventFunc mEvtSeqList[4]
Definition d_a_npc_bouS.h:263
int mInstructionMode
Definition d_a_npc_bouS.h:160
int Execute()
Definition d_a_npc_bouS.cpp:424
fpc_ProcID mItemPartnerId
Definition d_a_npc_bouS.h:158
s8 getType()
Definition d_a_npc_bouS.h:117
~daNpcBouS_c()
Definition d_a_npc_bouS.cpp:272
void adjustShapeAngle()
Definition d_a_npc_bouS.h:91
s16 getMessageNo()
Definition d_a_npc_bouS.h:93
int Draw()
Definition d_a_npc_bouS.cpp:429
void setAttnPos()
Definition d_a_npc_bouS.cpp:838
void drawOtherMdls()
Definition d_a_npc_bouS.cpp:1597
void setMotion(int, f32, int)
Definition d_a_npc_bouS.cpp:1061
daNpcF_Lookat_c mLookat
Definition d_a_npc_bouS.h:151
u8 field_0xdcc[0xdd4 - 0xdcc]
Definition d_a_npc_bouS.h:156
int ctrlJoint(J3DJoint *, J3DModel *)
Definition d_a_npc_bouS.cpp:440
u16 mMode
Definition d_a_npc_bouS.h:165
void setParam()
Definition d_a_npc_bouS.cpp:693
int(daNpcBouS_c::*) eventFunc(int)
Definition d_a_npc_bouS.h:52
BOOL main()
Definition d_a_npc_bouS.cpp:712
void setInstructionPos()
Definition d_a_npc_bouS.h:119
static int ctrlJointCallBack(J3DJoint *, int)
Definition d_a_npc_bouS.cpp:493
void setExpressionTalkAfter()
Definition d_a_npc_bouS.cpp:1081
int Delete()
Definition d_a_npc_bouS.cpp:418
BOOL step(s16, int)
Definition d_a_npc_bouS.cpp:956
int EvCut_BousIntroSumo2(int)
Definition d_a_npc_bouS.cpp:1414
BOOL ctrlBtk()
Definition d_a_npc_bouS.cpp:821
bool instruction(void *)
Definition d_a_npc_bouS.cpp:1223
daNpcBouS_c()
Definition d_a_npc_bouS.cpp:270
request_of_phase_process_class mPhases[2]
Definition d_a_npc_bouS.h:157
dCcD_Cyl mCyl
Definition d_a_npc_bouS.h:154
fopAc_ac_c * searchInstructionTag()
Definition d_a_npc_bouS.cpp:1218
void setMessageNo(s16 i_msgNo)
Definition d_a_npc_bouS.h:139
bool checkIntroDemoStart()
Definition d_a_npc_bouS.cpp:1321
void setExpression(int, f32)
Definition d_a_npc_bouS.cpp:1072
void offDispFlag()
Definition d_a_npc_bouS.h:137
s16 mMotionPhaseCopy
Definition d_a_npc_bouS.h:164
actionFunc mAction
Definition d_a_npc_bouS.h:155
Z2Creature mSound
Definition d_a_npc_bouS.h:149
int CreateHeap()
Definition d_a_npc_bouS.cpp:381
void playExpression()
Definition d_a_npc_bouS.cpp:727
u8 field_0xdf4[0xdf8 - 0xdf4]
Definition d_a_npc_bouS.h:162
bool(daNpcBouS_c::*) actionFunc(void *)
Definition d_a_npc_bouS.h:51
void onDispFlag()
Definition d_a_npc_bouS.h:138
Definition d_a_npc4.h:14
void entry(unsigned int)
Definition d_a_npc4.cpp:75
void remove()
Definition d_a_npc4.cpp:79
Definition d_a_npc4.h:379
Definition d_a_npc4.h:292
Definition d_a_npc4.h:54
BOOL chkPlayerInTalkArea(fopAc_ac_c *i_actor)
Definition d_a_npc4.h:270
void setAngle(s16)
Definition d_a_npc4.cpp:1493
BOOL chkPlayerInSpeakArea(fopAc_ac_c *i_actor)
Definition d_a_npc4.h:264
virtual void setPlayerPosAndAngle(cXyz const *, short, int)
Definition d_a_player.h:806
Definition f_op_actor.h:230
s8 argument
Definition f_op_actor.h:244
actor_place old
Definition f_op_actor.h:250
actor_place home
Definition f_op_actor.h:249
csXyz shape_angle
Definition f_op_actor.h:252
actor_place current
Definition f_op_actor.h:251
Definition m_Do_hostIO.h:27
static void YrotM(s16 y)
Definition m_Do_mtx.h:298
static void multVec(const Vec *a, Vec *b)
Definition m_Do_mtx.h:253
static void transS(cXyz const &xyz)
Definition m_Do_mtx.cpp:360
STATIC_ASSERT(sizeof(daNpcBouS_c)==0xe00)
daPy_py_c * daPy_getPlayerActorClass()
Definition d_a_player.h:1260
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
unsigned char u8
Definition types.h:8
double x double y
Definition e_atan2.c:58
cXyz & fopAcM_GetPosition(fopAc_ac_c *i_actor)
Definition f_op_actor_mng.h:240
u32 fopAcM_GetParam(const void *i_actor)
Definition f_op_actor_mng.h:192
csXyz * fopAcM_GetShapeAngle_p(fopAc_ac_c *i_actor)
Definition f_op_actor_mng.h:260
unsigned int fpc_ProcID
Definition f_pc_base.h:10
Definition JORReflexible.h:10
s16 y
Definition c_sxyz.h:7
csXyz angle
Definition f_op_actor.h:206
cXyz pos
Definition f_op_actor.h:205
Definition c_xyz.h:7
Definition d_a_npc_bouS.h:15
s16 eye_angle_x
Definition d_a_npc_bouS.h:23
daNpcF_HIOParam common
Definition d_a_npc_bouS.h:16
f32 gaze_y
Definition d_a_npc_bouS.h:20
s16 field_0x88
Definition d_a_npc_bouS.h:25
f32 gaze_z
Definition d_a_npc_bouS.h:21
f32 talk_dist
Definition d_a_npc_bouS.h:18
f32 gaze_x
Definition d_a_npc_bouS.h:19
f32 excitement_level
Definition d_a_npc_bouS.h:17
s16 eye_angle_y
Definition d_a_npc_bouS.h:24
f32 eye_dist
Definition d_a_npc_bouS.h:22
Definition d_a_npc4.h:423
Definition c_phase.h:17