From b9d5965c0366fd7777c3627b9fbf89c8526ac0ec Mon Sep 17 00:00:00 2001 From: salmonik Date: Wed, 4 Nov 2026 01:13:09 +0100 Subject: World tint: colour dynamic props through m_clrRender Prop model materials (VertexLitGeneric) ignore IMaterial::ColorModulate: the engine feeds StudioRender the per-entity render colour (m_clrRender) on every draw, so the material-side tint never showed on crates and other props. Resolve m_clrRender from DT_BaseEntity and, every 10 ms while World tint and Props are enabled, write the prop colour into every entity whose model is under models/props. Restore white once when disabled. --- src/hl2h.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/hl2h.h') diff --git a/src/hl2h.h b/src/hl2h.h index fd7a863..779a241 100644 --- a/src/hl2h.h +++ b/src/hl2h.h @@ -96,6 +96,7 @@ struct NetVars { int activeweapon = -1; // client m_hActiveWeapon handle int owner = -1; // client m_hOwnerEntity handle int weapon_owner = -1; // client m_hOwner handle (C_BaseCombatWeapon) + int clr_render = -1; // client m_clrRender (entity render colour) // ponytail: mins/maxs may be absent from some HL2 netvar tables; esp.cpp falls back to h=72 bool ok() const { return flags >= 0 && velocity >= 0 && movetype >= 0; } // ponytail: m_iMaxHealth isn't a netvar in HL2 SP; esp.cpp falls back to 100. @@ -296,6 +297,7 @@ int engine_get_local_player(); void draw_text_col(int x, int y, const char *s, int r, int g, int b); void esp_draw(); void esp_draw_items(); +void prop_tint_update(); bool world_to_screen(const Vector &w, float &sx, float &sy); void set_silent_restore(const QAngle &angles); bool is_visible(const Vector &eye, const Vector &point, -- cgit v1.2.3