summaryrefslogtreecommitdiff
path: root/include/d/actor/d_a_e_po.h
blob: 3bcbd6723a0efc5136035c7ee0273a4afb055b4e (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
#ifndef D_A_E_PO_H
#define D_A_E_PO_H
#include "d/d_bg_s_acch.h"
#include "d/d_cc_d.h"
#include "d/d_cc_uty.h"
#include "d/d_com_inf_game.h"


/**
 * @ingroup actors-enemies
 * @class e_po_class
 * @brief Poe
 *
 * @details
 *
 */

enum daE_PO_ANM {
    ANM_ATTACK = 5,
    ANM_AWAKE = 6,
    ANM_DAMAGE = 7,
    ANM_DOWN = 8,
    ANM_DOWN_DAMAGE = 9,
    ANM_DOWN_DEAD = 10,
    ANM_DOWN_WAIT = 11,
    ANM_FIRE_CATCH = 12,
    ANM_HANGED = 13,
    ANM_HANGED_BRUSH = 14,
    ANM_HANGED_DAMAGE = 15,
    ANM_HANGED_WAIT = 16,
    ANM_POSSESS = 17,
    ANM_RUN_AFTER = 18,
    ANM_RUN_AFTER2 = 19,
    ANM_SWAY_BACK = 20,
    ANM_WAIT = 21,
    ANM_WAIT02 = 22,
};

enum Action_e {
    ACT_WAIT = 0,
    ACT_AVOID = 1,
    ACT_OPENING = 2,
    ACT_SEARCH = 3,
    ACT_ATTACK = 4,
    ACT_LIMBERING = 5,
    ACT_ROLL_MOVE = 6,
    ACT_DAMAGE = 10,
    ACT_WOLF_BITE = 11,
    ACT_DEAD = 12,
    ACT_HOLL_DEMO = 20,
};

class e_po_class {
public:
    e_po_class();

    /* 0x000 */ fopEn_enemy_c enemy;
    /* 0x5AC */ request_of_phase_process_class mPhase;
    /* 0x5B4 */ int mType;
    /* 0x5B8 */ u32 field_0x5B8;
    /* 0x5BC */ u8 mArg0;
    /* 0x5BD */ u8 BitSW;
    /* 0x5BE */ u8 BitSW2;
    /* 0x5BF */ u8 BitSW3;
    /* 0x5C0 */ bool field_0x5C0;
    /* 0x5C1 */ bool field_0x5C1;
    /* 0x5C2 */ u8 field_0x5C2[0x5D4 - 0x5C2];  // Padding
    /* 0x5D4 */ mDoExt_McaMorfSO* mpMorf;
    /* 0x5D8 */ mDoExt_McaMorfSO* mpMorf3;
    /* 0x5DC */ mDoExt_invisibleModel mInvModel;
    /* 0x5E4 */ int mAnmID;
    /* 0x5E8 */ J3DModel* mpModel;
    /* 0x5EC */ J3DModel* mpModel2;
    /* 0x5F0 */ mDoExt_McaMorf* mpMorf2;
    /* 0x5F4 */ f32 field_0x5F4;
    /* 0x5F8 */ Z2CreatureEnemy mSound1;
    /* 0x69C */ Z2CreatureEnemy mSound2;
    /* 0x740 */ s16 field_0x740;
    /* 0x742 */ s16 mActionID;
    /* 0x744 */ f32 field_0x744;
    /* 0x748 */ u8 field_0x748[0x74A - 0x748];  // Padding
    /* 0x74A */ s16 field_0x74A[5];
    /* 0x754 */ s16 field_0x754;
    /* 0x756 */ u8 field_0x756;
    /* 0x757 */ s8 field_0x757;
    /* 0x758 */ u8 field_0x758;
    /* 0x759 */ u8 field_0x759;
    /* 0x75A */ u8 field_0x75A;
    /* 0x75B */ u8 field_0x75B;
    /* 0x75C */ u32 field_0x75C;
    /* 0x760 */ u8 field_0x760;
    /* 0x762 */ s16 field_0x762;
    /* 0x764 */ csXyz field_0x764;
    /* 0x76C */ f32 field_0x76C;
    /* 0x770 */ cXyz field_0x770;  // From here on, a lot of joint angles and position vectors...
    /* 0x77C */ cXyz field_0x77C;
    /* 0x788 */ cXyz field_0x788;
    /* 0x794 */ cXyz field_0x794;
    /* 0x7A0 */ cXyz field_0x7A0;
    /* 0x7AC */ cXyz field_0x7AC;
    /* 0x7B8 */ cXyz field_0x7B8;
    /* 0x7C4 */ f32  field_0x7C4;  // Linked to lamp anim after death, flame spawn height above ground ?
    /* 0x7C8 */ u8 field_0x7C8[0x7D0 - 0x7C8];  // Padding
    /* 0x7D0 */ f32 field_0x7D0;
    /* 0x7D4 */ f32 field_0x7D4;
    /* 0x7D8 */ f32 field_0x7D8;  // FovY camera ?
    /* 0x7DC */ bool field_0x7DC;
    /* 0x7DD */ bool field_0x7DD;
    /* 0x7DE */ s16 field_0x7DE;  // Amount of times bitten by wolf
    /* 0x7E0 */ s16 field_0x7E0;
    /* 0x7E2 */ s16 field_0x7E2;
    /* 0x7E4 */ s16 field_0x7E4;
    /* 0x7E6 */ csXyz field_0x7E6[4];
    /* 0x7FE */ u8 field_0x7FE;
    /* 0x800 */ f32 field_0x800;
    /* 0x804 */ f32 field_0x804;
    /* 0x808 */ f32 field_0x808;
    /* 0x80C */ f32 field_0x80C;
    /* 0x810 */ s16 field_0x810;
    /* 0x812 */ s8 field_0x812;
    /* 0x814 */ cXyz field_0x814;
    /* 0x820 */ cXyz field_0x820;
    /* 0x82C */ cXyz field_0x82C;
    /* 0x838 */ cXyz field_0x838;  // Eye pointer, camera ?
    /* 0x844 */ cXyz field_0x844;  // Center pointer, camera ?
    /* 0x850 */ dBgS_AcchCir mAcchCir;
    /* 0x890 */ dBgS_ObjAcch mAcch;
    /* 0xA68 */ s8 field_0xA68;
    /* 0xA6C */ dCcD_Stts mColliderStts;
    /* 0xAA8 */ dCcD_Cyl mCyl;
    /* 0xBE4 */ dCcD_Sph mSph;
    /* 0xD1C */ dCcD_Sph mSph2;
    /* 0xE54 */ dCcU_AtInfo mAtInfo;
    /* 0xE78 */ u32 mParticleKey6;
    /* 0xE7C */ u32 mParticleKey5[2];
    /* 0xE84 */ u32 mParticleKeys[12];
    /* 0xEB4 */ dPa_hermiteEcallBack_c field_0xEB4;
    /* 0xECC */ u8 field_0xECC;
    /* 0xECD */ u8 field_0xECD[0xee0 - 0xECD];  // Padding
};

STATIC_ASSERT(sizeof(e_po_class) == 0xee0);

#endif /* D_A_E_PO_H */