Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_a_npc2.h
Go to the documentation of this file.
1#ifndef D_A_NPC2
2#define D_A_NPC2
3
4#include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h"
5#include "d/d_bg_s_acch.h"
7#include "d/d_cc_d.h"
8#include "d/d_msg_flow.h"
9#include "d/d_path.h"
12public:
14 void entry(fopAc_ac_c*);
17
18private:
19 /* 0x04 */ fpc_ProcID mActorId;
20};
22class daBaseNpc_matAnm_c : public J3DMaterialAnm {
23public:
25 virtual void calc(J3DMaterial*) const;
26
27 /* 0x0F4 */ mutable f32 field_0xF4;
28 /* 0x0F8 */ mutable f32 field_0xF8;
29 /* 0x0FC */ f32 mNowOffsetX;
30 /* 0x100 */ f32 mNowOffsetY;
31 /* 0x104 */ u8 mEyeMoveFlg;
32 /* 0x105 */ u8 mMorfFrm;
33};
34
36public:
38 BOOL isPath();
39 int setPathInfo(u8, s8, s8);
40 void reverseDir();
41 s32 chkPnt(cXyz);
42 BOOL setNextPnt();
43 u16 getIdx();
44 void setIdx(u16);
45 Vec getPntPos(u16);
46 void dbgDraw(f32);
47 virtual ~daBaseNpc_path_c() {}
48
49 static const int MAXNUMCONTROLPNT_e = 64;
50
51public:
52 /* 0x004 */ dPath* mPathInfo;
53 /* 0x008 */ f32 field_0x8;
54 /* 0x00C */ dPnt mCurvePnts[160];
55 /* 0xA0C */ u8 field_0xa0c[0xA0E - 0xA0C];
56 /* 0xA0E */ u16 mCurvePntNum;
57 /* 0xA10 */ u16 mIdx;
58 /* 0xA12 */ s8 mDirection;
59 /* 0xA13 */ u8 field_0xa13;
60 /* 0xA14 */ s16 field_0xa14;
61 /* 0xA16 */ u8 field_0xa16[2];
62 /* 0xA18 */ int field_0xa18;
63 /* 0xA1C */ u8 field_0xa1c[8];
64};
65
67public:
68 void limitter(s16, s16*, s16, s16);
69 void calc(fopAc_ac_c*, f32 (*)[4], s16);
70 void setMaxJntLmt(csXyz, int);
71 void setMinJntLmt(csXyz, int);
72 void setJntPos(cXyz, int);
73 int setAttnPos(cXyz*);
74 csXyz getRot(int);
76
77 /* 0x04 */ csXyz mMaxJntLmt[4];
78 /* 0x1C */ csXyz mMinJntLmt[4];
79 /* 0x34 */ cXyz mJntPos[4];
80 /* 0x64 */ csXyz field_0x64[4];
81 /* 0x7C */ csXyz mRot[4];
82 /* 0x94 */ u8 field_0x94[4];
83 /* 0x98 */ cXyz* mpAttnPos;
84};
85
86class daBaseNpc_c : public fopAc_ac_c {
87public:
89 J3DAnmTransform* getTrnsfrmKeyAnmP(char*, int);
90 int setMcaMorfAnm(J3DAnmTransformKey*, f32, f32, int, int, int);
91 int setBckAnm(J3DAnmTransform*, f32, int, int, int, bool);
92 J3DAnmTransform* getTexPtrnAnmP(char*, int);
93 int setBtpAnm(J3DAnmTexPattern*, J3DModelData*, f32, int);
94 void orderEvent(int, char*);
95 void setEnvTevColor();
96 void setRoomNo();
97 int checkEndAnm(f32);
98 int checkEndAnm(J3DFrameCtrl*);
99
100 virtual ~daBaseNpc_c();
101 virtual int execute();
102 virtual int draw(f32);
103 virtual const char* getResName();
104 virtual void attnSttsOn(int, int);
105 virtual void setParam();
106 virtual void mainProc();
107 virtual BOOL btkCtrl();
108 virtual void allAnmPlay();
109 virtual void adjustShapeAngle();
110 virtual void setMtx(int);
111 virtual void setCollisions();
112 virtual void setAttnPos();
113 virtual void drawOtherMdls();
114 virtual bool dbgDraw();
115
116 static dCcD_SrcGObjInf const mCcDObj;
117 static dCcD_SrcCyl mCcDCyl;
118 static dCcD_SrcSph mCcDSph;
119
120public:
121 /* 0x56C */ dBgS_ObjAcch mAcch;
122 /* 0x744 */ char field_0x744[8];
125 /* 0x758 */ Z2Creature mSound;
126 /* 0x7E8 */ u32 mShadowId;
127 /* 0x7EC */ mDoExt_bckAnm mBck;
128 /* 0x808 */ mDoExt_btpAnm mBtp;
129 /* 0x820 */ mDoExt_btkAnm mBtk;
130 /* 0x838 */ s16 field_0x838;
131 /* 0x83C */ u16* field_0x83c;
132 /* 0x840 */ u16 field_0x840;
133 /* 0x842 */ u16 field_0x842;
134 /* 0x844 */ u8 field_0x844;
135 /* 0x845 */ u8 field_0x845[0x848 - 0x845];
136 /* 0x848 */ s32 mFlowID;
137 /* 0x84C */ dMsgFlow_c mMsgFlow;
138 /* 0x898 */ u8 field_0x898[0x89A - 0x898];
139 /* 0x89A */ s16 mEvtIdx;
140 /* 0x89C */ dCcD_Stts mCcStts;
142 /* 0x918 */ s16 field_0x918;
143 /* 0x91A */ csXyz field_0x91a;
145 /* 0x9BC */ csXyz field_0x9bc;
146 /* 0x9C2 */ csXyz field_0x9c2;
147 /* 0x9C8 */ csXyz field_0x9c8;
148 /* 0x9CE */ csXyz field_0x9ce;
150 /* 0xA10 */ f32 mGroundY;
151};
152
153STATIC_ASSERT(sizeof(daBaseNpc_c) == 0xA14);
154
156public:
158 int MoveBGCreateHeap();
159 int MoveBGCreate(char const*, int, MoveBGActor_SetFunc, u32);
160 int MoveBGDelete();
161 int MoveBGExecute();
163 int ret = Draw();
164 return ret;
165 }
166
167 virtual int CreateHeap() { return 1; }
168 virtual int Create() { return 1; }
169 virtual int Execute(Mtx**) { return 1; }
170 virtual int Draw() { return 1; }
171 virtual int Delete() { return 1; }
172 virtual int IsDelete() { return 1; }
173 virtual int ToFore() { return 1; }
174 virtual int ToBack() { return 1; }
175
176 static const char* m_name;
177 static int m_dzb_id;
179
180public:
181 /* 0xA14 */ dBgW* mpBgw;
182 /* 0xA18 */ Mtx mBgMtx;
183};
184
185#endif /* D_A_NPC2 */
Definition Z2Creature.h:7
Definition c_bg_s_gnd_chk.h:8
Definition c_sxyz.h:10
Definition d_bg_s_acch.h:15
Definition d_bg_s_acch.h:244
Definition d_bg_w.h:262
Definition d_cc_d.h:273
Definition d_msg_flow.h:49
Definition d_a_npc2.h:11
daBaseNpc_acMngr_c()
Definition d_a_npc2.cpp:118
virtual ~daBaseNpc_acMngr_c()
Definition d_a_npc2.h:16
void entry(fopAc_ac_c *)
Definition d_a_npc2.cpp:122
fpc_ProcID mActorId
Definition d_a_npc2.h:19
fopAc_ac_c * getActor()
Definition d_a_npc2.cpp:126
Definition d_a_npc2.h:86
void orderEvent(int, char *)
Definition d_a_npc2.cpp:543
virtual int execute()
Definition d_a_npc2.cpp:421
u16 field_0x842
Definition d_a_npc2.h:133
char field_0x744[8]
Definition d_a_npc2.h:122
virtual void setParam()
Definition d_a_npc2.cpp:541
virtual void attnSttsOn(int, int)
Definition d_a_npc2.cpp:523
virtual BOOL btkCtrl()
Definition d_a_npc2.cpp:568
csXyz field_0x91a
Definition d_a_npc2.h:143
virtual void mainProc()
Definition d_a_npc2.cpp:555
dCcD_Stts mCcStts
Definition d_a_npc2.h:140
csXyz field_0x9c2
Definition d_a_npc2.h:146
request_of_phase_process_class mPhase
Definition d_a_npc2.h:123
virtual ~daBaseNpc_c()
Definition d_a_npc2.cpp:419
f32 mGroundY
Definition d_a_npc2.h:150
csXyz field_0x9c8
Definition d_a_npc2.h:147
int setBckAnm(J3DAnmTransform *, f32, int, int, int, bool)
Definition d_a_npc2.cpp:506
virtual void setAttnPos()
Definition d_a_npc2.cpp:687
dMsgFlow_c mMsgFlow
Definition d_a_npc2.h:137
mDoExt_McaMorfSO * mpModelMorf
Definition d_a_npc2.h:124
virtual const char * getResName()
Definition d_a_npc2.cpp:489
u32 mShadowId
Definition d_a_npc2.h:126
virtual bool dbgDraw()
Definition d_a_npc2.cpp:691
s16 field_0x838
Definition d_a_npc2.h:130
void setEnvTevColor()
Definition d_a_npc2.cpp:557
int setBtpAnm(J3DAnmTexPattern *, J3DModelData *, f32, int)
Definition d_a_npc2.cpp:518
cBgS_GndChk field_0x9d4
Definition d_a_npc2.h:149
virtual void allAnmPlay()
Definition d_a_npc2.cpp:602
u8 field_0x844
Definition d_a_npc2.h:134
int checkEndAnm(f32)
Definition d_a_npc2.cpp:572
u16 * field_0x83c
Definition d_a_npc2.h:131
mDoExt_btkAnm mBtk
Definition d_a_npc2.h:129
dBgS_AcchCir mAcchCir
Definition d_a_npc2.h:141
J3DAnmTransform * getTrnsfrmKeyAnmP(char *, int)
Definition d_a_npc2.cpp:493
virtual void setMtx(int)
Definition d_a_npc2.cpp:650
void setRoomNo()
Definition d_a_npc2.cpp:562
s32 mFlowID
Definition d_a_npc2.h:136
static dCcD_SrcGObjInf const mCcDObj
Definition d_a_npc2.h:2161
virtual void drawOtherMdls()
Definition d_a_npc2.cpp:689
u8 field_0x898[0x89A - 0x898]
Definition d_a_npc2.h:138
dBgS_ObjAcch mAcch
Definition d_a_npc2.h:121
s16 mEvtIdx
Definition d_a_npc2.h:139
mDoExt_btpAnm mBtp
Definition d_a_npc2.h:128
virtual int draw(f32)
Definition d_a_npc2.cpp:444
static dCcD_SrcCyl mCcDCyl
Definition d_a_npc2.h:10
csXyz field_0x9ce
Definition d_a_npc2.h:148
daBaseNpc_c()
Definition d_a_npc2.cpp:417
u8 field_0x845[0x848 - 0x845]
Definition d_a_npc2.h:135
int setMcaMorfAnm(J3DAnmTransformKey *, f32, f32, int, int, int)
Definition d_a_npc2.cpp:498
static dCcD_SrcSph mCcDSph
Definition d_a_npc2.h:21
csXyz field_0x9bc
Definition d_a_npc2.h:145
virtual void setCollisions()
Definition d_a_npc2.cpp:685
u16 field_0x840
Definition d_a_npc2.h:132
J3DAnmTransform * getTexPtrnAnmP(char *, int)
Definition d_a_npc2.cpp:513
s16 field_0x918
Definition d_a_npc2.h:142
daBaseNpc_lookat_c mLookat
Definition d_a_npc2.h:144
virtual void adjustShapeAngle()
Definition d_a_npc2.cpp:648
mDoExt_bckAnm mBck
Definition d_a_npc2.h:127
Z2Creature mSound
Definition d_a_npc2.h:125
Definition d_a_npc2.h:66
cXyz * mpAttnPos
Definition d_a_npc2.h:83
csXyz mMinJntLmt[4]
Definition d_a_npc2.h:78
u8 field_0x94[4]
Definition d_a_npc2.h:82
csXyz field_0x64[4]
Definition d_a_npc2.h:80
csXyz mMaxJntLmt[4]
Definition d_a_npc2.h:77
int setAttnPos(cXyz *)
Definition d_a_npc2.cpp:408
csXyz getRot(int)
Definition d_a_npc2.cpp:413
void setMinJntLmt(csXyz, int)
Definition d_a_npc2.cpp:400
void calc(fopAc_ac_c *, f32(*)[4], s16)
Definition d_a_npc2.cpp:275
csXyz mRot[4]
Definition d_a_npc2.h:81
void setMaxJntLmt(csXyz, int)
Definition d_a_npc2.cpp:396
virtual ~daBaseNpc_lookat_c()
Definition d_a_npc2.h:75
void limitter(s16, s16 *, s16, s16)
Definition d_a_npc2.cpp:249
cXyz mJntPos[4]
Definition d_a_npc2.h:79
void setJntPos(cXyz, int)
Definition d_a_npc2.cpp:404
Definition d_a_npc2.h:22
virtual ~daBaseNpc_matAnm_c()
Definition d_a_npc2.h:24
u8 mEyeMoveFlg
Definition d_a_npc2.h:31
f32 field_0xF4
Definition d_a_npc2.h:27
f32 mNowOffsetY
Definition d_a_npc2.h:30
f32 mNowOffsetX
Definition d_a_npc2.h:29
virtual void calc(J3DMaterial *) const
Definition d_a_npc2.cpp:136
u8 mMorfFrm
Definition d_a_npc2.h:32
f32 field_0xF8
Definition d_a_npc2.h:28
Definition d_a_npc2.h:155
int MoveBGExecute()
Definition d_a_npc2.cpp:789
dBgW * mpBgw
Definition d_a_npc2.h:181
virtual int CreateHeap()
Definition d_a_npc2.h:167
static int m_dzb_id
Definition d_a_npc2.h:177
virtual int Create()
Definition d_a_npc2.h:168
Mtx mBgMtx
Definition d_a_npc2.h:182
virtual int Execute(Mtx **)
Definition d_a_npc2.h:169
virtual int ToBack()
Definition d_a_npc2.h:174
virtual int ToFore()
Definition d_a_npc2.h:173
daBaseNpc_moveBgActor_c()
Definition d_a_npc2.cpp:695
virtual int Draw()
Definition d_a_npc2.h:170
virtual int IsDelete()
Definition d_a_npc2.h:172
int MoveBGCreateHeap()
Definition d_a_npc2.cpp:710
int MoveBGCreate(char const *, int, MoveBGActor_SetFunc, u32)
Definition d_a_npc2.cpp:734
int MoveBGDraw()
Definition d_a_npc2.h:162
static const char * m_name
Definition d_a_npc2.h:176
static MoveBGActor_SetFunc m_set_func
Definition d_a_npc2.h:178
int MoveBGDelete()
Definition d_a_npc2.cpp:777
virtual int Delete()
Definition d_a_npc2.h:171
Definition d_a_npc2.h:35
u8 field_0xa1c[8]
Definition d_a_npc2.h:63
u8 field_0xa16[2]
Definition d_a_npc2.h:61
u8 field_0xa13
Definition d_a_npc2.h:59
BOOL setNextPnt()
Definition d_a_npc2.cpp:199
void reverseDir()
Definition d_a_npc2.cpp:183
f32 field_0x8
Definition d_a_npc2.h:53
int setPathInfo(u8, s8, s8)
Definition d_a_npc2.cpp:165
dPnt mCurvePnts[160]
Definition d_a_npc2.h:54
virtual ~daBaseNpc_path_c()
Definition d_a_npc2.h:47
void dbgDraw(f32)
Definition d_a_npc2.cpp:216
u16 mCurvePntNum
Definition d_a_npc2.h:56
daBaseNpc_path_c()
Definition d_a_npc2.cpp:159
Vec getPntPos(u16)
Definition d_a_npc2.cpp:211
s16 field_0xa14
Definition d_a_npc2.h:60
dPath * mPathInfo
Definition d_a_npc2.h:52
u16 getIdx()
Definition d_a_npc2.cpp:203
u16 mIdx
Definition d_a_npc2.h:57
static const int MAXNUMCONTROLPNT_e
Definition d_a_npc2.h:49
s32 chkPnt(cXyz)
Definition d_a_npc2.cpp:194
u8 field_0xa0c[0xA0E - 0xA0C]
Definition d_a_npc2.h:55
int field_0xa18
Definition d_a_npc2.h:62
void setIdx(u16)
Definition d_a_npc2.cpp:207
BOOL isPath()
Definition d_a_npc2.cpp:161
s8 mDirection
Definition d_a_npc2.h:58
Definition f_op_actor.h:271
Definition m_Do_ext.h:408
Definition m_Do_ext.h:149
Definition m_Do_ext.h:63
Definition m_Do_ext.h:180
STATIC_ASSERT(sizeof(daBaseNpc_c)==0xA14)
void(* MoveBGActor_SetFunc)(dBgW *, void *, cBgS_PolyInfo const &, bool, cXyz *, csXyz *, csXyz *)
Definition d_bg_s_movebg_actor.h:8
unsigned int fpc_ProcID
Definition f_pc_base.h:10
struct Vec Vec
Definition m_Do_lib.h:8
Definition c_xyz.h:7
Definition d_cc_d.h:104
Definition d_cc_d.h:87
Definition d_cc_d.h:94
Definition d_path.h:18
Definition d_path.h:10
Definition c_phase.h:19