linear search was just slightly faster even for mega2k (~0.3s / 22.5) this is
probably partly due to the cost of initializing the hash tables in the first
place and thus gains might be noticed on subsequent map changes. Also, the
new hash code is much simpler and easier to read/maintain. Enough of a boon
right there :)
for bare qw, but might help with tf (my tf setup is borked @work, so I can't
check for certain until later). However, if nothing else, it tidies up the code
a bit.
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).
strncat is not the maximum length of the destination string, but of the SOURCE
string, thus strncat (dest, src, sizeof (dest)) is incorrect. It should be
strncat (dest, src, sizeof (text) - strlen (dest)). Even then, no terminating
nul will be written if src is too long, but at least it won't crash the stack:)
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)
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.
both support this. The client tells the server it can support compressed
downloads by setting the z flag in the *cap userinfo. If the server detects
that the client supports compression, and the file to be downloaded is
compressed (more accurately, has the .gz extension), the server sends a special
download packet with a size of -2 (-1 indicates error),, percent of 0, followed
by the new name of the file (eg maps/foo.bsp.gz for maps/foo.bsp). The client
WILL NOT accept a new filename that doesn not match the old name for the length
of the old name. The client also will not accept a new name if there are . or
.. path components. If the client rejects the new name, it prints a warning
message and aborts that download.