summaryrefslogtreecommitdiff
path: root/include/SSystem/SComponent/c_data_tbl.h
blob: ce51bfc030f59fa1caa93c8dc6ed3eb2136d9e0a (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
#ifndef C_DATA_TBL
#define C_DATA_TBL

#include "dolphin/types.h"

struct cDT_NamePTbl {
    u32 mCount;
    char ** mpNames;
    
    cDT_NamePTbl();
    virtual ~cDT_NamePTbl();
    int GetIndex(const char *pName, int start) const;
    void Set(u32 count, char** pNames);
};

struct cDT_DataSrc {
    u32 mRowNum;
    u32 mColNum;
    u8 *mpData;

    cDT_DataSrc();
    virtual ~cDT_DataSrc();
    u8 GetInf(int row, int col) const;
    void Set(u32 rowNum, u32 colNum, u8* pData);
};

struct cDT_Format : public cDT_NamePTbl {
    cDT_Format();
    ~cDT_Format();
};

struct cDT_Name : public cDT_NamePTbl {
    cDT_Name();
    ~cDT_Name();
};

struct cDT {
public:
    cDT();
    ~cDT();

    u8 GetInf(int row, int col) const;
    void Set(u32 fmtNum, char **pFmt, u32 nameNum, char **pName, u8* pData);
    
    int GetNameIndex(const char* pName, int start) const { return mName.GetIndex(pName, start); }
    int GetFormatIndex(const char* pName) const { return mFmt.GetIndex(pName, 0); }

    cDT_Format mFmt;
    cDT_Name mName;
    cDT_DataSrc mSrc;
};

#endif /* C_DATA_TBL */