blob: a86ffa437ecd7ea12a5eb164f2af7e5677389419 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
#ifndef D_A_NPC_AH_H
#define D_A_NPC_AH_H
#include "JSystem/J3DGraphAnimator/J3DAnimation.h"
#include "d/d_npc.h"
#include "d/d_cc_d.h"
#include "m_Do/m_Do_ext.h"
struct sAhAnmDat {
/* 0x00 */ u8 mBckIdx;
/* 0x01 */ u8 mMorf;
/* 0x02 */ s8 field_0x02;
}; // Size: 0x03
struct NpcDatStruct {
/* 0x00 */ s16 mMax_head_x;
/* 0x02 */ s16 mMax_head_y;
/* 0x04 */ s16 mMax_backbone_x;
/* 0x06 */ s16 mMax_backbone_y;
/* 0x08 */ s16 mMin_head_x;
/* 0x0A */ s16 mMin_head_y;
/* 0x0C */ s16 mMin_backbone_x;
/* 0x0E */ s16 mMin_backbone_y;
/* 0x10 */ s16 mMax_turn_step;
/* 0x12 */ s16 field_0x12;
/* 0x14 */ f32 field_0x14;
/* 0x18 */ f32 field_0x18;
/* 0x1C */ f32 field_0x1C;
/* 0x20 */ f32 field_0x20;
/* 0x24 */ f32 field_0x24;
/* 0x28 */ f32 field_0x28;
/* 0x2C */ f32 field_0x2C;
/* 0x30 */ s16 field_0x30;
/* 0x32 */ s16 field_0x32;
/* 0x34 */ s16 field_0x34;
/* 0x36 */ s16 field_0x36;
/* 0x38 */ f32 field_0x38;
/* 0x3C */ f32 field_0x3C;
/* 0x40 */ f32 field_0x40;
/* 0x44 */ s16 field_0x44;
/* 0x46 */ s16 field_0x46;
/* 0x48 */ s16 field_0x48;
/* 0x4A */ s16 field_0x4A;
/* 0x4C */ s16 field_0x4C;
/* 0x4E */ s16 field_0x4E;
/* 0x50 */ s16 field_0x50;
/* 0x52 */ s8 field_0x52;
/* 0x53 */ s8 field_0x53;
}; // Size: 0x54
class daNpcAh_c : public fopNpc_npc_c {
public:
enum Prm_e {
PRM_SWSAVE_S = 0x08,
PRM_SWSAVE_W = 0x00,
PRM_SWSAVE2_W = 0x08,
PRM_SWSAVE2_S = 0x08,
};
daNpcAh_c();
request_of_phase_process_class* getPhaseP() { return &mPhs; }
void setResFlag(unsigned char flag) { field_0x747 = flag; }
cPhs_State _create();
BOOL createHeap();
cPhs_State createInit();
bool _delete();
bool _draw();
bool _execute();
u8 executeCommon();
void executeSetMode(unsigned char);
BOOL executeWaitInit();
void executeWait();
BOOL executeTalkInit();
void executeTalk();
void checkOrder();
void eventOrder();
void eventMove();
void privateCut();
void eventMesSetInit(int);
bool eventMesSet();
void eventGetItemInit();
u16 talk2(int);
u16 next_msgStatus(unsigned long*);
u32 getMsg();
void chkMsg();
void setMessage(unsigned long);
void setAnmFromMsgTag();
u8 getPrmArg0();
u8 getSwBit();
void setMtx();
void chkAttention();
void lookBack();
BOOL initTexPatternAnm(bool);
void playTexPatternAnm();
void playAnm();
void setAnm(unsigned char, int, float);
bool setAnmTbl(sAhAnmDat*);
void setCollision(dCcD_Cyl*, cXyz, float, float);
BOOL chkEndEvent();
static const char m_arcname[];
private:
/* 0x6C4 */ request_of_phase_process_class mPhs;
/* 0x6CC */ request_of_phase_process_class mPhsMethod;
/* 0x6D4 */ J3DAnmTexPattern* m_head_tex_pattern;
/* 0x6D8 */ mDoExt_btpAnm mBtpAnm;
/* 0x6EC */ u32 mShadowId;
/* 0x6F0 */ dNpc_PathRun_c mPathRun;
/* 0x6F4 */ cXyz field_0x6F4;
/* 0x704 */ cXyz mEyePos;
/* 0x710 */ sAhAnmDat* mpAnmDat;
/* 0x714 */ u32* mpMsgNo;
/* 0x718 */ f32 field_0x718;
/* 0x71C */ f32 field_0x71C;
/* 0x720 */ f32 field_0x720;
/* 0x724 */ u32 mItemNo;
/* 0x728 */ bool mHeadOnlyFollow;
/* 0x72A */ s16 field_0x72A;
/* 0x72C */ s16 field_0x72C;
/* 0x72E */ s16 field_0x72E;
/* 0x730 */ s16 field_0x730;
/* 0x732 */ s16 field_0x732;
/* 0x734 */ u16 field_0x734;
/* 0x736 */ s16 field_0x736;
/* 0x738 */ s16 field_0x738;
/* 0x73A */ s16 mTimer;
/* 0x73C */ s16 mTargetAngle;
/* 0x73E */ s16 mLookAtMaxVel;
/* 0x740 */ s16 mTargetYRot;
/* 0x742 */ u8 field_0x742;
/* 0x743 */ u8 field_0x743;
/* 0x744 */ u8 field_0x744;
/* 0x745 */ u8 mBtpFrame;
/* 0x746 */ u8 mMoveState;
/* 0x747 */ u8 field_0x747;
/* 0x748 */ u8 field_0x748;
/* 0x749 */ u8 mBckIdx;
/* 0x74A */ u8 field_0x74A;
/* 0x74B */ s8 field_0x74B;
/* 0x74C */ s8 mActIdx;
/* 0x74D */ u8 field_0x74D;
/* 0x74E */ s8 field_0x74E;
/* 0x74F */ u8 field_0x74F;
/* 0x750 */ u8 field_0x750;
/* 0x751 */ u8 field_0x751;
}; // Size: 0x754
#endif /* D_A_NPC_AH_H */
|