diff --git a/CMakeLists.txt b/CMakeLists.txt index 5974f788..7299c6ff 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -74,6 +74,7 @@ add_executable(uking src/KingSystem/Resource/GeneralParamList/resGParamListObjectEnemyRace.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectEnemyShown.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectGeneral.h + src/KingSystem/Resource/GeneralParamList/resGParamListObjectGrab.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectGuardianMiniWeapon.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectLargeSword.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectMasterSword.h diff --git a/data/uking_functions.csv b/data/uking_functions.csv index 00ca5ca4..58a38cae 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -89080,7 +89080,7 @@ 0x00000071011922e8,BgparamlistObjectGuardianMiniWeapon::ctor,608,_ZN4ksys3res34GParamListObjectGuardianMiniWeaponC2Ev 0x0000007101192548,BgparamlistObjectPlayer::ctor,11236,_ZN4ksys3res22GParamListObjectPlayerC2Ev 0x000000710119512c,BgparamlistObjectCamera::ctor,884,_ZN4ksys3res22GParamListObjectCameraC2Ev -0x00000071011954a0,BgparamlistObjectGrab::ctor,1188, +0x00000071011954a0,BgparamlistObjectGrab::ctor,1188,_ZN4ksys3res20GParamListObjectGrabC2Ev 0x0000007101195944,BgparamlistObjectArmor::ctor,700, 0x0000007101195c00,BgparamlistObjectArmorEffect::ctor,540, 0x0000007101195e1c,BgparamlistObjectArmorHead::ctor,400, @@ -89168,7 +89168,7 @@ 0x00000071011a7c8c,sub_71011A7C8C,12,_ZNK4ksys3res34GParamListObjectGuardianMiniWeapon7getNameEv 0x00000071011a7c98,sub_71011A7C98,12,_ZNK4ksys3res22GParamListObjectPlayer7getNameEv 0x00000071011a7ca4,sub_71011A7CA4,12,_ZNK4ksys3res22GParamListObjectCamera7getNameEv -0x00000071011a7cb0,sub_71011A7CB0,12, +0x00000071011a7cb0,sub_71011A7CB0,12,_ZNK4ksys3res20GParamListObjectGrab7getNameEv 0x00000071011a7cbc,sub_71011A7CBC,12, 0x00000071011a7cc8,sub_71011A7CC8,12, 0x00000071011a7cd4,sub_71011A7CD4,12, diff --git a/src/KingSystem/Resource/GeneralParamList/resGParamListObjectGrab.h b/src/KingSystem/Resource/GeneralParamList/resGParamListObjectGrab.h new file mode 100644 index 00000000..1084ef97 --- /dev/null +++ b/src/KingSystem/Resource/GeneralParamList/resGParamListObjectGrab.h @@ -0,0 +1,46 @@ +#pragma once + +#include +#include "KingSystem/Resource/GeneralParamList/resGParamListObject.h" +#include "KingSystem/Utils/Types.h" + +namespace ksys::res { + +class GParamListObjectGrab : public GParamListObject { +public: + GParamListObjectGrab(); + const char* getName() const override { return "Grab"; } + + agl::utl::Parameter mSlot0Node; + agl::utl::Parameter mSlot1Node; + agl::utl::Parameter mSlot2Node; + agl::utl::Parameter mSlot3Node; + agl::utl::Parameter mSlot4Node; + agl::utl::Parameter mSlot5Node; + agl::utl::Parameter mSlot0PodNode; + agl::utl::Parameter mSlot1PodNode; + agl::utl::Parameter mSlot2PodNode; + agl::utl::Parameter mSlot3PodNode; + agl::utl::Parameter mSlot4PodNode; + agl::utl::Parameter mSlot5PodNode; +}; +KSYS_CHECK_SIZE_NX150(GParamListObjectGrab, 0x218); + +inline GParamListObjectGrab::GParamListObjectGrab() { + auto* const obj = &mObj; + + mSlot0Node.init("", "Slot0Node", "", obj); + mSlot1Node.init("", "Slot1Node", "", obj); + mSlot2Node.init("", "Slot2Node", "", obj); + mSlot3Node.init("", "Slot3Node", "", obj); + mSlot4Node.init("", "Slot4Node", "", obj); + mSlot5Node.init("", "Slot5Node", "", obj); + mSlot0PodNode.init("", "Slot0PodNode", "", obj); + mSlot1PodNode.init("", "Slot1PodNode", "", obj); + mSlot2PodNode.init("", "Slot2PodNode", "", obj); + mSlot3PodNode.init("", "Slot3PodNode", "", obj); + mSlot4PodNode.init("", "Slot4PodNode", "", obj); + mSlot5PodNode.init("", "Slot5PodNode", "", obj); +} + +} // namespace ksys::res diff --git a/src/KingSystem/Resource/resResourceGParamList.cpp b/src/KingSystem/Resource/resResourceGParamList.cpp index d491a2c4..ba21f2d8 100644 --- a/src/KingSystem/Resource/resResourceGParamList.cpp +++ b/src/KingSystem/Resource/resResourceGParamList.cpp @@ -13,6 +13,7 @@ #include "KingSystem/Resource/GeneralParamList/resGParamListObjectEnemyRace.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectEnemyShown.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectGeneral.h" +#include "KingSystem/Resource/GeneralParamList/resGParamListObjectGrab.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectGuardianMiniWeapon.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectLargeSword.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectMasterSword.h" @@ -85,6 +86,7 @@ bool GParamList::parse_(u8* data, size_t, sead::Heap* heap) { dummy_list); add(archive.getRootList(), "Player", heap, dummy_list); add(archive.getRootList(), "Camera", heap, dummy_list); + add(archive.getRootList(), "Grab", heap, dummy_list); // TODO: the rest