- Added a hitlag cap of 18 frames (can be decreased to 12 if it's too much)
- Hitlag amount can't be reduced, only increased
- Hitlag added is the same between both objects, instead of being different between the two
- Objects in hitlag can be interacted with again with TryMove (I was too nervous of it but it's fine in Snap lol)
- Rebalanced the damage hitlag lengths to make it feel relatively the same with all of the above considered
* Hold lookback to create a tiny twinkle in your eye.
* If an opponent is behind you, that sparkle is pretty big and plays a cool animation.
* If an opponent is behind you and you have an item, initiate the Chengi Gleam.
* These sparkles are only visible for every player except you. (Currently even with hyuu ghostliness)
- Restructured some item capsule code to reduce thinker density and allow the item capsule parts to think after the capsule
- Super Ring capsules are now semibright
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...
I could've used the existing `boolean force` here to skip over the check, but I think the MF_SHOOTABLE check is appropriate, and the DMG_CANTHURTSELF flag will be respected this way too.
Also, clean up a ridiculously long statement.
* `k_spinouttype` will never have the value of 2. This might've been a check for KSPIN_IFRAMES, but
* that already controls `pw_flashing` earlier in the check
* completely unlabeled, so it's nonsense that needs to be stripped
* `k_squishedtimer` wa mou shinderu.
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.
If a ring isn't lost from the counter, don't drop a caltrop.
This is done by changing the function signature of P_GivePlayerRings to return the number of rings it has successfully given (or taken away) (which can differ from the rings provided to it). This change has been done for Lua as well.
Super Ring absorbtion now uses this system too, so you only need to change one location to modify the maximum and minimum number of rings a player can have (as far as I am aware).
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.