From bfe809f3f71f58f677befffd4d7708483b4a73de Mon Sep 17 00:00:00 2001 From: Andrew Meadows Date: Wed, 29 May 2019 20:19:12 -0700 Subject: [PATCH 1/2] local entities should not be in physics --- libraries/entities-renderer/src/RenderableModelEntityItem.cpp | 2 +- libraries/entities/src/EntityItem.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp index cc6ba0176b..1fc8a2382b 100644 --- a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp @@ -744,7 +744,7 @@ bool RenderableModelEntityItem::shouldBePhysical() const { return false; } } - return !isDead() && shapeType != SHAPE_TYPE_NONE && QUrl(_modelURL).isValid(); + return !isDead() && shapeType != SHAPE_TYPE_NONE && !isLocalEntity() && QUrl(_modelURL).isValid(); } int RenderableModelEntityItem::getJointParent(int index) const { diff --git a/libraries/entities/src/EntityItem.h b/libraries/entities/src/EntityItem.h index 424454f528..d137f84e16 100644 --- a/libraries/entities/src/EntityItem.h +++ b/libraries/entities/src/EntityItem.h @@ -324,7 +324,7 @@ public: bool getDynamic() const; void setDynamic(bool value); - virtual bool shouldBePhysical() const { return !isDead() && getShapeType() != SHAPE_TYPE_NONE; } + virtual bool shouldBePhysical() const { return !isDead() && getShapeType() != SHAPE_TYPE_NONE && !isLocalEntity(); } bool isVisuallyReady() const { return _visuallyReady; } bool getLocked() const; From 351f9991ebcc9b1a36907315b24fb3305cef222a Mon Sep 17 00:00:00 2001 From: Andrew Meadows Date: Thu, 30 May 2019 10:16:53 -0700 Subject: [PATCH 2/2] removeOwnershipData() last minute before EntityMotionState delete --- libraries/physics/src/PhysicalEntitySimulation.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libraries/physics/src/PhysicalEntitySimulation.cpp b/libraries/physics/src/PhysicalEntitySimulation.cpp index 7bbf1854fa..f532d5209f 100644 --- a/libraries/physics/src/PhysicalEntitySimulation.cpp +++ b/libraries/physics/src/PhysicalEntitySimulation.cpp @@ -460,6 +460,8 @@ void PhysicalEntitySimulation::buildPhysicsTransaction(PhysicsEngine::Transactio void PhysicalEntitySimulation::handleProcessedPhysicsTransaction(PhysicsEngine::Transaction& transaction) { // things on objectsToRemove are ready for delete for (auto object : transaction.objectsToRemove) { + EntityMotionState* entityState = static_cast(object); + removeOwnershipData(entityState); _physicalObjects.remove(object); delete object; }