TPS camera: "Dynamic camera" option -- Esc drops to the normal follow camera instead of re-grabbing the mouse #952

Open
opened 2026-10-23 02:16:01 +00:00 by sky_line · 0 comments
Owner

Request

Add a Dynamic camera option to the third-person shooter camera (Preferences > Move & View, next to the other TPS options; setting e.g. SlipstreamTPSDynamicCamera, default off so current behaviour is unchanged).

With it on, pressing Esc while the TPS camera is released does not grab the mouse again. Instead it resets to the normal follow camera, exactly as Esc does in the other camera modes: camera snaps back behind the avatar, pointer stays free.

Current behaviour (handle_reset_view, indra/newview/llviewermenu.cpp)

  1. TPS engaged + Esc: releases the camera and parks it as a free camera where it is (SLTPSCamera::disengage(DISENGAGE_USER)).
  2. TPS enabled but released + Esc: re-engages it (requestEngage()) -- back behind the avatar with the mouse captured. The stock view reset only runs where TPS can't engage (sitting, build, appearance, mouselook).

So with TPS enabled there is no way to get the normal follow camera with a free mouse from the keyboard: every second Esc grabs the mouse again.

Wanted with Dynamic camera on

  • Step 1 unchanged (first Esc releases the TPS camera).
  • Step 2: Esc runs the normal view reset (reset_view_final path) instead of requestEngage(): follow camera behind the avatar, mouse free, movement keys behave as in the stock camera.
  • Re-engaging stays explicit: click your avatar, the TPS toggle key, or the menu item.
  • Open question for implementation: whether step 1 should also go straight to the follow camera (one Esc instead of two). Default: keep the two-step behaviour, only change step 2.

Files

  • indra/newview/llviewermenu.cpp (handle_reset_view)
  • indra/newview/sltpscamera.{h,cpp}
  • indra/newview/app_settings/settings.xml
  • indra/newview/skins/default/xui/en/panel_preferences_move.xml

Test

  • Option off: Esc behaviour identical to today (release, then re-engage).
  • Option on: engage TPS, Esc (released, camera parked), Esc again: normal follow camera behind the avatar, pointer free, no capture. Click avatar: TPS engages again.
  • Sitting / build / appearance / mouselook: unchanged.
## Request Add a **Dynamic camera** option to the third-person shooter camera (Preferences > Move & View, next to the other TPS options; setting e.g. `SlipstreamTPSDynamicCamera`, default off so current behaviour is unchanged). With it on, pressing **Esc** while the TPS camera is released does **not** grab the mouse again. Instead it resets to the normal follow camera, exactly as Esc does in the other camera modes: camera snaps back behind the avatar, pointer stays free. ## Current behaviour (`handle_reset_view`, `indra/newview/llviewermenu.cpp`) 1. TPS engaged + Esc: releases the camera and parks it as a free camera where it is (`SLTPSCamera::disengage(DISENGAGE_USER)`). 2. TPS enabled but released + Esc: **re-engages** it (`requestEngage()`) -- back behind the avatar with the mouse captured. The stock view reset only runs where TPS can't engage (sitting, build, appearance, mouselook). So with TPS enabled there is no way to get the normal follow camera with a free mouse from the keyboard: every second Esc grabs the mouse again. ## Wanted with Dynamic camera on - Step 1 unchanged (first Esc releases the TPS camera). - Step 2: Esc runs the normal view reset (`reset_view_final` path) instead of `requestEngage()`: follow camera behind the avatar, mouse free, movement keys behave as in the stock camera. - Re-engaging stays explicit: click your avatar, the TPS toggle key, or the menu item. - Open question for implementation: whether step 1 should also go straight to the follow camera (one Esc instead of two). Default: keep the two-step behaviour, only change step 2. ## Files - `indra/newview/llviewermenu.cpp` (`handle_reset_view`) - `indra/newview/sltpscamera.{h,cpp}` - `indra/newview/app_settings/settings.xml` - `indra/newview/skins/default/xui/en/panel_preferences_move.xml` ## Test - Option off: Esc behaviour identical to today (release, then re-engage). - Option on: engage TPS, Esc (released, camera parked), Esc again: normal follow camera behind the avatar, pointer free, no capture. Click avatar: TPS engages again. - Sitting / build / appearance / mouselook: unchanged.
sky_line added this to the Slipstream project 2026-10-23 02:16:01 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sky_line/Slipstream#952
No description provided.