feat(input): assess world objects on right click
Port SmartBox's release-completed sr_Examine gesture through the configurable SelectRight binding. Cancel camera drags at the shared retail three-pixel threshold, then reuse the canonical picker, selection pulse, and appraisal request path without inventing another wire or UI owner. Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
parent
6718ee45a0
commit
5ad32d5753
16 changed files with 394 additions and 13 deletions
|
|
@ -190,6 +190,37 @@ procedural arrow. The indicator is persistent selection presentation. Retail
|
|||
also has a separate, short-lived click confirmation owned by SmartBox; it is not
|
||||
implemented in `CPhysicsPart::Draw` or `ACCWeenieObject::SetSelected`.
|
||||
|
||||
## Right-click selection and examination
|
||||
|
||||
`UIElement_SmartBoxWrapper::MouseUp @ 0x004E5820`
|
||||
|
||||
```text
|
||||
on right mouse up:
|
||||
if mouse movement owns the gesture:
|
||||
finish mouse movement and do not examine
|
||||
else if instant mouse-look owns the gesture:
|
||||
leave mouse-look and do not examine
|
||||
else if no higher-priority SmartBox search is pending:
|
||||
searchReason = sr_Examine
|
||||
FindObject(releaseX, releaseY)
|
||||
```
|
||||
|
||||
`UIElement_SmartBoxWrapper::RecvNotice_SmartBoxObjectFound @ 0x004E5AD0`
|
||||
|
||||
```text
|
||||
if a valid object was found for sr_Examine:
|
||||
begin the normal SmartBox lighting pulse
|
||||
SetSelectedObject(foundObjectId)
|
||||
ClientUISystem.ExamineObject(foundObjectId)
|
||||
else:
|
||||
do nothing
|
||||
```
|
||||
|
||||
The action is release-completed rather than mouse-down-completed so an RMB
|
||||
camera drag does not appraise the object under the release point. Acdream maps
|
||||
the configurable `SelectRight` action to the same complete-click gesture and
|
||||
keeps `SelectionExamine` independently configurable (retail default E).
|
||||
|
||||
## SmartBox click lighting pulse
|
||||
|
||||
`UIElement_SmartBoxWrapper::RecvNotice_SmartBoxObjectFound @ 0x004E5AD0`
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue