summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEsras <Zachary.Boerner@gmail.com>2023-06-11 15:17:14 -0700
committerGitHub <noreply@github.com>2023-06-11 23:17:14 +0100
commitbdd6e57d63bde1714fb42197ac4080833ac6b572 (patch)
tree548479910f64d8d65c0f64020169325a6e9ef645 /src
parentdc4e48523b103db1a2ad95992e63423f8d76ed4f (diff)
resPlacement (#120)
Diffstat (limited to 'src')
-rw-r--r--src/KingSystem/Resource/CMakeLists.txt2
-rw-r--r--src/KingSystem/Resource/resPlacement.cpp24
-rw-r--r--src/KingSystem/Resource/resPlacement.h23
3 files changed, 49 insertions, 0 deletions
diff --git a/src/KingSystem/Resource/CMakeLists.txt b/src/KingSystem/Resource/CMakeLists.txt
index 8d4ab270..67177e15 100644
--- a/src/KingSystem/Resource/CMakeLists.txt
+++ b/src/KingSystem/Resource/CMakeLists.txt
@@ -111,6 +111,8 @@ target_sources(uking PRIVATE
resModelResourceDivide.h
resOffsetReadFileDevice.cpp
resOffsetReadFileDevice.h
+ resPlacement.cpp
+ resPlacement.h
resResourceMgrTask.cpp
resResourceMgrTask.h
resSystem.cpp
diff --git a/src/KingSystem/Resource/resPlacement.cpp b/src/KingSystem/Resource/resPlacement.cpp
new file mode 100644
index 00000000..d457d0ac
--- /dev/null
+++ b/src/KingSystem/Resource/resPlacement.cpp
@@ -0,0 +1,24 @@
+#include "KingSystem/Resource/resPlacement.h"
+#include "KingSystem/Resource/resEntryFactory.h"
+#include "KingSystem/Resource/resSystem.h"
+
+namespace ksys::res {
+
+void Placement::registerFactory(sead::Heap* heap) {
+ auto* rm = sead::ResourceMgr::instance();
+ if (!rm)
+ return;
+
+ if (rm->getDefaultFactory() != rm->findFactory("bplacement"))
+ return;
+
+ res::registerEntryFactory(new (heap) EntryFactory<Placement>(1.0, sizeof(Placement)),
+ "bplacement");
+}
+
+void Placement::doCreate_(u8* buffer, u32 bufferSize, sead::Heap* heap) {
+ mUnknown1 = buffer;
+ mUnknown2 = buffer + 0x10; // Unknown Constant / offset
+}
+
+} // namespace ksys::res
diff --git a/src/KingSystem/Resource/resPlacement.h b/src/KingSystem/Resource/resPlacement.h
new file mode 100644
index 00000000..43d0e35c
--- /dev/null
+++ b/src/KingSystem/Resource/resPlacement.h
@@ -0,0 +1,23 @@
+#pragma once
+
+#include "KingSystem/Resource/resEntryFactory.h"
+#include "KingSystem/Resource/resResource.h"
+#include "resource/seadResource.h"
+
+namespace ksys::res {
+
+class Placement : public Resource {
+ SEAD_RTTI_OVERRIDE(Placement, Resource)
+public:
+ Placement() = default;
+ ~Placement() override = default;
+
+ static void registerFactory(sead::Heap* heap);
+
+ void doCreate_(u8* buffer, u32 bufferSize, sead::Heap* heap) override;
+
+ void* mUnknown1 = nullptr;
+ void* mUnknown2 = nullptr;
+};
+
+} // namespace ksys::res