summaryrefslogtreecommitdiff
path: root/include/d/actor/d_a_npc_rsh1.h
blob: 3a892452acee38c47da4c31adaaee84807428071 (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_RSH1_H
#define D_A_NPC_RSH1_H

#include "d/d_lib.h"
#include "d/d_npc.h"
#include "d/d_shop.h"
#include "f_op/f_op_actor.h"

class daNpc_Rsh1_c : public fopAc_ac_c {
public:
    typedef BOOL (daNpc_Rsh1_c::*ProcFunc)(void*);
    static char m_arcname[];
public:
    bool chkAction(ProcFunc i_funcP) { return mCurrProc == i_funcP; }
    s8 getBackboneJntNum() { return m_backbone_jnt_num; }
    s16 getBackbone_x() { return mJntCtrl.getBackbone_x(); }
    s16 getBackbone_y() { return mJntCtrl.getBackbone_y(); }
    s8 getHeadJntNum() { return m_head_jnt_num; }
    s16 getHead_x() { return mJntCtrl.getHead_x(); }
    s16 getHead_y() { return mJntCtrl.getHead_y(); }
    void incAttnSetCount() {}
    void setAction(ProcFunc i_funcP, void* i_actParam) {
        if (mCurrProc != i_funcP) {
            if (mCurrProc) {
                mActionStatus = -1;
                (this->*mCurrProc)(NULL);
            }
            mCurrProc = i_funcP;
            mActionStatus = 0;
            (this->*mCurrProc)(i_actParam);
        }
    }
    void setAttentionBasePos(cXyz i_attnBasePos) { mAttnBasePos = i_attnBasePos; }
    void setEyePos(cXyz i_eyePos) { eyePos = i_eyePos; }
    void setShopIdx(int) {}

    BOOL checkCreateInShopPlayer();
    BOOL initTexPatternAnm(bool);
    void playTexPatternAnm();
    void setAnm(signed char);
    void setTexAnm(signed char);
    void setAnmFromMsgTag();
    bool chkAttention(cXyz, short);
    void eventOrder();
    void checkOrder();
    u16 next_msgStatus(unsigned long*);
    u32 getMsg();
    void setCollision();
    void talkInit();
    u16 normal_talk();
    u16 shop_talk();
    u16 talk();
    BOOL CreateInit();
    void createShopList();
    void setAttention();
    void lookBack();
    bool pathGet();
    int getAimShopPosIdx();
    BOOL shopPosMove();
    BOOL pathMove(int*);
    bool wait01();
    bool talk01();
    BOOL getdemo_action(void*);
    BOOL wait_action(void*);
    BOOL pl_shop_out_action(void*);
    bool evn_setAnm_init(int);
    bool evn_talk_init(int);
    bool evn_continue_talk_init(int);
    BOOL evn_talk();
    bool evn_turn_init(int);
    BOOL evn_turn();
    bool privateCut();
    BOOL event_action(void*);
    BOOL dummy_action(void*);
    BOOL _draw();
    BOOL _execute();
    BOOL _delete();
    cPhs_State _create();
    BOOL CreateHeap();
    void set_mtx();

public:
    /* 0x290 */ request_of_phase_process_class mPhs;
    /* 0x298 */ mDoExt_McaMorf* mpMorf;
    /* 0x29C */ u32 mShadowID;
    /* 0x2A0 */ u8 m2A0[0x2A4 - 0x2A0];
    /* 0x2A4 */ J3DAnmTexPattern* m_head_tex_pattern;
    /* 0x2A8 */ mDoExt_btpAnm mBtpAnm;
    /* 0x2BC */ u8 mBtpFrame;
    /* 0x2BD */ u8 m2BD[0x2BE - 0x2BD];
    /* 0x2BE */ s16 mTimer;
    /* 0x2C0 */ u8 m2C0[0x2C4 - 0x2C0];
    /* 0x2C4 */ dBgS_ObjAcch mAcch;
    /* 0x488 */ dBgS_AcchCir mAcchCir;
    /* 0x4C8 */ dCcD_Stts mStts;
    /* 0x504 */ dCcD_Cyl mCyl;
    /* 0x634 */ s8 m_head_jnt_num;
    /* 0x635 */ s8 m_backbone_jnt_num;
    /* 0x636 */ u8 m636[0x638 - 0x636];
    /* 0x638 */ dNpc_JntCtrl_c mJntCtrl;
    /* 0x66C */ dNpc_EventCut_c mEventCut;
    /* 0x6D8 */ STControl mSTControl;
    /* 0x700 */ dPath* mpPath;
    /* 0x704 */ s8 m704;
    /* 0x705 */ u8 m705[0x708 - 0x705];
    /* 0x708 */ cXyz mPathPointPos[5];
    /* 0x744 */ s8 m744[5];
    /* 0x749 */ s8 m749;
    /* 0x74A */ u8 m74A[0x758 - 0x74A];
    /* 0x758 */ cXyz mAttnBasePos;
    /* 0x764 */ s16 mLookAtMaxVel;
    /* 0x766 */ csXyz mActorAngle;
    /* 0x76C */ u8 m76C[0x76E - 0x76C];
    /* 0x76E */ s8 mMorfIsStop; 
    /* 0x76F */ u8 m76F;
    /* 0x770 */ bool mbAttention;
    /* 0x771 */ u8 m771;
    /* 0x772 */ u8 m772[0x774 - 0x772];
    /* 0x774 */ f32 mMorfPrevFrame;
    /* 0x778 */ u32 m778;
    /* 0x77C */ u32 m77C;
    /* 0x780 */ u32 m780;
    /* 0x784 */ u32 m784;
    /* 0x788 */ int mShopIdx;
    /* 0x78C */ s32 m78C;
    /* 0x790 */ s16 mShopOutEventIdx;
    /* 0x792 */ u8 mShopSelectItemNo;
    /* 0x793 */ bool m793;
    /* 0x794 */ cXyz m794;
    /* 0x7A0 */ cXyz m7A0;
    /* 0x7AC */ ProcFunc mCurrProc;
    /* 0x7B8 */ ShopCam_action_c mShopCamAct;
    /* 0x810 */ ShopItems_c* mpShopItems;
    /* 0x814 */ ShopItems_c mShopItemsArr[4];
    /* 0x924 */ __shop_items_set_data* mShopItemDataPtrs[12];
    /* 0x954 */ ShopCursor_c* mpShopCursor;
    /* 0x958 */ s8 m958;
    /* 0x959 */ s8 m959;
    /* 0x95A */ s8 m95A;
    /* 0x95B */ s8 m95B;
    /* 0x95C */ s8 m95C;
    /* 0x95D */ u8 m95D;
    /* 0x95E */ s8 m95E;
    /* 0x95F */ u8 m95F[0x960 - 0x95F];
    /* 0x960 */ s8 mActionStatus;
    /* 0x961 */ s8 m961;
    /* 0x962 */ s8 m962;
    /* 0x963 */ u8 mItemNo;
    /* 0x964 */ u8 m964[0x968 - 0x964];
};  // Size: 0x968

#endif /* D_A_NPC_RSH1_H */