From b7a4cb0c8385ab613bc131e53e33aaa0e92a693b Mon Sep 17 00:00:00 2001 From: Mads Buvik Sandvei Date: Sat, 18 Nov 2023 17:42:12 +0100 Subject: [PATCH 1/2] The anim queue should still update when underwater. CharState_SpecialIdle should be retained until the animation queue is done. --- apps/openmw/mwmechanics/character.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/openmw/mwmechanics/character.cpp b/apps/openmw/mwmechanics/character.cpp index dd7b97b6a5d..df04e3cfaa7 100644 --- a/apps/openmw/mwmechanics/character.cpp +++ b/apps/openmw/mwmechanics/character.cpp @@ -2306,6 +2306,7 @@ namespace MWMechanics jumpstate = JumpState_None; } + updateAnimQueue(); if (mAnimQueue.empty() || inwater || (sneak && mIdleState != CharState_SpecialIdle)) { if (inwater) @@ -2315,8 +2316,8 @@ namespace MWMechanics else idlestate = CharState_Idle; } - else - updateAnimQueue(); + else if (!mAnimQueue.empty()) + idlestate = CharState_SpecialIdle; if (!mSkipAnim) { From f4cc16e469988fae2901970acb639164a6482130 Mon Sep 17 00:00:00 2001 From: Mads Buvik Sandvei Date: Tue, 28 Nov 2023 21:29:05 +0100 Subject: [PATCH 2/2] feedback --- apps/openmw/mwmechanics/character.cpp | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/apps/openmw/mwmechanics/character.cpp b/apps/openmw/mwmechanics/character.cpp index df04e3cfaa7..d9166aa683c 100644 --- a/apps/openmw/mwmechanics/character.cpp +++ b/apps/openmw/mwmechanics/character.cpp @@ -2307,17 +2307,15 @@ namespace MWMechanics } updateAnimQueue(); - if (mAnimQueue.empty() || inwater || (sneak && mIdleState != CharState_SpecialIdle)) - { - if (inwater) - idlestate = CharState_IdleSwim; - else if (sneak && !mInJump) - idlestate = CharState_IdleSneak; - else - idlestate = CharState_Idle; - } - else if (!mAnimQueue.empty()) + if (!mAnimQueue.empty()) idlestate = CharState_SpecialIdle; + else if (sneak && !mInJump) + idlestate = CharState_IdleSneak; + else + idlestate = CharState_Idle; + + if (inwater) + idlestate = CharState_IdleSwim; if (!mSkipAnim) {