diff options
| author | salmonik <salmonik@tuta.io> | 2026-10-27 18:02:10 +0100 |
|---|---|---|
| committer | salmonik <salmonik@tuta.io> | 2026-10-27 18:02:10 +0100 |
| commit | 0e9f3422e37d0b2d1344efec5ceb07c2246bfcd7 (patch) | |
| tree | a8aa0b5a4718f0e7d407a31135823523a77744b0 /CONTEXT.md | |
| parent | Speedgraph: lower the graph (diff) | |
| download | hl2h-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.md | 28 |
1 files changed, 28 insertions, 0 deletions
| @@ -99,6 +99,10 @@ Starts fully collapsed on first open. `Insert` toggles; `Up`/`Down` navigate; | |||
| 99 | Bind rows enter bind-select mode: press a key/button to assign, `Escape` sets | 99 | Bind rows enter bind-select mode: press a key/button to assign, `Escape` sets |
| 100 | None (always-on), `Enter` cancels. | 100 | None (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 | ``` |
| 103 | HL2hake | 107 | HL2hake |
| 104 | Bunnyhop | 108 | Bunnyhop |
| @@ -136,6 +140,30 @@ HL2hake | |||
| 136 | 140 | ||
| 137 | Binds use SDL scancodes; mouse buttons are pseudo-scancodes 600..604. | 141 | Binds 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 |
