summaryrefslogtreecommitdiff
path: root/src/portalisg.c
Commit message (Collapse)AuthorAgeFilesLines
* Do away with memcpy/memset/memcmpGravatar Michael Smith 2026-02-161-1/+3
| | | | | | | | | | | | | | | | | | | | | Now everything is either explicitly a rep thing, or explicitly some other small run of reasonably efficient instructions. No library calls or function call overhead of any kind. Code size remains nice and small. Ban a few other bad libc functions while we're at it. More can be added later if we decide that's a useful idea. This will require some discipline and workarounds to cope with Clang's tendency to shove mem* calls in places you don't want them even when you tell it not to. Well, c'est la vie. I'm a little nervous that the __builtin_memmove() usage in shuntvars() could still one day emit actual library calls. It appears we're not importing memmove() from anywhere at the moment, though. So I guess it's good enough for now. Also I had to get rid of alloca() in con_.c but that was kind of bad anyway, so that's fine.
* Turn x86 stuff into a chunklet to help out SPTGravatar Michael Smith 2025-11-241-1/+1
| | | | Quick unused header cleanup pass while we're at it.
* Add an abstraction for hooking v1 and v2 commandsGravatar Michael Smith 2025-08-021-0/+1
| | | | | | | | | | | This is a step towards making command hooks work in OE, once OE is supported. Not the most ideal or efficient thing in the world, but it works okay until we come up with something better, I suppose. Not a fan of the argv copying but avoiding that would make the API a lot less ergonomic. Not the easiest problem to solve, really...
* Make additional use of untyped command callbacksGravatar Michael Smith 2025-08-021-2/+1
|
* Add a way to cancel "ISG" in Portal runsGravatar Willian Henrique 2025-06-271-0/+152
This is a stopgap solution approved by the Portal moderators until we have a better way to handle timing and verifying closing/restarting the game mid-run. Essentially, the agreed-upon short-term solution is to somewhat emulate restarting the game by simply turning off the glitch and sending the player back to the main menu. Committer's note: this wasn't added to the Linux compile script since it doesn't work and I honestly just couldn't be bothered adding in the usual ifdef-errors. And in fact I'm starting to wonder if we should just be leaving out features that don't work on Linux to avoid all the ifdefs, but that can happen later because the main goal of committing this is to get a release out, so I don't want to faff about with that right now.