From 018112d6b9eac08197809e66b64fcdc2f8cd85a8 Mon Sep 17 00:00:00 2001 From: NotAKidoS <37721153+NotAKidoS@users.noreply.github.com> Date: Thu, 3 Apr 2025 04:11:40 -0500 Subject: [PATCH] [RCCVirtualSteeringWheel] Fixed error spam when sitting in a CVRSeat with lockControls, but no RCC component in parent --- RCCVirtualSteeringWheel/Patches.cs | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/RCCVirtualSteeringWheel/Patches.cs b/RCCVirtualSteeringWheel/Patches.cs index b9745d9..1ef3064 100644 --- a/RCCVirtualSteeringWheel/Patches.cs +++ b/RCCVirtualSteeringWheel/Patches.cs @@ -1,4 +1,5 @@ -using ABI_RC.Systems.InputManagement; +using ABI_RC.Core.InteractionSystem; +using ABI_RC.Systems.InputManagement; using ABI_RC.Systems.Movement; using HarmonyLib; using NAK.RCCVirtualSteeringWheel.Util; @@ -39,12 +40,20 @@ internal static class CVRInputManager_Patches [HarmonyPatch(typeof(CVRInputManager), nameof(CVRInputManager.UpdateInput))] private static void Postfix_CVRInputManager_UpdateInput(ref CVRInputManager __instance) { - // Steering input is clamped in RCC component - if (BetterBetterCharacterController.Instance.IsSittingOnControlSeat() - && SteeringWheelRoot.TryGetWheelInput( - BetterBetterCharacterController.Instance._lastCvrSeat._carController, out float steeringValue)) - { + BetterBetterCharacterController characterController = BetterBetterCharacterController.Instance; + if (!characterController._isSitting) + return; // Must be sitting + + CVRSeat cvrSeat = characterController._lastCvrSeat; + if (!cvrSeat + || !cvrSeat.lockControls) + return; // Must be a driver seat + + RCC_CarControllerV3 carController = characterController._lastCvrSeat._carController; + if (!carController) + return; // Specific to RCC + + if (SteeringWheelRoot.TryGetWheelInput(carController, out float steeringValue)) __instance.steering = steeringValue; - } } } \ No newline at end of file