ksys/res: Implement GParamList WeaponCommon

This commit is contained in:
Léo Lam 2020-09-19 22:45:05 +02:00
parent f22c87d03f
commit a079a5ab20
No known key found for this signature in database
GPG Key ID: 0DF30F9081000741
4 changed files with 119 additions and 2 deletions

View File

@ -75,6 +75,7 @@ add_executable(uking
src/KingSystem/Resource/GeneralParamList/resGParamListObjectSystem.h
src/KingSystem/Resource/GeneralParamList/resGParamListObjectTraveler.cpp
src/KingSystem/Resource/GeneralParamList/resGParamListObjectTraveler.h
src/KingSystem/Resource/GeneralParamList/resGParamListObjectWeaponCommon.h
src/KingSystem/Resource/GeneralParamList/resGParamListTraits.h
src/KingSystem/Resource/resCurrentResNameMgr.cpp
src/KingSystem/Resource/resCurrentResNameMgr.h

View File

@ -89066,7 +89066,7 @@
0x000000710118d5ac,BgparamlistObjectEnemyShown::ctor,404,_ZN4ksys3res26GParamListObjectEnemyShownC2Ev
0x000000710118d740,BgparamlistObjectBindBone::ctor,392,_ZN4ksys3res24GParamListObjectBindBoneC2Ev
0x000000710118d8c8,BgparamlistObjectAttack::ctor,900,_ZN4ksys3res22GParamListObjectAttackC2Ev
0x000000710118dc4c,BgparamlistObjectWeaponCommon::ctor,3288,
0x000000710118dc4c,BgparamlistObjectWeaponCommon::ctor,3288,_ZN4ksys3res28GParamListObjectWeaponCommonC2Ev
0x000000710118e924,BgparamlistObjectWeaponThrow::ctor,432,
0x000000710118ead4,BgparamlistObjectSandworm::ctor,1992,
0x000000710118f29c,BgparamlistObjectSmallSword::ctor,1756,
@ -89154,7 +89154,7 @@
0x00000071011a7be4,sub_71011A7BE4,12,_ZNK4ksys3res26GParamListObjectEnemyShown7getNameEv
0x00000071011a7bf0,sub_71011A7BF0,12,_ZNK4ksys3res24GParamListObjectBindBone7getNameEv
0x00000071011a7bfc,sub_71011A7BFC,12,_ZNK4ksys3res22GParamListObjectAttack7getNameEv
0x00000071011a7c08,sub_71011A7C08,12,
0x00000071011a7c08,sub_71011A7C08,12,_ZNK4ksys3res28GParamListObjectWeaponCommon7getNameEv
0x00000071011a7c14,sub_71011A7C14,12,
0x00000071011a7c20,sub_71011A7C20,12,
0x00000071011a7c2c,sub_71011A7C2C,12,

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

View File

@ -0,0 +1,114 @@
#pragma once
#include <agl/Utils/aglParameter.h>
#include "KingSystem/Resource/GeneralParamList/resGParamListObject.h"
#include "KingSystem/Utils/Types.h"
namespace ksys::res {
class GParamListObjectWeaponCommon : public GParamListObject {
public:
GParamListObjectWeaponCommon();
const char* getName() const override { return "WeaponCommon"; }
agl::utl::Parameter<f32> mPlayerEqScale;
agl::utl::Parameter<f32> mEnemyEqScale;
agl::utl::Parameter<s32> mGuardPower;
agl::utl::Parameter<s32> mRank;
agl::utl::Parameter<bool> mIsHammer;
agl::utl::Parameter<bool> mIsWeakBreaker;
agl::utl::Parameter<bool> mIsBoomerang;
agl::utl::Parameter<bool> mIsBlunt;
agl::utl::Parameter<bool> mIsLuckyWeapon;
agl::utl::Parameter<bool> mIsPikohan;
agl::utl::Parameter<bool> mIsThrowingWeapon;
agl::utl::Parameter<bool> mIsThrowingBreakWeapon;
agl::utl::Parameter<f32> mThrowRange;
agl::utl::Parameter<sead::SafeString> mDreadActor;
agl::utl::Parameter<sead::SafeString> mThroughActor;
agl::utl::Parameter<sead::SafeString> mNPCWeaponType;
agl::utl::Parameter<bool> mIsNotOnTerrorHold;
agl::utl::Parameter<bool> mIsAsOffUnEquiped;
agl::utl::Parameter<s32> mChemicalEnergyMax;
agl::utl::Parameter<s32> mChemicalEnergyAmountUsed;
agl::utl::Parameter<f32> mChemicalEnergyRecoverRate;
agl::utl::Parameter<s32> mChemicalEnergyRecoverInterval;
agl::utl::Parameter<s32> mStickDamage;
agl::utl::Parameter<sead::SafeString> mShootBeam;
agl::utl::Parameter<sead::Vector3f> mDropFromPorchRot;
agl::utl::Parameter<f32> mSharpWeaponPer;
agl::utl::Parameter<s32> mSharpWeaponAddAtkMin;
agl::utl::Parameter<s32> mSharpWeaponAddAtkMax;
agl::utl::Parameter<s32> mSharpWeaponAddLifeMin;
agl::utl::Parameter<s32> mSharpWeaponAddLifeMax;
agl::utl::Parameter<bool> mSharpWeaponAddCrit;
agl::utl::Parameter<s32> mSharpWeaponAddGuardMin;
agl::utl::Parameter<s32> mSharpWeaponAddGuardMax;
agl::utl::Parameter<s32> mPoweredSharpAddAtkMin;
agl::utl::Parameter<s32> mPoweredSharpAddAtkMax;
agl::utl::Parameter<s32> mPoweredSharpAddLifeMin;
agl::utl::Parameter<s32> mPoweredSharpAddLifeMax;
agl::utl::Parameter<s32> mPoweredSharpWeaponAddGuardMin;
agl::utl::Parameter<s32> mPoweredSharpWeaponAddGuardMax;
agl::utl::Parameter<f32> mPoweredSharpAddThrowMin;
agl::utl::Parameter<f32> mPoweredSharpAddThrowMax;
agl::utl::Parameter<bool> mPoweredSharpAddSpreadFire;
agl::utl::Parameter<bool> mPoweredSharpAddZoomRapid;
agl::utl::Parameter<f32> mPoweredSharpAddRapidFireMin;
agl::utl::Parameter<f32> mPoweredSharpAddRapidFireMax;
agl::utl::Parameter<bool> mPoweredSharpAddSurfMaster;
};
KSYS_CHECK_SIZE_NX150(GParamListObjectWeaponCommon, 0x620);
inline GParamListObjectWeaponCommon::GParamListObjectWeaponCommon() {
auto* const obj = &mObj;
mPlayerEqScale.init(1.0, "PlayerEqScale", "", obj);
mEnemyEqScale.init(1.0, "EnemyEqScale", "", obj);
mGuardPower.init(0, "GuardPower", "", obj);
mRank.init(0, "Rank", "", obj);
mIsHammer.init(false, "IsHammer", "", obj);
mIsWeakBreaker.init(false, "IsWeakBreaker", "", obj);
mIsBoomerang.init(false, "IsBoomerang", "", obj);
mIsBlunt.init(false, "IsBlunt", "", obj);
mIsLuckyWeapon.init(false, "IsLuckyWeapon", "", obj);
mIsPikohan.init(false, "IsPikohan", "", obj);
mIsThrowingWeapon.init(true, "IsThrowingWeapon", "", obj);
mIsThrowingBreakWeapon.init(true, "IsThrowingBreakWeapon", "", obj);
mThrowRange.init(20.0, "ThrowRange", "", obj);
mDreadActor.init("", "DreadActor", "", obj);
mThroughActor.init("", "ThroughActor", "", obj);
mNPCWeaponType.init("", "NPCWeaponType", "", obj);
mIsNotOnTerrorHold.init(false, "IsNotOnTerrorHold", "", obj);
mIsAsOffUnEquiped.init(false, "IsAsOffUnEquiped", "", obj);
mChemicalEnergyMax.init(0, "ChemicalEnergyMax", "", obj);
mChemicalEnergyAmountUsed.init(0, "ChemicalEnergyAmountUsed", "", obj);
mChemicalEnergyRecoverRate.init(0.0, "ChemicalEnergyRecoverRate", "", obj);
mChemicalEnergyRecoverInterval.init(60, "ChemicalEnergyRecoverInterval", "", obj);
mStickDamage.init(0, "StickDamage", "", obj);
mShootBeam.init("", "ShootBeam", "", obj);
mDropFromPorchRot.init({0.0, 0.0, 0.0}, "DropFromPorchRot", "", obj);
mSharpWeaponPer.init(10.0, "SharpWeaponPer", "", obj);
mSharpWeaponAddAtkMin.init(0, "SharpWeaponAddAtkMin", "", obj);
mSharpWeaponAddAtkMax.init(0, "SharpWeaponAddAtkMax", "", obj);
mSharpWeaponAddLifeMin.init(0, "SharpWeaponAddLifeMin", "", obj);
mSharpWeaponAddLifeMax.init(0, "SharpWeaponAddLifeMax", "", obj);
mSharpWeaponAddCrit.init(false, "SharpWeaponAddCrit", "", obj);
mSharpWeaponAddGuardMin.init(0, "SharpWeaponAddGuardMin", "", obj);
mSharpWeaponAddGuardMax.init(0, "SharpWeaponAddGuardMax", "", obj);
mPoweredSharpAddAtkMin.init(0, "PoweredSharpAddAtkMin", "", obj);
mPoweredSharpAddAtkMax.init(0, "PoweredSharpAddAtkMax", "", obj);
mPoweredSharpAddLifeMin.init(0, "PoweredSharpAddLifeMin", "", obj);
mPoweredSharpAddLifeMax.init(0, "PoweredSharpAddLifeMax", "", obj);
mPoweredSharpWeaponAddGuardMin.init(0, "PoweredSharpWeaponAddGuardMin", "", obj);
mPoweredSharpWeaponAddGuardMax.init(0, "PoweredSharpWeaponAddGuardMax", "", obj);
mPoweredSharpAddThrowMin.init(1.0, "PoweredSharpAddThrowMin", "", obj);
mPoweredSharpAddThrowMax.init(1.0, "PoweredSharpAddThrowMax", "", obj);
mPoweredSharpAddSpreadFire.init(false, "PoweredSharpAddSpreadFire", "", obj);
mPoweredSharpAddZoomRapid.init(false, "PoweredSharpAddZoomRapid", "", obj);
mPoweredSharpAddRapidFireMin.init(1.0, "PoweredSharpAddRapidFireMin", "", obj);
mPoweredSharpAddRapidFireMax.init(1.0, "PoweredSharpAddRapidFireMax", "", obj);
mPoweredSharpAddSurfMaster.init(false, "PoweredSharpAddSurfMaster", "", obj);
}
} // namespace ksys::res

View File

@ -12,6 +12,7 @@
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectEnemyShown.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectGeneral.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectSystem.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListObjectWeaponCommon.h"
#include "KingSystem/Resource/GeneralParamList/resGParamListTraits.h"
namespace ksys::res {
@ -56,6 +57,7 @@ bool GParamList::parse_(u8* data, size_t, sead::Heap* heap) {
add<GParamListObjType::EnemyShown>(archive.getRootList(), "EnemyShown", heap, dummy_list);
add<GParamListObjType::BindBone>(archive.getRootList(), "BindBone", heap, dummy_list);
add<GParamListObjType::Attack>(archive.getRootList(), "Attack", heap, dummy_list);
add<GParamListObjType::WeaponCommon>(archive.getRootList(), "WeaponCommon", heap, dummy_list);
// TODO: the rest