ksys/res: Implement GParamList AnimalUnit

This commit is contained in:
Léo Lam
2020-09-20 11:52:02 +02:00
parent 58f52a8cc2
commit f31654ef7a
4 changed files with 61 additions and 2 deletions
@@ -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
@@ -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