Files
2024-01-31 01:44:44 -08:00

59 lines
1.4 KiB
C++

#ifndef JPARESOURCEMANAGER_H
#define JPARESOURCEMANAGER_H
#include "dolphin/gx/GX.h"
#include "JSystem/JParticle/JPATexture.h"
class JKRHeap;
class JPATexture;
struct JPAEmitterData;
struct ResTIMG;
class JPATextureResource {
public:
JPATextureResource(u32, JKRHeap*);
void registration(JPATexture*);
inline void load(u16 id, GXTexMapID texMap) {
pTexResArray[id]->load(texMap);
}
inline void loadDefaultTexture(GXTexMapID texMap) {
defaultTex.load(texMap);
}
public:
/* 0x00 */ JPADefaultTexture defaultTex;
/* 0x24 */ u32 registNum;
/* 0x28 */ u32 maxNum;
/* 0x2C */ JPATexture** pTexResArray;
};
class JPAEmitterResource {
public:
JPAEmitterResource(u32, JKRHeap*);
void registration(JPAEmitterData*, u16);
JPAEmitterData * getByUserIndex(u16);
bool checkUserIndexDuplication(u16);
public:
/* 0x00 */ u32 registNum;
/* 0x04 */ u32 maxNum;
/* 0x08 */ JPAEmitterData** pEmtrResArray;
};
class JPAResourceManager {
public:
JPAResourceManager(const void*, JKRHeap*);
const ResTIMG* swapTexture(const ResTIMG*, const char*);
JPATextureResource * getTextureResource() { return pTexRes; }
JPAEmitterResource * getEmitterResource() { return pEmtrRes; }
public:
/* 0x00 */ JKRHeap * pHeap;
/* 0x04 */ JPAEmitterResource * pEmtrRes;
/* 0x08 */ JPATextureResource * pTexRes;
};
#endif /* JPARESOURCEMANAGER_H */