* Introducing K_GetKartButtons(player_t), for adding false presses to.
* K_GetForwardMove(player_t) takes kickstarting into account, and is now applied to engine sound generation too.
* BT_REALACCELERATE has been deleted.
* Display even if the player (or Lua) has disabled the speedometer.
* Support splits all the way up to 4p.
* Abstract out to a function that could hypothetically display more accessibility-related icons down the line.
It's no secret that holding down a button a lot can fuck with your wrists and fingers. It's too late for me to be damageless, but I can at least create an option to reduce further harm.
This accessibility feature, when enabled (kickstartaccel and kickstartaccel2/3/4 in the console) behaves with the following properties:
* Hold accelerate for 1 second to lock it down.
* Press again to release.
* Short holds/presses do nothing (good for POSITION).
* Continue holding it during the releasing press to re-lock it.
* A small triangular UI element is added next to the speedometer sticker, which displays the current state of the acceleration kickstart for visual feedback. (NO SPLITS SUPPORT YET)
In addition:
* Add PF_ACCELDOWN and PF_BRAKEDOWN, and BT_REALACCELERATE (which ACCELDOWN tracks). Even if this feature never gets merged, BT_REALACCELERATE is required because sneakers and boosters force it on too (extending this is how I implemented it).
* Fix the dehacked playerflag list being out of shape.
* I replaced some existing flags during development of this branch, so their old uses have been whittled away.
Two notable consequences of this bug:
* The delay when pressing the item button as a spectator to toggle PF_WANTSTOJOIN was not present, leading to a rapid toggle and spurious changeteam commands.
* Lightsnaking through map hazards such as Lavender Shrine's stabbies caused you extra spicy unavoidable pain.
* When lightsnaking, update the camera angle at each waypoint step to prevent being dropped the wrong way around.
* The above bullet point is WIP. I've tried to restrict manual turning while lightsnaking, but it still happens and just gets yanked back at each waypoint. Would appreciate a bit of insight here.
* Fix HUD tracking for spectators by setting thiscam->chase each tic more definitively.
* Still happens for the very first tic of the map though, must be another data point I missed 😔
* Fix the vertical jittering when a spectator's camera is on the ground.
* Mark FAULTing players as in pain, preventing you from using your rings in mid-air (which is especially egregrious when re-entering the race from being a spectator uses the item button).
* Becoming a spectator is now instant, and leaves no bumpable corpse behind.
* Players will now FAULT if they:
* change from a spectator into a player after the initial camera turnaround but before the end of POSITION.
* touch an instant kill FOF or get crushed during POSITION.
* become a spectator during POSITION. (I might change this later, seems overkill)
* If you respawn during POSITION, the jingle will not restart from the beginning.
* Change the FAULT animation to match spinout/currents.
* Clean up some of the spawning code to not place spectators on the ground.
Literally identical to Encore remapping, but *only applied when Encore mode is OFF*. Long-requested by Oni, and allows you to reuse textures and skies from other stages without having to duplicate them in different colours.
It was changed during v2 indev to operate off textures supplied rather than offsets. Unfortunately, she didn't bank on the 2.2 merge making it so that only linedefs of specific types would generate the necessary `->text` string from their texture fields. This branch corrects that issue, along with a bonus null-avoidance in P_SetupLevelSky just in case someone messes up the source linedef.