summaryrefslogtreecommitdiff
path: root/src/KingSystem/Resource
diff options
context:
space:
mode:
authorAlexApps99 <alex.apps99@gmail.com>2021-08-16 11:26:11 +1200
committerAlexApps99 <alex.apps99@gmail.com>2021-08-20 23:27:01 +1200
commitdfeb87fd3d128d655633e29b0b71eb795d58eab2 (patch)
tree4c123792562055302e02887566aee8bfe586b3bf /src/KingSystem/Resource
parent8812e80809dcc18d00faa7f21f5f28b92bfefc66 (diff)
ksys: Add StarterPackMgr
Diffstat (limited to 'src/KingSystem/Resource')
-rw-r--r--src/KingSystem/Resource/resResourceArchive.h2
-rw-r--r--src/KingSystem/Resource/resResourceMgrTask.cpp9
-rw-r--r--src/KingSystem/Resource/resResourceMgrTask.h6
-rw-r--r--src/KingSystem/Resource/resSystem.cpp8
-rw-r--r--src/KingSystem/Resource/resSystem.h11
5 files changed, 36 insertions, 0 deletions
diff --git a/src/KingSystem/Resource/resResourceArchive.h b/src/KingSystem/Resource/resResourceArchive.h
index 60550d53..34b0c16d 100644
--- a/src/KingSystem/Resource/resResourceArchive.h
+++ b/src/KingSystem/Resource/resResourceArchive.h
@@ -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);
diff --git a/src/KingSystem/Resource/resResourceMgrTask.cpp b/src/KingSystem/Resource/resResourceMgrTask.cpp
index 4497d4f4..6b4d34f2 100644
--- a/src/KingSystem/Resource/resResourceMgrTask.cpp
+++ b/src/KingSystem/Resource/resResourceMgrTask.cpp
@@ -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
diff --git a/src/KingSystem/Resource/resResourceMgrTask.h b/src/KingSystem/Resource/resResourceMgrTask.h
index 81e3e083..225d9b6f 100644
--- a/src/KingSystem/Resource/resResourceMgrTask.h
+++ b/src/KingSystem/Resource/resResourceMgrTask.h
@@ -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 {
diff --git a/src/KingSystem/Resource/resSystem.cpp b/src/KingSystem/Resource/resSystem.cpp
index c40b9df9..e1064b13 100644
--- a/src/KingSystem/Resource/resSystem.cpp
+++ b/src/KingSystem/Resource/resSystem.cpp
@@ -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
diff --git a/src/KingSystem/Resource/resSystem.h b/src/KingSystem/Resource/resSystem.h
index 4d44d20f..9cdc52f8 100644
--- a/src/KingSystem/Resource/resSystem.h
+++ b/src/KingSystem/Resource/resSystem.h
@@ -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