acdream/src/AcDream.App/Input
Erik 111fbba3bb fix(input): free-fly is unreachable, and Escape no longer answers to it
User report: "ESC is hardwired to Freefly which it should not be ... the
freefly should really be discarded. Should not be in the client."

Two separate things were true.

Escape ran a priority chain — cancel target mode, else EXIT FLY MODE, else
leave player mode, else close a window — so in a session that had reached the
free-fly camera, Escape spent itself on that rung instead of doing what the
player expected. The rung is gone; a session somehow in fly mode now falls
through to the next one.

And free-fly was still bound: Ctrl+Shift+F in RetailDefaults (the table
production actually loads) and plain F in AcdreamCurrentDefaults (dead since
K.1c, removed anyway so it cannot be revived by accident). The comment on the
live binding advertised two other ways in — the ImGui View menu and the Debug
panel's "Toggle Free-Fly Mode" button — but BOTH went away with
AcDream.UI.ImGui at Campaign V, so the shortcut was the last route in. It is
now unbound, and a test pins that across both default tables.

This makes free-fly unreachable rather than deleted. The implementation still
spans 25 files (CameraController, FlyCamera, the dispatcher capture, pointer
controller, composition, and a streaming observer source), and ripping that out
at the end of a long session is how a regression lands in the camera. Scoped as
its own follow-up; unbinding is what fixes the reported behaviour today.

The Escape priority test was updated rather than deleted: its middle row now
asserts the fall-through, so the removed rung is documented by a passing test
instead of by its absence.

Solution builds clean; full hermetic gate green.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-21 09:55:16 +02:00
..
CameraPointerInputController.cs fix: retail text and golden-string tests must not follow the machine's locale 2026-08-19 19:56:09 +02:00
DispatcherCameraInputSource.cs refactor(input): own pointer and callback lifetime 2026-07-22 11:59:33 +02:00
DispatcherMovementInputSource.cs feat(session): the in-world logoff — LogOut animation, reverse wormhole, live return to character select 2026-08-17 14:02:40 +02:00
GameplayInputActionRouter.cs feat(runtime): define borrowed views commands and ordered events 2026-07-25 19:08:42 +02:00
GameplayInputCommandController.cs fix(input): free-fly is unreachable, and Escape no longer answers to it 2026-08-21 09:55:16 +02:00
GameplayInputFrameController.cs refactor(runtime): own combat and magic intent 2026-07-26 11:56:40 +02:00
InputCaptureSources.cs feat(render): Campaign V slice V11 commit 1 - delete ImGui, Studio, and the DevTools frontend 2026-07-28 23:56:04 +02:00
LocalPlayerAnimationController.cs refactor(app): key live projections by runtime identity 2026-07-25 21:50:58 +02:00
LocalPlayerFrameRuntime.cs feat(headless): complete deterministic bot command parity 2026-07-27 08:23:36 +02:00
LocalPlayerProjectionController.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
LocalPlayerRuntimeState.cs feat(headless): hydrate isolated collision worlds 2026-07-27 09:25:58 +02:00
MouseLookController.cs fix(input): focus loss no longer faults on an unpublished movement controller (#356) 2026-08-09 12:02:38 +02:00
MovementTruthDiagnosticController.cs refactor(runtime): close simulation ownership 2026-07-26 15:53:31 +02:00
PlayerModeAutoEntry.cs feat(runtime): C3c - production placement cutover: both hosts on the residence conductors (routes 1+8) 2026-08-02 18:10:33 +02:00
PlayerModeController.cs feat(world): the login wormhole — every world entry runs retail's portal-space presentation with sound (TS-28 narrowed) 2026-08-17 10:51:33 +02:00
QuiescentInputContext.cs refactor(app): compose settings and developer tools 2026-07-22 16:11:34 +02:00
RetailLocalPlayerFrameController.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
RetainedUiGameplayBinding.cs refactor(input): own gameplay action routing 2026-07-22 12:43:05 +02:00
SilkKeyboardSource.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
SilkMouseSource.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00