- Replace with a random teleport sound from Sonic 2, because shipping with a thok between every tutorial would have made us look like clowns.
- Don't play for Versus contexts.
- Right on the line, P_PointOnLineSide may disagree with
P_TraceWaypointTraversal.
- If this happens, nextwaypoint may update ahead of the
finish line before the player crosses it.
- This bloats the finish line distance and triggers lap
cheat prevention, preventing the player from gaining a
lap.
- Since this only seems like it can happen very near to
the line, simply don't update waypoints if the player is
touching the line but hasn't crossed it.
- This will cause distancetofinish to jump but only for a
very short distance (the radius of the player).
- This was done implicitly by respawn
- However, it is sometimes possible to:
- Cross the finish line forward
- Gain a lap
- Lap cheat prevention activates afterward
- Drive backward over the finish line again
- Must still have the lap cheat prevention timer
running
- Do not lose a lap
- Timer resets once you're behind the line
- Now:
- You are behind the finish line
- Lap cheat prevention is not active
- You still have the lap gained from crossing the
finish line the first time
- To fix this:
- Reset your current lap to your lap safe when the timer
resets
- Safelap does not change while lap cheat prevention is
active
- Basically I am fixing an oversight in the lap cheat
prevention system, because the timer, safelap and your
current waypoints are all tied together already
- It's just the current lap that was not being tied
together with the rest of it
- Below 11 FU, strafing is not supposed to kick in
- But the order of operations looked weird, and it seems
to have been kicking in erroneously as a result
- This would push the player in the opposite of their
facing angle when they tried to drive forward and turn
at the same time
- Strong enough offroad is required to trigger this
- When potential lap cheating is detected, start a 10
second timer (previously 1 second)
- After 3 seconds, tell the player they can respawn with
the Y button
- You don't need to hold the Y button, just tap it
- After 10 seconds, automatically respawns the player