interface. To detect an extension, call QFGL_ExtensionPresent(). To get
the address of an extension function, call QFGL_ExtensionAddress(). This
function uses the preferred method for finding a function, based on
whatever OS and windowing system you use.
changed all parms references to directly access host_parms to improve readability, and removed unused basedir references. (all remaining fields in quakeparms_t deserve to be there)
player connects immediately after a timekick sample, their time WILL be
off, so don't look at them the first sample.
sv_user.c: Another location to enforce sv_maxrate, make sv_timekick and
friends ignore a user's time if it's -1, and apply double fuzz to times
lower than we expect -- it's way too sensitive otherwise. Also, some
whitespace changes.
(for sv_minqfversion) are no longer compared as floats, so a server admin
can require client versions with a lot more granularity. (e.g. 0.2.99beta5
is greater than 0.2.99beta4, but lower than 0.3.0)
sv_minqfversion: Set to the minimum allowable QuakeForge version you want
to allow on a server. QF clients prior to current CVS _will_not_work_ with
this cvar, as the QF version was not reported previously.
sv_maxrate: Change maximum rate algorithm; if sv_maxrate is nonzero, it is
the maximum rate allowed by the server. If it is unset, the maximum is
10000 like it used to be. The rate is silently capped, so it won't kick.
Cvar fixed: sv_timekick and friends; Now kicks on too little time passed
as well.
Functionality removed: "Last message repeated X times". It causes too much
trouble.
care of. I have to fill in the incomplete faces (hmm, that will be interesting)
and figure out why one corner in one of my test cases is sometimes set and
sometimes not. Hmm, might be confused buy the enter/leave info from that edge.
And of course the very slight rework of the input system, at least
in_x11 gets shifts right for different keymaps.
Oh, by the way, ALL other input targets are broken in a very 'will not
compile' way.