diff --git a/apps/openmw/mwphysics/actor.cpp b/apps/openmw/mwphysics/actor.cpp index c566c3a1ed..e140141e32 100644 --- a/apps/openmw/mwphysics/actor.cpp +++ b/apps/openmw/mwphysics/actor.cpp @@ -21,7 +21,7 @@ namespace MWPhysics Actor::Actor(const MWWorld::Ptr& ptr, const Resource::BulletShape* shape, PhysicsTaskScheduler* scheduler, bool canWaterWalk) : mStandingOnPtr(nullptr), mCanWaterWalk(canWaterWalk), mWalkingOnWater(false) - , mCollisionObject(nullptr), mMeshTranslation(shape->mCollisionBox.center), mOriginalHalfExtents(shape->mCollisionBox.extents) + , mMeshTranslation(shape->mCollisionBox.center), mOriginalHalfExtents(shape->mCollisionBox.extents) , mVelocity(0,0,0), mStuckFrames(0), mLastStuckPosition{0, 0, 0} , mForce(0.f, 0.f, 0.f), mOnGround(true), mOnSlope(false) , mInternalCollisionMode(true) diff --git a/apps/openmw/mwphysics/actor.hpp b/apps/openmw/mwphysics/actor.hpp index e52a4caca7..0846401c1d 100644 --- a/apps/openmw/mwphysics/actor.hpp +++ b/apps/openmw/mwphysics/actor.hpp @@ -132,11 +132,6 @@ namespace MWPhysics return mInternalCollisionMode && mOnSlope; } - btCollisionObject* getCollisionObject() const - { - return mCollisionObject.get(); - } - /// Sets whether this actor should be able to collide with the water surface void setCanWaterWalk(bool waterWalk); @@ -188,8 +183,6 @@ namespace MWPhysics std::unique_ptr mShape; btConvexShape* mConvexShape; - std::unique_ptr mCollisionObject; - osg::Vec3f mMeshTranslation; osg::Vec3f mOriginalHalfExtents; osg::Vec3f mHalfExtents; diff --git a/apps/openmw/mwphysics/object.cpp b/apps/openmw/mwphysics/object.cpp index 9575a97da2..a95672f8cf 100644 --- a/apps/openmw/mwphysics/object.cpp +++ b/apps/openmw/mwphysics/object.cpp @@ -83,16 +83,6 @@ namespace MWPhysics } } - btCollisionObject* Object::getCollisionObject() - { - return mCollisionObject.get(); - } - - const btCollisionObject* Object::getCollisionObject() const - { - return mCollisionObject.get(); - } - btTransform Object::getTransform() const { std::unique_lock lock(mPositionMutex); diff --git a/apps/openmw/mwphysics/object.hpp b/apps/openmw/mwphysics/object.hpp index fe395dc89b..1484c1472c 100644 --- a/apps/openmw/mwphysics/object.hpp +++ b/apps/openmw/mwphysics/object.hpp @@ -33,8 +33,6 @@ namespace MWPhysics void setRotation(osg::Quat quat); void updatePosition(); void commitPositionChange(); - btCollisionObject* getCollisionObject(); - const btCollisionObject* getCollisionObject() const; btTransform getTransform() const; /// Return solid flag. Not used by the object itself, true by default. bool isSolid() const; @@ -45,7 +43,6 @@ namespace MWPhysics bool animateCollisionShapes(); private: - std::unique_ptr mCollisionObject; osg::ref_ptr mShapeInstance; std::map mRecIndexToNodePath; bool mSolid; diff --git a/apps/openmw/mwphysics/projectile.hpp b/apps/openmw/mwphysics/projectile.hpp index f18c455020..b5ccee4f63 100644 --- a/apps/openmw/mwphysics/projectile.hpp +++ b/apps/openmw/mwphysics/projectile.hpp @@ -42,11 +42,6 @@ namespace MWPhysics void setPosition(const osg::Vec3f& position); osg::Vec3f getPosition() const; - btCollisionObject* getCollisionObject() const - { - return mCollisionObject.get(); - } - bool isActive() const { return mActive.load(std::memory_order_acquire); @@ -76,7 +71,6 @@ namespace MWPhysics std::unique_ptr mShape; btConvexShape* mConvexShape; - std::unique_ptr mCollisionObject; bool mTransformUpdatePending; bool mCanCrossWaterSurface; bool mCrossedWaterSurface; diff --git a/apps/openmw/mwphysics/ptrholder.hpp b/apps/openmw/mwphysics/ptrholder.hpp index 152a5d64fc..4d0238ecd9 100644 --- a/apps/openmw/mwphysics/ptrholder.hpp +++ b/apps/openmw/mwphysics/ptrholder.hpp @@ -2,6 +2,9 @@ #define OPENMW_MWPHYSICS_PTRHOLDER_H #include +#include + +#include #include "../mwworld/ptr.hpp" @@ -10,7 +13,7 @@ namespace MWPhysics class PtrHolder { public: - virtual ~PtrHolder() {} + virtual ~PtrHolder() = default; void updatePtr(const MWWorld::Ptr& updated) { @@ -24,14 +27,14 @@ namespace MWPhysics return mPtr; } - MWWorld::ConstPtr getPtr() const + btCollisionObject* getCollisionObject() const { - std::scoped_lock lock(mMutex); - return mPtr; + return mCollisionObject.get(); } protected: MWWorld::Ptr mPtr; + std::unique_ptr mCollisionObject; private: mutable std::mutex mMutex;