ksys: Add StarterPackMgr

This commit is contained in:
AlexApps99
2021-08-16 11:26:11 +12:00
parent 8812e80809
commit dfeb87fd3d
11 changed files with 386 additions and 40 deletions
@@ -17,6 +17,8 @@ public:
~Archive() override;
void doCreate_(u8* data, u32 size, sead::Heap* heap) override;
static constexpr size_t cLoadDataAlignment = 0x80;
};
KSYS_CHECK_SIZE_NX150(Archive, 0x68);
@@ -238,6 +238,10 @@ void ResourceMgrTask::setFlag2000Or5000(s32 type) {
}
}
void ResourceMgrTask::resetFlag20000() {
mFlags.reset(Flag::_20000);
}
bool ResourceMgrTask::isFlag4Set() const {
return mFlags.isOn(Flag::_4);
}
@@ -701,4 +705,9 @@ void ResourceMgrTask::removeOverlayArena(OverlayArena* arena) {
}
}
void ResourceMgrTask::setPack(Handle* pack) {
mPackHandle = pack;
res::stubbedLogFunction();
}
} // namespace ksys::res
@@ -137,6 +137,7 @@ public:
void controlField9c0d88(bool off);
void setFlag2000Or5000(s32 type);
void resetFlag20000();
void copyLoadRequest(ILoadRequest* request, const sead::SafeString& path,
const ILoadRequest& source_request);
@@ -264,6 +265,10 @@ public:
ResourceUnitDelegatePair& getUnitInitLoadFn() { return mUnitInitLoadFn; }
auto& getUnitAdjustHeapFn() { return mUnitAdjustHeapFn; }
OverlayArena* getArenaForResourceL() { return &mArenaForResourceL; }
void setPack(Handle* pack);
private:
enum class Flag {
_1 = 1,
@@ -274,6 +279,7 @@ private:
_1000 = 0x1000,
_2000 = 0x2000,
_4000 = 0x4000,
_20000 = 0x20000,
};
enum class CacheControlFlag : u8 {
+8
View File
@@ -36,4 +36,12 @@ s32 getDefaultAlignment() {
return 8;
}
void registerPackExtension(bool has_extension, const sead::SafeString& extension) {}
void stubbedBool(bool) {}
void setResourceMgrPack(Handle* pack) {
ResourceMgrTask::instance()->setPack(pack);
}
} // namespace ksys::res
+11
View File
@@ -1,6 +1,7 @@
#pragma once
#include <prim/seadSafeString.h>
#include "resHandle.h"
namespace ksys::res {
@@ -27,4 +28,14 @@ bool returnFalse3(const sead::SafeString& path);
s32 getDefaultAlignment();
// In release builds, this function does nothing.
// TODO: figure out what this is used for. Stubbed log function?
void registerPackExtension(bool has_extension, const sead::SafeString& extension);
// In release builds, this function does nothing.
// TODO: figure out what this is used for. Stubbed log function?
void stubbedBool(bool);
void setResourceMgrPack(Handle* pack);
} // namespace ksys::res