1#pragma once
2
3#include <container/seadRingBuffer.h>
4#include <heap/seadHeap.h>
5#include <prim/seadSafeString.h>
6
7namespace al {
8class Resource;
9class ByamlIter;
10
11class ResourceSystem {
12public:
13 struct ResourceCategory;
14
15 ResourceSystem(const char*);
16
17 const sead::SafeString& addCategory(const sead::SafeString&, s32, sead::Heap*);
18 Resource* findOrCreateResourceCategory(const sead::SafeString&, const sead::SafeString&,
19 const char*);
20 s64 findResourceCategoryIter(const sead::SafeString&);
21 bool isEmptyCategoryResource(const sead::SafeString&);
22 void createCategoryResourceAll(const sead::SafeString&);
23 Resource* createResource(const sead::SafeString&, ResourceCategory*, const char*);
24 void removeCategory(const sead::SafeString&);
25 Resource* findResource(const sead::SafeString&);
26 Resource* findResourceCore(const sead::SafeString&,
27 sead::RingBuffer<ResourceCategory*>::iterator*);
28 Resource* findOrCreateResource(const sead::SafeString&, const char*);
29 ResourceCategory* findResourceCategory(const sead::SafeString&);
30 void loadCategoryArchiveAll(const sead::SafeString&);
31 void setCurrentCategory(const char*);
32 const char* findCategoryNameFromTable(const sead::SafeString&) const;
33 bool tryGetTableCategoryIter(ByamlIter*, const sead::SafeString&) const;
34 bool tryGetGraphicsInfoIter(ByamlIter*, const sead::SafeString&) const;
35
36private:
37 void* _0[0xc8 / 8];
38};
39
40static_assert(sizeof(ResourceSystem) == 0xc8);
41
42} // namespace al
43