Skip to content

Add instant mouse camera controls and optional wheel zoom - #98

Merged
Adubbz merged 11 commits into
TheMoonPeople:masterfrom
carrdylan52:pr/instant-mouse-20261007
Oct 7, 2026
Merged

Adubbz merged 11 commits into
TheMoonPeople:masterfrom
carrdylan52:pr/instant-mouse-20261007

Conversation

@carrdylan52

@carrdylan52 carrdylan52 commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

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:

  • Windows Clang 23.1.2 RelWithDebInfo: 166/166 CTest passed, including focused-window capture, zoom input/config/menu tests, radial wall/pending corridor checks and a regression for retail distance relaxation bypassing zoom clearance.
  • Linux Clang 23.1.2: full suite passed with desktop-only capture tests skipped on the offscreen runner; AddressSanitizer mouse/collision and zoom integration tests pass.
  • Real PAL-data Norune and Wise Owl Forest replays verify zoom in/out and reset; the Forest reset capture is SHA-256-identical to its baseline. An independent replay reproduced this and confirmed close zoom no longer becomes an overhead view.
  • Options follow-up: 5/5 MenuOption tests passed and a real PAL-data replay verifies the full Exit border and the updated zoom tooltip fitting in its help box. The complete suites above were run at the preceding zoom commit cd86012.
  • All source changes remain in port/; ps2/ is unchanged. Pointer report and platform CI are rechecked for this head.

Automated checks and bounded replays do not establish full-campaign or subjective mouse-feel acceptance.

@carrdylan52 carrdylan52 changed the title Add instant native mouse look, freer pitch, and fullscreen capture recovery Add instant native mouse look and fullscreen capture recovery Oct 7, 2026
@carrdylan52 carrdylan52 changed the title Add instant native mouse look and fullscreen capture recovery Add instant mouse camera controls and optional wheel zoom Oct 7, 2026
@Adubbz
Adubbz merged commit 6338417 into TheMoonPeople:master Oct 7, 2026
6 checks passed
@carrdylan52 carrdylan52 changed the title Add instant mouse camera controls and optional wheel zoom Add native mouse camera controls, optional zoom and first-person walking Oct 7, 2026
@carrdylan52 carrdylan52 changed the title Add native mouse camera controls, optional zoom and first-person walking Add instant mouse camera controls and optional wheel zoom Oct 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants