From f22c87d03ff5e719817b39797b96a8a955086c3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Sat, 19 Sep 2020 22:40:21 +0200 Subject: [PATCH] ksys/res: Implement GParamList Attack --- CMakeLists.txt | 1 + data/uking_functions.csv | 4 +- .../resGParamListObjectAttack.h | 42 +++++++++++++++++++ .../Resource/resResourceGParamList.cpp | 2 + 4 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 src/KingSystem/Resource/GeneralParamList/resGParamListObjectAttack.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 9192e2fb..0db30a85 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -64,6 +64,7 @@ add_executable(uking src/KingSystem/MessageSystem/mesTransceiver.h src/KingSystem/Resource/GeneralParamList/resGParamListObject.h + src/KingSystem/Resource/GeneralParamList/resGParamListObjectAttack.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectAttackInterval.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectBindBone.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectEnemy.h diff --git a/data/uking_functions.csv b/data/uking_functions.csv index b6ee988e..5dbd9437 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -89065,7 +89065,7 @@ 0x000000710118d378,BgparamlistObjectAttackInterval::ctor,564,_ZN4ksys3res30GParamListObjectAttackIntervalC2Ev 0x000000710118d5ac,BgparamlistObjectEnemyShown::ctor,404,_ZN4ksys3res26GParamListObjectEnemyShownC2Ev 0x000000710118d740,BgparamlistObjectBindBone::ctor,392,_ZN4ksys3res24GParamListObjectBindBoneC2Ev -0x000000710118d8c8,BgparamlistObjectAttack::ctor,900, +0x000000710118d8c8,BgparamlistObjectAttack::ctor,900,_ZN4ksys3res22GParamListObjectAttackC2Ev 0x000000710118dc4c,BgparamlistObjectWeaponCommon::ctor,3288, 0x000000710118e924,BgparamlistObjectWeaponThrow::ctor,432, 0x000000710118ead4,BgparamlistObjectSandworm::ctor,1992, @@ -89153,7 +89153,7 @@ 0x00000071011a7bd8,sub_71011A7BD8,12,_ZNK4ksys3res30GParamListObjectAttackInterval7getNameEv 0x00000071011a7be4,sub_71011A7BE4,12,_ZNK4ksys3res26GParamListObjectEnemyShown7getNameEv 0x00000071011a7bf0,sub_71011A7BF0,12,_ZNK4ksys3res24GParamListObjectBindBone7getNameEv -0x00000071011a7bfc,sub_71011A7BFC,12, +0x00000071011a7bfc,sub_71011A7BFC,12,_ZNK4ksys3res22GParamListObjectAttack7getNameEv 0x00000071011a7c08,sub_71011A7C08,12, 0x00000071011a7c14,sub_71011A7C14,12, 0x00000071011a7c20,sub_71011A7C20,12, diff --git a/src/KingSystem/Resource/GeneralParamList/resGParamListObjectAttack.h b/src/KingSystem/Resource/GeneralParamList/resGParamListObjectAttack.h new file mode 100644 index 00000000..3a0d58e9 --- /dev/null +++ b/src/KingSystem/Resource/GeneralParamList/resGParamListObjectAttack.h @@ -0,0 +1,42 @@ +#pragma once + +#include +#include "KingSystem/Resource/GeneralParamList/resGParamListObject.h" +#include "KingSystem/Utils/Types.h" + +namespace ksys::res { + +class GParamListObjectAttack : public GParamListObject { +public: + GParamListObjectAttack(); + const char* getName() const override { return "Attack"; } + + agl::utl::Parameter mPower; + agl::utl::Parameter mImpulse; + agl::utl::Parameter mImpulseLarge; + agl::utl::Parameter mRange; + agl::utl::Parameter mGuardBreakPower; + agl::utl::Parameter mSpHitActor; + agl::utl::Parameter mSpHitTag; + agl::utl::Parameter mSpHitRatio; + agl::utl::Parameter mSpWeakHitActor; + agl::utl::Parameter mPowerForPlayer; +}; +KSYS_CHECK_SIZE_NX150(GParamListObjectAttack, 0x190); + +inline GParamListObjectAttack::GParamListObjectAttack() { + auto* const obj = &mObj; + + mPower.init(0, "Power", "", obj); + mImpulse.init(0, "Impulse", "", obj); + mImpulseLarge.init(0, "ImpulseLarge", "", obj); + mRange.init(0.0, "Range", "", obj); + mGuardBreakPower.init(0, "GuardBreakPower", "", obj); + mSpHitActor.init("", "SpHitActor", "", obj); + mSpHitTag.init("", "SpHitTag", "", obj); + mSpHitRatio.init(2.0, "SpHitRatio", "", obj); + mSpWeakHitActor.init("", "SpWeakHitActor", "", obj); + mPowerForPlayer.init(-1, "PowerForPlayer", "", obj); +} + +} // namespace ksys::res diff --git a/src/KingSystem/Resource/resResourceGParamList.cpp b/src/KingSystem/Resource/resResourceGParamList.cpp index 4ef2c335..4ebd3d44 100644 --- a/src/KingSystem/Resource/resResourceGParamList.cpp +++ b/src/KingSystem/Resource/resResourceGParamList.cpp @@ -3,6 +3,7 @@ #include #include "KingSystem/ActorSystem/actActorParamMgr.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObject.h" +#include "KingSystem/Resource/GeneralParamList/resGParamListObjectAttack.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectAttackInterval.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectBindBone.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectEnemy.h" @@ -54,6 +55,7 @@ bool GParamList::parse_(u8* data, size_t, sead::Heap* heap) { dummy_list); add(archive.getRootList(), "EnemyShown", heap, dummy_list); add(archive.getRootList(), "BindBone", heap, dummy_list); + add(archive.getRootList(), "Attack", heap, dummy_list); // TODO: the rest