From 95af80a32abad7e9ea2fb6bd16f8636b264c8722 Mon Sep 17 00:00:00 2001 From: xezon <4720891+xezon@users.noreply.github.com> Date: Mon, 17 Oct 2022 19:51:34 +0200 Subject: [PATCH] Fix animation jumping back one frame when cross ConditionState using MAINTAIN_FRAME_ACROSS_STATES --- src/game/client/draw/w3dmodeldraw.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/game/client/draw/w3dmodeldraw.cpp b/src/game/client/draw/w3dmodeldraw.cpp index f57d0d25e..34d0d0f16 100644 --- a/src/game/client/draw/w3dmodeldraw.cpp +++ b/src/game/client/draw/w3dmodeldraw.cpp @@ -1501,6 +1501,13 @@ float W3DModelDraw::Get_Current_Anim_Fraction() const return 0.0f; } + // #BUGFIX Fix animation jumping back one frame when crossing ConditionState using MAINTAIN_FRAME_ACROSS_STATES. + // Loop frame to beginning of animation if supported. + frame += 2.0f; + if (Test_Animation_Flag(m_curState->m_flags, RESTART_ANIM_WHEN_COMPLETE) && frame > frames) { + frame -= frames; + } + if (frames > frame) { return frame / (frames - 1.0f); }