Age | Commit message (Collapse) | Author |
|
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.
|
|
|
|
Currently only supports Orange Box and Left 4 Dead branches. There's
quite a large amount of gamedata involved in making this work, and
figuring it out for the likes of Portal 2 doesn't seem like a major
priority at the moment.
|
|
Of course, this has only been used at build time for quite a while now.
Silly oversight!
The linker would have dropped it anyway so this will just avoid some
wasted effort.
|
|
Avoids spurious and confusing fast-forward behaviour in the event of
resetting a run, then disconnecting early and deciding to load some
other map.
Also fixes a stupid typo (s/propand/propane/).
|
|
|
|
This complicates things greatly! Therefore, it's a separate commit to
the baseline fast-forward functionality, to keep the confusing stuff
relatively contained.
|
|
|
|
|
|
Also done with quite a lot of RE help from bill - thanks again!
|
|
This fixes a crash in later L4D2 versions caused by the fact we were
unknowingly hooking Key_Event already. Now we hook it all the time on
purpose.
|
|
Thanks bill for spotting this issue. It was causing crashes on unload,
which is obviously no good.
|
|
This will be mostly useful for skipping cutscenes in Left 4 Dead games.
It may work in other games, but probably won't really be as useful.
Committer's note: this was adapted a fair bit from woz's original code,
hence the joint copyright, but he did most the hard work of figuring out
how to get this deep into the engine's call stack. Thanks!
bill also provided a fair bit of help figuring out missing gamedata and
fixing compatibility with L4D2 2147 and later. Also thanks!
|
|
|
|
Because why not.
|
|
|
|
|
|
- Add a couple of overdue -Werrors that make life easier
- Reshuffle cc/ld flags a bit, mainly around -fuse-ld=lld
|
|
|
|
This will save users having to install the VS runtime in order to load
the plugin. Turns out there was very little to implement to make this
work.
Turning off stack probing might cause spooky outcomes further down the
line but we'll burn that bridge when we get there.
|
|
Reminder not to actually use any of the code I write until it's at least
been included in a few releases of something. :^)
|
|
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.
|
|
Thinks, bill.
|
|
Apparently there's slightly longer code for whatever reason which made
32 too conservative of a search window. Easy fix!
|
|
|
|
|
|
|
|
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
|
|
Basically for documentation purposes and to ensure it exists outside of
my own server; this was a VERY write-only script and is already in
fairly wide use so I don't expect to edit it very much.
|
|
Absolutely no idea how long this has been broken for!
|
|
|
|
|
|
It's very very likely to actually get used in the next release, I swear.
This reverts commit 7893ef46f85eb5a6021d6ab763ca84e382e64954.
|
|
There's a solid chance this actually gets used this time. Plus, there's
breaking changes, so it makes sense to update before writing any actual
code for it.
The RNG module is also manually fixed up; upstream wasn't moved to the
new Monocypher APIs which might be because the authors don't seem to
think it's even a good idea to use anything other than arc4random().
Maybe I'd kind of agree with that if not for both Linux and Windows not
having arc4random(), and none of SSTs use cases requiring it either
(none of the crypto code is gonna be multithreaded and certainly none of
it is gonna fork).
|
|
|
|
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.
|
|
|
|
This was actually breaking deferred initialisation in 0.5, the main
observable effect being that the L4D1 console spam fix stopped working.
Committer's note: woopsy!
|
|
This was clumsily added in 1c4318331663b152b0b298bd2c9e5c971506a86b as a
test case for code I was writing at some point but has not been included
in the repository yet. This means the 0.6 tag is broken for anyone
trying to build from source unless this change is cherry-picked on top.
Lesson learned: keep the working tree clean!
|
|
|
|
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.
|
|
It's not being used in the 0.5 release; this will be reverted
some time after the release is tagged and uploaded.
|
|
Of course, Portal doesn't actually check this properly, and it was never
tested well enough until just now. This fixes it, albeit in a really
stupid way. C'est la vie.
|
|
The zip date is tomorrow as that's the expected release date pending
some testing and hearing back from Portal people re official approval
for use in runs. With any luck it won't need to be bumped further.
|
|
There's absolutely no reason these ever wouldn't be there.
|
|
|
|
This is kind of a breaking change but the other code was obviously never
released or relied on by anyone - it will be pushed at the same time as
this in fact. It still seems worth having the original committed
separately to show the progression of development of the feature,
however. Technically the standalone vote cooldown resetting could also
be added back if ever desired however there doesn't seem to be that much
of a use case for that at the moment.
This feature ought to be a lot more convenient now as it allows for
resetting back to a set starting point no matter where the player is in
a run. It isn't universally useful as All Campaigns Legacy solo runs
require switching to a different type of server and Main Campaigns co-op
runs require restarting the game after Swamp Fever to work around the
god mode bug, however it is still useful in a good few situations.
Unfortunately this turned out to be pretty complex to implement, first
requiring a bunch of interop with valve's rather wacky KeyValues stuff,
and then requiring a bunch of especially difficult reverse engineering
of L4D1 v1.0.0.5 because it doesn't use said KeyValues stuff and does
something else completely different instead.
A side effect of all this work is that the nag removal hack is now part
of the KeyValues stuff in kvsys.c, which is kind of a comfier place for
it than just kind of dumped in the middle of sst.c.
|
|
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.
|
|
Pointed out by Bill.
|
|
Now that Neovim has built in EC handling, opening this file causes the
editor to want to write it back out in Unix format, and it seems likely
enough that other editors may do the same. Ensure that this file's
(incorrect!!!) line endings are preserved, as this is done to make sure
that end users can always read the file without any issues, no matter
what terrible Windows text editor they may have chosen to use (although
even Notepad handles LF just fine these days, it's better to be safe).
|