From 669d6c37306ca728e64836b61e9e466020129f48 Mon Sep 17 00:00:00 2001 From: salmonik Date: Wed, 4 Nov 2026 12:52:03 +0100 Subject: 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. --- CONTEXT.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'CONTEXT.md') diff --git a/CONTEXT.md b/CONTEXT.md index 7f8b131..5e36328 100644 --- a/CONTEXT.md +++ b/CONTEXT.md @@ -198,8 +198,10 @@ vocabulary / decisions. - `VULNERABLE` — headcrab, antlion, manhack: punting them with the gravity gun / physics impact damage kills them. - `NORMAL` — everything else. -- ESP draws `ARMORED` (orange), `VULN` (cyan) or `IMMUNE` (grey) above the - name; toggle is `ESP → Damage tags` (`[esp] dmg=1`). +- ESP draws a small 10 px label on the left edge of the box with a black 1 px + shadow: `ARM` (orange), `VULN` (cyan) or `IMM` (grey). Toggle is + `ESP → Damage tags` (`[esp] dmg=1`). The small font is a second `HFont` + created at glyph size 10 alongside the 16 px body font (`g_font_small`). - Aimbot/silent aim/triggerbot/melee skip `IMMUNE` targets always and `ARMORED` targets unless the active weapon is the RPG (`active_weapon_contains` for `rocket_launcher`/`rpg`). @@ -365,6 +367,14 @@ vocabulary / decisions. `SetColorModulation(1,1,1)` *before* `DrawModel`. Do not force `SetAlphaModulation` there: the earlier attempt produced error-material props and a material-system crash. +- `DrawModel` takes seven arguments after `this`: results, info, boneToWorld, + flexWeights, flexDelayedWeights, `const Vector &modelOrigin` (arrives as a + pointer) and `flags`. The hook must forward all of them; omitting + `modelOrigin` shifts `flags` into its slot and leaves the real `flags` as + caller stack garbage, which corrupted roughly every other prop draw + (checkerboard / error-material props). Verified against `studiorender.so` + 0x83ad0: the callee reads `0x20(%ebp)` (modelOrigin) and `0x24(%ebp)` + (flags). `DrawModelStaticProp` takes info/modelToWorld/flags only. - `prop_tint_update()` also writes `m_clrRender` on prop entities (dynamic props) as a secondary path; the netvar resolver rejects offset 0 (an embedded-table false positive) and only accepts 0x20..0x2000. -- cgit v1.2.3