summaryrefslogtreecommitdiff
path: root/src/KingSystem/Resource
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2021-04-22 19:03:46 +0200
committerLéo Lam <leo@leolam.fr>2021-04-22 19:37:58 +0200
commit136f20427d6b346da488ec84f39b5c6aeaffd24e (patch)
treea8f5740cbc11c50dfd16a505b1f565997ae62267 /src/KingSystem/Resource
parentf6e4643808bdec31d2e2bf1b3d3a0ce0b456e348 (diff)
ksys/phys: Implement ParamSet and res::Physics
Diffstat (limited to 'src/KingSystem/Resource')
-rw-r--r--src/KingSystem/Resource/resResourcePhysics.cpp14
-rw-r--r--src/KingSystem/Resource/resResourcePhysics.h13
2 files changed, 26 insertions, 1 deletions
diff --git a/src/KingSystem/Resource/resResourcePhysics.cpp b/src/KingSystem/Resource/resResourcePhysics.cpp
index 89054e81..88591fb9 100644
--- a/src/KingSystem/Resource/resResourcePhysics.cpp
+++ b/src/KingSystem/Resource/resResourcePhysics.cpp
@@ -1 +1,15 @@
#include "KingSystem/Resource/resResourcePhysics.h"
+
+namespace ksys::res {
+
+void Physics::doCreate_(u8* buffer, u32 buffer_size, sead::Heap* heap) {}
+
+bool Physics::parse_(u8* data, size_t size, sead::Heap* heap) {
+ if (!data)
+ return true;
+
+ mParamSet.parse(this, agl::utl::ResParameterArchive{data}, heap);
+ return true;
+}
+
+} // namespace ksys::res
diff --git a/src/KingSystem/Resource/resResourcePhysics.h b/src/KingSystem/Resource/resResourcePhysics.h
index fb95e0c1..5eef2cfd 100644
--- a/src/KingSystem/Resource/resResourcePhysics.h
+++ b/src/KingSystem/Resource/resResourcePhysics.h
@@ -1,13 +1,24 @@
#pragma once
+#include "KingSystem/Physics/System/physParamSet.h"
#include "KingSystem/Resource/resResource.h"
#include "KingSystem/Utils/ParamIO.h"
namespace ksys::res {
-// TODO
class Physics : public ParamIO, public Resource {
SEAD_RTTI_OVERRIDE(Physics, Resource)
+public:
+ Physics() : ParamIO("physics", 0) {}
+
+ phys::ParamSet& getParamSet() { return mParamSet; }
+
+ void doCreate_(u8* buffer, u32 buffer_size, sead::Heap* heap) override;
+ bool parse_(u8* data, size_t size, sead::Heap* heap) override;
+ bool needsParse() const override { return true; }
+
+private:
+ phys::ParamSet mParamSet;
};
} // namespace ksys::res