ksys/res: Implement GParamList Global

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

View File

@ -92,6 +92,7 @@ add_executable(uking
src/KingSystem/Resource/GeneralParamList/resGParamListObjectGeneral.h
src/KingSystem/Resource/GeneralParamList/resGParamListObjectGiantArmor.h
src/KingSystem/Resource/GeneralParamList/resGParamListObjectGiantArmorSlot.h
src/KingSystem/Resource/GeneralParamList/resGParamListObjectGlobal.h
src/KingSystem/Resource/GeneralParamList/resGParamListObjectGrab.h
src/KingSystem/Resource/GeneralParamList/resGParamListObjectGuardian.h
src/KingSystem/Resource/GeneralParamList/resGParamListObjectGuardianMini.h

View File

@ -89113,7 +89113,7 @@
0x00000071011a268c,BgparamlistObjectStalEnemy::ctor,328,_ZN4ksys3res25GParamListObjectStalEnemyC2Ev
0x00000071011a27d4,BgparamlistObjectGuardianMini::ctor,672,_ZN4ksys3res28GParamListObjectGuardianMiniC2Ev
0x00000071011a2a74,BgparamlistObjectClothReaction::ctor,1460,_ZN4ksys3res29GParamListObjectClothReactionC2Ev
0x00000071011a3028,BgparamlistObjectGlobal::ctor,6116,
0x00000071011a3028,BgparamlistObjectGlobal::ctor,6116,_ZN4ksys3res22GParamListObjectGlobalC2Ev
0x00000071011a480c,BgparamlistObjectAutoGen::ctor,404,
0x00000071011a49a0,BgparamlistObjectChemicalType::ctor,336,
0x00000071011a4af0,BgparamlistObjectGolem::ctor,676,
@ -89212,7 +89212,7 @@
0x00000071011a7e9c,sub_71011A7E9C,12,_ZNK4ksys3res25GParamListObjectStalEnemy7getNameEv
0x00000071011a7ea8,sub_71011A7EA8,12,_ZNK4ksys3res28GParamListObjectGuardianMini7getNameEv
0x00000071011a7eb4,sub_71011A7EB4,12,_ZNK4ksys3res29GParamListObjectClothReaction7getNameEv
0x00000071011a7ec0,sub_71011A7EC0,12,
0x00000071011a7ec0,sub_71011A7EC0,12,_ZNK4ksys3res22GParamListObjectGlobal7getNameEv
0x00000071011a7ecc,sub_71011A7ECC,12,
0x00000071011a7ed8,sub_71011A7ED8,12,
0x00000071011a7ee4,sub_71011A7EE4,12,

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

View File

@ -0,0 +1,202 @@
#pragma once
#include <agl/Utils/aglParameter.h>
#include "KingSystem/Resource/GeneralParamList/resGParamListObject.h"
#include "KingSystem/Utils/Types.h"
namespace ksys::res {
class GParamListObjectGlobal : public GParamListObject {
public:
GParamListObjectGlobal();
const char* getName() const override { return "Global"; }
agl::utl::Parameter<f32> mEnemyLifeGageDist;
agl::utl::Parameter<f32> mEnemyNoSkitDist;
agl::utl::Parameter<f32> mEnemyWeaponPickAllowDist;
agl::utl::Parameter<s32> mEnemyWeaponPickForbidTime;
agl::utl::Parameter<f32> mEnemyAnimalNoDamageDist;
agl::utl::Parameter<f32> mEnemyNearCraeteIDDelay;
agl::utl::Parameter<s32> mEnemyForceTiredLODCount;
agl::utl::Parameter<s32> mEnemyForceTiredNoSightLODCount;
agl::utl::Parameter<s32> mEnemyForceWarpReturnLODCount;
agl::utl::Parameter<f32> mSilentAttackAng;
agl::utl::Parameter<f32> mSilentAttackRatio;
agl::utl::Parameter<s32> mBlownOffPlayerAtkDelay;
agl::utl::Parameter<f32> mJustAvoidAcceptWpRangeSS;
agl::utl::Parameter<f32> mJustAvoidAcceptWpRangeLS;
agl::utl::Parameter<f32> mJustAvoidAcceptWpRangeSP;
agl::utl::Parameter<s32> mForceNoticeEnemyCount;
agl::utl::Parameter<f32> mForceNoticeEnemyDist;
agl::utl::Parameter<s32> mWeaponRickeyLife;
agl::utl::Parameter<f32> mWeaponDropRotSpd;
agl::utl::Parameter<s32> mShieldRideBaseFrame;
agl::utl::Parameter<s32> mShieldRideHitBaseDamage;
agl::utl::Parameter<f32> mShieldDamageratio;
agl::utl::Parameter<f32> mShieldSurfMasterFrictionRatio;
agl::utl::Parameter<f32> mLoudNoiseRadius;
agl::utl::Parameter<f32> mImpulse2DamageRatio;
agl::utl::Parameter<f32> mIceMeltSpeedOnContactFire;
agl::utl::Parameter<f32> mCriticalAttackRatio;
agl::utl::Parameter<f32> mBooerangAttackRatio;
agl::utl::Parameter<f32> mHitImpulseClampMax;
agl::utl::Parameter<f32> mDropItemVelXZFromBomb;
agl::utl::Parameter<f32> mDropItemVelYFromBomb;
agl::utl::Parameter<f32> mDropItemVelRandomFromBomb;
agl::utl::Parameter<f32> mDropItemAngVelFromBomb;
agl::utl::Parameter<f32> mDropItemAngVelRandomFromBomb;
agl::utl::Parameter<f32> mDropItemVelXZSmall;
agl::utl::Parameter<f32> mDropItemVelYSmall;
agl::utl::Parameter<f32> mDropItemVelRandomSmall;
agl::utl::Parameter<f32> mDropItemAngVelSmall;
agl::utl::Parameter<f32> mDropItemAngVelRandomSmall;
agl::utl::Parameter<f32> mDropItemVelXZLarge;
agl::utl::Parameter<f32> mDropItemVelYLarge;
agl::utl::Parameter<f32> mDropItemVelRandomLarge;
agl::utl::Parameter<f32> mDropItemAngVelLarge;
agl::utl::Parameter<f32> mDropItemAngVelRandomLarge;
agl::utl::Parameter<f32> mDropItemVelXZRupeeRabbit;
agl::utl::Parameter<f32> mDropItemVelYRupeeRabbit;
agl::utl::Parameter<f32> mDropItemVelRandomRupeeRabbit;
agl::utl::Parameter<f32> mDropItemVelXZItemRupeeOnly;
agl::utl::Parameter<f32> mDropItemVelYItemRupeeOnly;
agl::utl::Parameter<f32> mDropItemVelRandomItemRupeeOnly;
agl::utl::Parameter<f32> mDropItemInvincibleTime;
agl::utl::Parameter<sead::Vector3f> mTreeWeaponEquipTransOffset;
agl::utl::Parameter<sead::Vector3f> mTreeWeaponEquipRotOffset;
agl::utl::Parameter<f32> mWetRatioToDie;
agl::utl::Parameter<f32> mEnvWetRatioToDie;
agl::utl::Parameter<f32> mNPCTurnAngleDiff;
agl::utl::Parameter<s32> mNPCWaitFrameAfterEvent;
agl::utl::Parameter<f32> mNPCIgnorePlayerTime;
agl::utl::Parameter<f32> mNPCCancelIgnorePlayerTime;
agl::utl::Parameter<f32> mNPCOpenDoorDistance;
agl::utl::Parameter<f32> mNPCWalkRateOnSandAndSnow;
agl::utl::Parameter<f32> mNPCDownVerticallyAngle;
agl::utl::Parameter<f32> mGerudoQueenSafetyAreaRadius;
agl::utl::Parameter<s32> mCreateFairyLimitCount;
agl::utl::Parameter<f32> mTerrorRegistSpeed;
agl::utl::Parameter<f32> mTerrorUnregistSpeed;
agl::utl::Parameter<s32> mTerrorRegistTimer;
agl::utl::Parameter<f32> mTerrorRadiusOffset;
agl::utl::Parameter<s32> mSpeedTerrorLevel;
agl::utl::Parameter<s32> mSpeedTerrorLevelHuge;
agl::utl::Parameter<f32> mSpeedTerrorLevelCheckRadius;
agl::utl::Parameter<f32> mAtDirTypeAffectRatio;
agl::utl::Parameter<f32> mRainyAwnHearingLevel;
agl::utl::Parameter<f32> mHorseBindOffsetYOfMaleUMii;
agl::utl::Parameter<f32> mHorseBindOffsetYOfFemaleUMii;
agl::utl::Parameter<sead::Vector3f> mHorseFamiliarityIncreasePerFrame;
agl::utl::Parameter<sead::Vector3f> mHorseFamiliarityIncreaseSootheAtFirstRun;
agl::utl::Parameter<sead::Vector3f> mHorseFamiliarityIncreaseSootheAfterRun;
agl::utl::Parameter<sead::Vector3f> mHorseFamiliarityIncreaseSootheAfterGearTop;
agl::utl::Parameter<sead::Vector3f> mHorseFamiliarityIncreaseSootheAfterJump;
agl::utl::Parameter<sead::Vector3f> mHorseFamiliarityIncreaseSootheWhileResisting;
agl::utl::Parameter<sead::Vector3f> mHorseFamiliarityIncreaseEat;
agl::utl::Parameter<sead::Vector3f> mHorseAlertProbability;
agl::utl::Parameter<sead::Vector3f> mHorseAlertFramesMin;
agl::utl::Parameter<sead::Vector3f> mHorseAlertFramesMax;
agl::utl::Parameter<s32> mHorseExtraChargeNum;
agl::utl::Parameter<f32> mPlayerGrabThrowDiffRate;
};
KSYS_CHECK_SIZE_NX150(GParamListObjectGlobal, 0xb78);
inline GParamListObjectGlobal::GParamListObjectGlobal() {
auto* const obj = &mObj;
mEnemyLifeGageDist.init(60.0, "EnemyLifeGageDist", "", obj);
mEnemyNoSkitDist.init(0.0, "EnemyNoSkitDist", "", obj);
mEnemyWeaponPickAllowDist.init(5.0, "EnemyWeaponPickAllowDist", "", obj);
mEnemyWeaponPickForbidTime.init(30, "EnemyWeaponPickForbidTime", "", obj);
mEnemyAnimalNoDamageDist.init(70.0, "EnemyAnimalNoDamageDist", "", obj);
mEnemyNearCraeteIDDelay.init(30.0, "EnemyNearCraeteIDDelay", "", obj);
mEnemyForceTiredLODCount.init(60, "EnemyForceTiredLODCount", "", obj);
mEnemyForceTiredNoSightLODCount.init(240, "EnemyForceTiredNoSightLODCount", "", obj);
mEnemyForceWarpReturnLODCount.init(240, "EnemyForceWarpReturnLODCount", "", obj);
mSilentAttackAng.init(0.0, "SilentAttackAng", "", obj);
mSilentAttackRatio.init(2.0, "SilentAttackRatio", "", obj);
mBlownOffPlayerAtkDelay.init(30, "BlownOffPlayerAtkDelay", "", obj);
mJustAvoidAcceptWpRangeSS.init(1.6, "JustAvoidAcceptWpRangeSS", "", obj);
mJustAvoidAcceptWpRangeLS.init(1.8, "JustAvoidAcceptWpRangeLS", "", obj);
mJustAvoidAcceptWpRangeSP.init(5.0, "JustAvoidAcceptWpRangeSP", "", obj);
mForceNoticeEnemyCount.init(3, "ForceNoticeEnemyCount", "", obj);
mForceNoticeEnemyDist.init(50.0, "ForceNoticeEnemyDist", "", obj);
mWeaponRickeyLife.init(3, "WeaponRickeyLife", "", obj);
mWeaponDropRotSpd.init(30.0, "WeaponDropRotSpd", "", obj);
mShieldRideBaseFrame.init(60, "ShieldRideBaseFrame", "", obj);
mShieldRideHitBaseDamage.init(1, "ShieldRideHitBaseDamage", "", obj);
mShieldDamageratio.init(0.2, "ShieldDamageratio", "", obj);
mShieldSurfMasterFrictionRatio.init(0.2, "ShieldSurfMasterFrictionRatio", "", obj);
mLoudNoiseRadius.init(80.0, "LoudNoiseRadius", "", obj);
mImpulse2DamageRatio.init(0.004, "Impulse2DamageRatio", "", obj);
mIceMeltSpeedOnContactFire.init(2.0, "IceMeltSpeedOnContactFire", "", obj);
mCriticalAttackRatio.init(4.0, "CriticalAttackRatio", "", obj);
mBooerangAttackRatio.init(1.5, "BooerangAttackRatio", "", obj);
mHitImpulseClampMax.init(20.0, "HitImpulseClampMax", "", obj);
mDropItemVelXZFromBomb.init(0.4, "DropItemVelXZFromBomb", "", obj);
mDropItemVelYFromBomb.init(0.05, "DropItemVelYFromBomb", "", obj);
mDropItemVelRandomFromBomb.init(0.1, "DropItemVelRandomFromBomb", "", obj);
mDropItemAngVelFromBomb.init(5.0, "DropItemAngVelFromBomb", "", obj);
mDropItemAngVelRandomFromBomb.init(0.5, "DropItemAngVelRandomFromBomb", "", obj);
mDropItemVelXZSmall.init(0.075, "DropItemVelXZSmall", "", obj);
mDropItemVelYSmall.init(0.05, "DropItemVelYSmall", "", obj);
mDropItemVelRandomSmall.init(0.1, "DropItemVelRandomSmall", "", obj);
mDropItemAngVelSmall.init(5.0, "DropItemAngVelSmall", "", obj);
mDropItemAngVelRandomSmall.init(0.5, "DropItemAngVelRandomSmall", "", obj);
mDropItemVelXZLarge.init(0.2, "DropItemVelXZLarge", "", obj);
mDropItemVelYLarge.init(0.05, "DropItemVelYLarge", "", obj);
mDropItemVelRandomLarge.init(0.1, "DropItemVelRandomLarge", "", obj);
mDropItemAngVelLarge.init(5.0, "DropItemAngVelLarge", "", obj);
mDropItemAngVelRandomLarge.init(0.5, "DropItemAngVelRandomLarge", "", obj);
mDropItemVelXZRupeeRabbit.init(0.25, "DropItemVelXZRupeeRabbit", "", obj);
mDropItemVelYRupeeRabbit.init(0.1, "DropItemVelYRupeeRabbit", "", obj);
mDropItemVelRandomRupeeRabbit.init(0.05, "DropItemVelRandomRupeeRabbit", "", obj);
mDropItemVelXZItemRupeeOnly.init(0.1, "DropItemVelXZItemRupeeOnly", "", obj);
mDropItemVelYItemRupeeOnly.init(0.1, "DropItemVelYItemRupeeOnly", "", obj);
mDropItemVelRandomItemRupeeOnly.init(0.05, "DropItemVelRandomItemRupeeOnly", "", obj);
mDropItemInvincibleTime.init(30.0, "DropItemInvincibleTime", "", obj);
mTreeWeaponEquipTransOffset.init({0.0, 0.0, 0.0}, "TreeWeaponEquipTransOffset", "", obj);
mTreeWeaponEquipRotOffset.init({0.0, 0.0, 0.0}, "TreeWeaponEquipRotOffset", "", obj);
mWetRatioToDie.init(0.5, "WetRatioToDie", "", obj);
mEnvWetRatioToDie.init(0.95, "EnvWetRatioToDie", "", obj);
mNPCTurnAngleDiff.init(30.0, "NPCTurnAngleDiff", "", obj);
mNPCWaitFrameAfterEvent.init(60, "NPCWaitFrameAfterEvent", "", obj);
mNPCIgnorePlayerTime.init(10.0, "NPCIgnorePlayerTime", "", obj);
mNPCCancelIgnorePlayerTime.init(1800.0, "NPCCancelIgnorePlayerTime", "", obj);
mNPCOpenDoorDistance.init(5.0, "NPCOpenDoorDistance", "", obj);
mNPCWalkRateOnSandAndSnow.init(0.8, "NPCWalkRateOnSandAndSnow", "", obj);
mNPCDownVerticallyAngle.init(20.0, "NPCDownVerticallyAngle", "", obj);
mGerudoQueenSafetyAreaRadius.init(12.0, "GerudoQueenSafetyAreaRadius", "", obj);
mCreateFairyLimitCount.init(10, "CreateFairyLimitCount", "", obj);
mTerrorRegistSpeed.init(190.0, "TerrorRegistSpeed", "", obj);
mTerrorUnregistSpeed.init(60.0, "TerrorUnregistSpeed", "", obj);
mTerrorRegistTimer.init(30, "TerrorRegistTimer", "", obj);
mTerrorRadiusOffset.init(1.5, "TerrorRadiusOffset", "", obj);
mSpeedTerrorLevel.init(2, "SpeedTerrorLevel", "", obj);
mSpeedTerrorLevelHuge.init(4, "SpeedTerrorLevelHuge", "", obj);
mSpeedTerrorLevelCheckRadius.init(3.0, "SpeedTerrorLevelCheckRadius", "", obj);
mAtDirTypeAffectRatio.init(1.0, "AtDirTypeAffectRatio", "", obj);
mRainyAwnHearingLevel.init(0.7, "RainyAwnHearingLevel", "", obj);
mHorseBindOffsetYOfMaleUMii.init(0.0, "HorseBindOffsetYOfMaleUMii", "", obj);
mHorseBindOffsetYOfFemaleUMii.init(0.0, "HorseBindOffsetYOfFemaleUMii", "", obj);
mHorseFamiliarityIncreasePerFrame.init({0.0, 0.0, 0.0}, "HorseFamiliarityIncreasePerFrame", "",
obj);
mHorseFamiliarityIncreaseSootheAtFirstRun.init(
{0.3, 0.08, 0.06}, "HorseFamiliarityIncreaseSootheAtFirstRun", "", obj);
mHorseFamiliarityIncreaseSootheAfterRun.init({0.3, 0.08, 0.06},
"HorseFamiliarityIncreaseSootheAfterRun", "", obj);
mHorseFamiliarityIncreaseSootheAfterGearTop.init(
{0.3, 0.08, 0.06}, "HorseFamiliarityIncreaseSootheAfterGearTop", "", obj);
mHorseFamiliarityIncreaseSootheAfterJump.init(
{0.3, 0.08, 0.06}, "HorseFamiliarityIncreaseSootheAfterJump", "", obj);
mHorseFamiliarityIncreaseSootheWhileResisting.init(
{0.3, 0.08, 0.06}, "HorseFamiliarityIncreaseSootheWhileResisting", "", obj);
mHorseFamiliarityIncreaseEat.init({0.7, 0.2, 0.1}, "HorseFamiliarityIncreaseEat", "", obj);
mHorseAlertProbability.init({0.001, 0.003, 0.001}, "HorseAlertProbability", "", obj);
mHorseAlertFramesMin.init({120.0, 120.0, 120.0}, "HorseAlertFramesMin", "", obj);
mHorseAlertFramesMax.init({240.0, 240.0, 240.0}, "HorseAlertFramesMax", "", obj);
mHorseExtraChargeNum.init(3, "HorseExtraChargeNum", "", obj);
mPlayerGrabThrowDiffRate.init(0.2, "PlayerGrabThrowDiffRate", "", obj);
}
} // namespace ksys::res

View File

@ -31,6 +31,7 @@
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectGeneral.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectGiantArmor.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectGiantArmorSlot.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectGlobal.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectGrab.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectGuardian.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectGuardianMini.h"
@ -177,6 +178,7 @@ bool GParamList::parse_(u8* data, size_t, sead::Heap* heap) {
add<GParamListObjType::StalEnemy>(archive.getRootList(), "StalEnemy", heap, dummy_list);
add<GParamListObjType::GuardianMini>(archive.getRootList(), "GuardianMini", heap, dummy_list);
add<GParamListObjType::ClothReaction>(archive.getRootList(), "ClothReaction", heap, dummy_list);
add<GParamListObjType::Global>(archive.getRootList(), "Global", heap, dummy_list);
// TODO: the rest