From 2770d637c72f5afb48d03a63035adad626c48347 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Sun, 20 Sep 2020 12:09:44 +0200 Subject: [PATCH] ksys/res: Implement GParamList GiantArmorSlot --- CMakeLists.txt | 1 + data/uking_functions.csv | 4 +- .../resGParamListObjectGiantArmorSlot.h | 46 +++++++++++++++++++ .../Resource/resResourceGParamList.cpp | 3 ++ 4 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 src/KingSystem/Resource/GeneralParamList/resGParamListObjectGiantArmorSlot.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 705d80ef..afac6796 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -88,6 +88,7 @@ add_executable(uking src/KingSystem/Resource/GeneralParamList/resGParamListObjectExtendedEntity.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectFish.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectGeneral.h + src/KingSystem/Resource/GeneralParamList/resGParamListObjectGiantArmorSlot.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectGrab.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectGuardianMiniWeapon.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectHorse.h diff --git a/data/uking_functions.csv b/data/uking_functions.csv index b4e60f43..db41fdd0 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -89105,7 +89105,7 @@ 0x00000071011a0c28,BgparamlistObjectHorseUnit::ctor,424,_ZN4ksys3res25GParamListObjectHorseUnitC2Ev 0x00000071011a0dd0,BgparamlistObjectHorseRider::ctor,1432,_ZN4ksys3res26GParamListObjectHorseRiderC2Ev 0x00000071011a1368,BgparamlistObjectHorseCreator::ctor,328,_ZN4ksys3res28GParamListObjectHorseCreatorC2Ev -0x00000071011a14b0,BgparamlistObjectGiantArmorSlot::ctor,1188, +0x00000071011a14b0,BgparamlistObjectGiantArmorSlot::ctor,1188,_ZN4ksys3res30GParamListObjectGiantArmorSlotC2Ev 0x00000071011a1954,BgparamlistObjectGuardian::ctor,812, 0x00000071011a1c80,BgparamlistObjectSwarm::ctor,388, 0x00000071011a1e04,BgparamlistObjectGelEnemy::ctor,1352, @@ -89201,7 +89201,7 @@ 0x00000071011a7e18,sub_71011A7E18,12,_ZNK4ksys3res27GParamListObjectHorseObject7getNameEv 0x00000071011a7e24,sub_71011A7E24,12,_ZNK4ksys3res26GParamListObjectHorseRider7getNameEv 0x00000071011a7e30,sub_71011A7E30,12,_ZNK4ksys3res28GParamListObjectHorseCreator7getNameEv -0x00000071011a7e3c,sub_71011A7E3C,12, +0x00000071011a7e3c,sub_71011A7E3C,12,_ZNK4ksys3res30GParamListObjectGiantArmorSlot7getNameEv 0x00000071011a7e48,sub_71011A7E48,12, 0x00000071011a7e54,sub_71011A7E54,12, 0x00000071011a7e60,sub_71011A7E60,12, diff --git a/src/KingSystem/Resource/GeneralParamList/resGParamListObjectGiantArmorSlot.h b/src/KingSystem/Resource/GeneralParamList/resGParamListObjectGiantArmorSlot.h new file mode 100644 index 00000000..f6365ec4 --- /dev/null +++ b/src/KingSystem/Resource/GeneralParamList/resGParamListObjectGiantArmorSlot.h @@ -0,0 +1,46 @@ +#pragma once + +#include +#include "KingSystem/Resource/GeneralParamList/resGParamListObject.h" +#include "KingSystem/Utils/Types.h" + +namespace ksys::res { + +class GParamListObjectGiantArmorSlot : public GParamListObject { +public: + GParamListObjectGiantArmorSlot(); + const char* getName() const override { return "GiantArmorSlot"; } + + agl::utl::Parameter mSlot0Node; + agl::utl::Parameter mSlot0RigidBody; + agl::utl::Parameter mSlot0DefaultActorName; + agl::utl::Parameter mSlot1Node; + agl::utl::Parameter mSlot1RigidBody; + agl::utl::Parameter mSlot1DefaultActorName; + agl::utl::Parameter mSlot2Node; + agl::utl::Parameter mSlot2RigidBody; + agl::utl::Parameter mSlot2DefaultActorName; + agl::utl::Parameter mSlot3Node; + agl::utl::Parameter mSlot3RigidBody; + agl::utl::Parameter mSlot3DefaultActorName; +}; +KSYS_CHECK_SIZE_NX150(GParamListObjectGiantArmorSlot, 0x218); + +inline GParamListObjectGiantArmorSlot::GParamListObjectGiantArmorSlot() { + auto* const obj = &mObj; + + mSlot0Node.init("", "Slot0Node", "", obj); + mSlot0RigidBody.init("", "Slot0RigidBody", "", obj); + mSlot0DefaultActorName.init("", "Slot0DefaultActorName", "", obj); + mSlot1Node.init("", "Slot1Node", "", obj); + mSlot1RigidBody.init("", "Slot1RigidBody", "", obj); + mSlot1DefaultActorName.init("", "Slot1DefaultActorName", "", obj); + mSlot2Node.init("", "Slot2Node", "", obj); + mSlot2RigidBody.init("", "Slot2RigidBody", "", obj); + mSlot2DefaultActorName.init("", "Slot2DefaultActorName", "", obj); + mSlot3Node.init("", "Slot3Node", "", obj); + mSlot3RigidBody.init("", "Slot3RigidBody", "", obj); + mSlot3DefaultActorName.init("", "Slot3DefaultActorName", "", obj); +} + +} // namespace ksys::res diff --git a/src/KingSystem/Resource/resResourceGParamList.cpp b/src/KingSystem/Resource/resResourceGParamList.cpp index a9960412..c33f9cf9 100644 --- a/src/KingSystem/Resource/resResourceGParamList.cpp +++ b/src/KingSystem/Resource/resResourceGParamList.cpp @@ -27,6 +27,7 @@ #include "KingSystem/Resource/GeneralParamList/resGParamListObjectExtendedEntity.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectFish.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectGeneral.h" +#include "KingSystem/Resource/GeneralParamList/resGParamListObjectGiantArmorSlot.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectGrab.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectGuardianMiniWeapon.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectHorse.h" @@ -154,6 +155,8 @@ bool GParamList::parse_(u8* data, size_t, sead::Heap* heap) { add(archive.getRootList(), "HorseObject", heap, dummy_list); add(archive.getRootList(), "HorseRider", heap, dummy_list); add(archive.getRootList(), "HorseCreator", heap, dummy_list); + add(archive.getRootList(), "GiantArmorSlot", heap, + dummy_list); // TODO: the rest