diff options
| author | Léo Lam <leo@leolam.fr> | 2026-10-16 00:18:41 +0100 |
|---|---|---|
| committer | Léo Lam <leo@leolam.fr> | 2026-10-16 00:18:41 +0100 |
| commit | ef164cc8aac3a4d1729d3cbf722dec9b30a0c147 (patch) | |
| tree | b47660a2a6fddfa1932cd81f5ffd7673a00cce74 /src | |
| parent | 7286390beae272d1f8201e45ecf725d75241a84d (diff) | |
ksys/phys: move motionTypeFromText to physUtil
motionTypeFromText isn't part of physDefines: its "Keyframed" string
(only used there) sits between the StaticCompound and PlayReport strings
in .rodata, far from physDefines' enum text, and the function is linked
right after the contact listener's inline virtuals, so it most likely
starts a new TU at 0x7100fd069c.
Nothing separates it from getMaterialMaskFromShape and the other helpers
in physUtil, so it goes in the same file and its declaration moves to
physUtil.h. That part is a guess: neither function has data that would
show a boundary.
(AI assisted using Claude Opus 5.5)
Diffstat (limited to 'src')
| -rw-r--r-- | src/KingSystem/Physics/RigidBody/physRigidBodyParam.cpp | 1 | ||||
| -rw-r--r-- | src/KingSystem/Physics/System/physUtil.cpp | 24 | ||||
| -rw-r--r-- | src/KingSystem/Physics/System/physUtil.h | 5 | ||||
| -rw-r--r-- | src/KingSystem/Physics/physDefines.cpp | 19 | ||||
| -rw-r--r-- | src/KingSystem/Physics/physDefines.h | 2 |
5 files changed, 30 insertions, 21 deletions
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<MotionType>(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 <basis/seadTypes.h> #include <math/seadVector.h> +#include <prim/seadSafeString.h> 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<MotionType>(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 |
