Close every top modal through one Esc and right-click path
- Add Help, Settings, Pause and review to the top-modal close chain so right-click and Esc behave consistently. - Restore the venue menu after menu Settings and prevent Help from opening Pause behind itself. - Reopen pause after in-shift Settings apply and recapture the mouse/unfreeze state on close. - Extend the session smoke for menu Settings, right-click Help and guard unfreeze.
This commit is contained in:
1 parent
8f65751975
commit
26e6dd6413
8 files changed
+111
-6
No files matched your search
@@ -51,6 +51,7 @@ Implemented so far:
|
||||
- Joke Shop / Sunset Strip map (map optimization): the second venue is now a stylized reconstruction of The Comedy Store block at 8433 Sunset Blvd, with a 27 m black hall, signature-covered sloping canopy, circular **THE JOKE SHOP** blade sign, red velvet curtain bays, a west-end entrance, cream and white low-rise neighbours, a dry hillside with stucco houses and palms behind the roofline, and a low retail/billboard frontage across Sunset. The same geometry serves day and late lighting through the phase system. Real-site references and limits are in [`joke-shop-map.md`](joke-shop-map.md); the map measures **22,680 triangles across 454 meshes** in the budget test.
|
||||
- Venue geometry (v0.7.0, Joke Shop frontage superseded by the map-optimization pass): the TV Studio builds a stone facade, bulb canopy, glossy black car and barrier line. `WorldBuilder.VENUE_SPECS` drives facade/street/nav dimensions, and `GameManager` rebuilds only the world container when the venue changes.
|
||||
- Gear fit (post-v0.6.0): Blender gear is measured against the avatar head/skirt silhouette and the checks run in both the Python tooling and the headless suite. Sunglasses, the shoulder bag and the firefighter helmet were fitted to the new faces; the Influencer portrait and gallery were recaptured with a before/after report.
|
||||
- Modal-close pass (0.9.3 work): one top-modal close path handles Esc/right-click for every overlay, Settings opened from the menu restores the menu, Help no longer opens Pause behind it, and pointer/guard freeze state is recaptured after each close. The session smoke covers these paths.
|
||||
- Keyboard/gamepad focus pass (0.9.3 work): `UiFocus` rings wrap through visible/enabled controls, hidden Continue and disabled timeline actions are skipped, each modal has a default focus, and A/B are bound to `ui_accept`/`ui_cancel` for pad-only navigation. Recorded in `docs/ui-copy.md`.
|
||||
- Button-state pass (0.9.3 work): a shared `UiStyles` helper now gives every action button explicit normal, hover, pressed, focus and disabled styles; the timeline disables Previous/Next at its boundaries, while hidden continue states and the keyboard-only tutorial skip remain intentional. Recorded in `docs/ui-copy.md`.
|
||||
- Dialogue pass (0.9.3 work): NPC reason answers now use the authored `reason` context, with an in-character answer for every shared archetype; Hollywood and Studio gained door-staff lines; radio cancellation, tutorial Ask terminology, help, start hints and campaign reset copy were clarified. Audit recorded in `docs/ui-copy.md`.
|
||||
|
||||
@@ -44,3 +44,4 @@
|
||||
42. Button states remain readable on hover/focus/pressed; settings Apply/Cancel and radio normal-send/emergency-hold behave as labelled.
|
||||
43. The venue menu offers Hollywood Boulevard — Day and — Night; either starts the same map, and Night starts in the late phase with a full shift clock.
|
||||
44. The Joke Shop opens on the Sunset Strip club: the black hall, signature canopy, circular **THE JOKE SHOP** sign, red curtains, west entrance, palms, dry hillside with houses, neighbouring frontage and the opposite side of Sunset all read from the door camera. Day lighting and late lighting both look correct; the guard can walk the sidewalk without leaving the nav bounds.
|
||||
45. Esc and right-click close only the top panel (Help, Settings, Pause, Review, Radio, timeline, inspection/wand, action wheel); Settings opened from the venue menu returns to the menu, Help no longer opens Pause behind it, and closing a modal recaptures the mouse without leaving the guard frozen.
|
||||
+25
-1
@@ -1,6 +1,6 @@
|
||||
# UI copy and button inventory
|
||||
|
||||
Status: dialogue, button-state and keyboard/gamepad focus passes complete; layout/end-to-end audit in progress for 0.9.3.
|
||||
Status: dialogue, button-state, focus and modal-close passes complete; layout/end-to-end audit in progress for 0.9.3.
|
||||
|
||||
## Screen inventory
|
||||
|
||||
@@ -128,6 +128,30 @@ events.
|
||||
| Radio | Send action. | B/Esc cancels; form fields, action and Cancel are linked; A confirms the focused action. |
|
||||
| Tutorial | None; F1 is the documented skip shortcut. | Keyboard-only by design, no focus trap because the card is mouse-transparent and non-modal. |
|
||||
|
||||
## Modal close and pointer recapture
|
||||
|
||||
`GameManager._close_top_modal()` is now the single close path for the top
|
||||
interactive layer. It handles the radial, inspection, wand, radio, timeline,
|
||||
Help, Settings, Pause and review before Esc/right-click falls back to target
|
||||
clearing or pause. `_refresh_freeze()` recaptures the mouse when the shift
|
||||
resumes; `_show_start_menu()` keeps the pointer visible at the menu.
|
||||
|
||||
| Surface | Close routes | Result |
|
||||
| --- | --- | --- |
|
||||
| Pause | Resume, Esc, right-click | Closes via one path; guard unfreezes and mouse recaptures. |
|
||||
| Settings | Apply settings, Cancel, Esc, right-click | From the venue menu, both apply and cancel restore the menu. From a shift, cancel returns to the game with the guard unfrozen; apply returns to pause. |
|
||||
| Help | Close, Esc, right-click | Closes only Help; it no longer opens Pause behind the overlay. Returns to whatever was underneath. |
|
||||
| Shift review | Return to menu, Esc, right-click | Returns to the venue menu with the pointer visible. |
|
||||
| Timeline | Close, Esc, right-click | Returns to the review and keeps the pointer visible. |
|
||||
| Radio | Cancel, Esc, right-click | Closes the form, clears the action hint and recaptures the mouse. |
|
||||
| Inspection / wand | Esc, right-click | Closes the panel, unfreezes the guard and recaptures the mouse. |
|
||||
| Action wheel | Esc, right-click | Cancels without a log entry and recaptures the mouse. |
|
||||
| Start menu | Esc quits the application | Root menu; right-click is intentionally inert. |
|
||||
| Tutorial | F1 skip | Non-modal card; never blocks the pointer or movement. |
|
||||
|
||||
The session smoke now covers menu → Settings → Cancel → menu, Help closing on
|
||||
right-click, and Settings cancel from pause leaving the guard unfrozen.
|
||||
|
||||
## Remaining audit work
|
||||
|
||||
- Player-facing labels are now routed through `content/strings.en.json`; numeric
|
||||
|
||||
Reference in new issue
Block a user