Decided that being able to set a string and then have it return an integer when retrieving would ultimately be confusing, so let's just let the user handle the string functions.
I thought about just exposing R_TextureNumForName and leaving it to the user, since that makes it obvious that this is still an integer field, but I also liked being able to just specify a string and be done with it. I'm not picky either way.
* Make the maximum number of staff ghosts 99 instead of 100. It's a minor thing, and insignificant in the grand scheme of things, but it fixes a bugbear I haven't been able to get out of my head since originally starting to maintain this code. (In the case of 100, it'd do S00, which'd have some fucky effects on ordering. If we WANTED to start with S00, we shoulda used that slot in the first place.)
(Huge change: NO_MIDI is now a define, simply because that makes it easier for me to resolve merge conflicts if I can see the original code and the new code. Also means that people who REALLY miss MIDI can compile & fix it themselves :P)
A more detailed explanation:
* P_CheckPosition is the function which determines collisions.
* In Vanilla, collisions do not happen between players unless tailspickup is off (which it basically never is).
* Even with tailspickup off, on-spawn player collisions do not affect momentum.
* However, in kart, player collisions cause the player to get bumped.
* It would succeed at the P_CheckPosition call because players aren't *solid* solid, even though they cause bumps.
* It would fail at the K_CheckPlayersRespawnColliding call, but that would be too late, *as the player already has been bumped.*
* The player would therefore be moved to a new location, but still retain bump momentum, and the bump sound would have played for both players.
* Therefore, the obvious solution is to swap P_CheckPosition and K_CheckPlayersRespawnColliding, so that it checks for players BEFORE it performs object collisions at that spot.
* The reason we didn't see this MUCH before is that it can only ever happen in the case of ties.
I could've easily done this into master, but obviously I figure yalls'd at least like to check this first.
Also: Remove playercolor being set to the replay's color. No need to kill your settings, seeing as it makes no tangible effect on your replay (doesn't even lose colour when you die, so I don't even know...)