summaryrefslogtreecommitdiff
path: root/include/JSystem/JUtility/JUTPalette.h
blob: bb5cccb8b864c49831471d0823e9b62725acab22 (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
#ifndef JUTPALETTE_H
#define JUTPALETTE_H

#include "dolphin/gx/GXEnum.h"
#include "dolphin/gx/GXStruct.h"

enum JUTTransparency { UNK0, UNK1 };

struct ResTLUT {
    u8 format;
    u8 transparency;
    u16 numColors;
};

class JUTPalette {
public:
    JUTPalette(GXTlut p1, GXTlutFmt p2, JUTTransparency p3, u16 p4, void* p5) {
        this->storeTLUT(p1, p2, p3, p4, p5);
    }

    JUTPalette(GXTlut tlutNo, ResTLUT* p_tlutRes) { storeTLUT(tlutNo, p_tlutRes); }

    void storeTLUT(GXTlut, ResTLUT*);
    void storeTLUT(GXTlut, GXTlutFmt, JUTTransparency, u16, void*);
    bool load();

    u8 getTlutName() const { return mTlutName; }
    u8 getFormat() const { return mFormat; }
    u8 getTransparency() const { return mTransparency; }
    u16 getNumColors() const { return mNumColors; }
    ResTLUT* getColorTable() const { return mColorTable; }

private:
    /* 0x00 */ GXTlutObj mTlutObj;
    /* 0x0C */ u8 mTlutName;
    /* 0x0D */ u8 mFormat;
    /* 0x10 */ ResTLUT* mColorTable;
    /* 0x14 */ u16 mNumColors;
    /* 0x16 */ u8 mTransparency;
};

#endif /* JUTPALETTE_H */