From 0d02234773c57d2397751a0c5fe702c0b81a976c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Sun, 20 Sep 2020 01:28:20 +0200 Subject: [PATCH] ksys/res: Implement GParamList Arrow --- CMakeLists.txt | 1 + data/uking_functions.csv | 4 +-- .../resGParamListObjectArrow.h | 34 +++++++++++++++++++ .../Resource/resResourceGParamList.cpp | 2 ++ 4 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 src/KingSystem/Resource/GeneralParamList/resGParamListObjectArrow.h diff --git a/CMakeLists.txt b/CMakeLists.txt index a20bc5a3..15034755 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -68,6 +68,7 @@ add_executable(uking src/KingSystem/Resource/GeneralParamList/resGParamListObjectArmorEffect.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectArmorHead.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectArmorUpper.h + src/KingSystem/Resource/GeneralParamList/resGParamListObjectArrow.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectAttack.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectAttackInterval.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectBindBone.h diff --git a/data/uking_functions.csv b/data/uking_functions.csv index 16ef3af3..d6b139c6 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -89088,7 +89088,7 @@ 0x00000071011961a8,BgparamlistObjectShiekerStone::ctor,672,_ZN4ksys3res28GParamListObjectShiekerStoneC2Ev 0x0000007101196448,BgparamlistObjectLiftable::ctor,1520,_ZN4ksys3res24GParamListObjectLiftableC2Ev 0x0000007101196a38,BgparamlistObjectItem::ctor,664,_ZN4ksys3res20GParamListObjectItemC2Ev -0x0000007101196cd0,BgparamlistObjectArrow::ctor,540, +0x0000007101196cd0,BgparamlistObjectArrow::ctor,540,_ZN4ksys3res21GParamListObjectArrowC2Ev 0x0000007101196eec,BgparamlistObjectCureItem::ctor,456, 0x00000071011970b4,BgparamlistObjectCookSpice::ctor,476, 0x0000007101197290,BgparamlistObjectLumberjackTree::ctor,664, @@ -89178,7 +89178,7 @@ 0x00000071011a7d04,sub_71011A7D04,12,_ZNK4ksys3res24GParamListObjectLiftable7getNameEv 0x00000071011a7d10,sub_71011A7D10,12,_ZNK4ksys3res20GParamListObjectItem7getNameEv 0x00000071011a7d1c,sub_71011A7D1C,12,_ZNK4ksys3res21GParamListObjectRupee7getNameEv -0x00000071011a7d28,sub_71011A7D28,12, +0x00000071011a7d28,sub_71011A7D28,12,_ZNK4ksys3res21GParamListObjectArrow7getNameEv 0x00000071011a7d34,sub_71011A7D34,12, 0x00000071011a7d40,sub_71011A7D40,12, 0x00000071011a7d4c,sub_71011A7D4C,12, diff --git a/src/KingSystem/Resource/GeneralParamList/resGParamListObjectArrow.h b/src/KingSystem/Resource/GeneralParamList/resGParamListObjectArrow.h new file mode 100644 index 00000000..ad925f22 --- /dev/null +++ b/src/KingSystem/Resource/GeneralParamList/resGParamListObjectArrow.h @@ -0,0 +1,34 @@ +#pragma once + +#include +#include "KingSystem/Resource/GeneralParamList/resGParamListObject.h" +#include "KingSystem/Utils/Types.h" + +namespace ksys::res { + +class GParamListObjectArrow : public GParamListObject { +public: + GParamListObjectArrow(); + const char* getName() const override { return "Arrow"; } + + agl::utl::Parameter mArrowNum; + agl::utl::Parameter mDeleteTime; + agl::utl::Parameter mDeleteTimeWithChemical; + agl::utl::Parameter mEnemyShootNumForDelete; + agl::utl::Parameter mArrowDeletePer; + agl::utl::Parameter mExtraDamage; +}; +KSYS_CHECK_SIZE_NX150(GParamListObjectArrow, 0xf8); + +inline GParamListObjectArrow::GParamListObjectArrow() { + auto* const obj = &mObj; + + mArrowNum.init(0, "ArrowNum", "", obj); + mDeleteTime.init(0, "DeleteTime", "", obj); + mDeleteTimeWithChemical.init(0, "DeleteTimeWithChemical", "", obj); + mEnemyShootNumForDelete.init(0, "EnemyShootNumForDelete", "", obj); + mArrowDeletePer.init(0, "ArrowDeletePer", "", obj); + mExtraDamage.init(0, "ExtraDamage", "", obj); +} + +} // namespace ksys::res diff --git a/src/KingSystem/Resource/resResourceGParamList.cpp b/src/KingSystem/Resource/resResourceGParamList.cpp index 44303fa9..1b5f3baa 100644 --- a/src/KingSystem/Resource/resResourceGParamList.cpp +++ b/src/KingSystem/Resource/resResourceGParamList.cpp @@ -7,6 +7,7 @@ #include "KingSystem/Resource/GeneralParamList/resGParamListObjectArmorEffect.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectArmorHead.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectArmorUpper.h" +#include "KingSystem/Resource/GeneralParamList/resGParamListObjectArrow.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectAttack.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectAttackInterval.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectBindBone.h" @@ -105,6 +106,7 @@ bool GParamList::parse_(u8* data, size_t, sead::Heap* heap) { add(archive.getRootList(), "Liftable", heap, dummy_list); add(archive.getRootList(), "Item", heap, dummy_list); add(archive.getRootList(), "Rupee", heap, dummy_list); + add(archive.getRootList(), "Arrow", heap, dummy_list); // TODO: the rest