diff --git a/src/KingSystem/Physics/RigidBody/physRigidBodyParam.cpp b/src/KingSystem/Physics/RigidBody/physRigidBodyParam.cpp index 73021829..ffca4698 100644 --- a/src/KingSystem/Physics/RigidBody/physRigidBodyParam.cpp +++ b/src/KingSystem/Physics/RigidBody/physRigidBodyParam.cpp @@ -19,6 +19,7 @@ #include "KingSystem/Physics/RigidBody/physRigidBodyPolytope.h" #include "KingSystem/Physics/RigidBody/physRigidBodySphere.h" #include "KingSystem/Physics/System/physEntityGroupFilter.h" +#include "KingSystem/Physics/System/physUtil.h" #include "KingSystem/Utils/SafeDelete.h" namespace ksys::phys { diff --git a/src/KingSystem/Physics/System/physUtil.cpp b/src/KingSystem/Physics/System/physUtil.cpp index 95e685be..d5ed8af5 100644 --- a/src/KingSystem/Physics/System/physUtil.cpp +++ b/src/KingSystem/Physics/System/physUtil.cpp @@ -1 +1,25 @@ #include "KingSystem/Physics/System/physUtil.h" +#include "KingSystem/Physics/physDefines.h" + +namespace ksys::phys { + +MotionType motionTypeFromText(const sead::SafeString& text) { + static constexpr const char* texts[] = { + "Dynamic", + "Fixed", + "Keyframed", + }; + static_assert(int(MotionType::Dynamic) == 0); + static_assert(int(MotionType::Fixed) == 1); + static_assert(int(MotionType::Keyframed) == 2); + + int type = 0; + for (const char* type_text : texts) { + if (text == type_text) + return static_cast(type); + ++type; + } + return MotionType::Unknown; +} + +} // namespace ksys::phys diff --git a/src/KingSystem/Physics/System/physUtil.h b/src/KingSystem/Physics/System/physUtil.h index 976a6889..94d56ee6 100644 --- a/src/KingSystem/Physics/System/physUtil.h +++ b/src/KingSystem/Physics/System/physUtil.h @@ -2,6 +2,7 @@ #include #include +#include class hkpCollidable; class hkpShape; @@ -14,6 +15,10 @@ namespace ksys::phys { class StaticCompoundRigidBodyGroup; struct RigidBodyCollisionMasks; +enum class MotionType; + +// 0x0000007100fd069c +MotionType motionTypeFromText(const sead::SafeString& text); // 0x0000007100fd0810 u32 getMaterialMaskFromShape(const hkpShape& shape, const u32* shape_key, diff --git a/src/KingSystem/Physics/physDefines.cpp b/src/KingSystem/Physics/physDefines.cpp index 079b5c72..06938e95 100644 --- a/src/KingSystem/Physics/physDefines.cpp +++ b/src/KingSystem/Physics/physDefines.cpp @@ -84,23 +84,4 @@ WallCode wallCodeFromText(const sead::SafeString& text) { return 0; } -MotionType motionTypeFromText(const sead::SafeString& text) { - static constexpr const char* texts[] = { - "Dynamic", - "Fixed", - "Keyframed", - }; - static_assert(int(MotionType::Dynamic) == 0); - static_assert(int(MotionType::Fixed) == 1); - static_assert(int(MotionType::Keyframed) == 2); - - int type = 0; - for (const char* type_text : texts) { - if (text == type_text) - return static_cast(type); - ++type; - } - return MotionType::Unknown; -} - } // namespace ksys::phys diff --git a/src/KingSystem/Physics/physDefines.h b/src/KingSystem/Physics/physDefines.h index a7bd1464..3625d1b3 100644 --- a/src/KingSystem/Physics/physDefines.h +++ b/src/KingSystem/Physics/physDefines.h @@ -401,6 +401,4 @@ FloorCode floorCodeFromText(const sead::SafeString& text); const char* wallCodeToText(WallCode code); WallCode wallCodeFromText(const sead::SafeString& text); -MotionType motionTypeFromText(const sead::SafeString& text); - } // namespace ksys::phys