From 2e966d034c909e5ff2fc869b0a75686d481e9379 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Tue, 20 Apr 2021 15:02:12 +0200 Subject: [PATCH] ksys: Fix matching issue in _ZN4ksys4phys13RagdollConfig15PartImpulseInfoC1Ev (missing external constants) --- data/uking_functions.csv | 2 +- src/KingSystem/Physics/Ragdoll/physRagdollConfig.cpp | 10 +++++----- src/KingSystem/Resource/resResourceRagdollConfig.cpp | 4 ++++ src/KingSystem/Resource/resResourceRagdollConfig.h | 4 ++++ 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/data/uking_functions.csv b/data/uking_functions.csv index 8768793a..2cbd23ba 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -79517,7 +79517,7 @@ 0x0000007100e9f98c,sub_7100E9F98C,92, 0x0000007100e9f9e8,sub_7100E9F9E8,608,_ZN4ksys4phys13RagdollConfig15PartImpulseInfo10ReceiveObjC1Ev 0x0000007100e9fc48,sub_7100E9FC48,620,_ZN4ksys4phys13RagdollConfig15PartImpulseInfo10ImpulseObjC1Ev -0x0000007100e9feb4,sub_7100E9FEB4,556,_ZN4ksys4phys13RagdollConfig15PartImpulseInfoC1Ev? +0x0000007100e9feb4,sub_7100E9FEB4,556,_ZN4ksys4phys13RagdollConfig15PartImpulseInfoC1Ev 0x0000007100ea00e0,sub_7100EA00E0,568,_ZN4ksys4phys13RagdollConfig17ImpactImpulseInfoC1Ev 0x0000007100ea0318,sub_7100EA0318,784,_ZN4ksys4phys13RagdollConfigC1Ev 0x0000007100ea0628,sub_7100EA0628,432,_ZN4ksys4phys13RagdollConfigD1Ev diff --git a/src/KingSystem/Physics/Ragdoll/physRagdollConfig.cpp b/src/KingSystem/Physics/Ragdoll/physRagdollConfig.cpp index 1403a775..87d50703 100644 --- a/src/KingSystem/Physics/Ragdoll/physRagdollConfig.cpp +++ b/src/KingSystem/Physics/Ragdoll/physRagdollConfig.cpp @@ -1,4 +1,5 @@ #include "KingSystem/Physics/Ragdoll/physRagdollConfig.h" +#include "KingSystem/Resource/resResourceRagdollConfig.h" namespace ksys::phys { @@ -15,19 +16,18 @@ RagdollConfig::PartImpulseInfo::ImpulseObj::ImpulseObj() mAttackPoint({0, 0, 0}, "AttackPoint", "インパルスを与える点", this), mImpulsePower(0.1, "ImpulsePower", "インパルスの強さ", this) {} -// NON_MATCHING: loop unrolling RagdollConfig::PartImpulseInfo::PartImpulseInfo() : mIsUseReceiveImpulse(true, "IsUseReceiveImpulse", "攻撃インパルスを反映させるかどうか", &mObj), mIsUseFixedImpulse(true, "IsUseFixedImpulse", "固定インパルスを反映させるかどうか", &mObj) { - for (int i = 0; i < mReceiveObjs.size(); ++i) { + for (int i = 0; i < res::RagdollConfig::cNumReceiveObjs; ++i) { sead::FormatFixedSafeString<128> name("ReceiveObj%02d", i + 1); - addObj(&mReceiveObjs[i], name); + addObj(&mReceiveObjs(i), name); } - for (int i = 0; i < mImpulseObjs.size(); ++i) { + for (int i = 0; i < res::RagdollConfig::cNumImpulseObjs; ++i) { sead::FormatFixedSafeString<128> name("ImpulseObj%02d", i + 1); - addObj(&mImpulseObjs[i], name); + addObj(&mImpulseObjs(i), name); } addObj(&mObj, "PartImpulseData"); diff --git a/src/KingSystem/Resource/resResourceRagdollConfig.cpp b/src/KingSystem/Resource/resResourceRagdollConfig.cpp index 56be5211..fa9874d0 100644 --- a/src/KingSystem/Resource/resResourceRagdollConfig.cpp +++ b/src/KingSystem/Resource/resResourceRagdollConfig.cpp @@ -2,6 +2,10 @@ namespace ksys::res { +const int RagdollConfig::cNumReceiveObjs = 3; +const int RagdollConfig::cNumImpulseObjs = 5; +const int RagdollConfig::cNumXXX = 10; + RagdollConfig::RagdollConfig() : ParamIO("rgconfig", 0) {} RagdollConfig::~RagdollConfig() = default; diff --git a/src/KingSystem/Resource/resResourceRagdollConfig.h b/src/KingSystem/Resource/resResourceRagdollConfig.h index a97fa3a4..9b148720 100644 --- a/src/KingSystem/Resource/resResourceRagdollConfig.h +++ b/src/KingSystem/Resource/resResourceRagdollConfig.h @@ -18,6 +18,10 @@ public: const phys::RagdollConfig& getConfig() const { return mConfig; } + static const int cNumReceiveObjs; + static const int cNumImpulseObjs; + static const int cNumXXX; // FIXME: rename + private: phys::RagdollConfig mConfig; };