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
17 /* 0x6C */ f32 excitement_level;
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:
39 void listenPropertyEvent(const JORPropertyEvent*);
40 void genMessage(JORMContext*);
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();
61 int ctrlJoint(J3DJoint*, J3DModel*);
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();
68 inline BOOL setAction(actionFunc);
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
96 inline BOOL chkFindPlayer();
97
98 void setLookMode(int i_lookMode) { if (i_lookMode >= 0 && i_lookMode < 4 && i_lookMode != mLookMode) mLookMode = i_lookMode; }
99
100 inline void setExpressionTalkAfter();
101
102 s8 getType() { return argument & 0x7F; }
103
106 if (actor != NULL) {
108 old.pos = current.pos;
110 cXyz pos(0.0f, 0.0f, 220.0f);
113 mDoMtx_stack_c::multVec(&pos, &pos);
114 daPy_getPlayerActorClass()->setPlayerPosAndAngle(&pos, (s16)(shape_angle.y + 0x8000), 0);
115 }
116 }
117
118 void setHome() {
121 }
122 void offDispFlag() { mDispFlag = 0; }
123 void onDispFlag() { mDispFlag = 1; }
124 void setMessageNo(s16 i_msgNo) {
125 mMsgNo = i_msgNo;
126 }
128 mForcibleTalk = 1;
129 }
130
131 static eventFunc mEvtSeqList[4];
132
133private:
134 /* 0xB48 */ Z2Creature mSound;
138 /* 0xC80 */ NPC_BOUS_HIO_CLASS* mHIO;
139 /* 0xC84 */ dCcD_Cyl mCyl;
140 /* 0xDC0 */ actionFunc mAction;
141 /* 0xDCC */ u8 field_0xdcc[0xdd4 - 0xdcc];
144 /* 0xDE8 */ int mTimer;
145 /* 0xDEC */ int mInstructionMode;
146 /* 0xDF0 */ int mMsgNo;
147 /* 0xDF4 */ u8 field_0xdf4[0xdf8 - 0xdf4];
148 /* 0xDF8 */ s16 mLookMode;
149 /* 0xDFA */ s16 mMotionPhaseCopy;
150 /* 0xDFC */ u16 mMode;
151 /* 0xDFE */ u8 mForcibleTalk;
152 /* 0xDFF */ u8 mDispFlag;
153};
154
155STATIC_ASSERT(sizeof(daNpcBouS_c) == 0xe00);
156
157#endif /* D_A_NPC_BOUS_H */
int cPhs_Step
Definition c_phase.h:8
Definition Z2Creature.h:7
Definition d_cc_d.h:472
Definition d_a_npc_bouS.h:36
void listenPropertyEvent(const JORPropertyEvent *)
Definition d_a_npc_bouS.cpp:229
daNpcBouS_HIOParam m
Definition d_a_npc_bouS.h:42
void genMessage(JORMContext *)
Definition d_a_npc_bouS.cpp:252
daNpcBouS_HIO_c()
Definition d_a_npc_bouS.cpp:225
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:289
Mayor Bo (inside house)
Definition d_a_npc_bouS.h:49
void playMotion()
Definition d_a_npc_bouS.cpp:756
u8 mDispFlag
Definition d_a_npc_bouS.h:152
void setLookMode(int i_lookMode)
Definition d_a_npc_bouS.h:98
void setForcibleTalk()
Definition d_a_npc_bouS.h:127
void setHome()
Definition d_a_npc_bouS.h:118
bool setExpressionAnm(int, bool)
Definition d_a_npc_bouS.cpp:506
bool checkInstructionTag(fopAc_ac_c *)
Definition d_a_npc_bouS.cpp:685
int EvCut_BousIntroSumo1(int)
Definition d_a_npc_bouS.cpp:1358
int EvCut_BousIntroSumo3(int)
Definition d_a_npc_bouS.cpp:1487
bool demo(void *)
Definition d_a_npc_bouS.cpp:1193
bool setExpressionBtp(int)
Definition d_a_npc_bouS.cpp:572
u8 mForcibleTalk
Definition d_a_npc_bouS.h:151
daNpcF_MatAnm_c * mpMatAnm
Definition d_a_npc_bouS.h:135
BOOL setAction(actionFunc)
Definition d_a_npc_bouS.cpp:657
BOOL chkFindPlayer()
Definition d_a_npc_bouS.cpp:957
int mTimer
Definition d_a_npc_bouS.h:144
bool wait(void *)
Definition d_a_npc_bouS.cpp:1008
void lookat()
Definition d_a_npc_bouS.cpp:902
s16 mLookMode
Definition d_a_npc_bouS.h:148
static int createHeapCallBack(fopAc_ac_c *)
Definition d_a_npc_bouS.cpp:489
void setMotionAnm(int, f32)
Definition d_a_npc_bouS.cpp:596
void reset()
Definition d_a_npc_bouS.cpp:621
int drawDbgInfo()
Definition d_a_npc_bouS.cpp:1604
NPC_BOUS_HIO_CLASS * mHIO
Definition d_a_npc_bouS.h:138
bool talk(void *)
Definition d_a_npc_bouS.cpp:1115
int mMsgNo
Definition d_a_npc_bouS.h:146
daNpcF_ActorMngr_c mActorMngrs[1]
Definition d_a_npc_bouS.h:137
s8 getArenaNo()
Definition d_a_npc_bouS.h:94
static eventFunc mEvtSeqList[4]
Definition d_a_npc_bouS.h:264
int mInstructionMode
Definition d_a_npc_bouS.h:145
int Execute()
Definition d_a_npc_bouS.cpp:425
fpc_ProcID mItemPartnerId
Definition d_a_npc_bouS.h:143
s8 getType()
Definition d_a_npc_bouS.h:102
~daNpcBouS_c()
Definition d_a_npc_bouS.cpp:273
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:430
void setAttnPos()
Definition d_a_npc_bouS.cpp:839
void drawOtherMdls()
Definition d_a_npc_bouS.cpp:1615
void setMotion(int, f32, int)
Definition d_a_npc_bouS.cpp:1079
daNpcF_Lookat_c mLookat
Definition d_a_npc_bouS.h:136
u8 field_0xdcc[0xdd4 - 0xdcc]
Definition d_a_npc_bouS.h:141
int ctrlJoint(J3DJoint *, J3DModel *)
Definition d_a_npc_bouS.cpp:441
u16 mMode
Definition d_a_npc_bouS.h:150
void setParam()
Definition d_a_npc_bouS.cpp:694
int(daNpcBouS_c::*) eventFunc(int)
Definition d_a_npc_bouS.h:52
BOOL main()
Definition d_a_npc_bouS.cpp:713
void setInstructionPos()
Definition d_a_npc_bouS.h:104
static int ctrlJointCallBack(J3DJoint *, int)
Definition d_a_npc_bouS.cpp:494
void setExpressionTalkAfter()
Definition d_a_npc_bouS.cpp:1099
int Delete()
Definition d_a_npc_bouS.cpp:419
BOOL step(s16, int)
Definition d_a_npc_bouS.cpp:974
int EvCut_BousIntroSumo2(int)
Definition d_a_npc_bouS.cpp:1432
BOOL ctrlBtk()
Definition d_a_npc_bouS.cpp:822
bool instruction(void *)
Definition d_a_npc_bouS.cpp:1241
daNpcBouS_c()
Definition d_a_npc_bouS.cpp:271
request_of_phase_process_class mPhases[2]
Definition d_a_npc_bouS.h:142
dCcD_Cyl mCyl
Definition d_a_npc_bouS.h:139
fopAc_ac_c * searchInstructionTag()
Definition d_a_npc_bouS.cpp:1236
void setMessageNo(s16 i_msgNo)
Definition d_a_npc_bouS.h:124
bool checkIntroDemoStart()
Definition d_a_npc_bouS.cpp:1339
void setExpression(int, f32)
Definition d_a_npc_bouS.cpp:1090
void offDispFlag()
Definition d_a_npc_bouS.h:122
s16 mMotionPhaseCopy
Definition d_a_npc_bouS.h:149
cPhs_Step Create()
Definition d_a_npc_bouS.cpp:334
actionFunc mAction
Definition d_a_npc_bouS.h:140
Z2Creature mSound
Definition d_a_npc_bouS.h:134
int CreateHeap()
Definition d_a_npc_bouS.cpp:382
void playExpression()
Definition d_a_npc_bouS.cpp:728
u8 field_0xdf4[0xdf8 - 0xdf4]
Definition d_a_npc_bouS.h:147
bool(daNpcBouS_c::*) actionFunc(void *)
Definition d_a_npc_bouS.h:51
void onDispFlag()
Definition d_a_npc_bouS.h:123
Definition d_a_npc4.h:14
Definition d_a_npc4.h:140
Definition d_a_npc4.h:121
Definition d_a_npc4.h:170
void setAngle(s16)
Definition d_a_npc4.cpp:1495
virtual void setPlayerPosAndAngle(cXyz const *, s16, int)
Definition d_a_player.h:792
Definition f_op_actor.h:271
s8 argument
Definition f_op_actor.h:285
actor_place old
Definition f_op_actor.h:291
actor_place home
Definition f_op_actor.h:290
csXyz shape_angle
Definition f_op_actor.h:293
actor_place current
Definition f_op_actor.h:292
Definition m_Do_hostIO.h:26
static void YrotM(s16 y)
Definition m_Do_mtx.h:309
static void multVec(const Vec *a, Vec *b)
Definition m_Do_mtx.h:264
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:1258
vec y
Definition d_path.cpp:111
cXyz & fopAcM_GetPosition(fopAc_ac_c *i_actor)
Definition f_op_actor_mng.h:220
u32 fopAcM_GetParam(const void *i_actor)
Definition f_op_actor_mng.h:172
csXyz * fopAcM_GetShapeAngle_p(fopAc_ac_c *i_actor)
Definition f_op_actor_mng.h:240
unsigned int fpc_ProcID
Definition f_pc_base.h:10
s16 y
Definition c_sxyz.h:7
csXyz angle
Definition f_op_actor.h:247
cXyz pos
Definition f_op_actor.h:246
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:430
Definition c_phase.h:19