<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mike/sst/src/os-win32.h, 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>2024-08-21T23:01:06+00:00</updated>
<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://qdb.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>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://qdb.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>Remove the terrible gameinfo.txt garbage at last</title>
<updated>2023-06-12T22:06:47+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2023-06-12T21:28:53+00:00</published>
<link rel='alternate' type='text/html' href='https://qdb.woz.blue/mike/sst/commit/?id=7aa6bd1cd88db9cceef3d1c07cd7664cb47538be'/>
<id>urn:sha1:7aa6bd1cd88db9cceef3d1c07cd7664cb47538be</id>
<content type='text'>
This also tidies up library handle grabbing with more os.h stuff, and
improves the VDF creation logic - since we no longer store a couple of
paths which makes it necessary to change that a bit anyway.
</content>
</entry>
<entry>
<title>Prune some comments and tidy up other minor things</title>
<updated>2023-06-10T15:51:02+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2023-06-10T15:44:19+00:00</published>
<link rel='alternate' type='text/html' href='https://qdb.woz.blue/mike/sst/commit/?id=1c4318331663b152b0b298bd2c9e5c971506a86b'/>
<id>urn:sha1:1c4318331663b152b0b298bd2c9e5c971506a86b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Improve os_dlfile() interface</title>
<updated>2023-05-21T21:11:16+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2023-05-21T20:48:52+00:00</published>
<link rel='alternate' type='text/html' href='https://qdb.woz.blue/mike/sst/commit/?id=2ba71f27c46dc38b76e932b1b1967d96a9b9f107'/>
<id>urn:sha1:2ba71f27c46dc38b76e932b1b1967d96a9b9f107</id>
<content type='text'>
Might as well return the length since we have it anyway. Also this maybe
fixes the totally busted Linux code but it's still untested and probably
doesn't work for reasons that will be discovered later on.
</content>
</entry>
<entry>
<title>Do some pedantic spring cleaning</title>
<updated>2023-05-16T22:00:24+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2023-05-16T21:12:57+00:00</published>
<link rel='alternate' type='text/html' href='https://qdb.woz.blue/mike/sst/commit/?id=cba9387c361c3d33dcf1b21ff0e5beb4b0a81ade'/>
<id>urn:sha1:cba9387c361c3d33dcf1b21ff0e5beb4b0a81ade</id>
<content type='text'>
- Use const in more places where it makes sense - not absolutely
  everywhere because it can get a bit annoying

- Make all the instruction search loops a bit more readable by casting
  the function pointer into a temporary variable to loop over

- Add a few more doc comments and fix a typo or two

- Make that RTTI thing flexibly-sized, finally

- Don't include gamedata.h in vcall.h for no reason; consequently
  include gamedata.h in a bunch of places where it was implictly pulled
  in before

- Fix dbg_toghidra() and ent_getedict() having mismatched return types
  between their headers and respective source files

- Remove that one broken, hacky, secret Portal non-feature that probably
  nobody even ended up using; it can be implemented properly later if
  required
</content>
</entry>
<entry>
<title>Make the demo directory check more robust</title>
<updated>2022-05-16T19:23:39+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2022-05-16T19:23:39+00:00</published>
<link rel='alternate' type='text/html' href='https://qdb.woz.blue/mike/sst/commit/?id=e8843dba3eb1c7a67f6ff7b920046ae36a12acd0'/>
<id>urn:sha1:e8843dba3eb1c7a67f6ff7b920046ae36a12acd0</id>
<content type='text'>
This is how it should've been to begin with, but I was lazy.
</content>
</entry>
<entry>
<title>Add a few more os-win32.h definitions for later</title>
<updated>2022-05-12T14:33:22+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2022-05-12T14:33:22+00:00</published>
<link rel='alternate' type='text/html' href='https://qdb.woz.blue/mike/sst/commit/?id=452c12403abc521a809aebdd0ef5409146bb3256'/>
<id>urn:sha1:452c12403abc521a809aebdd0ef5409146bb3256</id>
<content type='text'>
This is part of some other WIP but might be useful in general so might
as well be committed on its own.
</content>
</entry>
<entry>
<title>Add auto VDF installation</title>
<updated>2022-03-24T04:56:31+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2022-03-24T04:56:31+00:00</published>
<link rel='alternate' type='text/html' href='https://qdb.woz.blue/mike/sst/commit/?id=2c0d39acd0329d3e976bd83d85fcf67388465e67'/>
<id>urn:sha1:2c0d39acd0329d3e976bd83d85fcf67388465e67</id>
<content type='text'>
Breaks the Linux build because I can't file paths brain I need sleeping
</content>
</entry>
<entry>
<title>Clean up gameinfo_init() and other random stuff</title>
<updated>2022-03-24T04:38:25+00:00</updated>
<author>
<name>Michael Smith</name>
<email>mikesmiffy128@gmail.com</email>
</author>
<published>2022-03-24T02:06:28+00:00</published>
<link rel='alternate' type='text/html' href='https://qdb.woz.blue/mike/sst/commit/?id=00ad7cdd3d05d09a43bda972c823fdc440feabb9'/>
<id>urn:sha1:00ad7cdd3d05d09a43bda972c823fdc440feabb9</id>
<content type='text'>
- Just ask the engine for the game directory instead of doing the stupid
  argv sniffing hacks from the early days of trying to get the damn
  thing working.

- Also add some other path variables, functions and whatnot, and do some
  other minor tidying up.

- Also also, another damn copyright year, somebody please help me.

Unfortunate negative effect off this change: con_init() no longer
reports the game name, because it has to happen before gameinfo_init().
I've decided I don't really care, though.
</content>
</entry>
</feed>
