summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2026-10-16 00:18:41 +0100
committerLéo Lam <leo@leolam.fr>2026-10-16 00:18:41 +0100
commitef164cc8aac3a4d1729d3cbf722dec9b30a0c147 (patch)
treeb47660a2a6fddfa1932cd81f5ffd7673a00cce74 /src
parent7286390beae272d1f8201e45ecf725d75241a84d (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.cpp1
-rw-r--r--src/KingSystem/Physics/System/physUtil.cpp24
-rw-r--r--src/KingSystem/Physics/System/physUtil.h5
-rw-r--r--src/KingSystem/Physics/physDefines.cpp19
-rw-r--r--src/KingSystem/Physics/physDefines.h2
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