diff --git a/CMakeLists.txt b/CMakeLists.txt index 4c23dd9d..660e8d77 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -127,6 +127,7 @@ add_executable(uking src/KingSystem/Resource/GeneralParamList/resGParamListObjectWeaponCommon.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectWeaponOption.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectWeaponThrow.h + src/KingSystem/Resource/GeneralParamList/resGParamListObjectWizzrobe.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectZora.h src/KingSystem/Resource/GeneralParamList/resGParamListTraits.h src/KingSystem/Resource/resCurrentResNameMgr.cpp diff --git a/data/uking_functions.csv b/data/uking_functions.csv index b092b0f1..5a9cbe5a 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -89109,7 +89109,7 @@ 0x00000071011a1954,BgparamlistObjectGuardian::ctor,812,_ZN4ksys3res24GParamListObjectGuardianC2Ev 0x00000071011a1c80,BgparamlistObjectSwarm::ctor,388,_ZN4ksys3res21GParamListObjectSwarmC2Ev 0x00000071011a1e04,BgparamlistObjectGelEnemy::ctor,1352,_ZN4ksys3res24GParamListObjectGelEnemyC2Ev -0x00000071011a234c,BgparamlistObjectWizzrobe::ctor,832, +0x00000071011a234c,BgparamlistObjectWizzrobe::ctor,832,_ZN4ksys3res24GParamListObjectWizzrobeC2Ev 0x00000071011a268c,BgparamlistObjectStalEnemy::ctor,328, 0x00000071011a27d4,BgparamlistObjectGuardianMini::ctor,672, 0x00000071011a2a74,BgparamlistObjectClothReaction::ctor,1460, @@ -89208,7 +89208,7 @@ 0x00000071011a7e6c,sub_71011A7E6C,12,_ZNK4ksys3res21GParamListObjectSwarm7getNameEv 0x00000071011a7e78,sub_71011A7E78,12,_ZNK4ksys3res24GParamListObjectGelEnemy7getNameEv 0x00000071011a7e84,sub_71011A7E84,12,_ZNK4ksys3res20GParamListObjectNest7getNameEv -0x00000071011a7e90,sub_71011A7E90,12, +0x00000071011a7e90,sub_71011A7E90,12,_ZNK4ksys3res24GParamListObjectWizzrobe7getNameEv 0x00000071011a7e9c,sub_71011A7E9C,12, 0x00000071011a7ea8,sub_71011A7EA8,12, 0x00000071011a7eb4,sub_71011A7EB4,12, diff --git a/src/KingSystem/Resource/GeneralParamList/resGParamListObjectWizzrobe.h b/src/KingSystem/Resource/GeneralParamList/resGParamListObjectWizzrobe.h new file mode 100644 index 00000000..11029433 --- /dev/null +++ b/src/KingSystem/Resource/GeneralParamList/resGParamListObjectWizzrobe.h @@ -0,0 +1,40 @@ +#pragma once + +#include +#include "KingSystem/Resource/GeneralParamList/resGParamListObject.h" +#include "KingSystem/Utils/Types.h" + +namespace ksys::res { + +class GParamListObjectWizzrobe : public GParamListObject { +public: + GParamListObjectWizzrobe(); + const char* getName() const override { return "Wizzrobe"; } + + agl::utl::Parameter mMagicWeatherType; + agl::utl::Parameter mMagicFallActorName; + agl::utl::Parameter mMagicFallIgniteRotSpd; + agl::utl::Parameter mMagicFallOffsetY; + agl::utl::Parameter mMagicFallCenterOffsetXZ; + agl::utl::Parameter mMagicFallRandRadius; + agl::utl::Parameter mMagicFallIntervalMax; + agl::utl::Parameter mMagicFallIntervalMin; + agl::utl::Parameter mSummonActorName; +}; +KSYS_CHECK_SIZE_NX150(GParamListObjectWizzrobe, 0x168); + +inline GParamListObjectWizzrobe::GParamListObjectWizzrobe() { + auto* const obj = &mObj; + + mMagicWeatherType.init(0, "MagicWeatherType", "", obj); + mMagicFallActorName.init("", "MagicFallActorName", "", obj); + mMagicFallIgniteRotSpd.init(0.0, "MagicFallIgniteRotSpd", "", obj); + mMagicFallOffsetY.init(6.0, "MagicFallOffsetY", "", obj); + mMagicFallCenterOffsetXZ.init(5.0, "MagicFallCenterOffsetXZ", "", obj); + mMagicFallRandRadius.init(12.0, "MagicFallRandRadius", "", obj); + mMagicFallIntervalMax.init(20.0, "MagicFallIntervalMax", "", obj); + mMagicFallIntervalMin.init(15.0, "MagicFallIntervalMin", "", obj); + mSummonActorName.init("", "SummonActorName", "", obj); +} + +} // namespace ksys::res diff --git a/src/KingSystem/Resource/resResourceGParamList.cpp b/src/KingSystem/Resource/resResourceGParamList.cpp index 25398c13..5c68d0f5 100644 --- a/src/KingSystem/Resource/resResourceGParamList.cpp +++ b/src/KingSystem/Resource/resResourceGParamList.cpp @@ -65,6 +65,7 @@ #include "KingSystem/Resource/GeneralParamList/resGParamListObjectWeaponCommon.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectWeaponOption.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectWeaponThrow.h" +#include "KingSystem/Resource/GeneralParamList/resGParamListObjectWizzrobe.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectZora.h" #include "KingSystem/Resource/GeneralParamList/resGParamListTraits.h" @@ -169,6 +170,7 @@ bool GParamList::parse_(u8* data, size_t, sead::Heap* heap) { add(archive.getRootList(), "Swarm", heap, dummy_list); add(archive.getRootList(), "GelEnemy", heap, dummy_list); add(archive.getRootList(), "Nest", heap, dummy_list); + add(archive.getRootList(), "Wizzrobe", heap, dummy_list); // TODO: the rest