diff --git a/CMakeLists.txt b/CMakeLists.txt index 684c0102..c5522801 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -78,6 +78,7 @@ add_executable(uking src/KingSystem/Resource/GeneralParamList/resGParamListObjectBow.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectBullet.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectCamera.h + src/KingSystem/Resource/GeneralParamList/resGParamListObjectClothReaction.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectCookSpice.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectCureItem.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectEatTarget.h diff --git a/data/uking_functions.csv b/data/uking_functions.csv index 244fe232..0e91368e 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -89112,7 +89112,7 @@ 0x00000071011a234c,BgparamlistObjectWizzrobe::ctor,832,_ZN4ksys3res24GParamListObjectWizzrobeC2Ev 0x00000071011a268c,BgparamlistObjectStalEnemy::ctor,328,_ZN4ksys3res25GParamListObjectStalEnemyC2Ev 0x00000071011a27d4,BgparamlistObjectGuardianMini::ctor,672,_ZN4ksys3res28GParamListObjectGuardianMiniC2Ev -0x00000071011a2a74,BgparamlistObjectClothReaction::ctor,1460, +0x00000071011a2a74,BgparamlistObjectClothReaction::ctor,1460,_ZN4ksys3res29GParamListObjectClothReactionC2Ev 0x00000071011a3028,BgparamlistObjectGlobal::ctor,6116, 0x00000071011a480c,BgparamlistObjectAutoGen::ctor,404, 0x00000071011a49a0,BgparamlistObjectChemicalType::ctor,336, @@ -89211,7 +89211,7 @@ 0x00000071011a7e90,sub_71011A7E90,12,_ZNK4ksys3res24GParamListObjectWizzrobe7getNameEv 0x00000071011a7e9c,sub_71011A7E9C,12,_ZNK4ksys3res25GParamListObjectStalEnemy7getNameEv 0x00000071011a7ea8,sub_71011A7EA8,12,_ZNK4ksys3res28GParamListObjectGuardianMini7getNameEv -0x00000071011a7eb4,sub_71011A7EB4,12, +0x00000071011a7eb4,sub_71011A7EB4,12,_ZNK4ksys3res29GParamListObjectClothReaction7getNameEv 0x00000071011a7ec0,sub_71011A7EC0,12, 0x00000071011a7ecc,sub_71011A7ECC,12, 0x00000071011a7ed8,sub_71011A7ED8,12, diff --git a/src/KingSystem/Resource/GeneralParamList/resGParamListObjectClothReaction.h b/src/KingSystem/Resource/GeneralParamList/resGParamListObjectClothReaction.h new file mode 100644 index 00000000..f9135165 --- /dev/null +++ b/src/KingSystem/Resource/GeneralParamList/resGParamListObjectClothReaction.h @@ -0,0 +1,54 @@ +#pragma once + +#include +#include "KingSystem/Resource/GeneralParamList/resGParamListObject.h" +#include "KingSystem/Utils/Types.h" + +namespace ksys::res { + +class GParamListObjectClothReaction : public GParamListObject { +public: + GParamListObjectClothReaction(); + const char* getName() const override { return "ClothReaction"; } + + agl::utl::Parameter mAtkCollidableName; + agl::utl::Parameter mAtkCollidableBoneName; + agl::utl::Parameter mAtkCollidableSpeed; + agl::utl::Parameter mAtkCollidableActiveTime; + agl::utl::Parameter mAtkCollidableResetPos; + agl::utl::Parameter mGroundCollidableName; + agl::utl::Parameter mGroundCollidableBoneName; + agl::utl::Parameter mGroundCollidableOffset; + agl::utl::Parameter mUseGroundCollidableResetPos; + agl::utl::Parameter mGroundCollidableResetPos; + agl::utl::Parameter mGroundCollidableMoveSpeed; + agl::utl::Parameter mWallCollidableName; + agl::utl::Parameter mWallCollidableBoneName; + agl::utl::Parameter mWallCollidableOffset; + agl::utl::Parameter mPlayerCollidableName; + agl::utl::Parameter mPlayerCollidableBoneName; +}; +KSYS_CHECK_SIZE_NX150(GParamListObjectClothReaction, 0x288); + +inline GParamListObjectClothReaction::GParamListObjectClothReaction() { + auto* const obj = &mObj; + + mAtkCollidableName.init("Collidable_Attack", "AtkCollidableName", "", obj); + mAtkCollidableBoneName.init("Attack", "AtkCollidableBoneName", "", obj); + mAtkCollidableSpeed.init(6.0, "AtkCollidableSpeed", "", obj); + mAtkCollidableActiveTime.init(0.5, "AtkCollidableActiveTime", "", obj); + mAtkCollidableResetPos.init({0.0, 0.0, 2.0}, "AtkCollidableResetPos", "", obj); + mGroundCollidableName.init("Collidable_Ground_1", "GroundCollidableName", "", obj); + mGroundCollidableBoneName.init("Ground_1", "GroundCollidableBoneName", "", obj); + mGroundCollidableOffset.init(0.05, "GroundCollidableOffset", "", obj); + mUseGroundCollidableResetPos.init(false, "UseGroundCollidableResetPos", "", obj); + mGroundCollidableResetPos.init({0.0, -1.0, 0.0}, "GroundCollidableResetPos", "", obj); + mGroundCollidableMoveSpeed.init(300.0, "GroundCollidableMoveSpeed", "", obj); + mWallCollidableName.init("", "WallCollidableName", "", obj); + mWallCollidableBoneName.init("", "WallCollidableBoneName", "", obj); + mWallCollidableOffset.init(0.05, "WallCollidableOffset", "", obj); + mPlayerCollidableName.init("", "PlayerCollidableName", "", obj); + mPlayerCollidableBoneName.init("", "PlayerCollidableBoneName", "", obj); +} + +} // namespace ksys::res diff --git a/src/KingSystem/Resource/resResourceGParamList.cpp b/src/KingSystem/Resource/resResourceGParamList.cpp index fcb87825..e727cd09 100644 --- a/src/KingSystem/Resource/resResourceGParamList.cpp +++ b/src/KingSystem/Resource/resResourceGParamList.cpp @@ -17,6 +17,7 @@ #include "KingSystem/Resource/GeneralParamList/resGParamListObjectBow.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectBullet.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectCamera.h" +#include "KingSystem/Resource/GeneralParamList/resGParamListObjectClothReaction.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectCookSpice.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectCureItem.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectEatTarget.h" @@ -175,6 +176,7 @@ bool GParamList::parse_(u8* data, size_t, sead::Heap* heap) { add(archive.getRootList(), "Wizzrobe", heap, dummy_list); add(archive.getRootList(), "StalEnemy", heap, dummy_list); add(archive.getRootList(), "GuardianMini", heap, dummy_list); + add(archive.getRootList(), "ClothReaction", heap, dummy_list); // TODO: the rest