summaryrefslogtreecommitdiffstats
path: root/CONTEXT.md
diff options
context:
space:
mode:
authorsalmonik <salmonik@tuta.io>2026-10-27 18:02:10 +0100
committersalmonik <salmonik@tuta.io>2026-10-27 18:02:10 +0100
commit0e9f3422e37d0b2d1344efec5ceb07c2246bfcd7 (patch)
treea8aa0b5a4718f0e7d407a31135823523a77744b0 /CONTEXT.md
parentSpeedgraph: lower the graph (diff)
downloadhl2h-0e9f3422e37d0b2d1344efec5ceb07c2246bfcd7.tar.gz
hl2h-0e9f3422e37d0b2d1344efec5ceb07c2246bfcd7.zip
GUI: add F2 preview shell with dummy controls
First vertical slice for the custom ISurface GUI: - window/sidebar/content shell with Movement, Combat, Visuals, Weapons and System categories; - cards with dummy Active/Bind, collapsible settings, toggles, sliders, buttons, bind capture, scrolling and tooltips; - native OS cursor by releasing SDL relative mode; reasserted while open; - F2 toggles the preview; Insert still opens the old text tree; - while the GUI is open, do_move freezes movement/buttons/impulses/view and skips combat features; ESP and the speed graph keep drawing. Dummy controls do not touch the real config yet. The text menu is removed after feature parity in the next pass.
Diffstat (limited to '')
-rw-r--r--CONTEXT.md28
1 files changed, 28 insertions, 0 deletions
diff --git a/CONTEXT.md b/CONTEXT.md
index 861fbf8..1c43b1f 100644
--- a/CONTEXT.md
+++ b/CONTEXT.md
@@ -99,6 +99,10 @@ Starts fully collapsed on first open. `Insert` toggles; `Up`/`Down` navigate;
99Bind rows enter bind-select mode: press a key/button to assign, `Escape` sets 99Bind rows enter bind-select mode: press a key/button to assign, `Escape` sets
100None (always-on), `Enter` cancels. 100None (always-on), `Enter` cancels.
101 101
102> The text menu below is being replaced by the GUI described in the next
103> section. The old tree is kept only until the GUI reaches parity. The current
104> preview shell opens with F2; Insert still opens the text tree.
105
102``` 106```
103HL2hake 107HL2hake
104 Bunnyhop 108 Bunnyhop
@@ -136,6 +140,30 @@ HL2hake
136 140
137Binds use SDL scancodes; mouse buttons are pseudo-scancodes 600..604. 141Binds use SDL scancodes; mouse buttons are pseudo-scancodes 600..604.
138 142
143## GUI vocabulary / decisions
144
145- **GUI**: custom immediate-mode settings surface drawn through the existing
146 `ISurface` paint path. No Dear ImGui, no OpenGL hook, no new runtime
147 dependency.
148- **Category**: sidebar group. Movement, Combat, Visuals, Weapons, System.
149- **Card**: per-feature panel. Header always shows Active + Bind; body is a
150 collapsible set of settings.
151- **Freeze**: while the GUI is open, the usercmd movement/buttons/impulses/view
152 are held and combat features are skipped; the game keeps simulating and
153 ESP/FOV circle/speed graph keep drawing. No invulnerability.
154- **Native cursor**: on open, leave SDL relative-mouse mode and show the OS
155 cursor; restore on close. Absolute mouse coordinates are used.
156- **Bind capture**: click Bind, press a key/button; Esc or clicking elsewhere
157 cancels; Clear sets None; Insert is reserved for the GUI.
158- **UI scale**: `clamp(min(screen_w/1920, screen_h/1080), 0.75, 1.5)`; base
159 window 960x620, body/title fonts 15/20 px at scale 1.
160- Every feature gets Active + Bind; bind None means always-on.
161- System page: config path/build info, Reload config, and a two-click Reset
162 that restores feature settings/binds but keeps GUI layout.
163- Window: fixed-size, draggable by title bar, clamped to screen, position,
164 category and expanded cards persisted under `[gui]`.
165
166
139## Bones / ESP 167## Bones / ESP
140 168
141- `SetupBones(BONE_USED_BY_ANYTHING)` with engine `Time()`; studio header via 169- `SetupBones(BONE_USED_BY_ANYTHING)` with engine `Time()`; studio header via