From 6b44f6298262f08669d7d163bb0b1cdcddfc1008 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Thu, 2 Feb 2017 14:20:21 -0800 Subject: [PATCH] don't honor gravity in simple extrapolation on entities equipped by others --- libraries/physics/src/EntityMotionState.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libraries/physics/src/EntityMotionState.cpp b/libraries/physics/src/EntityMotionState.cpp index 02cee9a03a..e9891020b3 100644 --- a/libraries/physics/src/EntityMotionState.cpp +++ b/libraries/physics/src/EntityMotionState.cpp @@ -203,7 +203,11 @@ void EntityMotionState::getWorldTransform(btTransform& worldTrans) const { BT_PROFILE("kinematicIntegration"); // This is physical kinematic motion which steps strictly by the subframe count // of the physics simulation and uses full gravity for acceleration. - _entity->setAcceleration(_entity->getGravity()); + if (_entity->hasAncestorOfType(NestableType::Avatar)) { + _entity->setAcceleration(glm::vec3(0.0f)); + } else { + _entity->setAcceleration(_entity->getGravity()); + } uint32_t thisStep = ObjectMotionState::getWorldSimulationStep(); float dt = (thisStep - _lastKinematicStep) * PHYSICS_ENGINE_FIXED_SUBSTEP; _entity->stepKinematicMotion(dt);