diff options
Diffstat (limited to '')
| -rw-r--r-- | src/ISURFACE_STATUS.md | 36 |
1 files changed, 23 insertions, 13 deletions
diff --git a/src/ISURFACE_STATUS.md b/src/ISURFACE_STATUS.md index de952cd..00a7adf 100644 --- a/src/ISURFACE_STATUS.md +++ b/src/ISURFACE_STATUS.md | |||
| @@ -1,13 +1,13 @@ | |||
| 1 | # HL2hake ISurface Drawing — Status Report | 1 | # HL2hake ISurface Drawing — Status Report |
| 2 | 2 | ||
| 3 | ## Date: 2026-09-12 (final round) | 3 | ## Date: 2026-09-12, updated 2026-10-26 |
| 4 | 4 | ||
| 5 | ## Result: WORKING | 5 | ## Result: WORKING |
| 6 | 6 | ||
| 7 | Overlay drawing works in-game and in menus. Draw path: `PaintTraverseEx` | 7 | Overlay drawing works in-game and in menus. Draw path: `PaintTraverseEx` |
| 8 | hook (slot 114) on the copied ISurface vtable, wrapping our draws in | 8 | hook (slot 114) on the copied ISurface vtable, wrapping our draws in |
| 9 | `PushMakeCurrent(panel, false)` / `PopMakeCurrent(panel)` around ISurface | 9 | `PushMakeCurrent(panel, false)` / `PopMakeCurrent(panel)` around ISurface |
| 10 | slots 6/10/12/17/18/20/22/66/67. | 10 | slots 6/10/12/15/17/18/20/22/66/67. |
| 11 | 11 | ||
| 12 | ## Confirmed ISurface VTable Slots (disassembly-verified, binary=SDK header+4) | 12 | ## Confirmed ISurface VTable Slots (disassembly-verified, binary=SDK header+4) |
| 13 | 13 | ||
| @@ -18,6 +18,8 @@ slots 6/10/12/17/18/20/22/66/67. | |||
| 18 | | 9 | `PopMakeCurrent(VPANEL)` | verified via disassembly | | 18 | | 9 | `PopMakeCurrent(VPANEL)` | verified via disassembly | |
| 19 | | 10 | `DrawSetColor(int r,g,b,a)` | stores RGBA at `this+0x24..0x27` | | 19 | | 10 | `DrawSetColor(int r,g,b,a)` | stores RGBA at `this+0x24..0x27` | |
| 20 | | 12 | `DrawFilledRect(int x0,y0,x1,y1)` | verified via disassembly | | 20 | | 12 | `DrawFilledRect(int x0,y0,x1,y1)` | verified via disassembly | |
| 21 | | 14 | `DrawOutlinedRect(int x0,y0,x1,y1)` | SDK header 10 + 4 | | ||
| 22 | | 15 | `DrawLine(int x0,y0,x1,y1)` | SDK header 11 + 4 (skeleton ESP) | | ||
| 21 | | 17 | `DrawSetTextFont(HFont)` | stores HFont at `this+0x290` | | 23 | | 17 | `DrawSetTextFont(HFont)` | stores HFont at `this+0x290` | |
| 22 | | 18 | `DrawSetTextColor(int r,g,b,a)` | stores RGBA at `this+0x28..0x2b` | | 24 | | 18 | `DrawSetTextColor(int r,g,b,a)` | stores RGBA at `this+0x28..0x2b` | |
| 23 | | 20 | `DrawSetTextPos(int x,y)` | stores at `this+0x2c/0x30` | | 25 | | 20 | `DrawSetTextPos(int x,y)` | stores at `this+0x2c/0x30` | |
| @@ -65,24 +67,27 @@ fc-match findings (system fontconfig): | |||
| 65 | 67 | ||
| 66 | ## Menu | 68 | ## Menu |
| 67 | 69 | ||
| 68 | - Tree: HL2hake → Bunnyhop/ABH, children indented (`g_depth[]`, +12px/level). | 70 | - Starts fully collapsed on first open; `Insert` toggles it. |
| 69 | - Right-aligned state at x=200: `[on]`/`[off]` for Active rows, | 71 | - Tree: HL2hake -> Bunnyhop (Active, Auto-strafe), ABH (Active), ESP (Active, |
| 70 | `[keyname]` for Bind rows, `[press key]` while binding. | 72 | Show neutral/healthbar/healthnum/name/skeleton/box), Aimbot (Active, Bind, |
| 73 | Vischeck, Bones, Smoothness), Triggerbot (Active, Bind), Silent aim | ||
| 74 | (Active, Bind). Children indented by `g_depth[]` (+12px/level). | ||
| 75 | - Right-aligned state at x=270: `[on]`/`[off]` for toggles, `[keyname]` for | ||
| 76 | binds, `[press key]` while binding, `N deg/tick` for values. | ||
| 71 | - Feature gating: `feature_active(int)` (menu.cpp) — active AND | 77 | - Feature gating: `feature_active(int)` (menu.cpp) — active AND |
| 72 | (bind==0 or key held). Called from `do_move` (hl2h.cpp) to gate | 78 | (bind==0 or key held), used by `do_move` and the aim features. |
| 73 | bhop (jump) and ABH branches. | 79 | - Config: `$XDG_CONFIG_HOME/hl2hake/config` (fallback `~/.config/hl2hake/config`). |
| 74 | - Config: INI at `~/.hl2hake.ini` (bhop/abh active+bind). | ||
| 75 | 80 | ||
| 76 | ## Build / Run | 81 | ## Build / Run |
| 77 | 82 | ||
| 78 | - `./build.sh`: g++ `-m32 -O2 -fPIC -shared`, links 5 TUs, `-ldl`, | 83 | - `./build.sh`: g++ `-m32 -O2 -std=c++17 -fPIC -shared`, 9 TUs |
| 84 | (`hl2h modules cinput netvars menu esp server bones vischeck`), `-ldl`, | ||
| 79 | `-Wall -Wextra -Werror` (all warnings fatal). | 85 | `-Wall -Wextra -Werror` (all warnings fatal). |
| 80 | - `./play.sh -windowed +map d1_trainstation_01` (Steam runtime wrapper, | 86 | - `./play.sh -windowed +map d1_trainstation_01` (Steam runtime wrapper, |
| 81 | `LD_PRELOAD=libhl2hake.so`). | 87 | `LD_PRELOAD=libhl2hake.so`). |
| 82 | - Logs: `/tmp/hl2hake.log` (logf), `/tmp/hl2run.log` (stderr). | 88 | - Logs: `/tmp/hl2hake.log` (logf), stderr. |
| 83 | - Probe logging (`hook fired:`, `probe:`) removed 2026-09-12. | ||
| 84 | - `HL2H_DRAW_TEST=1` env: draws red rect + "HL2H DRAW TEST" without | 89 | - `HL2H_DRAW_TEST=1` env: draws red rect + "HL2H DRAW TEST" without |
| 85 | opening the menu. | 90 | opening the menu. `HL2H_BONE_DEBUG=1` draws head-hitbox markers. |
| 86 | 91 | ||
| 87 | ## Lessons | 92 | ## Lessons |
| 88 | 93 | ||
| @@ -98,7 +103,12 @@ fc-match findings (system fontconfig): | |||
| 98 | ## File Locations | 103 | ## File Locations |
| 99 | 104 | ||
| 100 | - Project: `/home/salmon/Documents/rust/hl2h/` | 105 | - Project: `/home/salmon/Documents/rust/hl2h/` |
| 101 | - Hook + feature logic: `src/hl2h.cpp` | 106 | - Hook + movement/feature logic: `src/hl2h.cpp` |
| 102 | - Menu + drawing + config + input: `src/menu.cpp` | 107 | - Menu + drawing + config + input: `src/menu.cpp` |
| 108 | - ESP / skeleton drawing / aimbot / silent aim: `src/esp.cpp` | ||
| 109 | - Bones + hitboxes: `src/bones.cpp` | ||
| 110 | - Server-side entity/health access: `src/server.cpp` | ||
| 111 | - World vischeck / entity trace: `src/vischeck.cpp` | ||
| 103 | - Shared API: `src/hl2h.h` | 112 | - Shared API: `src/hl2h.h` |
| 113 | - Current project overview: `CONTEXT.md` | ||
| 104 | - SDK headers: `source-sdk-2013/src/public/vgui/` | 114 | - SDK headers: `source-sdk-2013/src/public/vgui/` |
