ksys/res: Implement GParamList EnemyRace

This commit is contained in:
Léo Lam 2020-09-19 22:29:46 +02:00
parent 643efc3104
commit 54500e2d1d
No known key found for this signature in database
GPG Key ID: 0DF30F9081000741
4 changed files with 103 additions and 2 deletions

View File

@ -66,6 +66,7 @@ add_executable(uking
src/KingSystem/Resource/GeneralParamList/resGParamListObject.h
src/KingSystem/Resource/GeneralParamList/resGParamListObjectEnemy.h
src/KingSystem/Resource/GeneralParamList/resGParamListObjectEnemyLevel.h
src/KingSystem/Resource/GeneralParamList/resGParamListObjectEnemyRace.h
src/KingSystem/Resource/GeneralParamList/resGParamListObjectGeneral.h
src/KingSystem/Resource/GeneralParamList/resGParamListObjectSystem.h
src/KingSystem/Resource/GeneralParamList/resGParamListObjectTraveler.cpp

View File

@ -89061,7 +89061,7 @@
0x000000710118bc58,BgparamlistObjectGeneral::ctor,764,_ZN4ksys3res23GParamListObjectGeneralC2Ev
0x000000710118bf54,BgparamlistObjectEnemy::ctor,1440,_ZN4ksys3res21GParamListObjectEnemyC2Ev
0x000000710118c4f4,BgparamlistObjectEnemyLevel::ctor,936,_ZN4ksys3res26GParamListObjectEnemyLevelC2Ev
0x000000710118c89c,BgparamlistObjectEnemyRace::ctor,2780,
0x000000710118c89c,BgparamlistObjectEnemyRace::ctor,2780,_ZN4ksys3res25GParamListObjectEnemyRaceC2Ev
0x000000710118d378,BgparamlistObjectAttackInterval::ctor,564,
0x000000710118d5ac,BgparamlistObjectEnemyShown::ctor,404,
0x000000710118d740,BgparamlistObjectBindBone::ctor,392,
@ -89149,7 +89149,7 @@
0x00000071011a7ba8,sub_71011A7BA8,12,_ZNK4ksys3res23GParamListObjectGeneral7getNameEv
0x00000071011a7bb4,sub_71011A7BB4,12,_ZNK4ksys3res21GParamListObjectEnemy7getNameEv
0x00000071011a7bc0,sub_71011A7BC0,12,_ZNK4ksys3res26GParamListObjectEnemyLevel7getNameEv
0x00000071011a7bcc,sub_71011A7BCC,12,
0x00000071011a7bcc,sub_71011A7BCC,12,_ZNK4ksys3res25GParamListObjectEnemyRace7getNameEv
0x00000071011a7bd8,sub_71011A7BD8,12,
0x00000071011a7be4,sub_71011A7BE4,12,
0x00000071011a7bf0,sub_71011A7BF0,12,

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

View File

@ -0,0 +1,98 @@
#pragma once
#include <agl/Utils/aglParameter.h>
#include "KingSystem/Resource/GeneralParamList/resGParamListObject.h"
#include "KingSystem/Utils/Types.h"
namespace ksys::res {
class GParamListObjectEnemyRace : public GParamListObject {
public:
GParamListObjectEnemyRace();
const char* getName() const override { return "EnemyRace"; }
agl::utl::Parameter<sead::SafeString> mEquipableWeapon;
agl::utl::Parameter<bool> mIsFitGroundByAnimalUnit;
agl::utl::Parameter<bool> mIsUpdateSupportNormalInAir;
agl::utl::Parameter<f32> mBowAttackRangeRatio;
agl::utl::Parameter<f32> mWeaponScaleSmallSword;
agl::utl::Parameter<sead::Vector3f> mWeaponTransOffsetSmallSword;
agl::utl::Parameter<sead::Vector3f> mWeaponRotOffsetSmallSword;
agl::utl::Parameter<sead::Vector3f> mWeaponHoldTransOffsetSmallSword;
agl::utl::Parameter<sead::Vector3f> mWeaponHoldRotOffsetSmallSword;
agl::utl::Parameter<f32> mWeaponScaleLargeSword;
agl::utl::Parameter<sead::Vector3f> mWeaponTransOffsetLargeSword;
agl::utl::Parameter<sead::Vector3f> mWeaponRotOffsetLargeSword;
agl::utl::Parameter<sead::Vector3f> mWeaponHoldTransOffsetLargeSword;
agl::utl::Parameter<sead::Vector3f> mWeaponHoldRotOffsetLargeSword;
agl::utl::Parameter<f32> mWeaponScaleSpear;
agl::utl::Parameter<sead::Vector3f> mWeaponTransOffsetSpear;
agl::utl::Parameter<sead::Vector3f> mWeaponRotOffsetSpear;
agl::utl::Parameter<sead::Vector3f> mWeaponHoldTransOffsetSpear;
agl::utl::Parameter<sead::Vector3f> mWeaponHoldRotOffsetSpear;
agl::utl::Parameter<f32> mWeaponScaleBow;
agl::utl::Parameter<sead::Vector3f> mWeaponTransOffsetBow;
agl::utl::Parameter<sead::Vector3f> mWeaponRotOffsetBow;
agl::utl::Parameter<sead::Vector3f> mWeaponHoldTransOffsetBow;
agl::utl::Parameter<sead::Vector3f> mWeaponHoldRotOffsetBow;
agl::utl::Parameter<f32> mWeaponScaleShield;
agl::utl::Parameter<sead::Vector3f> mWeaponTransOffsetShield;
agl::utl::Parameter<sead::Vector3f> mWeaponRotOffsetShield;
agl::utl::Parameter<sead::Vector3f> mWeaponHoldTransOffsetShield;
agl::utl::Parameter<sead::Vector3f> mWeaponHoldRotOffsetShield;
agl::utl::Parameter<bool> mIsUseTargetTag;
agl::utl::Parameter<sead::SafeString> mTargetActorType;
agl::utl::Parameter<sead::SafeString> mEscapeAttackedActorType;
agl::utl::Parameter<bool> mReactionBalloon;
agl::utl::Parameter<s32> mSmallRagdollTime;
agl::utl::Parameter<s32> mSmallRagdollRecoverTime;
agl::utl::Parameter<s32> mSmallLargeRagdollTime;
agl::utl::Parameter<s32> mSmallLargeRagdollRecoverTime;
};
KSYS_CHECK_SIZE_NX150(GParamListObjectEnemyRace, 0x590);
inline GParamListObjectEnemyRace::GParamListObjectEnemyRace() {
auto* const obj = &mObj;
mEquipableWeapon.init("", "EquipableWeapon", "", obj);
mIsFitGroundByAnimalUnit.init(true, "IsFitGroundByAnimalUnit", "", obj);
mIsUpdateSupportNormalInAir.init(false, "IsUpdateSupportNormalInAir", "", obj);
mBowAttackRangeRatio.init(1.0, "BowAttackRangeRatio", "", obj);
mWeaponScaleSmallSword.init(1.0, "WeaponScaleSmallSword", "", obj);
mWeaponTransOffsetSmallSword.init({0.0, 0.0, 0.0}, "WeaponTransOffsetSmallSword", "", obj);
mWeaponRotOffsetSmallSword.init({0.0, 0.0, 0.0}, "WeaponRotOffsetSmallSword", "", obj);
mWeaponHoldTransOffsetSmallSword.init({0.0, 0.0, 0.0}, "WeaponHoldTransOffsetSmallSword", "",
obj);
mWeaponHoldRotOffsetSmallSword.init({0.0, 0.0, 0.0}, "WeaponHoldRotOffsetSmallSword", "", obj);
mWeaponScaleLargeSword.init(1.0, "WeaponScaleLargeSword", "", obj);
mWeaponTransOffsetLargeSword.init({0.0, 0.0, 0.0}, "WeaponTransOffsetLargeSword", "", obj);
mWeaponRotOffsetLargeSword.init({0.0, 0.0, 0.0}, "WeaponRotOffsetLargeSword", "", obj);
mWeaponHoldTransOffsetLargeSword.init({0.0, 0.0, 0.0}, "WeaponHoldTransOffsetLargeSword", "",
obj);
mWeaponHoldRotOffsetLargeSword.init({0.0, 0.0, 0.0}, "WeaponHoldRotOffsetLargeSword", "", obj);
mWeaponScaleSpear.init(1.0, "WeaponScaleSpear", "", obj);
mWeaponTransOffsetSpear.init({0.0, 0.0, 0.0}, "WeaponTransOffsetSpear", "", obj);
mWeaponRotOffsetSpear.init({0.0, 0.0, 0.0}, "WeaponRotOffsetSpear", "", obj);
mWeaponHoldTransOffsetSpear.init({0.0, 0.0, 0.0}, "WeaponHoldTransOffsetSpear", "", obj);
mWeaponHoldRotOffsetSpear.init({0.0, 0.0, 0.0}, "WeaponHoldRotOffsetSpear", "", obj);
mWeaponScaleBow.init(1.0, "WeaponScaleBow", "", obj);
mWeaponTransOffsetBow.init({0.0, 0.0, 0.0}, "WeaponTransOffsetBow", "", obj);
mWeaponRotOffsetBow.init({0.0, 0.0, 0.0}, "WeaponRotOffsetBow", "", obj);
mWeaponHoldTransOffsetBow.init({0.0, 0.0, 0.0}, "WeaponHoldTransOffsetBow", "", obj);
mWeaponHoldRotOffsetBow.init({0.0, 0.0, 0.0}, "WeaponHoldRotOffsetBow", "", obj);
mWeaponScaleShield.init(1.0, "WeaponScaleShield", "", obj);
mWeaponTransOffsetShield.init({0.0, 0.0, 0.0}, "WeaponTransOffsetShield", "", obj);
mWeaponRotOffsetShield.init({0.0, 0.0, 0.0}, "WeaponRotOffsetShield", "", obj);
mWeaponHoldTransOffsetShield.init({0.0, 0.0, 0.0}, "WeaponHoldTransOffsetShield", "", obj);
mWeaponHoldRotOffsetShield.init({0.0, 0.0, 0.0}, "WeaponHoldRotOffsetShield", "", obj);
mIsUseTargetTag.init(false, "IsUseTargetTag", "", obj);
mTargetActorType.init("Player", "TargetActorType", "", obj);
mEscapeAttackedActorType.init("", "EscapeAttackedActorType", "", obj);
mReactionBalloon.init(false, "ReactionBalloon", "", obj);
mSmallRagdollTime.init(8, "SmallRagdollTime", "", obj);
mSmallRagdollRecoverTime.init(15, "SmallRagdollRecoverTime", "", obj);
mSmallLargeRagdollTime.init(60, "SmallLargeRagdollTime", "", obj);
mSmallLargeRagdollRecoverTime.init(20, "SmallLargeRagdollRecoverTime", "", obj);
}
} // namespace ksys::res

View File

@ -5,6 +5,7 @@
#include "KingSystem/Resource/GeneralParamList/resGParamListObject.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectEnemy.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectEnemyLevel.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectEnemyRace.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectGeneral.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectSystem.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListTraits.h"
@ -45,6 +46,7 @@ bool GParamList::parse_(u8* data, size_t, sead::Heap* heap) {
add<GParamListObjType::General>(archive.getRootList(), "General", heap, dummy_list);
add<GParamListObjType::Enemy>(archive.getRootList(), "Enemy", heap, dummy_list);
add<GParamListObjType::EnemyLevel>(archive.getRootList(), "EnemyLevel", heap, dummy_list);
add<GParamListObjType::EnemyRace>(archive.getRootList(), "EnemyRace", heap, dummy_list);
// TODO: the rest