From 304441c71997ee61e618146f4d4302c6d2b952ad Mon Sep 17 00:00:00 2001 From: salmonik Date: Tue, 27 Oct 2026 18:21:13 +0100 Subject: GUI: Insert-only close, freeze mouse look at the source Feedback pass: - Insert now toggles the GUI; the old text tree moved to F1. - Remove the title-bar X. Insert is the only close path; Esc only cancels bind capture. - Discard accumulated mouse deltas in CInput::CreateMove before the game can apply them (CInput::ClearStates), so the camera no longer moves for a frame and snaps back. Also skip ExtraMouseSample and zero relative mouse state while the GUI is open. - Strip attack/use/impulse/weapon selection from the command while open; keep jump, duck and walk. Skip combat command edits (spread seed) too. - Widen System page buttons so "Reload config" and "Reset defaults" fit. - Update CONTEXT/ADR for the Insert-only close behavior. --- CONTEXT.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'CONTEXT.md') diff --git a/CONTEXT.md b/CONTEXT.md index 53c662e..6f6e59e 100644 --- a/CONTEXT.md +++ b/CONTEXT.md @@ -94,14 +94,14 @@ Relevant vtable slots (this build): ## Menu -Starts fully collapsed on first open. `Insert` toggles; `Up`/`Down` navigate; +Preview key: `F1` (the final GUI will replace this tree). Starts fully collapsed on first open. `F1` toggles; `Up`/`Down` navigate; `Enter` expands/toggles; `Left`/`Right` edit values; `Escape` closes. Bind rows enter bind-select mode: press a key/button to assign, `Escape` sets None (always-on), `Enter` cancels. > The text menu below is being replaced by the GUI described in the next -> section. The old tree is kept only until the GUI reaches parity. The current -> preview shell opens with F2; Insert still opens the text tree. +> section. The old tree is kept only until the GUI reaches parity. During the +> preview, **Insert** toggles the GUI and the old text tree is on **F1**. ``` HL2hake @@ -149,10 +149,11 @@ Binds use SDL scancodes; mouse buttons are pseudo-scancodes 600..604. - **Card**: per-feature panel. Header always shows Active + Bind; body is a collapsible set of settings. - **Freeze**: while the GUI is open, look/attack/use/impulse/weapon selection - are blocked and combat features are skipped, but normal WASD/jump/duck - movement is allowed. Bind capture blocks all game input until it ends. The - game keeps simulating and ESP/FOV circle/speed graph keep drawing. No - invulnerability. + are blocked and combat features are skipped, but normal WASD/jump/duck/walk + movement is allowed. Mouse deltas are discarded before `CInput::CreateMove` + can apply them (`CInput::ClearStates`), so the view cannot drift for a frame. + Bind capture blocks all game input until it ends. The game keeps simulating + and ESP/FOV circle/speed graph keep drawing. No invulnerability. - **Native cursor**: on open, leave SDL relative-mouse mode and show the OS cursor; restore on close. Absolute mouse coordinates are used. - **Bind capture**: click Bind, press a key/button; Esc cancels capture but @@ -165,7 +166,7 @@ Binds use SDL scancodes; mouse buttons are pseudo-scancodes 600..604. that restores feature settings/binds but keeps GUI layout. - Window: fixed-size, draggable by title bar, clamped to screen, position, category and expanded cards persisted under `[gui]`. Esc does not close the - GUI; the toggle key or title-bar X does. + GUI; the toggle key (Insert) is the only close path. There is no title-bar X. ## Bones / ESP -- cgit v1.2.3