mirror of
https://github.com/MonsterDruide1/OdysseyDecomp
synced 2026-04-30 04:24:17 +00:00
71 lines
2.3 KiB
C++
71 lines
2.3 KiB
C++
#pragma once
|
|
|
|
#include <container/seadStrTreeMap.h>
|
|
#include <heap/seadExpHeap.h>
|
|
#include <heap/seadHeapMgr.h>
|
|
|
|
namespace al {
|
|
class AudioResourceDirector;
|
|
|
|
class MemorySystem {
|
|
public:
|
|
MemorySystem(sead::Heap* heap);
|
|
|
|
void allocFailedCallbackFunc(const sead::HeapMgr::AllocFailedCallbackArg*);
|
|
void createSequenceHeap();
|
|
void freeAllSequenceHeap();
|
|
bool printSequenceHeap();
|
|
bool createSceneHeap(const char* stageName, bool backwards);
|
|
void createSceneResourceHeap(const char* stageName, bool backwards);
|
|
void destroySceneHeap();
|
|
void destroySceneResourceHeap();
|
|
void createCourseSelectHeap();
|
|
void destroyCourseSelectHeap();
|
|
void createWorldResourceHeap();
|
|
void destroyWorldResourceHeap();
|
|
void freeAllPlayerHeap();
|
|
sead::Heap* tryFindNamedHeap(const char* heapName);
|
|
sead::Heap* findNamedHeap(const char* heapName);
|
|
void addNamedHeap(sead::Heap* heap, const char* heapName);
|
|
void removeNamedHeap(const char* heapName);
|
|
|
|
sead::ExpHeap* getStationedHeap() { return mStationedHeap; }
|
|
|
|
sead::ExpHeap* getSequenceHeap() { return mSequenceHeap; }
|
|
|
|
sead::ExpHeap* getSceneResourceHeap() { return mSceneResourceHeap; }
|
|
|
|
sead::ExpHeap* getSceneHeap() { return mSceneHeap; }
|
|
|
|
sead::ExpHeap* getPlayerResourceHeap() { return mPlayerResourceHeap; }
|
|
|
|
sead::ExpHeap* getCourseSelectResourceHeap() { return mCourseSelectResourceHeap; }
|
|
|
|
sead::ExpHeap* getCourseSelectHeap() { return mCourseSelectHeap; }
|
|
|
|
sead::ExpHeap* getWorldResourceHeap() { return mWorldResourceHeap; }
|
|
|
|
AudioResourceDirector* getAudioResourceDirector() { return mAudioResourceDirector; }
|
|
|
|
void setAudioResourceDirector(AudioResourceDirector* audioResourceDirector) {
|
|
mAudioResourceDirector = audioResourceDirector;
|
|
}
|
|
|
|
private:
|
|
sead::ExpHeap* mStationedHeap;
|
|
sead::ExpHeap* mSequenceHeap;
|
|
sead::ExpHeap* mSceneResourceHeap;
|
|
sead::ExpHeap* mSceneHeap;
|
|
sead::ExpHeap* mPlayerResourceHeap;
|
|
sead::ExpHeap* mCourseSelectResourceHeap;
|
|
sead::ExpHeap* mCourseSelectHeap;
|
|
sead::ExpHeap* mWorldResourceHeap;
|
|
sead::StrTreeMap<32, sead::Heap*> mHeapList;
|
|
AudioResourceDirector* mAudioResourceDirector;
|
|
bool mIsExistFileResource;
|
|
sead::Delegate1<MemorySystem, const sead::HeapMgr::AllocFailedCallbackArg*> mDelegate;
|
|
};
|
|
|
|
static_assert(sizeof(MemorySystem) == 0x90);
|
|
} // namespace al
|