mirror of https://github.com/zeldaret/botw.git
ksys/res: Implement GParamList WolfLink 🐺
This commit is contained in:
parent
f9a64a2ce5
commit
db9f30ed81
|
@ -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
|
||||
|
|
|
@ -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.
|
|
@ -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
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue