<feed xmlns='http://www.w3.org/2005/Atom'>
<title>hl2h/src/hooks.cpp, branch master</title>
<subtitle>Simple internal C++ cheat for HL2 for GNU/Linux.
</subtitle>
<id>https://git.2137697.xyz/hl2h/atom?h=master</id>
<link rel='self' href='https://git.2137697.xyz/hl2h/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.2137697.xyz/hl2h/'/>
<updated>2026-11-06T15:19:25Z</updated>
<entry>
<title>Hooks: central vtable install with restore support</title>
<updated>2026-11-06T15:19:25Z</updated>
<author>
<name>salmonik</name>
<email>salmonik@tuta.io</email>
</author>
<published>2026-11-06T15:19:25Z</published>
<link rel='alternate' type='text/html' href='https://git.2137697.xyz/hl2h/commit/?id=9f0724dcd25a06c5674d30d045dc485a341253b1'/>
<id>urn:sha1:9f0724dcd25a06c5674d30d045dc485a341253b1</id>
<content type='text'>
Move vtable patching into hooks.cpp: one call clones the table, validates every
slot, records the originals and installs the clone. Installs happen from the
setup, game and paint threads, so the bookkeeping is mutex-protected.

Client, CInput, IVModelRender, IStudioRender and ISurface all use it, and
hooks_restore_all() can now put every interface back (previously impossible).
</content>
</entry>
</feed>
