diff options
author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2024-01-15 22:30:54 +0200 |
---|---|---|
committer | Andrey Kleshchev <117672381+akleshchev@users.noreply.github.com> | 2024-01-16 01:07:23 +0200 |
commit | 568f1a19b16f7febfd6ff3963f28840399aec8b5 (patch) | |
tree | b36b030191260023918aac7145b74cd65aee18c2 /indra/newview | |
parent | 5771736bd2dcae1169acd8899bba87a82fbe9de9 (diff) |
SL-20783 Avatar turning animation was affected by framerate
Diffstat (limited to 'indra/newview')
-rw-r--r-- | indra/newview/llvoavatar.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index fee00eb6f4..550be30919 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -4283,6 +4283,15 @@ void LLVOAvatar::updateOrientation(LLAgent& agent, F32 speed, F32 delta_time) if (mTurning) { pelvis_rot_threshold *= 0.4f; + // account for fps, assume that above value is for ~60fps + constexpr F32 default_frame_sec = 0.016f; + F32 prev_frame_sec = LLFrameTimer::getFrameDeltaTimeF32(); + if (default_frame_sec > prev_frame_sec) + { + // reduce threshold since turn rate per second is constant, + // shorter frame means shorter turn. + pelvis_rot_threshold *= prev_frame_sec/default_frame_sec; + } } // am I done turning? |