diff --git a/src/KingSystem/Physics/RigidBody/physRigidBody.cpp b/src/KingSystem/Physics/RigidBody/physRigidBody.cpp index 5b1a6dbb..46c87f0c 100644 --- a/src/KingSystem/Physics/RigidBody/physRigidBody.cpp +++ b/src/KingSystem/Physics/RigidBody/physRigidBody.cpp @@ -44,7 +44,7 @@ RigidBody::RigidBody(Type type, ContactLayerType layer_type, hkpRigidBody* hk_bo mHkBody->m_responseModifierFlags |= hkpResponseModifier::Flags::MASS_SCALING; } - mFlags.change(Flag::IsCharacterController, isCharacterControllerType()); + mFlags.change(Flag::HighQualityCollidable, isCharacterControllerType()); mFlags.change(Flag::IsSensor, layer_type == ContactLayerType::Sensor); mFlags.change(Flag::_10, a7); mFlags.set(Flag::_100); @@ -370,7 +370,7 @@ void RigidBody::updateCollidableQualityType(bool high_quality) { if (isCharacterControllerType()) { setCollidableQualityType(HK_COLLIDABLE_QUALITY_CHARACTER); - mFlags.set(Flag::IsCharacterController); + mFlags.set(Flag::HighQualityCollidable); return; } @@ -392,7 +392,7 @@ void RigidBody::updateCollidableQualityType(bool high_quality) { break; } - mFlags.change(Flag::IsCharacterController, high_quality); + mFlags.change(Flag::HighQualityCollidable, high_quality); } void RigidBody::setCollidableQualityType(hkpCollidableQualityType quality) { diff --git a/src/KingSystem/Physics/RigidBody/physRigidBody.h b/src/KingSystem/Physics/RigidBody/physRigidBody.h index 4b5c1b22..6ebf7042 100644 --- a/src/KingSystem/Physics/RigidBody/physRigidBody.h +++ b/src/KingSystem/Physics/RigidBody/physRigidBody.h @@ -54,7 +54,8 @@ public: _10 = 1 << 4, _20 = 1 << 5, _40 = 1 << 6, - IsCharacterController = 1 << 7, + /// Indicates whether the Havok collidable has been configured to use a higher quality type. + HighQualityCollidable = 1 << 7, _100 = 1 << 8, _200 = 1 << 9, _400 = 1 << 10, diff --git a/src/KingSystem/Physics/RigidBody/physRigidBodyMotionEntity.cpp b/src/KingSystem/Physics/RigidBody/physRigidBodyMotionEntity.cpp index 1ef30076..c0b7f8f5 100644 --- a/src/KingSystem/Physics/RigidBody/physRigidBodyMotionEntity.cpp +++ b/src/KingSystem/Physics/RigidBody/physRigidBodyMotionEntity.cpp @@ -525,7 +525,7 @@ void RigidBodyMotionEntity::updateRigidBodyMotionExceptState() { // Fix up pointers and invalidate cached info. switch (mBody->getMotionType()) { case MotionType::Dynamic: - getHkBody()->setQualityType(mBody->hasFlag(RigidBody::Flag::IsCharacterController) ? + getHkBody()->setQualityType(mBody->hasFlag(RigidBody::Flag::HighQualityCollidable) ? HK_COLLIDABLE_QUALITY_BULLET : HK_COLLIDABLE_QUALITY_DEBRIS); break; @@ -561,7 +561,7 @@ void RigidBodyMotionEntity::updateRigidBodyMotionExceptStateAndVel() { *getHkBody()->getMotion()->getMotionState() = state; getHkBody()->getMotion()->m_linearVelocity = linear_vel; getHkBody()->getMotion()->m_angularVelocity = angular_vel; - getHkBody()->setQualityType(mBody->hasFlag(RigidBody::Flag::IsCharacterController) ? + getHkBody()->setQualityType(mBody->hasFlag(RigidBody::Flag::HighQualityCollidable) ? HK_COLLIDABLE_QUALITY_BULLET : HK_COLLIDABLE_QUALITY_DEBRIS); getHkBody()->getMotion()->m_deactivationIntegrateCounter = deactivation_counter;