Some hacks from the snake minigame patch have been removed as they are
no longer needed.
See STJr/SRB2!1870
# Conflicts:
# src/g_game.c
# src/g_input.c
System layer is greatly simplified and framecap
logic has been moved internally. I_Sleep now
takes a sleep duration and I_SleepDuration
generically implements a precise sleep with spin
loop.
Time is now tracked internally in the game using I_GetPreciseTime
and I_UpdateTime. I_Time now pulls from this internal timer. The
system code no longer needs to keep track of time itself.
This significantly improves frame and tic timing in interp mode,
resulting in a much smoother image with essentially no judder at
any framerate.
- Disabled VSync, due to the numerous problems it has.
- Instead, added an FPS cap.
- Frame interpolation is now tied to fpscap != 35.
- By default, the FPS cap is set to the monitor's refresh rate.
- Rewrote the FPS counter.
(This also consolidates several more commits ahead of this
fixing various issues. -eid)
Previously interpolated from last 35th of a second, which
may be offset from game time due to connection lag.
Consider this the proper fix to 54148a0dd0 too.
Also removed some version fields from serverconfig_pak and
clientconfig_pak. Client version will be checked with
SRB2APPLICATION and MODVERSION.
Not updating PACKETVERSION because those packets shouldn't
have been packetversion'd in the first place.
Incompatible servers get dropped from the server list. It
turns out the server list is also used when connecting
directly to a server. This meant that if you tried
connecting to a server that was incompatible, you'd just
get an infinite connection screen, as if the server was
completely unreachable.
Now it won't drop the server if you are directly
connecting to it. I also copied some incompatibility
messages from HandleConnect.