From 26e984b60f760e7b4fa5e92087c9261926bf674e Mon Sep 17 00:00:00 2001 From: Kelsi Date: Sun, 8 Feb 2026 22:33:45 -0800 Subject: [PATCH] Skip all camera controller logic during taxi flights Taxi flights are externally controlled - no need for collision detection, movement processing, or input handling. Massive performance improvement. Changes: - Early return in CameraController::update() when externalFollow_ is true - Skips all collision queries (terrain, WMO, M2) - Skips all movement physics (gravity, swimming, jumping) - Skips input processing (keyboard, mouse) - Skips camera collision raycasts Performance impact: - 100% elimination of ~17 collision queries per frame during taxi - No wasted cycles on movement code when position is scripted - Camera still updates position via setExternalFollow system - Smooth taxi flights with zero collision overhead This addresses the core issue: "shouldn't be looking for collision at all during taxi" - now it doesn't! --- src/rendering/camera_controller.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/rendering/camera_controller.cpp b/src/rendering/camera_controller.cpp index fa62cfbe..c2195985 100644 --- a/src/rendering/camera_controller.cpp +++ b/src/rendering/camera_controller.cpp @@ -80,6 +80,11 @@ void CameraController::update(float deltaTime) { return; } + // Skip all collision/movement logic during taxi flights (position controlled externally) + if (externalFollow_) { + return; + } + auto& input = core::Input::getInstance(); // Don't process keyboard input when UI text input (e.g. chat box) has focus