Merge branch 'skip_async' into 'master'

Don't put player in the air after going out of tcl

See merge request OpenMW/openmw!1009

(cherry picked from commit 6d08a1d7318ae076839738d173b884fcc7b1a348)

6ad2cf8e Skip simulation result after calling Actor::updatePosition(). Otherwise
pull/593/head
psi29a 4 years ago
parent d1c0cfa524
commit 59da0a0da9

@ -124,11 +124,13 @@ void Actor::updatePosition()
mPositionOffset = osg::Vec3f(); mPositionOffset = osg::Vec3f();
mStandingOnPtr = nullptr; mStandingOnPtr = nullptr;
mSkipCollisions = true; mSkipCollisions = true;
mSkipSimulation = true;
} }
void Actor::setSimulationPosition(const osg::Vec3f& position) void Actor::setSimulationPosition(const osg::Vec3f& position)
{ {
mSimulationPosition = position; if (!std::exchange(mSkipSimulation, false))
mSimulationPosition = position;
} }
osg::Vec3f Actor::getSimulationPosition() const osg::Vec3f Actor::getSimulationPosition() const

@ -204,6 +204,7 @@ namespace MWPhysics
osg::Vec3f mVelocity; osg::Vec3f mVelocity;
bool mWorldPositionChanged; bool mWorldPositionChanged;
bool mSkipCollisions; bool mSkipCollisions;
bool mSkipSimulation;
btTransform mLocalTransform; btTransform mLocalTransform;
mutable std::mutex mPositionMutex; mutable std::mutex mPositionMutex;

Loading…
Cancel
Save