Mouse steering: hold right button while click-dragging your avatar to walk forward (non-TPS mode) #254
Labels
No labels
amd
avatars
bug
builder
cannot-reproduce
crash
epic
feature
from-viewer
gl-removal
known-limitation
monitoring
parity
perf
platform
priority
critical
priority
high
priority
low
priority
medium
provenance
rendering
rt
status
in-progress
status
testing
status
up-next
triage
ui
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sky_line/Slipstream#254
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Request
In the normal (non-TPS) camera mode, while the user is holding left mouse on their avatar to steer (click-and-hold your avatar → mouse turns the avatar / pans the camera), holding the right mouse button makes the avatar walk forward. This is the classic MMO "both buttons = move forward" control. Releasing right stops walking; releasing left ends steering as today.
Details
LLToolPie/LLToolCamera/ the "click on avatar and drag to turn" path). Not in third-person-shooter camera mode (AlchemyTPSCamera), which has its own scheme.RightClickDragOrbit). It's consumed as a movement input.AGENT_CONTROL_AT_POS, same as W), so run / fly / always-run modifiers apply: flying moves forward in fly mode, and the run toggle is respected.SlipstreamMouseWalk(default on, or off if we want opt-in; decide in review).Acceptance
Implemented on branch
mousewalk(commit7e3df6f8cd). It is not built yet; the main session builds it.Where it lives: clicking and holding on your own avatar never reaches
LLToolPie::startCameraSteering(that is the land/object drag-steer).LLToolPie::handleLeftClickPickhands the mouse to the transientLLToolCamera, andpickCallbacksetsmMouseSteering. So mouse walk is inlltoolfocus.{h,cpp}:LLToolCamera::handleRightMouseDownconsumes the right button while steering. It returns true through the mouse-captor branch ofLLViewerWindow::handleAnyMouseClick, so no pie or context menu opens, no mouse bindings fire, andRightClickDragOrbitnever sees the click.LLToolCamera::updateMouseWalk()runs once per frame inllappvieweridle, before the TPS update andsend_agent_update. It callsgAgent.moveAtNudge(1)for the first 0.25 s, thengAgent.moveAt(1), the same as the W key. Run, always-run and fly behave as with W. Dragging the mouse keeps turning the avatar.Setting:
SlipstreamMouseWalk, on by default. It is in Preferences > Move & View, right column, as "Both mouse buttons walk", below "Right-click drag orbits camera".Not done: pressing right first and then left. A right-click on yourself goes to
LLToolPie, which opens the menu as soon as the button goes down (or arms orbit), so this can't be supported without changing when the menu opens. Steering by click-dragging on land (LLToolPie) is also not covered; that could be a follow-up.Verified done: holding right while steering your avatar walks forward like W (run/fly respected, no pie menu); setting SlipstreamMouseWalk in Preferences > Move & View. The optional right-then-left order is not supported (documented in the earlier comment). Commits:
7e3df6f8cd. Shipped in v1.0.0-beta.1.