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
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);
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;
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 J3DJoint.h:66
Definition J3DModel.h:43
Definition JORMContext.h:128
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: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: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:505
bool checkInstructionTag(fopAc_ac_c *)
Definition d_a_npc_bouS.cpp:684
int EvCut_BousIntroSumo1(int)
Definition d_a_npc_bouS.cpp:1357
int EvCut_BousIntroSumo3(int)
Definition d_a_npc_bouS.cpp:1486
bool demo(void *)
Definition d_a_npc_bouS.cpp:1192
bool setExpressionBtp(int)
Definition d_a_npc_bouS.cpp:571
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:656
BOOL chkFindPlayer()
Definition d_a_npc_bouS.cpp:956
int mTimer
Definition d_a_npc_bouS.h:144
bool wait(void *)
Definition d_a_npc_bouS.cpp:1007
void lookat()
Definition d_a_npc_bouS.cpp:901
s16 mLookMode
Definition d_a_npc_bouS.h:148
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:1603
NPC_BOUS_HIO_CLASS * mHIO
Definition d_a_npc_bouS.h:138
bool talk(void *)
Definition d_a_npc_bouS.cpp:1114
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:263
int mInstructionMode
Definition d_a_npc_bouS.h:145
int Execute()
Definition d_a_npc_bouS.cpp:424
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: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:1614
void setMotion(int, f32, int)
Definition d_a_npc_bouS.cpp:1078
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:440
u16 mMode
Definition d_a_npc_bouS.h:150
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:104
static int ctrlJointCallBack(J3DJoint *, int)
Definition d_a_npc_bouS.cpp:493
void setExpressionTalkAfter()
Definition d_a_npc_bouS.cpp:1098
int Delete()
Definition d_a_npc_bouS.cpp:418
BOOL step(s16, int)
Definition d_a_npc_bouS.cpp:973
int EvCut_BousIntroSumo2(int)
Definition d_a_npc_bouS.cpp:1431
BOOL ctrlBtk()
Definition d_a_npc_bouS.cpp:821
bool instruction(void *)
Definition d_a_npc_bouS.cpp:1240
daNpcBouS_c()
Definition d_a_npc_bouS.cpp:270
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:1235
void setMessageNo(s16 i_msgNo)
Definition d_a_npc_bouS.h:124
bool checkIntroDemoStart()
Definition d_a_npc_bouS.cpp:1338
void setExpression(int, f32)
Definition d_a_npc_bouS.cpp:1089
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:333
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:381
void playExpression()
Definition d_a_npc_bouS.cpp:727
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:243
s8 argument
Definition f_op_actor.h:257
actor_place old
Definition f_op_actor.h:263
actor_place home
Definition f_op_actor.h:262
csXyz shape_angle
Definition f_op_actor.h:265
actor_place current
Definition f_op_actor.h:264
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
double x double y
Definition e_atan2.c:58
cXyz & fopAcM_GetPosition(fopAc_ac_c *i_actor)
Definition f_op_actor_mng.h:252
u32 fopAcM_GetParam(const void *i_actor)
Definition f_op_actor_mng.h:204
csXyz * fopAcM_GetShapeAngle_p(fopAc_ac_c *i_actor)
Definition f_op_actor_mng.h:272
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
unsigned char u8
Definition types.h:8
Definition JORReflexible.h:10
s16 y
Definition c_sxyz.h:7
csXyz angle
Definition f_op_actor.h:219
cXyz pos
Definition f_op_actor.h:218
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