summaryrefslogtreecommitdiff
path: root/include/d/actor/d_a_npc_jb1.h
blob: 2ac2408f472d8d6887a9ba03029aee447e64f91b (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
#ifndef D_A_NPC_JB1_H
#define D_A_NPC_JB1_H

#include "f_op/f_op_actor.h"
#include "m_Do/m_Do_ext.h"
#include "SSystem/SComponent/c_phase.h"
#include "d/d_npc.h"

class daNpc_Jb1_c : public fopNpc_npc_c {
public:
    struct anm_prm_c {
        s8 field_0x0;
        s8 field_0x1;
        f32 mMorf;
        f32 mPlaySpeed;
        int mLoopMode;
    };

    typedef BOOL (daNpc_Jb1_c::*ActionFunc)(void*);

    daNpc_Jb1_c();
    bool init_JB1_0();
    bool createInit();
    void setMtx();
    void playBrkAnm(J3DAnmTevRegKey*, s16*);
    int anmNum_toResID(int);
    BOOL setAnm_anm(anm_prm_c*);
    BOOL setAnm();
    void chg_anmTag();
    void control_anmTag();
    void chg_anmAtr(u8);
    void control_anmAtr();
    void setAnm_ATR();
    void anmAtr(u16);
    void eventOrder();
    void checkOrder();
    u16 next_msgStatus(u32*);
    u32 getMsg_JB1_0();
    u32 getMsg();
    bool chkAttention();
    void setAttention();
    bool charDecide(int);
    void event_actionInit(int);
    bool event_action();
    void privateCut(int);
    int isEventEntry();
    void event_proc(int);
    BOOL set_action(ActionFunc, void*);
    void setStt(s8);
    BOOL wait_1();
    BOOL wait_action1(void*);
    bool demo();
    BOOL _draw();
    BOOL _execute();
    BOOL _delete();
    cPhs_State _create();
    J3DModelData* create_Anm();
    bool create_lgt();
    BOOL CreateHeap();

private:
    /* 0x6C4 */ request_of_phase_process_class mPhs;
    /* 0x6CC */ s8 m_cse_jnt_num;
    /* 0x6CD */ u8 field_0x6CD[0x6D0 - 0x6CD];
    /* 0x6D0 */ cXyz field_0x6D0;
    /* 0x6DC */ dKy_tevstr_c field_0x6DC; // not used
    /* 0x78C */ u8 field_0x78C[0x7A8 - 0x78C];
    /* 0x7A8 */ mDoExt_bckAnm mBckAnm; // not used maybe related to the unused JUT_ASSERTS
    /* 0x7B8 */ u8 field_0x7B8[0x7C0 - 0x7B8];
    /* 0x7C0 */ mDoExt_btkAnm mBtkAnm; // not used maybe related to the unused JUT_ASSERTS
    /* 0x7D4 */ u8 field_0x7D4[0x7DC - 0x7D4];
    /* 0x7DC */ mDoExt_brkAnm mBrkAnm3; // not used maybe related to the unused JUT_ASSERTS
    /* 0x7F4 */ u8 field_0x7F4[0x7F8 - 0x7F4];
    /* 0x7F8 */ LIGHT_INFLUENCE field_0x7F8;
    /* 0x818 */ J3DAnmTevRegKey* m_lmp_brk;
    /* 0x81C */ mDoExt_brkAnm mBrkAnm;
    /* 0x834 */ s16 field_0x834;
    /* 0x836 */ u8 field_0x836[0x838 - 0x836];
    /* 0x838 */ J3DModel* m_lgt_mdl;
    /* 0x83C */ J3DAnmTevRegKey* m_lgt_brk;
    /* 0x840 */ mDoExt_brkAnm mBrkAnm2;
    /* 0x858 */ s16 field_0x858;
    /* 0x85A */ u8 field_0x85A[0x85C - 0x85A];
    /* 0x85C */ ActionFunc mCurrActionFunc;
    /* 0x868 */ u8 field_0x868[0x870 - 0x868];
    /* 0x870 */ dNpc_EventCut_c mEventCut;
    /* 0x8DC */ u8 field_0x8DC[0x8E0 - 0x8DC];
    /* 0x8E0 */ cXyz mCurrentPos;
    /* 0x8EC */ csXyz mCurrentRot;
    /* 0x8F2 */ u8 field_0x8F2[0x8F4 - 0x8F2];
    /* 0x8F4 */ cXyz field_0x8F4;
    /* 0x900 */ f32 mFrame;
    /* 0x904 */ u8 field_0x904[0x908 - 0x904];
    /* 0x908 */ s8 field_0x908;
    /* 0x909 */ bool field_0x909;
    /* 0x90A */ u8 field_0x90A[0x90C - 0x90A];
    /* 0x90C */ bool field_0x90C;
    /* 0x90D */ bool field_0x90D;
    /* 0x90E */ bool field_0x90E;
    /* 0x90F */ bool field_0x90F;
    /* 0x910 */ BOOL field_0x910;
    /* 0x914 */ bool mHasAttention;
    /* 0x915 */ s8 field_0x915;
    /* 0x916 */ u8 field_0x916[0x917 - 0x916];
    /* 0x917 */ bool field_0x917;
    /* 0x918 */ s8 mActIdx;
    /* 0x919 */ s8 mActNo;
    /* 0x91A */ u8 field_0x91A;
    /* 0x91B */ u8 field_0x91B;
    /* 0x91C */ s8 field_0x91C;
    /* 0x91D */ s8 field_0x91D;
    /* 0x91E */ s8 field_0x91E;
    /* 0x91F */ u8 field_0x91F[0x920 - 0x91F];
    /* 0x920 */ s8 field_0x920;
    /* 0x921 */ s8 field_0x921;
    /* 0x922 */ s8 field_0x922;
    /* 0x923 */ s8 field_0x923;
};  // Size: 0x924

#endif /* D_A_NPC_JB1_H */