diff options
| author | Esras <Zachary.Boerner@gmail.com> | 2023-06-11 15:17:14 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-06-11 23:17:14 +0100 |
| commit | bdd6e57d63bde1714fb42197ac4080833ac6b572 (patch) | |
| tree | 548479910f64d8d65c0f64020169325a6e9ef645 /src | |
| parent | dc4e48523b103db1a2ad95992e63423f8d76ed4f (diff) | |
resPlacement (#120)
Diffstat (limited to 'src')
| -rw-r--r-- | src/KingSystem/Resource/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | src/KingSystem/Resource/resPlacement.cpp | 24 | ||||
| -rw-r--r-- | src/KingSystem/Resource/resPlacement.h | 23 |
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 |
