From 8b3aed47e638dd2192bc5d263ed2079ea84f990e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Sun, 20 Sep 2020 13:55:36 +0200 Subject: [PATCH] ksys/res: Implement GParamList GolemIK --- CMakeLists.txt | 1 + data/uking_functions.csv | 4 +- .../resGParamListObjectGolemIK.h | 72 +++++++++++++++++++ .../Resource/resResourceGParamList.cpp | 2 + 4 files changed, 77 insertions(+), 2 deletions(-) create mode 100644 src/KingSystem/Resource/GeneralParamList/resGParamListObjectGolemIK.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 16dd5305..736e1118 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -98,6 +98,7 @@ add_executable(uking src/KingSystem/Resource/GeneralParamList/resGParamListObjectGiantArmorSlot.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectGlobal.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectGolem.h + src/KingSystem/Resource/GeneralParamList/resGParamListObjectGolemIK.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectGrab.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectGuardian.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectGuardianMini.h diff --git a/data/uking_functions.csv b/data/uking_functions.csv index 1b3b9038..fd2cce39 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -89120,7 +89120,7 @@ 0x00000071011a4d94,BgparamlistObjectHorseTargetedInfo::ctor,356,_ZN4ksys3res33GParamListObjectHorseTargetedInfoC2Ev 0x00000071011a4ef8,BgparamlistObjectWolfLink::ctor,4548,_ZN4ksys3res24GParamListObjectWolfLinkC2Ev 0x00000071011a60bc,BgparamlistObjectEvent::ctor,852,_ZN4ksys3res21GParamListObjectEventC2Ev -0x00000071011a6410,BgparamlistObjectGolemIK::ctor,1792, +0x00000071011a6410,BgparamlistObjectGolemIK::ctor,1792,_ZN4ksys3res23GParamListObjectGolemIKC2Ev 0x00000071011a6b10,BgparamlistObjectPictureBook::ctor,344, 0x00000071011a6c68,BgparamlistObjectMotorcycle::ctor,2736, 0x00000071011a7718,sub_71011A7718,52,_ZN4ksys3res10GParamListD2Ev @@ -89220,7 +89220,7 @@ 0x00000071011a7efc,sub_71011A7EFC,12,_ZNK4ksys3res33GParamListObjectHorseTargetedInfo7getNameEv 0x00000071011a7f08,sub_71011A7F08,12,_ZNK4ksys3res24GParamListObjectWolfLink7getNameEv 0x00000071011a7f14,sub_71011A7F14,12,_ZNK4ksys3res21GParamListObjectEvent7getNameEv -0x00000071011a7f20,sub_71011A7F20,12, +0x00000071011a7f20,sub_71011A7F20,12,_ZNK4ksys3res23GParamListObjectGolemIK7getNameEv 0x00000071011a7f2c,sub_71011A7F2C,12, 0x00000071011a7f38,sub_71011A7F38,12, 0x00000071011a7f44,sub_71011A7F44,12, 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 +#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 mFootRayCheckDist; + agl::utl::Parameter mFootDownRatio; + agl::utl::Parameter mFootUpRatio; + agl::utl::Parameter mKneeExtendL; + agl::utl::Parameter mKneeShrinkL; + agl::utl::Parameter mFootExtendL; + agl::utl::Parameter mFootShrinkL; + agl::utl::Parameter mKneeExtendR; + agl::utl::Parameter mKneeShrinkR; + agl::utl::Parameter mFootExtendR; + agl::utl::Parameter mFootShrinkR; + agl::utl::Parameter mArmRayCheckDist; + agl::utl::Parameter mArmDownRatio; + agl::utl::Parameter mArmUpRatio; + agl::utl::Parameter mElbowExtendL; + agl::utl::Parameter mElbowShrinkL; + agl::utl::Parameter mWristExtendL; + agl::utl::Parameter mWristShrinkL; + agl::utl::Parameter mElbowExtendR; + agl::utl::Parameter mElbowShrinkR; + agl::utl::Parameter mWristExtendR; + agl::utl::Parameter mWristShrinkR; + agl::utl::Parameter mWaistRotateRatio; + agl::utl::Parameter mWaistMorphRatio; + agl::utl::Parameter 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(archive.getRootList(), "WolfLink", heap, dummy_list); add(archive.getRootList(), "Event", heap, dummy_list); + add(archive.getRootList(), "GolemIK", heap, dummy_list); // TODO: the rest