<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mike/sst/src/hud.c, branch v0.18-BETA</title>
<subtitle>Source Speedrun Tools: practice tools and handy features for Source Engine games</subtitle>
<id>https://qdb.woz.blue/mike/sst/atom?h=v0.18-BETA</id>
<link rel='self' href='https://qdb.woz.blue/mike/sst/atom?h=v0.18-BETA'/>
<link rel='alternate' type='text/html' href='https://qdb.woz.blue/mike/sst/'/>
<updated>2026-02-16T19:11:24+00:00</updated>
<entry>
<title>Move to static trampolines and type-safe hooks</title>
<updated>2026-02-16T19:11:24+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2025-12-26T23:12:11+00:00</published>
<link rel='alternate' type='text/html' href='https://qdb.woz.blue/mike/sst/commit/?id=af370088fc178996a46ee508aaa1a2c46318bbf2'/>
<id>urn:sha1:af370088fc178996a46ee508aaa1a2c46318bbf2</id>
<content type='text'>
For some reason the DLL got a tiny little bit bigger again but that's
fine. This will make orig_ calls more efficient in the inline case, and
also make it harder to screw up and hook the wrong thing by mistake.

Self-explanatory-ish, apart from the fact it's a fairly large API change
of course. And it relies on some more bonkers assembler directive
hackery.

But it works!

The only complaint one might have is that the featsetup functions no
longer take an explicit string which occasionally yields slightly less
perfect error messages, but I've decided this isn't really a problem and
makes the API nicer to use. It's a tradeoff, innit.
</content>
</entry>
<entry>
<title>Size-optimise a few things</title>
<updated>2026-02-16T19:11:24+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2025-12-18T23:33:26+00:00</published>
<link rel='alternate' type='text/html' href='https://qdb.woz.blue/mike/sst/commit/?id=f386f2a1fcae885967278710fe997c56e2183476'/>
<id>urn:sha1:f386f2a1fcae885967278710fe997c56e2183476</id>
<content type='text'>
Saves multiple kilobytes, somehow. Unlikely to make much of a
performance difference since it's mostly init/shutdown stuff.
</content>
</entry>
<entry>
<title>Fix input HUD crash in L4D games</title>
<updated>2025-11-25T19:44:59+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2025-11-25T19:40:20+00:00</published>
<link rel='alternate' type='text/html' href='https://qdb.woz.blue/mike/sst/commit/?id=447aa3e9d2983a8fd74e7f8371bf88ece291bd69'/>
<id>urn:sha1:447aa3e9d2983a8fd74e7f8371bf88ece291bd69</id>
<content type='text'>
I screwed up merging Evan's changes, and also didn't have that one
REQUIRE_GAMEDATA for some reason, and also didn't test actually turning
on the sst_inputhud cvar once everything had loaded fine in testing.

Unlucky, I guess. Better testing might still have caught it.
</content>
</entry>
<entry>
<title>Turn x86 stuff into a chunklet to help out SPT</title>
<updated>2025-11-24T03:23:22+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2025-11-24T03:19:49+00:00</published>
<link rel='alternate' type='text/html' href='https://qdb.woz.blue/mike/sst/commit/?id=508878ff0a9e4cd8528727c41819bc2d70b33dd0'/>
<id>urn:sha1:508878ff0a9e4cd8528727c41819bc2d70b33dd0</id>
<content type='text'>
Quick unused header cleanup pass while we're at it.
</content>
</entry>
<entry>
<title>Remove a superfluous include</title>
<updated>2025-10-05T17:36:46+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2025-10-05T17:22:40+00:00</published>
<link rel='alternate' type='text/html' href='https://qdb.woz.blue/mike/sst/commit/?id=e3716a68c1b4f1b189065dda1a1e998715c8ede9'/>
<id>urn:sha1:e3716a68c1b4f1b189065dda1a1e998715c8ede9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add SDK 2013 HUD support</title>
<updated>2025-10-05T17:36:46+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2025-10-05T17:19:47+00:00</published>
<link rel='alternate' type='text/html' href='https://qdb.woz.blue/mike/sst/commit/?id=9d60415e2c2fa5c56edc3e23079c9b885a82ae00'/>
<id>urn:sha1:9d60415e2c2fa5c56edc3e23079c9b885a82ae00</id>
<content type='text'>
Gamedata values contributed by Evan Lin. Thanks!
</content>
</entry>
<entry>
<title>Add type-safety to virtual calls and accessors</title>
<updated>2025-04-17T19:02:18+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2025-04-17T00:39:10+00:00</published>
<link rel='alternate' type='text/html' href='https://qdb.woz.blue/mike/sst/commit/?id=8a669bc96ffdb9d0f6f54e464da11e3375c80a55'/>
<id>urn:sha1:8a669bc96ffdb9d0f6f54e464da11e3375c80a55</id>
<content type='text'>
This probably should have been the design from the start.

It's still possible to use void pointers, and this is done in a couple
of places for simplicity, but wherever possible, we have actual structs
for things now.

Additionally, in places where vtables are fiddled with, e.g. vtable
hooks, we have actual struct definitions with vtable pointers so there's
need for pointer-casting horror.
</content>
</entry>
<entry>
<title>Fix major idiocy in inputhud (and hud kinda)</title>
<updated>2025-04-16T01:21:43+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2025-04-16T01:20:31+00:00</published>
<link rel='alternate' type='text/html' href='https://qdb.woz.blue/mike/sst/commit/?id=27ce81043a31e61d9e2bea88e4ea883d8e4a4b39'/>
<id>urn:sha1:27ce81043a31e61d9e2bea88e4ea883d8e4a4b39</id>
<content type='text'>
Also pointed out by bill. D'oh, guess I'm fired.
</content>
</entry>
<entry>
<title>Remove years from copyright headers</title>
<updated>2025-04-07T20:31:32+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2025-04-07T20:31:32+00:00</published>
<link rel='alternate' type='text/html' href='https://qdb.woz.blue/mike/sst/commit/?id=58b495650f7613cdebfe78fff9de2b99556f1998'/>
<id>urn:sha1:58b495650f7613cdebfe78fff9de2b99556f1998</id>
<content type='text'>
They're legally unnecessary as far as I know, and kind of annoying to
maintain on a long-term basis.

This was done with the consent of all 3 other contributors, in case
anyone was wondering.
</content>
</entry>
<entry>
<title>Pass screen width and height into HudPaint events</title>
<updated>2025-04-06T19:59:36+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2025-04-05T15:41:32+00:00</published>
<link rel='alternate' type='text/html' href='https://qdb.woz.blue/mike/sst/commit/?id=7ac57c976d95bce5a7a98e0f269e4cd3d61f3055'/>
<id>urn:sha1:7ac57c976d95bce5a7a98e0f269e4cd3d61f3055</id>
<content type='text'>
This makes it unnecessary to call hud_screensize in basically
every handler.
</content>
</entry>
</feed>
