- Use SKINCOLOR_PURPLE instead of SKINCOLOR_THISTLE for the drift boost explosion.
- Use steering instead of cmd.turning in a few places. I dunno if I forgot to change these, or if it was accidentally reverted, or what. (Anything with a specific reason to use cmd.turning over steering will have a comment near it saying why.)
(side note, it's weird as hell that code we inherited from vanilla next - and i checked, it wasn't mangled in the merge - has bugs that straight up prevent it from functioning properly...)
All my work thus far on solving the drawflag/renderflag/additive/subtractive conundrum.
Outstandng problems:
* Bad additive/subtractive tables means that they appear opaque except under certain conditions.
* No support for FOFs, Polyobjects, or linedefs in OpenGL yet.
* All OpenGL support mostly done blind, may or may not function in practice.
If nothing else, the hard engineering problems are solved and it's just bug hammering...
* 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.
* 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.
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.
While in the air: release accelerate while at nearly-still speeds, and you'll preform a minisucle air drift boost. This mechanic is meant to fix the long-standing issue where you can get stuck in 0 speed in the air and not be able to do anything.
Art is missing, but functionality is complete.
The kart corpse is also placeable as type 4095. No way to set its color currently, it simply defaults to SKINCOLOR_RED.