From dd6f6d1174ac9f15c96ea0db67c9bdf70eedf917 Mon Sep 17 00:00:00 2001 From: Kelsi Date: Tue, 10 Mar 2026 13:02:35 -0700 Subject: [PATCH] physics: also block strafe input when movement is rooted --- src/rendering/camera_controller.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/rendering/camera_controller.cpp b/src/rendering/camera_controller.cpp index 63935117..1c5930b0 100644 --- a/src/rendering/camera_controller.cpp +++ b/src/rendering/camera_controller.cpp @@ -287,14 +287,15 @@ void CameraController::update(float deltaTime) { // WoW-like third-person keyboard behavior: // - RMB held: A/D strafe // - RMB released: A/D turn character+camera, Q/E strafe + // Turning is allowed even while rooted; only positional movement is blocked. if (thirdPerson && !rightMouseDown) { nowTurnLeft = keyA; nowTurnRight = keyD; - nowStrafeLeft = keyQ; - nowStrafeRight = keyE; + nowStrafeLeft = !movBlocked && keyQ; + nowStrafeRight = !movBlocked && keyE; } else { - nowStrafeLeft = keyA || keyQ; - nowStrafeRight = keyD || keyE; + nowStrafeLeft = !movBlocked && (keyA || keyQ); + nowStrafeRight = !movBlocked && (keyD || keyE); } // Keyboard turning updates camera yaw (character follows yaw in renderer)