Now it is impossible for the fractional frameTime to become desynchronized with the fixed 35 Hz ticks, because it is the frameTime counter that determines when the sharp ticks occur. Added a new public API function so that all tickers everywhere are able to determine whether it is currently time to do a sharp tick.
In particular these changes fix the problem with the client's tick smoothing being out of sync.
More robust sharp ticking
Now it is impossible for the fractional frameTime to become desynchronized
with the fixed 35 Hz ticks, because it is the frameTime counter that determines
when the sharp ticks occur. Added a new public API function so that all
tickers everywhere are able to determine whether it is currently time to do
a sharp tick.
In particular these changes fix the problem with the client's tick smoothing
being out of sync.