From 3fae02c7d342981c9910db7715305bc57b261a8b Mon Sep 17 00:00:00 2001 From: salmonik Date: Tue, 27 Oct 2026 18:09:19 +0100 Subject: GUI: allow movement while open; freeze look and block bind capture Feedback pass on the preview shell: - Freeze the rendered view explicitly in CreateMove and again at FRAME_RENDER_START; CInput was still letting mouse look move the camera. - Allow normal WASD/jump/duck movement while the GUI is open; strip attack/use/impulse/weapon selection so GUI clicks do not fire. - While bind capture is active, block all game input. - Esc no longer closes the GUI; it only cancels bind capture. F2 or the title-bar X close the preview. - Interpose SDL_ShowCursor / SDL_SetRelativeMouseMode / warp / window grab so the game cannot re-capture or hide the native cursor while the GUI is open. --- CONTEXT.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'CONTEXT.md') diff --git a/CONTEXT.md b/CONTEXT.md index 1c43b1f..53c662e 100644 --- a/CONTEXT.md +++ b/CONTEXT.md @@ -148,20 +148,24 @@ Binds use SDL scancodes; mouse buttons are pseudo-scancodes 600..604. - **Category**: sidebar group. Movement, Combat, Visuals, Weapons, System. - **Card**: per-feature panel. Header always shows Active + Bind; body is a collapsible set of settings. -- **Freeze**: while the GUI is open, the usercmd movement/buttons/impulses/view - are held and combat features are skipped; the game keeps simulating and - ESP/FOV circle/speed graph keep drawing. No invulnerability. +- **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. - **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 or clicking elsewhere - cancels; Clear sets None; Insert is reserved for the GUI. +- **Bind capture**: click Bind, press a key/button; Esc cancels capture but + does not close the GUI; clicking elsewhere cancels; Clear sets None; Insert + is reserved for the GUI. - **UI scale**: `clamp(min(screen_w/1920, screen_h/1080), 0.75, 1.5)`; base window 960x620, body/title fonts 15/20 px at scale 1. - Every feature gets Active + Bind; bind None means always-on. - System page: config path/build info, Reload config, and a two-click Reset 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]`. + category and expanded cards persisted under `[gui]`. Esc does not close the + GUI; the toggle key or title-bar X does. ## Bones / ESP -- cgit v1.2.3