diff --git a/CMakeLists.txt b/CMakeLists.txt index 08933d2f..f8483fe3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -67,6 +67,7 @@ add_executable(uking src/KingSystem/Resource/GeneralParamList/resGParamListObjectArmor.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectArmorEffect.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectArmorHead.h + src/KingSystem/Resource/GeneralParamList/resGParamListObjectArmorUpper.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 ef0d9f2b..e32c03cb 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -89084,7 +89084,7 @@ 0x0000007101195944,BgparamlistObjectArmor::ctor,700,_ZN4ksys3res21GParamListObjectArmorC2Ev 0x0000007101195c00,BgparamlistObjectArmorEffect::ctor,540,_ZN4ksys3res27GParamListObjectArmorEffectC2Ev 0x0000007101195e1c,BgparamlistObjectArmorHead::ctor,400,_ZN4ksys3res25GParamListObjectArmorHeadC2Ev -0x0000007101195fac,BgparamlistObjectArmorUpper::ctor,508, +0x0000007101195fac,BgparamlistObjectArmorUpper::ctor,508,_ZN4ksys3res26GParamListObjectArmorUpperC2Ev 0x00000071011961a8,BgparamlistObjectShiekerStone::ctor,672, 0x0000007101196448,BgparamlistObjectLiftable::ctor,1520, 0x0000007101196a38,BgparamlistObjectItem::ctor,664, @@ -89172,7 +89172,7 @@ 0x00000071011a7cbc,sub_71011A7CBC,12,_ZNK4ksys3res21GParamListObjectArmor7getNameEv 0x00000071011a7cc8,sub_71011A7CC8,12,_ZNK4ksys3res27GParamListObjectArmorEffect7getNameEv 0x00000071011a7cd4,sub_71011A7CD4,12,_ZNK4ksys3res25GParamListObjectArmorHead7getNameEv -0x00000071011a7ce0,sub_71011A7CE0,12, +0x00000071011a7ce0,sub_71011A7CE0,12,_ZNK4ksys3res26GParamListObjectArmorUpper7getNameEv 0x00000071011a7cec,sub_71011A7CEC,12, 0x00000071011a7cf8,sub_71011A7CF8,12, 0x00000071011a7d04,sub_71011A7D04,12, diff --git a/src/KingSystem/Resource/GeneralParamList/resGParamListObjectArmorUpper.h b/src/KingSystem/Resource/GeneralParamList/resGParamListObjectArmorUpper.h new file mode 100644 index 00000000..e44a0bf9 --- /dev/null +++ b/src/KingSystem/Resource/GeneralParamList/resGParamListObjectArmorUpper.h @@ -0,0 +1,32 @@ +#pragma once + +#include +#include "KingSystem/Resource/GeneralParamList/resGParamListObject.h" +#include "KingSystem/Utils/Types.h" + +namespace ksys::res { + +class GParamListObjectArmorUpper : public GParamListObject { +public: + GParamListObjectArmorUpper(); + const char* getName() const override { return "ArmorUpper"; } + + agl::utl::Parameter mIsDispOffPorch; + agl::utl::Parameter mShiekerStoneTransOffset; + agl::utl::Parameter mShiekerStoneRotOffset; + agl::utl::Parameter mDisableSelfMantle; + agl::utl::Parameter mUseMantleType; +}; +KSYS_CHECK_SIZE_NX150(GParamListObjectArmorUpper, 0xe8); + +inline GParamListObjectArmorUpper::GParamListObjectArmorUpper() { + auto* const obj = &mObj; + + mIsDispOffPorch.init(false, "IsDispOffPorch", "", obj); + mShiekerStoneTransOffset.init({0.0, 0.0, 0.0}, "ShiekerStoneTransOffset", "", obj); + mShiekerStoneRotOffset.init({0.0, 0.0, 0.0}, "ShiekerStoneRotOffset", "", obj); + mDisableSelfMantle.init(false, "DisableSelfMantle", "", obj); + mUseMantleType.init(0, "UseMantleType", "", obj); +} + +} // namespace ksys::res diff --git a/src/KingSystem/Resource/resResourceGParamList.cpp b/src/KingSystem/Resource/resResourceGParamList.cpp index a1558e66..8b113737 100644 --- a/src/KingSystem/Resource/resResourceGParamList.cpp +++ b/src/KingSystem/Resource/resResourceGParamList.cpp @@ -6,6 +6,7 @@ #include "KingSystem/Resource/GeneralParamList/resGParamListObjectArmor.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectArmorEffect.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectArmorHead.h" +#include "KingSystem/Resource/GeneralParamList/resGParamListObjectArmorUpper.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectAttack.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectAttackInterval.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectBindBone.h" @@ -93,6 +94,7 @@ bool GParamList::parse_(u8* data, size_t, sead::Heap* heap) { add(archive.getRootList(), "Armor", heap, dummy_list); add(archive.getRootList(), "ArmorEffect", heap, dummy_list); add(archive.getRootList(), "ArmorHead", heap, dummy_list); + add(archive.getRootList(), "ArmorUpper", heap, dummy_list); // TODO: the rest