From c6d573f6d7048b00305e0c68a708b0d1346bec11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Sun, 20 Sep 2020 12:00:09 +0200 Subject: [PATCH] ksys/res: Implement GParamList HorseUnit --- CMakeLists.txt | 1 + data/uking_functions.csv | 4 +-- .../resGParamListObjectHorseUnit.h | 30 +++++++++++++++++++ .../Resource/resResourceGParamList.cpp | 2 ++ 4 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 src/KingSystem/Resource/GeneralParamList/resGParamListObjectHorseUnit.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 0d3de822..e35a2b20 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -91,6 +91,7 @@ add_executable(uking src/KingSystem/Resource/GeneralParamList/resGParamListObjectGrab.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectGuardianMiniWeapon.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectHorse.h + src/KingSystem/Resource/GeneralParamList/resGParamListObjectHorseUnit.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectInsect.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectItem.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectLargeSword.h diff --git a/data/uking_functions.csv b/data/uking_functions.csv index cb425b54..43cb80c3 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -89102,7 +89102,7 @@ 0x00000071011a02d4,BgparamlistObjectFish::ctor,500,_ZN4ksys3res20GParamListObjectFishC2Ev 0x00000071011a04c8,BgparamlistObjectRope::ctor,820,_ZN4ksys3res20GParamListObjectRopeC2Ev 0x00000071011a07fc,BgparamlistObjectHorse::ctor,1068,_ZN4ksys3res21GParamListObjectHorseC2Ev -0x00000071011a0c28,BgparamlistObjectHorseUnit::ctor,424, +0x00000071011a0c28,BgparamlistObjectHorseUnit::ctor,424,_ZN4ksys3res25GParamListObjectHorseUnitC2Ev 0x00000071011a0dd0,BgparamlistObjectHorseRider::ctor,1432, 0x00000071011a1368,BgparamlistObjectHorseCreator::ctor,328, 0x00000071011a14b0,BgparamlistObjectGiantArmorSlot::ctor,1188, @@ -89197,7 +89197,7 @@ 0x00000071011a7de8,sub_71011A7DE8,12,_ZNK4ksys3res20GParamListObjectFish7getNameEv 0x00000071011a7df4,sub_71011A7DF4,12,_ZNK4ksys3res20GParamListObjectRope7getNameEv 0x00000071011a7e00,sub_71011A7E00,12,_ZNK4ksys3res21GParamListObjectHorse7getNameEv -0x00000071011a7e0c,sub_71011A7E0C,12, +0x00000071011a7e0c,sub_71011A7E0C,12,_ZNK4ksys3res25GParamListObjectHorseUnit7getNameEv 0x00000071011a7e18,sub_71011A7E18,12, 0x00000071011a7e24,sub_71011A7E24,12, 0x00000071011a7e30,sub_71011A7E30,12, diff --git a/src/KingSystem/Resource/GeneralParamList/resGParamListObjectHorseUnit.h b/src/KingSystem/Resource/GeneralParamList/resGParamListObjectHorseUnit.h new file mode 100644 index 00000000..7318f59b --- /dev/null +++ b/src/KingSystem/Resource/GeneralParamList/resGParamListObjectHorseUnit.h @@ -0,0 +1,30 @@ +#pragma once + +#include +#include "KingSystem/Resource/GeneralParamList/resGParamListObject.h" +#include "KingSystem/Utils/Types.h" + +namespace ksys::res { + +class GParamListObjectHorseUnit : public GParamListObject { +public: + GParamListObjectHorseUnit(); + const char* getName() const override { return "HorseUnit"; } + + agl::utl::Parameter mRiddenAnimalType; + agl::utl::Parameter mCalmDownNum; + agl::utl::Parameter mRideonAboveASHeight; + agl::utl::Parameter mRideonAboveASRadius; +}; +KSYS_CHECK_SIZE_NX150(GParamListObjectHorseUnit, 0xb8); + +inline GParamListObjectHorseUnit::GParamListObjectHorseUnit() { + auto* const obj = &mObj; + + mRiddenAnimalType.init(0, "RiddenAnimalType", "", obj); + mCalmDownNum.init(10, "CalmDownNum", "", obj); + mRideonAboveASHeight.init(1.0, "RideonAboveASHeight", "", obj); + mRideonAboveASRadius.init(1.0, "RideonAboveASRadius", "", obj); +} + +} // namespace ksys::res diff --git a/src/KingSystem/Resource/resResourceGParamList.cpp b/src/KingSystem/Resource/resResourceGParamList.cpp index a7f7e2f8..d00a4142 100644 --- a/src/KingSystem/Resource/resResourceGParamList.cpp +++ b/src/KingSystem/Resource/resResourceGParamList.cpp @@ -30,6 +30,7 @@ #include "KingSystem/Resource/GeneralParamList/resGParamListObjectGrab.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectGuardianMiniWeapon.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectHorse.h" +#include "KingSystem/Resource/GeneralParamList/resGParamListObjectHorseUnit.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectInsect.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectItem.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectLargeSword.h" @@ -146,6 +147,7 @@ bool GParamList::parse_(u8* data, size_t, sead::Heap* heap) { add(archive.getRootList(), "Fish", heap, dummy_list); add(archive.getRootList(), "Rope", heap, dummy_list); add(archive.getRootList(), "Horse", heap, dummy_list); + add(archive.getRootList(), "HorseUnit", heap, dummy_list); // TODO: the rest