summaryrefslogtreecommitdiffstats
path: root/docs/adr/0001-custom-isurface-gui.md
diff options
context:
space:
mode:
authorsalmonik <salmonik@tuta.io>2026-11-04 01:16:51 +0100
committersalmonik <salmonik@tuta.io>2026-11-04 01:16:51 +0100
commit76c88403d18ef01e8f15b89fcd6d09f0825a1bfc (patch)
tree04049208055fb0533af01a46a2a96c2b9ce491a5 /docs/adr/0001-custom-isurface-gui.md
parentWorld tint: colour dynamic props through m_clrRender (diff)
downloadhl2h-76c88403d18ef01e8f15b89fcd6d09f0825a1bfc.tar.gz
hl2h-76c88403d18ef01e8f15b89fcd6d09f0825a1bfc.zip
World tint: tint map-static props through IStudioRender
Most of the crates are prop_static, which have no client entity, so writing m_clrRender only reached the three dynamic ones. Hook the StudioRender interface (VStudioRender025) on the interface object's vtable: substitute the prop colour in SetColorModulation/SetAlphaModulation while DrawModelStaticProp is drawing a models/props model, and set the modulation explicitly before the original draw in case the engine sets it just before the call. Vtable indices verified by disassembling CStudioRenderContext: 27 = three float stores from the argument pointer, 28 = one float, 30 = the DrawModelInfo_t-drawing entry with three arguments (the 2013 SDK header lists these slots five positions earlier in this build).
Diffstat (limited to 'docs/adr/0001-custom-isurface-gui.md')
0 files changed, 0 insertions, 0 deletions