aboutsummaryrefslogtreecommitdiff
path: root/gamedata/engine.txt
Commit message (Collapse)AuthorAgeFilesLines
* Add L4D1_1015plus and L4D1_1022plus gametype tagsGravatar Hayden K 2025-04-061-1/+2
| | | | | | | | | | 1022 is the update that adds Mac support and introduces some of the already known vtable changes (this update is similar to 2040 for L4D2 in that regard), the tag will also see some use in some upcoming features. The 1015 tag is questionably necessary, but will be used for at least one feature (it's also the update that adds the newer matchmaking interfaces used in l4dreset.c, but having the tag available doesn't help anything there).
* Rename L4D2_2147plus gametype tag to L4D2_2125plusGravatar Hayden K 2025-04-061-3/+3
| | | | | | | Turns out the cvar we use to detect 2147 was actually added in 2125. Since renaming it doesn't currently break anything (and 2125 was a fairly notable code shuffling update, given it was the first update with a native Linux build of the game), it makes most sense to just do this.
* Fix broken behaviour in the L4D2 addon systemGravatar Hayden K 2025-04-061-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | This should greatly improve the experience of running newest/TLS as well as custom campaigns. The bugginess in question is quite a lot to explain so there's some rather substantial exposition via code comments. The actual fixes are comparatively simple, although still a little subtle to get exactly right and took a few iterations to nail down the edge cases. Thanks to bill for helping me with the RE & assistance on writing the hooks/code and so on. I tracked down a lot of this myself, but the end result wouldn't have been possible without his help. Committers' note: I ended up wrangling this change a fair bit, as I am apparently just always wont to do, and also fixed a bug in the process, hence adding my copyright notice as well. Nonetheless, big thanks to aciidz (and bill) for doing the bulk of the *actual* hard work of figuring out how to do any of this! The actual code changes I made to the original submitted patch were relatively minor; a lot of my effort honestly went into attempting to shorten the massive wall of comment text. At the end of the day, there's still a really long comment, but it's just a lot to explain really so it is what it is. I hope it's at least somewhat understandable to a reader, anyway.
* Improve L4D warp testing and add visualisationGravatar Willian Henrique 2024-08-301-0/+6
| | | | | | | | | | | | | | sst_l4d_testwarp will now unstick the player unless "staystuck" is specifed as an argument. Additionally, sst_l4d_previewwarp is added to show the positions checked by the unstuck logic as well as the line-of-sight traces performed. Committer's note: the actual box-drawing logic was essentially rewritten by me since I realised the order of drawing didn't matter at all. All the code-digging logic is more-or-less still what bill wrote, though. So, you could say we have joint authorship of this, I suppose. Not that that's a huge deal, but if anyone's ever curious or if it ever legally matters for some reason then, well, there you go.
* Add very basic client console messaging for L4D2Gravatar Michael Smith 2024-08-291-2/+5
| | | | | | | | This isn't totally ideal - it'd be nice to have a way to get colours working, at least for errors/warnings. But it might not really be possible to do that without custom networking stuff, so this will do for the forseeable future. The main goal is just to be able to have CON_SERVERSIDE commands actually give output to the relevant player.
* Fix mkentprops for real this time, probablyGravatar Michael Smith 2024-08-291-1/+1
| | | | | Last fix was apparently enough to make the release work, but not enough to actually work in general, lol. With any luck, it's actually good now.
* Fix PEntityOfEntIndex gamedata for Portal 4104Gravatar Matthew Wozniak 2024-08-231-1/+1
| | | | This enables the FOV feature to work correctly.
* Rewrite the gamedata and entprops systems entirelyGravatar Michael Smith 2024-08-231-0/+162
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.