2021-03-28 22:49:05 +02:00
|
|
|
#ifndef JKRARAMARCHIVE_H
|
|
|
|
|
#define JKRARAMARCHIVE_H
|
|
|
|
|
|
2021-08-28 16:32:14 +02:00
|
|
|
#include "JSystem/JKernel/JKRAramBlock.h"
|
2021-05-03 02:03:24 +02:00
|
|
|
#include "JSystem/JKernel/JKRArchive.h"
|
2021-03-28 22:49:05 +02:00
|
|
|
#include "dolphin/types.h"
|
|
|
|
|
|
2021-05-03 02:03:24 +02:00
|
|
|
class JKRAramArchive : public JKRArchive {
|
|
|
|
|
public:
|
|
|
|
|
JKRAramArchive(long, JKRArchive::EMountDirection);
|
|
|
|
|
virtual ~JKRAramArchive();
|
|
|
|
|
|
2021-08-28 16:32:14 +02:00
|
|
|
bool open(long);
|
|
|
|
|
u32 getAramAddress_Entry(SDIFileEntry*);
|
|
|
|
|
u32 getAramAddress(char const*);
|
2021-05-03 02:03:24 +02:00
|
|
|
|
2021-08-28 16:32:14 +02:00
|
|
|
/* vt[15] */ u32 getExpandedResSize(const void*) const; /* override */
|
2021-05-03 02:03:24 +02:00
|
|
|
/* vt[16] */ void* fetchResource(SDIFileEntry*, u32*); /* override */
|
|
|
|
|
/* vt[17] */ void* fetchResource(void*, u32, SDIFileEntry*, u32*); /* override */
|
|
|
|
|
|
|
|
|
|
public:
|
2021-08-28 16:32:14 +02:00
|
|
|
static u32 fetchResource_subroutine(u32, u32, u8*, u32, int);
|
|
|
|
|
static u32 fetchResource_subroutine(u32, u32, JKRHeap*, int, u8**);
|
2021-05-03 02:03:24 +02:00
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
/* 0x00 */ // vtable
|
|
|
|
|
/* 0x04 */ // JKRArchive
|
2021-08-28 16:32:14 +02:00
|
|
|
/* 0x5C */ JKRCompression mCompression;
|
|
|
|
|
/* 0x60 */ EMountDirection mMountDirection;
|
|
|
|
|
/* 0x64 */ JKRAramBlock* mBlock;
|
|
|
|
|
/* 0x68 */ JKRDvdFile* mDvdFile;
|
|
|
|
|
}; // Size = 0x6C
|
2021-05-03 02:03:24 +02:00
|
|
|
|
2021-03-28 22:49:05 +02:00
|
|
|
#endif /* JKRARAMARCHIVE_H */
|