From 5e9d25da725e305252051cbebffac817d5680887 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Sat, 19 Sep 2020 23:36:33 +0200 Subject: [PATCH] ksys/res: Implement GParamList Rod --- CMakeLists.txt | 1 + data/uking_functions.csv | 4 +- .../GeneralParamList/resGParamListObjectRod.h | 52 +++++++++++++++++++ .../Resource/resResourceGParamList.cpp | 2 + 4 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 src/KingSystem/Resource/GeneralParamList/resGParamListObjectRod.h diff --git a/CMakeLists.txt b/CMakeLists.txt index e4d37ffd..65a07325 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -72,6 +72,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/resGParamListObjectRod.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectSandworm.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectSmallSword.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectSystem.h diff --git a/data/uking_functions.csv b/data/uking_functions.csv index 01e8d9c6..8ef39ae7 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -89070,7 +89070,7 @@ 0x000000710118e924,BgparamlistObjectWeaponThrow::ctor,432,_ZN4ksys3res27GParamListObjectWeaponThrowC2Ev 0x000000710118ead4,BgparamlistObjectSandworm::ctor,1992,_ZN4ksys3res24GParamListObjectSandwormC2Ev 0x000000710118f29c,BgparamlistObjectSmallSword::ctor,1756,_ZN4ksys3res26GParamListObjectSmallSwordC2Ev -0x000000710118f978,BgparamlistObjectRod::ctor,1192, +0x000000710118f978,BgparamlistObjectRod::ctor,1192,_ZN4ksys3res19GParamListObjectRodC2Ev 0x000000710118fe20,BgparamlistObjectLargeSword::ctor,1760, 0x0000007101190500,BgparamlistObjectSpear::ctor,2080, 0x0000007101190d20,BgparamlistObjectShield::ctor,1484, @@ -89158,7 +89158,7 @@ 0x00000071011a7c14,sub_71011A7C14,12,_ZNK4ksys3res27GParamListObjectWeaponThrow7getNameEv 0x00000071011a7c20,sub_71011A7C20,12,_ZNK4ksys3res24GParamListObjectSandworm7getNameEv 0x00000071011a7c2c,sub_71011A7C2C,12,_ZNK4ksys3res26GParamListObjectSmallSword7getNameEv -0x00000071011a7c38,sub_71011A7C38,12, +0x00000071011a7c38,sub_71011A7C38,12,_ZNK4ksys3res19GParamListObjectRod7getNameEv 0x00000071011a7c44,sub_71011A7C44,12, 0x00000071011a7c50,sub_71011A7C50,12, 0x00000071011a7c5c,sub_71011A7C5C,12, diff --git a/src/KingSystem/Resource/GeneralParamList/resGParamListObjectRod.h b/src/KingSystem/Resource/GeneralParamList/resGParamListObjectRod.h new file mode 100644 index 00000000..9f8796eb --- /dev/null +++ b/src/KingSystem/Resource/GeneralParamList/resGParamListObjectRod.h @@ -0,0 +1,52 @@ +#pragma once + +#include +#include "KingSystem/Resource/GeneralParamList/resGParamListObject.h" +#include "KingSystem/Utils/Types.h" + +namespace ksys::res { + +class GParamListObjectRod : public GParamListObject { +public: + GParamListObjectRod(); + const char* getName() const override { return "Rod"; } + + agl::utl::Parameter mMagicName; + agl::utl::Parameter mChargeMagicNum; + agl::utl::Parameter mChargeMagicInterval; + agl::utl::Parameter mMagicPower; + agl::utl::Parameter mMagicSpeed; + agl::utl::Parameter mMagicSpeedByThrow; + agl::utl::Parameter mMagicGravity; + agl::utl::Parameter mMagicRadius; + agl::utl::Parameter mScaleTime; + agl::utl::Parameter mMagicRange; + agl::utl::Parameter mMagicSpeedByEnemy; + agl::utl::Parameter mMagicGravityByEnemy; + agl::utl::Parameter mMagicRadiusByEnemy; + agl::utl::Parameter mScaleTimeByEnemy; + agl::utl::Parameter mMagicRangeByEnemy; +}; +KSYS_CHECK_SIZE_NX150(GParamListObjectRod, 0x220); + +inline GParamListObjectRod::GParamListObjectRod() { + auto* const obj = &mObj; + + mMagicName.init("", "MagicName", "", obj); + mChargeMagicNum.init(4, "ChargeMagicNum", "", obj); + mChargeMagicInterval.init(5, "ChargeMagicInterval", "", obj); + mMagicPower.init(0, "MagicPower", "", obj); + mMagicSpeed.init(0.0, "MagicSpeed", "", obj); + mMagicSpeedByThrow.init(0.0, "MagicSpeedByThrow", "", obj); + mMagicGravity.init(0.5, "MagicGravity", "", obj); + mMagicRadius.init(1.0, "MagicRadius", "", obj); + mScaleTime.init(1, "ScaleTime", "", obj); + mMagicRange.init(1.0, "MagicRange", "", obj); + mMagicSpeedByEnemy.init(0.0, "MagicSpeedByEnemy", "", obj); + mMagicGravityByEnemy.init(0.5, "MagicGravityByEnemy", "", obj); + mMagicRadiusByEnemy.init(1.0, "MagicRadiusByEnemy", "", obj); + mScaleTimeByEnemy.init(1, "ScaleTimeByEnemy", "", obj); + mMagicRangeByEnemy.init(1.0, "MagicRangeByEnemy", "", obj); +} + +} // namespace ksys::res diff --git a/src/KingSystem/Resource/resResourceGParamList.cpp b/src/KingSystem/Resource/resResourceGParamList.cpp index b6d6c195..904b6113 100644 --- a/src/KingSystem/Resource/resResourceGParamList.cpp +++ b/src/KingSystem/Resource/resResourceGParamList.cpp @@ -11,6 +11,7 @@ #include "KingSystem/Resource/GeneralParamList/resGParamListObjectEnemyRace.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectEnemyShown.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectGeneral.h" +#include "KingSystem/Resource/GeneralParamList/resGParamListObjectRod.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectSandworm.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectSmallSword.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectSystem.h" @@ -64,6 +65,7 @@ bool GParamList::parse_(u8* data, size_t, sead::Heap* heap) { add(archive.getRootList(), "WeaponThrow", heap, dummy_list); add(archive.getRootList(), "Sandworm", heap, dummy_list); add(archive.getRootList(), "SmallSword", heap, dummy_list); + add(archive.getRootList(), "Rod", heap, dummy_list); // TODO: the rest