1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-01-31 21:45:35 +00:00

Merge branch 'water_walking_evasion_48' into 'openmw-48'

Adjust initial distance when destination is changed for obstacle check (#6860) (0.48)

See merge request OpenMW/openmw!2442
This commit is contained in:
Evil Eye 2022-10-02 15:16:47 +00:00
commit 1e16900d97
3 changed files with 9 additions and 0 deletions

View file

@ -143,6 +143,7 @@
Bug #6794: Light sources are attached to mesh bounds centers instead of mesh origins when AttachLight NiNode is missing Bug #6794: Light sources are attached to mesh bounds centers instead of mesh origins when AttachLight NiNode is missing
Bug #6799: Game crashes if an NPC has no Class attached Bug #6799: Game crashes if an NPC has no Class attached
Bug #6849: ImageButton texture is not scaled properly Bug #6849: ImageButton texture is not scaled properly
Bug #6860: Sinnammu randomly strafes while running on water
Bug #6869: Hits queue stagger during swing animation Bug #6869: Hits queue stagger during swing animation
Bug #6890: SDL_PeepEvents errors are not handled Bug #6890: SDL_PeepEvents errors are not handled
Bug #6895: Removing a negative number of items from a script, makes the script terminate with an error Bug #6895: Removing a negative number of items from a script, makes the script terminate with an error

View file

@ -137,11 +137,18 @@ namespace MWMechanics
mStateDuration = 0; mStateDuration = 0;
mPrev = position; mPrev = position;
mInitialDistance = (destination - position).length(); mInitialDistance = (destination - position).length();
mDestination = destination;
return; return;
} }
if (mWalkState != WalkState::Evade) if (mWalkState != WalkState::Evade)
{ {
if (mDestination != destination)
{
mInitialDistance = (destination - mPrev).length();
mDestination = destination;
}
const float distSameSpot = DIST_SAME_SPOT * actor.getClass().getCurrentSpeed(actor) * duration; const float distSameSpot = DIST_SAME_SPOT * actor.getClass().getCurrentSpeed(actor) * duration;
const float prevDistance = (destination - mPrev).length(); const float prevDistance = (destination - mPrev).length();
const float currentDistance = (destination - position).length(); const float currentDistance = (destination - position).length();

View file

@ -45,6 +45,7 @@ namespace MWMechanics
private: private:
osg::Vec3f mPrev; osg::Vec3f mPrev;
osg::Vec3f mDestination;
// directions to try moving in when get stuck // directions to try moving in when get stuck
static const float evadeDirections[NUM_EVADE_DIRECTIONS][2]; static const float evadeDirections[NUM_EVADE_DIRECTIONS][2];