summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2020-09-20 12:18:12 +0200
committerLéo Lam <leo@leolam.fr>2020-09-20 12:18:31 +0200
commit0e13b659324520dc1afb4d3af7d7322458d9e56e (patch)
tree3d584a28567172b739d3dc2499df2aa3322b336d
parent2868170492fa23f839b10f45a10924e25f4debdf (diff)
ksys/res: Implement GParamList GelEnemy
-rw-r--r--CMakeLists.txt1
-rw-r--r--data/uking_functions.csv4
-rw-r--r--src/KingSystem/Resource/GeneralParamList/resGParamListObjectGelEnemy.h52
-rw-r--r--src/KingSystem/Resource/resResourceGParamList.cpp2
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