From c539d9f23352eb2fd5f0e316b2c7ba8630bfd61e Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Mon, 29 Jun 2015 12:22:06 -0700 Subject: [PATCH] allow for removal and readdition of an action in one time-slice without asserting --- libraries/entities/src/EntitySimulation.cpp | 16 ---------------- .../physics/src/PhysicalEntitySimulation.cpp | 8 ++++---- 2 files changed, 4 insertions(+), 20 deletions(-) diff --git a/libraries/entities/src/EntitySimulation.cpp b/libraries/entities/src/EntitySimulation.cpp index ff20e38425..a2d20fe5d5 100644 --- a/libraries/entities/src/EntitySimulation.cpp +++ b/libraries/entities/src/EntitySimulation.cpp @@ -263,22 +263,6 @@ void EntitySimulation::moveSimpleKinematics(const quint64& now) { void EntitySimulation::addAction(EntityActionPointer action) { lock(); - - #if DEBUG - foreach (EntityActionPointer actionToAdd, _actionsToAdd) { - if (actionToAdd->getID() == action->getID()) { - qDebug() << "action added to add-list more than once"; - assert(false); - } - } - foreach (QUuid actionToRemoveID, _actionsToRemove) { - if (actionToRemoveID == action->getID()) { - qDebug() << "action added to add-list and remove-list"; - assert(false); - } - } - #endif - _actionsToAdd += action; unlock(); } diff --git a/libraries/physics/src/PhysicalEntitySimulation.cpp b/libraries/physics/src/PhysicalEntitySimulation.cpp index 874a68171a..f6f02b8573 100644 --- a/libraries/physics/src/PhysicalEntitySimulation.cpp +++ b/libraries/physics/src/PhysicalEntitySimulation.cpp @@ -251,16 +251,16 @@ void PhysicalEntitySimulation::addAction(EntityActionPointer action) { void PhysicalEntitySimulation::applyActionChanges() { if (_physicsEngine) { lock(); + foreach (QUuid actionToRemove, _actionsToRemove) { + _physicsEngine->removeAction(actionToRemove); + } + _actionsToRemove.clear(); foreach (EntityActionPointer actionToAdd, _actionsToAdd) { if (!_actionsToRemove.contains(actionToAdd->getID())) { _physicsEngine->addAction(actionToAdd); } } _actionsToAdd.clear(); - foreach (QUuid actionToRemove, _actionsToRemove) { - _physicsEngine->removeAction(actionToRemove); - } - _actionsToRemove.clear(); unlock(); } }