It's soooo close to being awesome, but so far away. Making game invitations as the host meant that it would redirect to "connect self" for other people, because we can't get the IP address from the host.
If anyone has a solution, you've got my gratitude; this was going so smoothly until it hit that brick wall.
* Re-enable the flashing-set thing on attempting to join with the item key. I spoke to Sal privately about this - turns out some keys ALWAYS send key presses instead of only sending one, and shift - what I have item bound to - is one of the problematic ones.
* Make the no-joining-game-after-20-seconds thing happen 20 seconds after the TIMER has started, not the level (ie, take starttime into account)
* Fixed the conditionals for `suicide` and `retry` commands - `suicide` is now allowed in singleplayer, and `retry` no longer checks your lives (for now).
* Disable the "traditional" level reload method (which `retry` tried to use), since it was completely broken with the other changes we've made. Mapchanges only.
* Made retries cause a mapchange, per the above.
* Disable the last source of skincolor trampling in the game - loading a level while not netgame or record attacking.
The Menu Queen is in the house~ ✨
* Magical, single-page player select and general netgamey stuff, while still remaining both pretty and functional.
* Death to NOFOURPLAYER, now that the cat's out the bag.
* Clean up NONET, assuming people try to make DD builds on release.
* Minor tweaks across the board, mostly places where I wanted to pilfer minor code from and realised it wasn't done optimally originally.
Now that we figured out that the sound cut-outs were due to a race condition and not this option, I feel content putting it with these other engine tweaks.
Minor priority change to two voice lines; the "passing someone" line has the same priority as every other line, and gave it's boosted priority to the way more gameplay-important "hit 'em" line.
If the player count dips below what was stored on the start of the last lap, then don't do time over so that someone can't just spectate at the end of a race out of rage. Y'all are assholes :V
A couple of the extraneous ones (karma interactions, bumper stealing, lap start notifications) have been removed outright. The rest that I could think of have been changed to use CON_LogMessage, so that they still go into log.txt when rereading a fun chat session but not showing themselves in gameplay. Necessary gameplay prints, such as players being defeated or coming back in Battle, have been kept until there's a suitable replacement for them in the future.
* Multiplied rain speed by 3, per Oni's request.
* Disable weather density - force to 1 if weather draw distance, otherwise zero
* Move the ceilingpic check into a more convenient part of the weather spawning loop.
* `drawdist_precip_cons_t` - replaces "Infinite" with "None".
* Disable the lowest normal draw distance (256), given... both kart and srb2 are basically unplayable like that.
* Disable cv_drawdist_nights entirely.