summaryrefslogtreecommitdiff
path: root/include/d/d_bg_plc.h
blob: d2fa3271ae5d57766150b263860c8e615021f164 (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
#ifndef D_BG_D_BG_PLC_H
#define D_BG_D_BG_PLC_H

#include "d/d_bg_pc.h"

struct sBgPlc {
    /* 0x0 */ u32 magic;        // "SPLC"
    /* 0x4 */ u16 m_code_size;  // Should normally always be 0x14
    /* 0x6 */ u16 m_num;        // Number of sBgPc entries to follow
    /* 0x8 */ sBgPc m_code[0];  // m_num size array
};

class dBgPlc {
public:
    dBgPlc();
    ~dBgPlc();
    void setBase(void*);
    sBgPc* getCode(int, sBgPc**) const;
    u32 getGrpCode(int) const;

    static const int ZELDA_CODE_SIZE = sizeof(sBgPc);

private:
    /* 0x00 */ sBgPlc* m_base;
};

#endif /* D_BG_D_BG_PLC_H */