<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mike/sst/src/build, branch v0.8-BETA</title>
<subtitle>Source Speedrun Tools: practice tools and handy features for Source Engine games</subtitle>
<id>https://git.woz.blue/mike/sst/atom?h=v0.8-BETA</id>
<link rel='self' href='https://git.woz.blue/mike/sst/atom?h=v0.8-BETA'/>
<link rel='alternate' type='text/html' href='https://git.woz.blue/mike/sst/'/>
<updated>2024-08-26T20:21:33+00:00</updated>
<entry>
<title>Fix broken mkentprops code generation</title>
<updated>2024-08-26T20:21:33+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2024-08-26T20:21:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.woz.blue/mike/sst/commit/?id=b60b92ec6d6fd3117bee3acd06877ea435367d3a'/>
<id>urn:sha1:b60b92ec6d6fd3117bee3acd06877ea435367d3a</id>
<content type='text'>
I screwed things up even more than I thought!
</content>
</entry>
<entry>
<title>Rewrite the gamedata and entprops systems entirely</title>
<updated>2024-08-23T19:40:01+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2024-08-21T23:02:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.woz.blue/mike/sst/commit/?id=cf0354eb8e043fcd9c6c17756701972f948a16f1'/>
<id>urn:sha1:cf0354eb8e043fcd9c6c17756701972f948a16f1</id>
<content type='text'>
This removes the horrible janky old KeyValues parser and replaces it
with a couple of trivial ad-hoc text parsers. In doing so, make the
format of the actual gamedata files more human-friendly too.

We also gain support for nested SendTables in mkentprops, which are
required to get at various things like player velocity. And, the actual
string matching is made more efficient (or, at least, more scalable) by
way of a cool radix tree thing which generates a bunch of switch cases
on distinct characters.
</content>
</entry>
<entry>
<title>Revise syntax macros and add a ton of branch hints</title>
<updated>2024-08-23T19:37:37+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2024-08-03T22:40:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.woz.blue/mike/sst/commit/?id=83da606072ce272eb053d4e1497d77e647cfecae'/>
<id>urn:sha1:83da606072ce272eb053d4e1497d77e647cfecae</id>
<content type='text'>
My new programming style is branch hints. All non-confusing branches
must be hinted when I can be bothered. It's faster, sometimes, maybe.

Also, start trying to use more signed sizes in at least some of the
places where it makes sense. Unsigned sizes are surprisingly
error-prone!
</content>
</entry>
<entry>
<title>Rework OS abstractions</title>
<updated>2024-08-21T23:01:06+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2024-08-03T15:11:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.woz.blue/mike/sst/commit/?id=44902cb49cd51e2bb2f1cef05cb3c0e799b83434'/>
<id>urn:sha1:44902cb49cd51e2bb2f1cef05cb3c0e799b83434</id>
<content type='text'>
- As much as possible avoid dragging system headers into translation
  units. This should avoid namespace pollution and, hopefully, speed up
  builds a little bit.

- Avoid leaning on the UCRT so much on Windows - prefer native win32
  calls and native file handles except where doing so is inconvenient
  (in particular, for stat(), which we might try and replace later).

- Also, switch from SystemFunction036 to ProcessPrng on Windows. This
  requires us to generate a stub for bcryptprimitives.dll because
  Microsoft haven't bothered to provide a link library, but the function
  is better-documented and seems to be a more direct under-the-hood call
  as well. Apparently it's what's used by the major web browsers these
  days, which seems like a good indication it's stable and trusted.

- Lastly, remove a bunch of functions and macros and stuff that weren't
  actually being used. It seems good to try and keep the scope of
  OS-dependent stuff relatively contained and only add to it when
  actually required.
</content>
</entry>
<entry>
<title>Rethink mem_loadoffset, and consequently, kill it</title>
<updated>2024-01-21T22:02:14+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2024-01-21T21:59:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.woz.blue/mike/sst/commit/?id=670488716dde7ba7813dd281f24403a0b24d8690'/>
<id>urn:sha1:670488716dde7ba7813dd281f24403a0b24d8690</id>
<content type='text'>
Suggested by bill. Having something semantically pointer-sized that's
only ever used for stuff that's always 32-bit doesn't really make sense.

Note that I intentionally did not add a copyright line for myself in
hud.c because, I mean, come on. I'll just say I waive any claim to that
tiny trivial change.
</content>
</entry>
<entry>
<title>Perform very minor load/unload optimisations</title>
<updated>2023-08-30T22:44:50+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2023-08-30T22:18:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.woz.blue/mike/sst/commit/?id=464c9398ae49d8faae46f81fb7040155408858f7'/>
<id>urn:sha1:464c9398ae49d8faae46f81fb7040155408858f7</id>
<content type='text'>
Because why not.
</content>
</entry>
<entry>
<title>Get things at least compiling under Linux</title>
<updated>2023-08-26T23:46:09+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2023-08-20T15:20:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.woz.blue/mike/sst/commit/?id=a1998f2f7ce4153d670e2e5cb5018366517cc1ca'/>
<id>urn:sha1:a1998f2f7ce4153d670e2e5cb5018366517cc1ca</id>
<content type='text'>
Nothing really works yet, but at least test.h and fastspin are fixed and
some of the issues with RTTI and libdl and stuff are maybe kind of
sorted, subject to more testing later.

The main issue now seems to be the cvar interface not quite lining up
and crashing pretty much immediately. That'll probably take a lot more
debugging to figure out, which likely still won't be a priority for
quite a while.
</content>
</entry>
<entry>
<title>Make various preparations for upcoming features</title>
<updated>2023-08-02T20:02:31+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2023-07-29T13:32:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.woz.blue/mike/sst/commit/?id=9a0d8730fa977f666b5c12e4c5901e7d0391e245'/>
<id>urn:sha1:9a0d8730fa977f666b5c12e4c5901e7d0391e245</id>
<content type='text'>
A lot of this is random WIP from a while back, at least a month ago, and
is being committed now to get it out of the way so that other patches
can be brought in and integrated against it without causing headaches.

Also rolled into this commit is a way to distinguish plugin_unload from
exiting the game. This is required for another soon-to-be-integrated
feature to avoid crashing on exit, and could in theory also be used to
speed up unloading on exit in future. While we're at it, this also
avoids the need to linearly scan through the plugin list to do the
old branch unloading fix, because we can.

Rough summary of the other smaller stuff I can remember doing:
- Rework bitbuf a bit
- Add some cryptographic nonsense in ac.c (not final at all)
- Introduce the first couple of "chunklets" libraries as a sort-of
  subproject of this one
- Tidy up random small bits and bobs
- Add source for a small keypair generation tool
- Rework democustom to be very marginally more useful
</content>
</entry>
<entry>
<title>Tweak feature sorting and fix a chibicc bug</title>
<updated>2023-06-20T20:00:00+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2023-06-20T20:00:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.woz.blue/mike/sst/commit/?id=a86be4b76d96464e4bb9aa108d2c01198125084e'/>
<id>urn:sha1:a86be4b76d96464e4bb9aa108d2c01198125084e</id>
<content type='text'>
That sorting function was a bit wonky, so make it just a little bit
wonky instead. chibicc would produce confusing lex errors if given a
stray single quote somewhere, so make it give non-confusing errors.

Also get rid of canonicalize_newline() because it's unnecessary for SST
so long as Windows Git isn't left in its default misconfigured state.
</content>
</entry>
<entry>
<title>Refactor the RGBA colour struct into engineapi.h</title>
<updated>2023-05-04T22:49:27+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2023-05-02T18:16:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.woz.blue/mike/sst/commit/?id=5194eeb0e7bb5d2a2086c96ed04c2a47f9594d87'/>
<id>urn:sha1:5194eeb0e7bb5d2a2086c96ed04c2a47f9594d87</id>
<content type='text'>
In both the engine and SST it's used in more places than just console
printing, so it makes more sense to give it a more appropriate nanme and
location.
</content>
</entry>
</feed>
