diff --git a/data/uking_functions.csv b/data/uking_functions.csv index d8c28c5b..b4e611d0 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -96593,7 +96593,7 @@ 0x00000071012f1b5c,sub_71012F1B5C,756, 0x00000071012f1e50,sub_71012F1E50,168, 0x00000071012f1ef8,sub_71012F1EF8,896,_ZN4ksys3res9ASSetting10BoneParams5parseERKNS0_13ASParamParser9ParseArgsE! -0x00000071012f2278,sub_71012F2278,300, +0x00000071012f2278,sub_71012F2278,300,_ZNK4ksys3res9ASSetting10BoneParams13getBoneWeightERKN4sead14SafeStringBaseIcEE 0x00000071012f23a4,sub_71012F23A4,132, 0x00000071012f2428,sub_71012F2428,508, 0x00000071012f2624,sub_71012F2624,636, diff --git a/src/KingSystem/Resource/resResourceASSetting.cpp b/src/KingSystem/Resource/resResourceASSetting.cpp index cab069d7..b465900a 100644 --- a/src/KingSystem/Resource/resResourceASSetting.cpp +++ b/src/KingSystem/Resource/resResourceASSetting.cpp @@ -103,4 +103,12 @@ bool ASSetting::BoneParams::parse(const ASParamParser::ParseArgs& args) { return true; } +f32 ASSetting::BoneParams::getBoneWeight(const sead::SafeString& name) const { + for (const auto& param : mBuffer) { + if (name == *param.mBone) + return *param.mWeight; + } + return 1.0; +} + } // namespace ksys::res diff --git a/src/KingSystem/Resource/resResourceASSetting.h b/src/KingSystem/Resource/resResourceASSetting.h index d92268e0..f786767f 100644 --- a/src/KingSystem/Resource/resResourceASSetting.h +++ b/src/KingSystem/Resource/resResourceASSetting.h @@ -30,6 +30,7 @@ public: public: ~BoneParams() override; bool parse(const ParseArgs& args) override; + f32 getBoneWeight(const sead::SafeString& name) const; sead::Buffer mBuffer; };