From 0551528a18b810c4f0e9415d095b69e5d7f7349f Mon Sep 17 00:00:00 2001 From: Daniele Bartolini Date: Sun, 22 Feb 2026 00:50:09 +0100 Subject: [PATCH 1/2] world: drop unused code --- src/world/physics_world_bullet.cpp | 26 -------------------------- 1 file changed, 26 deletions(-) diff --git a/src/world/physics_world_bullet.cpp b/src/world/physics_world_bullet.cpp index 238df1263..6c753ef78 100644 --- a/src/world/physics_world_bullet.cpp +++ b/src/world/physics_world_bullet.cpp @@ -267,32 +267,6 @@ struct MyFilterCallback : public btOverlapFilterCallback } }; -/// @todo Interact with dynamic objects, -/// Ride kinematicly animated platforms properly -/// More realistic (or maybe just a config option) falling -/// -> Should integrate falling velocity manually and use that in stepDown() -/// Support jumping -/// Support ducking -class btKinematicClosestNotMeRayResultCallback : public btCollisionWorld::ClosestRayResultCallback -{ -public: - btCollisionObject *_me; - - btKinematicClosestNotMeRayResultCallback(btCollisionObject *me) - : btCollisionWorld::ClosestRayResultCallback(btVector3(0.0, 0.0, 0.0), btVector3(0.0, 0.0, 0.0)) - { - _me = me; - } - - virtual btScalar addSingleResult(btCollisionWorld::LocalRayResult &ray_result, bool normal_in_world_space) - { - if (ray_result.m_collisionObject == _me) - return 1.0; - - return ClosestRayResultCallback::addSingleResult(ray_result, normal_in_world_space); - } -}; - class btKinematicClosestNotMeConvexResultCallback : public btCollisionWorld::ClosestConvexResultCallback { public: From 76d09943d052ccccfa0b60064a316c7928f58a5a Mon Sep 17 00:00:00 2001 From: Daniele Bartolini Date: Sun, 22 Feb 2026 00:50:40 +0100 Subject: [PATCH 2/2] world: fix needsCollision() --- src/world/physics_world_bullet.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/world/physics_world_bullet.cpp b/src/world/physics_world_bullet.cpp index 6c753ef78..2b65fad5d 100644 --- a/src/world/physics_world_bullet.cpp +++ b/src/world/physics_world_bullet.cpp @@ -301,6 +301,13 @@ class btKinematicClosestNotMeConvexResultCallback : public btCollisionWorld::Clo return ClosestConvexResultCallback::addSingleResult(convex_result, normal_in_world_space); } + + virtual bool needsCollision(btBroadphaseProxy *proxy0) const + { + bool collides = (proxy0->m_collisionFilterGroup & m_collisionFilterMask) != 0; + collides = collides || (m_collisionFilterGroup & proxy0->m_collisionFilterMask); + return collides; + } }; struct MoverFlags