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.
* 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.
This will copy the parent object's scale to the child, but scale it by the
child's original scale relative to the map scale. Also uses the child's actual
height, instead of the mobjinfo version. Might be useful if either the scale
or height was changed in P_SpawnMobj. Say, from a Lua hook.
See notably the finish line. Basically respawning exactly on a line can let you
cross it twice, if you crossed it before respawning, or NOT cross it, depending
on which direction you drive after landing. So this just respawns very slightly
before the line so you can cross (or not cross) it normally.
Finish line waypoints must be exactly on the finish line to avoid erroneous
finish line distance from crossing the waypoint before/after the line. This
is only a problem in circuit maps and on laps before the last, due to the
multiplied circuit length.