diff --git a/src/KingSystem/Physics/RigidBody/physRigidBody.cpp b/src/KingSystem/Physics/RigidBody/physRigidBody.cpp index 153f5d6c..3689a25c 100644 --- a/src/KingSystem/Physics/RigidBody/physRigidBody.cpp +++ b/src/KingSystem/Physics/RigidBody/physRigidBody.cpp @@ -326,7 +326,7 @@ bool RigidBody::setLinearVelocity(const sead::Vector3f& velocity, float epsilon) return false; } - if (!isSensor() && RigidBodyRequestMgr::Config::isLinearVelocityTooHigh(velocity)) { + if (isEntity() && RigidBodyRequestMgr::Config::isLinearVelocityTooHigh(velocity)) { onInvalidParameter(1); return false; } @@ -443,7 +443,7 @@ void RigidBody::applyLinearImpulse(const sead::Vector3f& impulse) { return; } - if (!isSensor()) + if (isEntity()) getEntityMotionAccessor()->applyLinearImpulse(impulse); } @@ -459,7 +459,7 @@ void RigidBody::applyAngularImpulse(const sead::Vector3f& impulse) { return; } - if (!isSensor()) + if (isEntity()) getEntityMotionAccessor()->applyAngularImpulse(impulse); } @@ -480,24 +480,24 @@ void RigidBody::applyPointImpulse(const sead::Vector3f& impulse, const sead::Vec return; } - if (!isSensor()) + if (isEntity()) getEntityMotionAccessor()->applyPointImpulse(impulse, point); } void RigidBody::setMass(float mass) { - if (isSensor()) + if (!isEntity()) return; getEntityMotionAccessor()->setMass(mass); } float RigidBody::getMass() const { - if (isSensor()) + if (!isEntity()) return 0.0; return getEntityMotionAccessor()->getMass(); } float RigidBody::getMassInv() const { - if (isSensor()) + if (!isEntity()) return 0.0; return getEntityMotionAccessor()->getMassInv(); } diff --git a/src/KingSystem/Physics/RigidBody/physRigidBody.h b/src/KingSystem/Physics/RigidBody/physRigidBody.h index 211bf001..2726270a 100644 --- a/src/KingSystem/Physics/RigidBody/physRigidBody.h +++ b/src/KingSystem/Physics/RigidBody/physRigidBody.h @@ -260,6 +260,7 @@ public: float getGravityFactor() const; bool isSensor() const { return mFlags.isOn(Flag::IsSensor); } + bool isEntity() const { return !mFlags.isOn(Flag::IsSensor); } ContactLayerType getLayerType() const { return isSensor() ? ContactLayerType::Sensor : ContactLayerType::Entity; } diff --git a/src/KingSystem/Physics/RigidBody/physRigidBodyMotionSensor.cpp b/src/KingSystem/Physics/RigidBody/physRigidBodyMotionSensor.cpp index 3a25f4b9..346ba356 100644 --- a/src/KingSystem/Physics/RigidBody/physRigidBodyMotionSensor.cpp +++ b/src/KingSystem/Physics/RigidBody/physRigidBodyMotionSensor.cpp @@ -286,7 +286,7 @@ void RigidBodyMotionSensor::setLinkedRigidBody(RigidBody* body) { } if (body) { - if (!body->isSensor() && mFlags.isOff(Flag::HasLinkedRigidBodyWithoutFlag10)) { + if (body->isEntity() && mFlags.isOff(Flag::HasLinkedRigidBodyWithoutFlag10)) { RigidBodyMotionEntity* accessor = body->getEntityMotionAccessorForSensor(); if (accessor && accessor->registerAccessor(this)) { mLinkedRigidBody = body;