summaryrefslogtreecommitdiff
path: root/include/JSystem/JKernel/JKRAramArchive.h
blob: ff89e712ec84aa5297bf565eea93bb311e4c685e (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
#ifndef JKRARAMARCHIVE_H
#define JKRARAMARCHIVE_H

#include "JSystem/JKernel/JKRArchive.h"
#include "dolphin/types.h"

class JKRAramBlock;
class JKRFile;

class JKRAramArchive : public JKRArchive {
public:
    JKRAramArchive(s32, JKRArchive::EMountDirection);
    virtual ~JKRAramArchive();

    bool open(s32);
    u32 getAramAddress_Entry(SDIFileEntry*);
    u32 getAramAddress(char const*);

    /* vt[15] */ u32 getExpandedResSize(const void*) const;            /* override */
    /* vt[16] */ void* fetchResource(SDIFileEntry*, u32*);             /* override */
    /* vt[17] */ void* fetchResource(void*, u32, SDIFileEntry*, u32*); /* override */

public:
    static u32 fetchResource_subroutine(u32, u32, u8*, u32, int);
    static u32 fetchResource_subroutine(u32, u32, JKRHeap*, int, u8**);

private:
    /* 0x00 */  // vtable
    /* 0x04 */  // JKRArchive
    /* 0x64 */ JKRAramBlock* mBlock;
    /* 0x68 */ JKRFile* mDvdFile;
};  // Size = 0x6C

#endif /* JKRARAMARCHIVE_H */