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 9e0dc76735
commit 06baca8c13

View file

@ -80,6 +80,11 @@ void CameraController::update(float deltaTime) {
return; return;
} }
// Skip all collision/movement logic during taxi flights (position controlled externally)
if (externalFollow_) {
return;
}
auto& input = core::Input::getInstance(); auto& input = core::Input::getInstance();
// Don't process keyboard input when UI text input (e.g. chat box) has focus // Don't process keyboard input when UI text input (e.g. chat box) has focus