summaryrefslogtreecommitdiff
path: root/include/d/d_model.h
blob: 9dc33d0ef2166aebcdc5bc36fb6a9c5ce6bde824 (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
#ifndef D_D_MODEL_H
#define D_D_MODEL_H

#include "JSystem/J3DGraphBase/J3DPacket.h"

class J3DModelData;
class dKy_tevstr_c;

class dMdl_obj_c {
public:
    MtxP getMtx() { return mMtx; }

    /* 0x00 */ Mtx mMtx;
    /* 0x30 */ dMdl_obj_c* mpObj;
};

class dMdl_c : public J3DPacket {
public:
    /* 8009C650 */ void create(J3DModelData*, u16, dKy_tevstr_c*);
    /* 8009C668 */ void entryObj(dMdl_obj_c*);
    /* 8009C930 */ dMdl_c();

    /* 8009C4FC */ virtual void draw();
    /* 8009C808 */ virtual ~dMdl_c();

    J3DModelData* getModelData() { return mpModelData; }
    u16 getMaterialId() { return mMaterialId; }
    dKy_tevstr_c* getTevstr() { return mpTevstr; }

private:
    /* 0x10 */ J3DModelData* mpModelData;
    /* 0x14 */ dKy_tevstr_c* mpTevstr;
    /* 0x18 */ u16 mMaterialId;
    /* 0x1A */ bool field_0x1a;
    /* 0x1C */ dMdl_obj_c* mpModelObj;
};

class dMdl_mng_c {
public:
    dMdl_mng_c() { field_0x80 = 0; }
    ~dMdl_mng_c() {}

    /* 8009C6DC */ dMdl_c* search(J3DModelData*, u16, dKy_tevstr_c*);
    /* 8009C724 */ dMdl_c* entry(J3DModelData*, u16, dKy_tevstr_c*);
    /* 8009C8D8 */ static dMdl_c* entry(J3DModelData*, u16, int);
    /* 8009C7AC */ static void create();
    /* 8009C864 */ static void remove();
    /* 8009C8C0 */ static void reset();

    static dMdl_mng_c* m_myObj;

private:
    /* 0x00 */ dMdl_c field_0x0[4];
    /* 0x80 */ u8 field_0x80;
};

#endif /* D_D_MODEL_H */