summaryrefslogtreecommitdiff
path: root/include/d/actor/d_a_dai_item.h
blob: a60e6348e9d62ff05450c28372ed56e993594686 (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
#ifndef D_A_DAI_ITEM_H
#define D_A_DAI_ITEM_H

#include "f_op/f_op_actor.h"
#include "d/d_bg_s_acch.h"
#include "d/d_cloth_packet.h"
#include "d/d_cc_d.h"
#include "SSystem/SComponent/c_phase.h"

class JPABaseEmitter;
class mDoExt_bckAnm;
class J3DNode;

class daStandItem_c : public fopAc_ac_c {
public:
    enum Mode {
        MODE_CARRY = 0x0,
        MODE_WAIT = 0x1,
        MODE_DROP = 0x2,
    };

    int getItemNo() const { return mItemNo; }

    bool _delete();
    BOOL CreateHeap();
    void CreateInit();
    cPhs_State _create();
    void set_mtx();
    bool _execute();
    void itemProc();
    bool actionFobj00();
    bool actionFobj01();
    bool actionFobj02();
    bool actionFobj03();
    bool actionFobj04();
    bool actionFobj05();
    bool actionFobj06();
    bool actionFobj07();
    bool actionFobj08();
    bool actionFobj09();
    bool actionFobj10();
    bool actionFobj11();
    void animTest();
    void animTestForOneTime();
    void execAction();
    void mode_carry_init();
    void mode_carry();
    void mode_wait_init();
    void mode_wait();
    void mode_drop_init();
    void mode_drop();
    bool _draw();

    static BOOL daiItemNodeCallBack(J3DNode*, int);

public:
    static const char m_arcname[5];
    static const s16 m_bmdidx[12];
    static const s16 m_bckidx[12];
    static const u16 m_heapsize[12];
    static const s16 m_anim_min_time[12];
    static const s16 m_anim_max_time[12];
    static const s16 m_stop_min_time[12];
    static const s16 m_stop_max_time[12];

public:
    /* 0x290 */ request_of_phase_process_class mPhsDai;
    /* 0x298 */ request_of_phase_process_class mPhsCloth;
    /* 0x2A0 */ J3DModel* mpModel;
    /* 0x2A4 */ mDoExt_bckAnm* mpBckAnm;
    /* 0x2A8 */ dCcD_Stts mStts;
    /* 0x2E4 */ dCcD_Cyl mCyl;
    /* 0x414 */ dBgS_ObjAcch mAcch;
    /* 0x5D8 */ dBgS_AcchCir mAcchCir;
    /* 0x618 */ u8 mItemNo;
    /* 0x619 */ u8 mItemType;
    /* 0x61A */ u8 m61A[0x61C - 0x61A];
    /* 0x61C */ int mTimer;
    /* 0x620 */ int mMode;
    /* 0x624 */ bool mCarry;
    /* 0x625 */ u8 m625[0x628 - 0x625];
    /* 0x628 */ s16 mBckPlayTimer;
    /* 0x62A */ s16 mBckStopTimer;
    /* 0x62C */ f32 mBckSpeed;
    /* 0x630 */ Mtx m630;
    /* 0x660 */ Mtx m660;
    /* 0x690 */ JPABaseEmitter* m690;
    /* 0x694 */ JPABaseEmitter* m694;
    /* 0x698 */ JPABaseEmitter* m698;
    /* 0x69C */ dCloth_packet_c* mpCloth;
    /* 0x6A0 */ u8 mClothType;
    /* 0x6A1 */ u8 m6A1[0x6A2 - 0x6A1];
    /* 0x6A2 */ s16 m6A2;
    /* 0x6A4 */ cXyz m6A4;
    /* 0x6B0 */ u8 mbBckDidPlay;
    /* 0x6B1 */ u8 m6B1;
    /* 0x6B2 */ s16 m6B2;
    /* 0x6B4 */ s16 m6B4;
    /* 0x6B6 */ u8 m6B6[0x6BC - 0x6B6];
    /* 0x6BC */ f32 m6BC;
    /* 0x6C0 */ u8 m6C0[0x6C4 - 0x6C0];
    /* 0x6C4 */ f32 m6C4;
};

#endif /* D_A_DAI_ITEM_H */