Repository navigation
Add instant mouse camera controls and optional wheel zoom - #98
Merged
Adubbz merged 11 commits intoOct 7, 2026
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Mouse movement currently becomes capped right-stick deflection, and the follow camera eases behind that input. A quick flick responds slowly and can even turn the wrong way past half a revolution. Apply mouse counts as camera angles once per pad read, retaining controller and gyro behavior.
Third-person vertical movement stays aimed at the player through the follow camera's height controls, with bounded requests, immediate reversal from the height ceiling and a return toward baseline at one fifth of the retail rate after mouse pitch use. The separate view-matrix pitch override and expanded first-person range were removed after playtesting. Retail automatic horizontal movement, wall/floor correction and explicit recenter controls remain.
Add optional Mouse Wheel Zoom under Options > Controls, off by default. Scroll changes third-person distance; Reset Zoom defaults to middle click and can be changed to either side button, Home, Disabled or a custom input.bindings.zoom_reset entry. The reset binding takes priority over conflicting pad bindings only while zoom is enabled. Zoom keeps the player character as the follow target, uses camera easing and validates the current, pending and generated follow corridor against geometry before accepting distance changes. Town, dungeon, close-zoom lift behavior, reset, camera ownership and menu/input transitions are covered.
Town instant yaw also validates a continuous sweep and pending follow corridor. The collector proves capacity before invoking retail writers, replacing the unbounded 400-polygon scratch path for this operation. Thin walls, invalid initial clearance, pending targets, grid areas, malformed metadata and traversal/work budgets have regressions. Refused mouse-turn motion is discarded.
Fullscreen startup now captures when focus arrives after input initialization. Focus recovery recaptures, while explicit windowed Escape release and disabled capture are respected.
Options help refers to your character rather than Toan. Restore the Exit sprite's two missing bottom-border rows and extend its mouse hit area to match. The chopped-looking narrow-font digit 5 is already present in the retail texture; this change does not redraw that font asset.
Validation:
Automated checks and bounded replays do not establish full-campaign or subjective mouse-feel acceptance.