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!
This commit is contained in:
Kelsi 2026-02-08 22:33:45 -08:00
parent 6158d56316
commit 26e984b60f

View file

@ -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