Use saved fallheight to determine a character's jump state.

The jump state initial state is "none", and it is set after physics simulation.
If a save is done just above the ground, the character may land before
the first run of the simulation, effectively cancelling the effect of
falling.
pull/3042/head
fredzio 3 years ago
parent dc82cb61f4
commit 3087ce9c70

@ -86,6 +86,7 @@
Bug #5703: OpenMW-CS menu system crashing on XFCE
Bug #5706: AI sequences stop looping after the saved game is reloaded
Bug #5731: Editor: skirts are invisible on characters
Bug #5739: Saving and loading the save a second or two before hitting the ground doesn't count fall damage
Bug #5758: Paralyzed actors behavior is inconsistent with vanilla
Bug #5762: Movement solver is insufficiently robust
Feature #390: 3rd person look "over the shoulder"

@ -883,7 +883,11 @@ CharacterController::CharacterController(const MWWorld::Ptr &ptr, MWRender::Anim
}
if(!cls.getCreatureStats(mPtr).isDead())
{
mIdleState = CharState_Idle;
if (cls.getCreatureStats(mPtr).getFallHeight() > 0)
mJumpState = JumpState_InAir;
}
else
{
const MWMechanics::CreatureStats& cStats = mPtr.getClass().getCreatureStats(mPtr);

Loading…
Cancel
Save