summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2020-09-20 11:52:02 +0200
committerLéo Lam <leo@leolam.fr>2020-09-20 11:52:02 +0200
commitf31654ef7ab30681d3876e1d3e3a4a1d8eeeaee3 (patch)
treecd0a4f9d4ba66f7f9edcac1feb636cc20a6e9854
parent58f52a8cc274124ce62c0074a2e57a9829c0666c (diff)
ksys/res: Implement GParamList AnimalUnit
-rw-r--r--CMakeLists.txt1
-rw-r--r--data/uking_functions.csv4
-rw-r--r--src/KingSystem/Resource/GeneralParamList/resGParamListObjectAnimalUnit.h56
-rw-r--r--src/KingSystem/Resource/resResourceGParamList.cpp2
4 files changed, 61 insertions, 2 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 02d9b56e..11a6a93a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -65,6 +65,7 @@ add_executable(uking
src/KingSystem/Resource/GeneralParamList/resGParamListObject.h
src/KingSystem/Resource/GeneralParamList/resGParamListObjectAnimalFollowOffset.h
+ src/KingSystem/Resource/GeneralParamList/resGParamListObjectAnimalUnit.h
src/KingSystem/Resource/GeneralParamList/resGParamListObjectArmor.h
src/KingSystem/Resource/GeneralParamList/resGParamListObjectArmorEffect.h
src/KingSystem/Resource/GeneralParamList/resGParamListObjectArmorHead.h
diff --git a/data/uking_functions.csv b/data/uking_functions.csv
index 11e7569e..59befde7 100644
--- a/data/uking_functions.csv
+++ b/data/uking_functions.csv
@@ -89098,7 +89098,7 @@
0x000000710119839c,BgparamlistObjectTraveler::ctor,29996,_ZN4ksys3res24GParamListObjectTravelerC1Ev
0x000000710119f8c8,BgparamlistObjectPrey::ctor,508,_ZN4ksys3res20GParamListObjectPreyC2Ev
0x000000710119fac4,BgparamlistObjectEatTarget::ctor,684,_ZN4ksys3res25GParamListObjectEatTargetC2Ev
-0x000000710119fd70,BgparamlistObjectAnimalUnit::ctor,1380,
+0x000000710119fd70,BgparamlistObjectAnimalUnit::ctor,1380,_ZN4ksys3res26GParamListObjectAnimalUnitC2Ev
0x00000071011a02d4,BgparamlistObjectFish::ctor,500,
0x00000071011a04c8,BgparamlistObjectRope::ctor,820,
0x00000071011a07fc,BgparamlistObjectHorse::ctor,1068,
@@ -89192,7 +89192,7 @@
0x00000071011a7dac,sub_71011A7DAC,12,_ZNK4ksys3res30GParamListObjectExtendedEntity7getNameEv
0x00000071011a7db8,sub_71011A7DB8,12,_ZNK4ksys3res25GParamListObjectBindActor7getNameEv
0x00000071011a7dc4,sub_71011A7DC4,12,_ZNK4ksys3res25GParamListObjectEatTarget7getNameEv
-0x00000071011a7dd0,sub_71011A7DD0,12,
+0x00000071011a7dd0,sub_71011A7DD0,12,_ZNK4ksys3res26GParamListObjectAnimalUnit7getNameEv
0x00000071011a7ddc,sub_71011A7DDC,12,
0x00000071011a7de8,sub_71011A7DE8,12,
0x00000071011a7df4,sub_71011A7DF4,12,
diff --git a/src/KingSystem/Resource/GeneralParamList/resGParamListObjectAnimalUnit.h b/src/KingSystem/Resource/GeneralParamList/resGParamListObjectAnimalUnit.h
new file mode 100644
index 00000000..b6db6cfa
--- /dev/null
+++ b/src/KingSystem/Resource/GeneralParamList/resGParamListObjectAnimalUnit.h
@@ -0,0 +1,56 @@
+#pragma once
+
+#include <agl/Utils/aglParameter.h>
+#include "KingSystem/Resource/GeneralParamList/resGParamListObject.h"
+#include "KingSystem/Utils/Types.h"
+
+namespace ksys::res {
+
+class GParamListObjectAnimalUnit : public GParamListObject {
+public:
+ GParamListObjectAnimalUnit();
+ const char* getName() const override { return "AnimalUnit"; }
+
+ agl::utl::Parameter<sead::SafeString> mSpeedActorName;
+ agl::utl::Parameter<f32> mBasePlayRate;
+ agl::utl::Parameter<s32> mGearMaxNum;
+ agl::utl::Parameter<bool> mIsSetWaitASAtGear0;
+ agl::utl::Parameter<f32> mStressFramesMin;
+ agl::utl::Parameter<f32> mStressFramesMax;
+ agl::utl::Parameter<f32> mSteeringOutputKp;
+ agl::utl::Parameter<f32> mSteeringOutputKi;
+ agl::utl::Parameter<f32> mSteeringOutputKd;
+ agl::utl::Parameter<f32> mSteeringOutputIClamp;
+ agl::utl::Parameter<f32> mSteeringOutputIReduceRatio;
+ agl::utl::Parameter<f32> mSteeringOutputDLerpRatio;
+ agl::utl::Parameter<f32> mSteeringOutputAvoidanceLerpRatio;
+ agl::utl::Parameter<f32> mSteeringOutputIIRLerpRatio;
+ agl::utl::Parameter<f32> mOverrideSteeringOutputKp;
+ agl::utl::Parameter<f32> mOverrideSteeringOutputKi;
+ agl::utl::Parameter<f32> mOverrideSteeringOutputKd;
+};
+KSYS_CHECK_SIZE_NX150(GParamListObjectAnimalUnit, 0x260);
+
+inline GParamListObjectAnimalUnit::GParamListObjectAnimalUnit() {
+ auto* const obj = &mObj;
+
+ mSpeedActorName.init("", "SpeedActorName", "", obj);
+ mBasePlayRate.init(1.0, "BasePlayRate", "", obj);
+ mGearMaxNum.init(4, "GearMaxNum", "", obj);
+ mIsSetWaitASAtGear0.init(true, "IsSetWaitASAtGear0", "", obj);
+ mStressFramesMin.init(0.0, "StressFramesMin", "", obj);
+ mStressFramesMax.init(0.0, "StressFramesMax", "", obj);
+ mSteeringOutputKp.init(0.6, "SteeringOutputKp", "", obj);
+ mSteeringOutputKi.init(0.15, "SteeringOutputKi", "", obj);
+ mSteeringOutputKd.init(0.002, "SteeringOutputKd", "", obj);
+ mSteeringOutputIClamp.init(1.0, "SteeringOutputIClamp", "", obj);
+ mSteeringOutputIReduceRatio.init(0.0, "SteeringOutputIReduceRatio", "", obj);
+ mSteeringOutputDLerpRatio.init(0.2, "SteeringOutputDLerpRatio", "", obj);
+ mSteeringOutputAvoidanceLerpRatio.init(0.08, "SteeringOutputAvoidanceLerpRatio", "", obj);
+ mSteeringOutputIIRLerpRatio.init(0.4, "SteeringOutputIIRLerpRatio", "", obj);
+ mOverrideSteeringOutputKp.init(-1.0, "OverrideSteeringOutputKp", "", obj);
+ mOverrideSteeringOutputKi.init(-1.0, "OverrideSteeringOutputKi", "", obj);
+ mOverrideSteeringOutputKd.init(-1.0, "OverrideSteeringOutputKd", "", obj);
+}
+
+} // namespace ksys::res
diff --git a/src/KingSystem/Resource/resResourceGParamList.cpp b/src/KingSystem/Resource/resResourceGParamList.cpp
index ea863236..9de521ef 100644
--- a/src/KingSystem/Resource/resResourceGParamList.cpp
+++ b/src/KingSystem/Resource/resResourceGParamList.cpp
@@ -4,6 +4,7 @@
#include "KingSystem/ActorSystem/actActorParamMgr.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObject.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectAnimalFollowOffset.h"
+#include "KingSystem/Resource/GeneralParamList/resGParamListObjectAnimalUnit.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectArmor.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectArmorEffect.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectArmorHead.h"
@@ -136,6 +137,7 @@ bool GParamList::parse_(u8* data, size_t, sead::Heap* heap) {
dummy_list);
add<GParamListObjType::BindActor>(archive.getRootList(), "BindActor", heap, dummy_list);
add<GParamListObjType::EatTarget>(archive.getRootList(), "EatTarget", heap, dummy_list);
+ add<GParamListObjType::AnimalUnit>(archive.getRootList(), "AnimalUnit", heap, dummy_list);
// TODO: the rest