summaryrefslogtreecommitdiff
path: root/src/KingSystem
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2020-09-20 13:55:36 +0200
committerLéo Lam <leo@leolam.fr>2020-09-20 13:55:36 +0200
commit8b3aed47e638dd2192bc5d263ed2079ea84f990e (patch)
tree090ef03c46952f2689921cde6ed74133241d845a /src/KingSystem
parente9dbd61debcb728b23e3b79fec1d604f870e3f25 (diff)
ksys/res: Implement GParamList GolemIK
Diffstat (limited to 'src/KingSystem')
-rw-r--r--src/KingSystem/Resource/GeneralParamList/resGParamListObjectGolemIK.h72
-rw-r--r--src/KingSystem/Resource/resResourceGParamList.cpp2
2 files changed, 74 insertions, 0 deletions
diff --git a/src/KingSystem/Resource/GeneralParamList/resGParamListObjectGolemIK.h b/src/KingSystem/Resource/GeneralParamList/resGParamListObjectGolemIK.h
new file mode 100644
index 00000000..2069c1b6
--- /dev/null
+++ b/src/KingSystem/Resource/GeneralParamList/resGParamListObjectGolemIK.h
@@ -0,0 +1,72 @@
+#pragma once
+
+#include <agl/Utils/aglParameter.h>
+#include "KingSystem/Resource/GeneralParamList/resGParamListObject.h"
+#include "KingSystem/Utils/Types.h"
+
+namespace ksys::res {
+
+class GParamListObjectGolemIK : public GParamListObject {
+public:
+ GParamListObjectGolemIK();
+ const char* getName() const override { return "GolemIK"; }
+
+ agl::utl::Parameter<f32> mFootRayCheckDist;
+ agl::utl::Parameter<f32> mFootDownRatio;
+ agl::utl::Parameter<f32> mFootUpRatio;
+ agl::utl::Parameter<f32> mKneeExtendL;
+ agl::utl::Parameter<f32> mKneeShrinkL;
+ agl::utl::Parameter<f32> mFootExtendL;
+ agl::utl::Parameter<f32> mFootShrinkL;
+ agl::utl::Parameter<f32> mKneeExtendR;
+ agl::utl::Parameter<f32> mKneeShrinkR;
+ agl::utl::Parameter<f32> mFootExtendR;
+ agl::utl::Parameter<f32> mFootShrinkR;
+ agl::utl::Parameter<f32> mArmRayCheckDist;
+ agl::utl::Parameter<f32> mArmDownRatio;
+ agl::utl::Parameter<f32> mArmUpRatio;
+ agl::utl::Parameter<f32> mElbowExtendL;
+ agl::utl::Parameter<f32> mElbowShrinkL;
+ agl::utl::Parameter<f32> mWristExtendL;
+ agl::utl::Parameter<f32> mWristShrinkL;
+ agl::utl::Parameter<f32> mElbowExtendR;
+ agl::utl::Parameter<f32> mElbowShrinkR;
+ agl::utl::Parameter<f32> mWristExtendR;
+ agl::utl::Parameter<f32> mWristShrinkR;
+ agl::utl::Parameter<f32> mWaistRotateRatio;
+ agl::utl::Parameter<f32> mWaistMorphRatio;
+ agl::utl::Parameter<f32> mWaistResetMorphRatio;
+};
+KSYS_CHECK_SIZE_NX150(GParamListObjectGolemIK, 0x358);
+
+inline GParamListObjectGolemIK::GParamListObjectGolemIK() {
+ auto* const obj = &mObj;
+
+ mFootRayCheckDist.init(3.0, "FootRayCheckDist", "", obj);
+ mFootDownRatio.init(0.2, "FootDownRatio", "", obj);
+ mFootUpRatio.init(0.1, "FootUpRatio", "", obj);
+ mKneeExtendL.init(0.5, "KneeExtendL", "", obj);
+ mKneeShrinkL.init(0.5, "KneeShrinkL", "", obj);
+ mFootExtendL.init(0.5, "FootExtendL", "", obj);
+ mFootShrinkL.init(0.5, "FootShrinkL", "", obj);
+ mKneeExtendR.init(0.5, "KneeExtendR", "", obj);
+ mKneeShrinkR.init(0.5, "KneeShrinkR", "", obj);
+ mFootExtendR.init(0.5, "FootExtendR", "", obj);
+ mFootShrinkR.init(0.5, "FootShrinkR", "", obj);
+ mArmRayCheckDist.init(3.0, "ArmRayCheckDist", "", obj);
+ mArmDownRatio.init(0.05, "ArmDownRatio", "", obj);
+ mArmUpRatio.init(0.05, "ArmUpRatio", "", obj);
+ mElbowExtendL.init(0.5, "ElbowExtendL", "", obj);
+ mElbowShrinkL.init(0.5, "ElbowShrinkL", "", obj);
+ mWristExtendL.init(0.5, "WristExtendL", "", obj);
+ mWristShrinkL.init(0.5, "WristShrinkL", "", obj);
+ mElbowExtendR.init(0.5, "ElbowExtendR", "", obj);
+ mElbowShrinkR.init(0.5, "ElbowShrinkR", "", obj);
+ mWristExtendR.init(0.5, "WristExtendR", "", obj);
+ mWristShrinkR.init(0.5, "WristShrinkR", "", obj);
+ mWaistRotateRatio.init(0.5, "WaistRotateRatio", "", obj);
+ mWaistMorphRatio.init(0.2, "WaistMorphRatio", "", obj);
+ mWaistResetMorphRatio.init(0.1, "WaistResetMorphRatio", "", obj);
+}
+
+} // namespace ksys::res
diff --git a/src/KingSystem/Resource/resResourceGParamList.cpp b/src/KingSystem/Resource/resResourceGParamList.cpp
index f751e3a5..95ad8f80 100644
--- a/src/KingSystem/Resource/resResourceGParamList.cpp
+++ b/src/KingSystem/Resource/resResourceGParamList.cpp
@@ -37,6 +37,7 @@
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectGiantArmorSlot.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectGlobal.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectGolem.h"
+#include "KingSystem/Resource/GeneralParamList/resGParamListObjectGolemIK.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectGrab.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectGuardian.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectGuardianMini.h"
@@ -194,6 +195,7 @@ bool GParamList::parse_(u8* data, size_t, sead::Heap* heap) {
dummy_list);
add<GParamListObjType::WolfLink>(archive.getRootList(), "WolfLink", heap, dummy_list);
add<GParamListObjType::Event>(archive.getRootList(), "Event", heap, dummy_list);
+ add<GParamListObjType::GolemIK>(archive.getRootList(), "GolemIK", heap, dummy_list);
// TODO: the rest