diff options
| author | Léo Lam <leo@leolam.fr> | 2020-09-20 01:07:31 +0200 |
|---|---|---|
| committer | Léo Lam <leo@leolam.fr> | 2020-09-20 01:07:31 +0200 |
| commit | e28d742e275ce8bd2eb8d5fdf97ee0d9b6e8b607 (patch) | |
| tree | 3d5bba2d4db0dfdc91933f112d4e286d258dac0f | |
| parent | 1fe88a8707cd39eb68cae9f506fefb67854da85d (diff) | |
ksys/res: Implement GParamList Grab
| -rw-r--r-- | CMakeLists.txt | 1 | ||||
| -rw-r--r-- | data/uking_functions.csv | 4 | ||||
| -rw-r--r-- | src/KingSystem/Resource/GeneralParamList/resGParamListObjectGrab.h | 46 | ||||
| -rw-r--r-- | src/KingSystem/Resource/resResourceGParamList.cpp | 2 |
4 files changed, 51 insertions, 2 deletions
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 <agl/Utils/aglParameter.h> +#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<sead::SafeString> mSlot0Node; + agl::utl::Parameter<sead::SafeString> mSlot1Node; + agl::utl::Parameter<sead::SafeString> mSlot2Node; + agl::utl::Parameter<sead::SafeString> mSlot3Node; + agl::utl::Parameter<sead::SafeString> mSlot4Node; + agl::utl::Parameter<sead::SafeString> mSlot5Node; + agl::utl::Parameter<sead::SafeString> mSlot0PodNode; + agl::utl::Parameter<sead::SafeString> mSlot1PodNode; + agl::utl::Parameter<sead::SafeString> mSlot2PodNode; + agl::utl::Parameter<sead::SafeString> mSlot3PodNode; + agl::utl::Parameter<sead::SafeString> mSlot4PodNode; + agl::utl::Parameter<sead::SafeString> 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<GParamListObjType::Player>(archive.getRootList(), "Player", heap, dummy_list); add<GParamListObjType::Camera>(archive.getRootList(), "Camera", heap, dummy_list); + add<GParamListObjType::Grab>(archive.getRootList(), "Grab", heap, dummy_list); // TODO: the rest |
