diff options
| author | salmonik <salmonik@tuta.io> | 2026-11-05 18:09:43 +0100 |
|---|---|---|
| committer | salmonik <salmonik@tuta.io> | 2026-11-05 18:09:43 +0100 |
| commit | a5d732920bd56c96e85db1ce2073bebf53e6b1ea (patch) | |
| tree | 2692a1f19f5b6cc33d015091f3a176062ea9bcf3 /CONTEXT.md | |
| parent | Grenade trajectory: actual grenade state, full-length path, rounder rings (diff) | |
| download | hl2h-a5d732920bd56c96e85db1ce2073bebf53e6b1ea.tar.gz hl2h-a5d732920bd56c96e85db1ce2073bebf53e6b1ea.zip | |
Items: keep health chargers visible, add charger diagnostics
The health charger's candidate m_iJuice offset (0x3c8) read 0 on a full
charger, so the empty-hide made health chargers disappear entirely. Restrict
the hide to suit chargers (verified 0x47c) until the health offset is
confirmed; health chargers stay visible.
Classify with the server class name when the client class is generic, accept
`healthcharger` in the health branch (maps use item_healthcharger /
CNewWallHealth, not the func_healthcharger brush), and log up to eight
`juice:` lines with the class and both candidate offsets/values.
Diffstat (limited to '')
| -rw-r--r-- | CONTEXT.md | 17 |
1 files changed, 10 insertions, 7 deletions
| @@ -702,13 +702,16 @@ vocabulary / decisions. | |||
| 702 | Reading at the raw offset shifted every count by one type (e.g. RPG read the | 702 | Reading at the raw offset shifted every count by one type (e.g. RPG read the |
| 703 | buckshot count 30 against a max of 3, permanently hiding rockets). | 703 | buckshot count 30 against a max of 3, permanently hiding rockets). |
| 704 | - Chargers and ammo/supply crates are dispensers and are exempt from the | 704 | - Chargers and ammo/supply crates are dispensers and are exempt from the |
| 705 | fullness filter. Empty health/suit chargers are still hidden: both | 705 | fullness filter. Empty **suit** chargers are hidden (`CNewRecharge` |
| 706 | `CWallHealth` (health brush) and `CNewRecharge` (suit charger) expose | 706 | `m_iJuice` at 0x47c, derived from `m_iMaxJuice - 20`; 0 = depleted, -1 |
| 707 | `m_iJuice`, but at different offsets because their bases differ | 707 | unreadable fails open). Health chargers are currently left visible: their |
| 708 | (`CBaseToggle` vs `CBaseAnimating`). `datamap_offsets` collects every match; | 708 | candidate `m_iJuice` offset (0x3c8 for `CWallHealth`/`CNewWallHealth`) read 0 |
| 709 | the suit offset is `m_iMaxJuice - 20` and the health offset is the other | 709 | on a full charger, so the empty-hide is not trusted yet. |
| 710 | `m_iJuice` match (0x47c / 0x3c8 in this build). `server_item_juice` picks | 710 | `server_item_juice` logs up to eight `juice:` lines with the class and both |
| 711 | by the server class name. 0 removes the tag; -1 (unreadable) fails open. | 711 | candidate values to finish diagnosing this. Item classification also falls |
| 712 | back to the server class name when the client class is generic, and the | ||
| 713 | health branch accepts `healthcharger` (maps use `item_healthcharger`, | ||
| 714 | i.e. `CNewWallHealth`, not the `func_healthcharger` brush). | ||
| 712 | - Scans the client entity list every 100 ms and tags health, ammo, armor/suit, | 715 | - Scans the client entity list every 100 ms and tags health, ammo, armor/suit, |
| 713 | world weapon pickups, the two supply-crate models and generic items. | 716 | world weapon pickups, the two supply-crate models and generic items. |
| 714 | - Each tag is a colored marker with a name and optional distance, filtered by | 717 | - Each tag is a colored marker with a name and optional distance, filtered by |
