ksys/res: Implement GParamList WolfLink 🐺

This commit is contained in:
Léo Lam 2020-09-20 13:49:50 +02:00
parent f9a64a2ce5
commit db9f30ed81
No known key found for this signature in database
GPG Key ID: 0DF30F9081000741
4 changed files with 159 additions and 2 deletions

View File

@ -137,6 +137,7 @@ add_executable(uking
src/KingSystem/Resource/GeneralParamList/resGParamListObjectWeaponOption.h
src/KingSystem/Resource/GeneralParamList/resGParamListObjectWeaponThrow.h
src/KingSystem/Resource/GeneralParamList/resGParamListObjectWizzrobe.h
src/KingSystem/Resource/GeneralParamList/resGParamListObjectWolfLink.h
src/KingSystem/Resource/GeneralParamList/resGParamListObjectZora.h
src/KingSystem/Resource/GeneralParamList/resGParamListTraits.h
src/KingSystem/Resource/resCurrentResNameMgr.cpp

View File

@ -89118,7 +89118,7 @@
0x00000071011a49a0,BgparamlistObjectChemicalType::ctor,336,_ZN4ksys3res28GParamListObjectChemicalTypeC2Ev
0x00000071011a4af0,BgparamlistObjectGolem::ctor,676,_ZN4ksys3res21GParamListObjectGolemC2Ev
0x00000071011a4d94,BgparamlistObjectHorseTargetedInfo::ctor,356,_ZN4ksys3res33GParamListObjectHorseTargetedInfoC2Ev
0x00000071011a4ef8,BgparamlistObjectWolfLink::ctor,4548,
0x00000071011a4ef8,BgparamlistObjectWolfLink::ctor,4548,_ZN4ksys3res24GParamListObjectWolfLinkC2Ev
0x00000071011a60bc,BgparamlistObjectEvent::ctor,852,
0x00000071011a6410,BgparamlistObjectGolemIK::ctor,1792,
0x00000071011a6b10,BgparamlistObjectPictureBook::ctor,344,
@ -89218,7 +89218,7 @@
0x00000071011a7ee4,sub_71011A7EE4,12,_ZNK4ksys3res28GParamListObjectChemicalType7getNameEv
0x00000071011a7ef0,sub_71011A7EF0,12,_ZNK4ksys3res21GParamListObjectGolem7getNameEv
0x00000071011a7efc,sub_71011A7EFC,12,_ZNK4ksys3res33GParamListObjectHorseTargetedInfo7getNameEv
0x00000071011a7f08,sub_71011A7F08,12,
0x00000071011a7f08,sub_71011A7F08,12,_ZNK4ksys3res24GParamListObjectWolfLink7getNameEv
0x00000071011a7f14,sub_71011A7F14,12,
0x00000071011a7f20,sub_71011A7F20,12,
0x00000071011a7f2c,sub_71011A7F2C,12,

Can't render this file because it is too large.

View File

@ -0,0 +1,154 @@
#pragma once
#include <agl/Utils/aglParameter.h>
#include "KingSystem/Resource/GeneralParamList/resGParamListObject.h"
#include "KingSystem/Utils/Types.h"
namespace ksys::res {
class GParamListObjectWolfLink : public GParamListObject {
public:
GParamListObjectWolfLink();
const char* getName() const override { return "WolfLink"; }
agl::utl::Parameter<f32> mNeckSpeedWait;
agl::utl::Parameter<f32> mNeckRateWait;
agl::utl::Parameter<f32> mNeckSpeedShiekSensor;
agl::utl::Parameter<f32> mNeckRateShiekSensor;
agl::utl::Parameter<f32> mNeckSpeedFollow;
agl::utl::Parameter<f32> mNeckRateFollow;
agl::utl::Parameter<f32> mNeckSpeedBattle;
agl::utl::Parameter<f32> mNeckRateBattle;
agl::utl::Parameter<f32> mNeckSpeedHeal;
agl::utl::Parameter<f32> mNeckRateHeal;
agl::utl::Parameter<f32> mBattleRange;
agl::utl::Parameter<f32> mHealRange;
agl::utl::Parameter<f32> mHuntRange;
agl::utl::Parameter<f32> mHowlRange;
agl::utl::Parameter<f32> mMaxHeightAttackable;
agl::utl::Parameter<f32> mMaxHeightHealable;
agl::utl::Parameter<f32> mNavMeshSearchRadius;
agl::utl::Parameter<f32> mCanReachPlayerNavMeshSearchRadius;
agl::utl::Parameter<f32> mSubmergedDepth;
agl::utl::Parameter<f32> mUtilityLifeToHunt;
agl::utl::Parameter<f32> mUtilityDangerDistMin;
agl::utl::Parameter<f32> mUtilityDangerDistMax;
agl::utl::Parameter<f32> mUtilityConstant;
agl::utl::Parameter<f32> mChainAttackChargeMin;
agl::utl::Parameter<f32> mChainAttackChargeMax;
agl::utl::Parameter<f32> mLookAtCooldownWait;
agl::utl::Parameter<f32> mLookAtCooldownWaitRand;
agl::utl::Parameter<f32> mLookAtCounterWait;
agl::utl::Parameter<f32> mLookAtCounterWaitRand;
agl::utl::Parameter<f32> mLookAtCooldownRun;
agl::utl::Parameter<f32> mLookAtCooldownRunRand;
agl::utl::Parameter<f32> mLookAtCounterRun;
agl::utl::Parameter<f32> mLookAtCounterRunRand;
agl::utl::Parameter<f32> mAttackCounterLength;
agl::utl::Parameter<f32> mAttackCounterRand;
agl::utl::Parameter<f32> mHowlCooldownCounterLength;
agl::utl::Parameter<f32> mHowlCooldownCounterRand;
agl::utl::Parameter<f32> mHealCooldownCounterLength;
agl::utl::Parameter<f32> mHealCooldownCounterRand;
agl::utl::Parameter<f32> mFailPathCooldownCounterLength;
agl::utl::Parameter<f32> mFailPathCooldownCounterRand;
agl::utl::Parameter<f32> mRetargetCooldownCounterLength;
agl::utl::Parameter<f32> mRetargetCooldownCounterRand;
agl::utl::Parameter<f32> mAfterTargetDeathCounterLength;
agl::utl::Parameter<f32> mAfterTargetDeathCounterRand;
agl::utl::Parameter<f32> mLostTargetCounterLength;
agl::utl::Parameter<f32> mLostTargetCounterRand;
agl::utl::Parameter<f32> mInvinceableCounterLength;
agl::utl::Parameter<f32> mInvinceableCounterRand;
agl::utl::Parameter<f32> mCallDelayMinLength;
agl::utl::Parameter<f32> mCallOverrideCounterLength;
agl::utl::Parameter<f32> mGiveUpShiekSensorLength;
agl::utl::Parameter<f32> mRetryShiekSensorLength;
agl::utl::Parameter<f32> mBattleWallHitLength;
agl::utl::Parameter<f32> mFollowRetryLength;
agl::utl::Parameter<f32> mPowerUpFoodLength;
agl::utl::Parameter<f32> mSafePosFailCounter;
agl::utl::Parameter<f32> mRestrictedTargetTimeNormal;
agl::utl::Parameter<f32> mRestrictedTargetTimeSpecial;
agl::utl::Parameter<s32> mPowerUpFoodAttackMod;
agl::utl::Parameter<f32> mPowerUpFoodChainAttackCharge;
agl::utl::Parameter<s32> mVSStalfosCritChance;
agl::utl::Parameter<f32> mAttackBase;
agl::utl::Parameter<f32> mAttackHeartMod;
agl::utl::Parameter<f32> mDefenseBase;
agl::utl::Parameter<f32> mDefenseHeartMod;
};
KSYS_CHECK_SIZE_NX150(GParamListObjectWolfLink, 0x878);
inline GParamListObjectWolfLink::GParamListObjectWolfLink() {
auto* const obj = &mObj;
mNeckSpeedWait.init(0.025, "NeckSpeedWait", "", obj);
mNeckRateWait.init(0.7, "NeckRateWait", "", obj);
mNeckSpeedShiekSensor.init(0.1, "NeckSpeedShiekSensor", "", obj);
mNeckRateShiekSensor.init(0.45, "NeckRateShiekSensor", "", obj);
mNeckSpeedFollow.init(0.4, "NeckSpeedFollow", "", obj);
mNeckRateFollow.init(0.45, "NeckRateFollow", "", obj);
mNeckSpeedBattle.init(0.3, "NeckSpeedBattle", "", obj);
mNeckRateBattle.init(0.45, "NeckRateBattle", "", obj);
mNeckSpeedHeal.init(0.0, "NeckSpeedHeal", "", obj);
mNeckRateHeal.init(0.1, "NeckRateHeal", "", obj);
mBattleRange.init(30.0, "BattleRange", "", obj);
mHealRange.init(30.0, "HealRange", "", obj);
mHuntRange.init(30.0, "HuntRange", "", obj);
mHowlRange.init(60.0, "HowlRange", "", obj);
mMaxHeightAttackable.init(1.6, "MaxHeightAttackable", "", obj);
mMaxHeightHealable.init(1.5, "MaxHeightHealable", "", obj);
mNavMeshSearchRadius.init(6.0, "NavMeshSearchRadius", "", obj);
mCanReachPlayerNavMeshSearchRadius.init(2.0, "CanReachPlayerNavMeshSearchRadius", "", obj);
mSubmergedDepth.init(1.0, "SubmergedDepth", "", obj);
mUtilityLifeToHunt.init(0.3, "UtilityLifeToHunt", "", obj);
mUtilityDangerDistMin.init(5.0, "UtilityDangerDistMin", "", obj);
mUtilityDangerDistMax.init(20.0, "UtilityDangerDistMax", "", obj);
mUtilityConstant.init(0.1, "UtilityConstant", "", obj);
mChainAttackChargeMin.init(7.0, "ChainAttackChargeMin", "", obj);
mChainAttackChargeMax.init(10.0, "ChainAttackChargeMax", "", obj);
mLookAtCooldownWait.init(150.0, "LookAtCooldownWait", "", obj);
mLookAtCooldownWaitRand.init(60.0, "LookAtCooldownWaitRand", "", obj);
mLookAtCounterWait.init(10.0, "LookAtCounterWait", "", obj);
mLookAtCounterWaitRand.init(40.0, "LookAtCounterWaitRand", "", obj);
mLookAtCooldownRun.init(150.0, "LookAtCooldownRun", "", obj);
mLookAtCooldownRunRand.init(60.0, "LookAtCooldownRunRand", "", obj);
mLookAtCounterRun.init(10.0, "LookAtCounterRun", "", obj);
mLookAtCounterRunRand.init(40.0, "LookAtCounterRunRand", "", obj);
mAttackCounterLength.init(30.0, "AttackCounterLength", "", obj);
mAttackCounterRand.init(30.0, "AttackCounterRand", "", obj);
mHowlCooldownCounterLength.init(1600.0, "HowlCooldownCounterLength", "", obj);
mHowlCooldownCounterRand.init(600.0, "HowlCooldownCounterRand", "", obj);
mHealCooldownCounterLength.init(0.0, "HealCooldownCounterLength", "", obj);
mHealCooldownCounterRand.init(0.0, "HealCooldownCounterRand", "", obj);
mFailPathCooldownCounterLength.init(120.0, "FailPathCooldownCounterLength", "", obj);
mFailPathCooldownCounterRand.init(0.0, "FailPathCooldownCounterRand", "", obj);
mRetargetCooldownCounterLength.init(30.0, "RetargetCooldownCounterLength", "", obj);
mRetargetCooldownCounterRand.init(0.0, "RetargetCooldownCounterRand", "", obj);
mAfterTargetDeathCounterLength.init(30.0, "AfterTargetDeathCounterLength", "", obj);
mAfterTargetDeathCounterRand.init(30.0, "AfterTargetDeathCounterRand", "", obj);
mLostTargetCounterLength.init(25.0, "LostTargetCounterLength", "", obj);
mLostTargetCounterRand.init(0.0, "LostTargetCounterRand", "", obj);
mInvinceableCounterLength.init(90.0, "InvinceableCounterLength", "", obj);
mInvinceableCounterRand.init(30.0, "InvinceableCounterRand", "", obj);
mCallDelayMinLength.init(10.0, "CallDelayMinLength", "", obj);
mCallOverrideCounterLength.init(900.0, "CallOverrideCounterLength", "", obj);
mGiveUpShiekSensorLength.init(300.0, "GiveUpShiekSensorLength", "", obj);
mRetryShiekSensorLength.init(900.0, "RetryShiekSensorLength", "", obj);
mBattleWallHitLength.init(10.0, "BattleWallHitLength", "", obj);
mFollowRetryLength.init(30.0, "FollowRetryLength", "", obj);
mPowerUpFoodLength.init(3600.0, "PowerUpFoodLength", "", obj);
mSafePosFailCounter.init(3600.0, "SafePosFailCounter", "", obj);
mRestrictedTargetTimeNormal.init(300.0, "RestrictedTargetTimeNormal", "", obj);
mRestrictedTargetTimeSpecial.init(500.0, "RestrictedTargetTimeSpecial", "", obj);
mPowerUpFoodAttackMod.init(5, "PowerUpFoodAttackMod", "", obj);
mPowerUpFoodChainAttackCharge.init(25.0, "PowerUpFoodChainAttackCharge", "", obj);
mVSStalfosCritChance.init(10, "VSStalfosCritChance", "", obj);
mAttackBase.init(10.0, "AttackBase", "", obj);
mAttackHeartMod.init(0.5, "AttackHeartMod", "", obj);
mDefenseBase.init(3.0, "DefenseBase", "", obj);
mDefenseHeartMod.init(0.5, "DefenseHeartMod", "", obj);
}
} // namespace ksys::res

View File

@ -75,6 +75,7 @@
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectWeaponOption.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectWeaponThrow.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectWizzrobe.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectWolfLink.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectZora.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListTraits.h"
@ -190,6 +191,7 @@ bool GParamList::parse_(u8* data, size_t, sead::Heap* heap) {
add<GParamListObjType::Golem>(archive.getRootList(), "Golem", heap, dummy_list);
add<GParamListObjType::HorseTargetedInfo>(archive.getRootList(), "HorseTargetedInfo", heap,
dummy_list);
add<GParamListObjType::WolfLink>(archive.getRootList(), "WolfLink", heap, dummy_list);
// TODO: the rest