From e84bbacb8df84290af3b41e311e2fc16dfad8290 Mon Sep 17 00:00:00 2001 From: SDraw Date: Sun, 28 Jan 2024 14:37:07 +0300 Subject: [PATCH] Stuck falling state fix --- ml_prm/RagdollController.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/ml_prm/RagdollController.cs b/ml_prm/RagdollController.cs index 2ebce87..2da4694 100644 --- a/ml_prm/RagdollController.cs +++ b/ml_prm/RagdollController.cs @@ -43,6 +43,7 @@ namespace ml_prm Vector3 m_lastPosition = Vector3.zero; Vector3 m_velocity = Vector3.zero; Vector3 m_ragdollLastPos = Vector3.zero; + bool m_wasSwimming = false; RagdollToggle m_avatarRagdollToggle = null; RagdollTrigger m_ragdollTrigger = null; @@ -277,6 +278,7 @@ namespace ml_prm m_puppetRoot.localScale = Vector3.one; m_inAir = false; m_inAirDistance = 0f; + m_wasSwimming = false; } internal void OnAvatarSetup() @@ -608,6 +610,8 @@ namespace ml_prm { if(CanRagdoll()) { + m_wasSwimming = BetterBetterCharacterController.Instance.IsSwimming(); + if(BetterBetterCharacterController.Instance.IsFlying()) BetterBetterCharacterController.Instance.ChangeFlight(false,true); BetterBetterCharacterController.Instance.SetImmobilized(true); @@ -690,6 +694,10 @@ namespace ml_prm OnMovementDragChange(Settings.MovementDrag); OnAngularDragChange(Settings.AngularDrag); + // Restore movement if was ragdolled in water and left it + if(m_wasSwimming) + BetterBetterCharacterController.Instance.SetMovementMode(EasyCharacterMovement.MovementMode.Swimming); + m_enabled = false; } }