(oddly enough, this actually revealed some secret file dependencies previously included via r_things.h! I also needed to include d_player.h in r_skins.h itself it seems)
- Store level state periodically
- Load the closest usable level state when done rewinding for
quicker resumes
- Make playback menu fade out after 5 seconds of no activity
(but not while paused)
- Remove wrapping from replay hut (original wrapping was broken
at some point before 1.1 and it's not necessary anyway)
- Allow holding enter on frame advance for noisy slow-mo
from fickleheart
It makes more sense for 100% deadzone to just make it so that
you have to push the axis all the way to trigger it,
rather than 100% deadzone resulting in no axis input
ever happening... So, let's make it be the former way instead
Fix division-by-0 crash with gamepad deadzones
The problem was that it checked if A was more than B,
then lowered A to a max value, then subtracted B from A,
then divided something by that, without checking if A minus B was 0,
allowing division by 0 if B was the same as that max value
This fixes that by making sure that A is less than the max value
My reasoning is that it wouldn't make much sense to have a weather type that has snow, but doesn't randomize the sprite it uses, so we don't need to copy-paste the same "randomstates" for each weather type.
This is accomplished by simply preserving
the player's body after disconnecting.
Bodies will despawn after the number of minutes
specified by the "rejointimeout" console variable (float).
A value of 0 disables the feature completely.
Clients rejoining are identified by their IP address,
and may rejoin even if the server is full or joins are disabled,
for as long as their body remains.
From a technical standpoint, when the user disconnects,
the player they were controlling does not leave,
the underlying player_t just keeps working normally,
except it does not receive any input anymore.
When the user reconnects, they are simply "relinked"
to their player_t.
Those "soulless" players can be identified through
their "quittime" field, which is the number of tics
elapsed since the user disconnected, or zero
if still connected. "quittime" is exposed to Lua.