From ef1925df9fb9e0841615cda9426414c486b7dec1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Sun, 20 Sep 2020 11:55:42 +0200 Subject: ksys/res: Implement GParamList Rope --- .../GeneralParamList/resGParamListObjectRope.h | 42 ++++++++++++++++++++++ src/KingSystem/Resource/resResourceGParamList.cpp | 2 ++ 2 files changed, 44 insertions(+) create mode 100644 src/KingSystem/Resource/GeneralParamList/resGParamListObjectRope.h (limited to 'src') diff --git a/src/KingSystem/Resource/GeneralParamList/resGParamListObjectRope.h b/src/KingSystem/Resource/GeneralParamList/resGParamListObjectRope.h new file mode 100644 index 00000000..ea2cf042 --- /dev/null +++ b/src/KingSystem/Resource/GeneralParamList/resGParamListObjectRope.h @@ -0,0 +1,42 @@ +#pragma once + +#include +#include "KingSystem/Resource/GeneralParamList/resGParamListObject.h" +#include "KingSystem/Utils/Types.h" + +namespace ksys::res { + +class GParamListObjectRope : public GParamListObject { +public: + GParamListObjectRope(); + const char* getName() const override { return "Rope"; } + + agl::utl::Parameter mIsAllowCutting; + agl::utl::Parameter mIsSetupKeyframed; + agl::utl::Parameter mBoneEffectiveLength; + agl::utl::Parameter mIsInterpolateEdge; + agl::utl::Parameter mIsDeformable; + agl::utl::Parameter mIsOneBoneOneShape; + agl::utl::Parameter mSplineOffsetRateA; + agl::utl::Parameter mSplineOffsetRateB; + agl::utl::Parameter mSplineOffsetRateC; + agl::utl::Parameter mMtxEndPosOffsetLength; +}; +KSYS_CHECK_SIZE_NX150(GParamListObjectRope, 0x178); + +inline GParamListObjectRope::GParamListObjectRope() { + auto* const obj = &mObj; + + mIsAllowCutting.init(true, "IsAllowCutting", "", obj); + mIsSetupKeyframed.init(false, "IsSetupKeyframed", "", obj); + mBoneEffectiveLength.init(0.1, "BoneEffectiveLength", "", obj); + mIsInterpolateEdge.init(true, "IsInterpolateEdge", "", obj); + mIsDeformable.init(true, "IsDeformable", "", obj); + mIsOneBoneOneShape.init(false, "IsOneBoneOneShape", "", obj); + mSplineOffsetRateA.init(0.0, "SplineOffsetRateA", "", obj); + mSplineOffsetRateB.init(0.0, "SplineOffsetRateB", "", obj); + mSplineOffsetRateC.init(0.0, "SplineOffsetRateC", "", obj); + mMtxEndPosOffsetLength.init(0.0, "MtxEndPosOffsetLength", "", obj); +} + +} // namespace ksys::res diff --git a/src/KingSystem/Resource/resResourceGParamList.cpp b/src/KingSystem/Resource/resResourceGParamList.cpp index 761343db..bfad76b4 100644 --- a/src/KingSystem/Resource/resResourceGParamList.cpp +++ b/src/KingSystem/Resource/resResourceGParamList.cpp @@ -40,6 +40,7 @@ #include "KingSystem/Resource/GeneralParamList/resGParamListObjectPlayer.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectPrey.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectRod.h" +#include "KingSystem/Resource/GeneralParamList/resGParamListObjectRope.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectRupee.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectSandworm.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectSeriesArmor.h" @@ -142,6 +143,7 @@ bool GParamList::parse_(u8* data, size_t, sead::Heap* heap) { add(archive.getRootList(), "AnimalUnit", heap, dummy_list); add(archive.getRootList(), "Insect", heap, dummy_list); add(archive.getRootList(), "Fish", heap, dummy_list); + add(archive.getRootList(), "Rope", heap, dummy_list); // TODO: the rest -- cgit v1.2.3