another alpha blend, it's set up exactly as another factor in determining
the final blend. This should help speed up framerates a little.
New cvars:
cl_cshift_bonus: Set to 0 to disable bonus flashes.
cl_cshift_contents: Set to 0 to disable content blends.
cl_cshift_damage: Set to 0 to disable damage blends.
cl_cshift_powerup: Set to 0 to disable powerup (quad, pent, etc) blends.
All of these cvars work for both GL and software, and all of them check
the value of the "cshifts" serverinfo. cshifts is a bit field, with the
following bits defined:
bonus: 1
contents: 2
damage: 4
powerup: 8
An admin can force any of these to be respected by choosing the numbers of
the cshifts to be enforced, and adding them up.
examples:
serverinfo cshifts 15
turns them all on.
serverinfo cshifts 10
turns on powerup and contents shifts.
also, the gl_cshiftpercent Cvar no longer does anything. I'll remove it
entirely soon.
rest: Myriad stuff.
r_netgraph now recognizes and abides by the cl_hudswap Cvar.
show_fps and show_time are on the same line now, and stay out of each
others' way.
New Draw_ function: Draw_TextBox(). It's like M_DrawTextBox(), except it
doesn't screw around with the screen coordinates.
rest: Implement model animation interpolation for alias models. Trying to
implement this has been an annoyance for some time, but IT WORKS NOW. set
gl_lerp_anims to zero to disable.
new function WriteTGAfile. Also, put in the tga header structure.
NOTE: this is currently broken for non gcc ocmilers. you will get a
#error message.
include/quakefs.h source/quakefs.c:
new function COM_WriteBuffers. Like COM_WriteFile, but scatter/gather
style.
source/gl_screen.c source/screen.c:
misc cleanups. differences are getting fewer. should be mostly
mergable soon (minus truly sw/gl specific code).
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.
(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)
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.
cl_main.c: Clean up version string a little
cmd.c: Add setrom parsing to first init phase, clean up includes a little
cvar.c: setrom command now uses set's semantics. Cvar_Set, Cvar_Set_f,
Cvar_Setrom_f now do a Con_DPrintf to report attempts to set CVAR_ROM
cvars.
sv_main.c: Clean up version string a little
vid.c: -winsize, -width, and -height no longer use Cvar_SetROM. The code
looks a little uglier, but it's more correct.
Lots of changes, more then I can cover quickly.
Things now look, different, and probally much better!
Note, SOFTWARE RENDERING IS BROKEN with this commit!