mirror of
https://github.com/CraftyBoss/SuperMarioOdysseyOnline.git
synced 2024-11-16 16:35:10 +00:00
39 lines
1,023 B
C
39 lines
1,023 B
C
|
#ifndef SEAD_DECOMPRESSOR_H_
|
||
|
#define SEAD_DECOMPRESSOR_H_
|
||
|
|
||
|
#include <basis/seadTypes.h>
|
||
|
#include <container/seadTList.h>
|
||
|
#include <heap/seadDisposer.h>
|
||
|
#include <prim/seadSafeString.h>
|
||
|
#include <resource/seadResource.h>
|
||
|
#include <resource/seadResourceMgr.h>
|
||
|
|
||
|
namespace sead
|
||
|
{
|
||
|
class Decompressor : public TListNode<Decompressor*>, public IDisposer
|
||
|
{
|
||
|
public:
|
||
|
Decompressor(const SafeString& name) : TListNode<Decompressor*>(this), IDisposer(), mExt(name)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
virtual ~Decompressor()
|
||
|
{
|
||
|
if (ResourceMgr::instance() != NULL)
|
||
|
ResourceMgr::instance()->unregisterDecompressor(this);
|
||
|
}
|
||
|
|
||
|
virtual u8* tryDecompFromDevice(const ResourceMgr::LoadArg& loadArg, Resource* resource,
|
||
|
u32* outSize, u32* outAllocSize, bool* outAllocated) = 0;
|
||
|
|
||
|
const SafeString& getName() const { return mExt; }
|
||
|
void setName(const SafeString& name) { mExt = name; }
|
||
|
|
||
|
protected:
|
||
|
FixedSafeString<32> mExt;
|
||
|
};
|
||
|
|
||
|
} // namespace sead
|
||
|
|
||
|
#endif // SEAD_DECOMPRESSOR_H_
|