diff options
| author | Léo Lam <leo@leolam.fr> | 2020-09-20 12:18:12 +0200 |
|---|---|---|
| committer | Léo Lam <leo@leolam.fr> | 2020-09-20 12:18:31 +0200 |
| commit | 0e13b659324520dc1afb4d3af7d7322458d9e56e (patch) | |
| tree | 3d584a28567172b739d3dc2499df2aa3322b336d | |
| parent | 2868170492fa23f839b10f45a10924e25f4debdf (diff) | |
ksys/res: Implement GParamList GelEnemy
| -rw-r--r-- | CMakeLists.txt | 1 | ||||
| -rw-r--r-- | data/uking_functions.csv | 4 | ||||
| -rw-r--r-- | src/KingSystem/Resource/GeneralParamList/resGParamListObjectGelEnemy.h | 52 | ||||
| -rw-r--r-- | src/KingSystem/Resource/resResourceGParamList.cpp | 2 |
4 files changed, 57 insertions, 2 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 41e90609..de5d9621 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -87,6 +87,7 @@ add_executable(uking src/KingSystem/Resource/GeneralParamList/resGParamListObjectEnemyShown.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectExtendedEntity.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectFish.h + src/KingSystem/Resource/GeneralParamList/resGParamListObjectGelEnemy.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectGeneral.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectGiantArmor.h src/KingSystem/Resource/GeneralParamList/resGParamListObjectGiantArmorSlot.h diff --git a/data/uking_functions.csv b/data/uking_functions.csv index 206130ba..0715952d 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -89108,7 +89108,7 @@ 0x00000071011a14b0,BgparamlistObjectGiantArmorSlot::ctor,1188,_ZN4ksys3res30GParamListObjectGiantArmorSlotC2Ev 0x00000071011a1954,BgparamlistObjectGuardian::ctor,812,_ZN4ksys3res24GParamListObjectGuardianC2Ev 0x00000071011a1c80,BgparamlistObjectSwarm::ctor,388,_ZN4ksys3res21GParamListObjectSwarmC2Ev -0x00000071011a1e04,BgparamlistObjectGelEnemy::ctor,1352, +0x00000071011a1e04,BgparamlistObjectGelEnemy::ctor,1352,_ZN4ksys3res24GParamListObjectGelEnemyC2Ev 0x00000071011a234c,BgparamlistObjectWizzrobe::ctor,832, 0x00000071011a268c,BgparamlistObjectStalEnemy::ctor,328, 0x00000071011a27d4,BgparamlistObjectGuardianMini::ctor,672, @@ -89206,7 +89206,7 @@ 0x00000071011a7e54,sub_71011A7E54,12,_ZNK4ksys3res24GParamListObjectGuardian7getNameEv 0x00000071011a7e60,sub_71011A7E60,12,_ZNK4ksys3res27GParamListObjectMonsterShop7getNameEv 0x00000071011a7e6c,sub_71011A7E6C,12,_ZNK4ksys3res21GParamListObjectSwarm7getNameEv -0x00000071011a7e78,sub_71011A7E78,12, +0x00000071011a7e78,sub_71011A7E78,12,_ZNK4ksys3res24GParamListObjectGelEnemy7getNameEv 0x00000071011a7e84,sub_71011A7E84,12, 0x00000071011a7e90,sub_71011A7E90,12, 0x00000071011a7e9c,sub_71011A7E9C,12, diff --git a/src/KingSystem/Resource/GeneralParamList/resGParamListObjectGelEnemy.h b/src/KingSystem/Resource/GeneralParamList/resGParamListObjectGelEnemy.h new file mode 100644 index 00000000..e31619d6 --- /dev/null +++ b/src/KingSystem/Resource/GeneralParamList/resGParamListObjectGelEnemy.h @@ -0,0 +1,52 @@ +#pragma once + +#include <agl/Utils/aglParameter.h> +#include "KingSystem/Resource/GeneralParamList/resGParamListObject.h" +#include "KingSystem/Utils/Types.h" + +namespace ksys::res { + +class GParamListObjectGelEnemy : public GParamListObject { +public: + GParamListObjectGelEnemy(); + const char* getName() const override { return "GelEnemy"; } + + agl::utl::Parameter<sead::SafeString> mMoveBoneName; + agl::utl::Parameter<f32> mBodyRadius; + agl::utl::Parameter<s32> mClothBoneNumForEyeCalc; + agl::utl::Parameter<sead::SafeString> mBodyRootBoneName; + agl::utl::Parameter<sead::SafeString> mLeftEyeBoneName; + agl::utl::Parameter<sead::SafeString> mRightEyeBoneName; + agl::utl::Parameter<f32> mEyeSpaceHalf; + agl::utl::Parameter<sead::Vector3f> mEyeDir; + agl::utl::Parameter<sead::Vector3f> mEyeOffset; + agl::utl::Parameter<f32> mEyeUpMoveRate; + agl::utl::Parameter<f32> mEyeDownMoveRate; + agl::utl::Parameter<bool> mIsAverageEyePos; + agl::utl::Parameter<f32> mEyeDelayAccRate; + agl::utl::Parameter<f32> mEyeYMoveTheta; + agl::utl::Parameter<f32> mEyeYMoveFrequency; +}; +KSYS_CHECK_SIZE_NX150(GParamListObjectGelEnemy, 0x248); + +inline GParamListObjectGelEnemy::GParamListObjectGelEnemy() { + auto* const obj = &mObj; + + mMoveBoneName.init("Body_Move", "MoveBoneName", "", obj); + mBodyRadius.init(1.0, "BodyRadius", "", obj); + mClothBoneNumForEyeCalc.init(12, "ClothBoneNumForEyeCalc", "", obj); + mBodyRootBoneName.init("Skl_Root", "BodyRootBoneName", "", obj); + mLeftEyeBoneName.init("", "LeftEyeBoneName", "", obj); + mRightEyeBoneName.init("", "RightEyeBoneName", "", obj); + mEyeSpaceHalf.init(0.0, "EyeSpaceHalf", "", obj); + mEyeDir.init({0.75, 1.0, 1.0}, "EyeDir", "", obj); + mEyeOffset.init({0.0, 0.0, 0.0}, "EyeOffset", "", obj); + mEyeUpMoveRate.init(0.2, "EyeUpMoveRate", "", obj); + mEyeDownMoveRate.init(0.05, "EyeDownMoveRate", "", obj); + mIsAverageEyePos.init(true, "IsAverageEyePos", "", obj); + mEyeDelayAccRate.init(0.6, "EyeDelayAccRate", "", obj); + mEyeYMoveTheta.init(1.0, "EyeYMoveTheta", "", obj); + mEyeYMoveFrequency.init(0.033, "EyeYMoveFrequency", "", obj); +} + +} // namespace ksys::res diff --git a/src/KingSystem/Resource/resResourceGParamList.cpp b/src/KingSystem/Resource/resResourceGParamList.cpp index 316dd5fe..83b3f669 100644 --- a/src/KingSystem/Resource/resResourceGParamList.cpp +++ b/src/KingSystem/Resource/resResourceGParamList.cpp @@ -26,6 +26,7 @@ #include "KingSystem/Resource/GeneralParamList/resGParamListObjectEnemyShown.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectExtendedEntity.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectFish.h" +#include "KingSystem/Resource/GeneralParamList/resGParamListObjectGelEnemy.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectGeneral.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectGiantArmor.h" #include "KingSystem/Resource/GeneralParamList/resGParamListObjectGiantArmorSlot.h" @@ -165,6 +166,7 @@ bool GParamList::parse_(u8* data, size_t, sead::Heap* heap) { add<GParamListObjType::Guardian>(archive.getRootList(), "Guardian", heap, dummy_list); add<GParamListObjType::MonsterShop>(archive.getRootList(), "MonsterShop", heap, dummy_list); add<GParamListObjType::Swarm>(archive.getRootList(), "Swarm", heap, dummy_list); + add<GParamListObjType::GelEnemy>(archive.getRootList(), "GelEnemy", heap, dummy_list); // TODO: the rest |
