summaryrefslogtreecommitdiffstats
path: root/CONTEXT.md
diff options
context:
space:
mode:
authorsalmonik <salmonik@tuta.io>2026-11-04 12:52:03 +0100
committersalmonik <salmonik@tuta.io>2026-11-04 12:52:03 +0100
commit669d6c37306ca728e64836b61e9e466020129f48 (patch)
tree0061e6c9a289ff4912dbf44d2bc82b6d2244740a /CONTEXT.md
parentProps: forward DrawModel's modelOrigin argument (diff)
downloadhl2h-669d6c37306ca728e64836b61e9e466020129f48.tar.gz
hl2h-669d6c37306ca728e64836b61e9e466020129f48.zip
ESP: render damage tags as small left-side labels
Draw ARM/VULN/IMM on the left edge of the box with a 10px font and a black 1px shadow, instead of full-size text above the name. The small font is a second HFont created next to the 16px body font. CONTEXT: document the DrawModel argument fix and the tag styling.
Diffstat (limited to 'CONTEXT.md')
-rw-r--r--CONTEXT.md14
1 files changed, 12 insertions, 2 deletions
diff --git a/CONTEXT.md b/CONTEXT.md
index 7f8b131..5e36328 100644
--- a/CONTEXT.md
+++ b/CONTEXT.md
@@ -198,8 +198,10 @@ vocabulary / decisions.
198 - `VULNERABLE` — headcrab, antlion, manhack: punting them with the gravity 198 - `VULNERABLE` — headcrab, antlion, manhack: punting them with the gravity
199 gun / physics impact damage kills them. 199 gun / physics impact damage kills them.
200 - `NORMAL` — everything else. 200 - `NORMAL` — everything else.
201- ESP draws `ARMORED` (orange), `VULN` (cyan) or `IMMUNE` (grey) above the 201- ESP draws a small 10 px label on the left edge of the box with a black 1 px
202 name; toggle is `ESP → Damage tags` (`[esp] dmg=1`). 202 shadow: `ARM` (orange), `VULN` (cyan) or `IMM` (grey). Toggle is
203 `ESP → Damage tags` (`[esp] dmg=1`). The small font is a second `HFont`
204 created at glyph size 10 alongside the 16 px body font (`g_font_small`).
203- Aimbot/silent aim/triggerbot/melee skip `IMMUNE` targets always and 205- Aimbot/silent aim/triggerbot/melee skip `IMMUNE` targets always and
204 `ARMORED` targets unless the active weapon is the RPG 206 `ARMORED` targets unless the active weapon is the RPG
205 (`active_weapon_contains` for `rocket_launcher`/`rpg`). 207 (`active_weapon_contains` for `rocket_launcher`/`rpg`).
@@ -365,6 +367,14 @@ vocabulary / decisions.
365 `SetColorModulation(1,1,1)` *before* `DrawModel`. 367 `SetColorModulation(1,1,1)` *before* `DrawModel`.
366 Do not force `SetAlphaModulation` there: the earlier attempt produced 368 Do not force `SetAlphaModulation` there: the earlier attempt produced
367 error-material props and a material-system crash. 369 error-material props and a material-system crash.
370- `DrawModel` takes seven arguments after `this`: results, info, boneToWorld,
371 flexWeights, flexDelayedWeights, `const Vector &modelOrigin` (arrives as a
372 pointer) and `flags`. The hook must forward all of them; omitting
373 `modelOrigin` shifts `flags` into its slot and leaves the real `flags` as
374 caller stack garbage, which corrupted roughly every other prop draw
375 (checkerboard / error-material props). Verified against `studiorender.so`
376 0x83ad0: the callee reads `0x20(%ebp)` (modelOrigin) and `0x24(%ebp)`
377 (flags). `DrawModelStaticProp` takes info/modelToWorld/flags only.
368- `prop_tint_update()` also writes `m_clrRender` on prop entities (dynamic 378- `prop_tint_update()` also writes `m_clrRender` on prop entities (dynamic
369 props) as a secondary path; the netvar resolver rejects offset 0 (an 379 props) as a secondary path; the netvar resolver rejects offset 0 (an
370 embedded-table false positive) and only accepts 0x20..0x2000. 380 embedded-table false positive) and only accepts 0x20..0x2000.