Added editloc to change the description of the closest location
Added delloc to remove closest location
Added dumploc to place locs in memory into a .loc file (required for
editloc and delloc)
Added zdumploc to place locs in memory into a .loc.gz file (requred for
markloc, editloc and delloc)
Added loc.gz saving support to markloc, editloc and delloc (via
zdumploc)
Altered locs_load to use _Com_FOpenFile instead of Com_FOpenFile
Fixed potentual bug in locs_markloc
Fixed bug in Team_ParseSay that cause wierd behaviour if $ or % was last
charactor in line.
patch created from a development tree via diff -ur ../newtree ./
newtree and development tree were up-to-date at time of creating the
patch
Please let me know what you change so I may learn from it
Chris Ison (WildCode)
extension, but the unix file command (and peering at the file when you know
what to look for) verifies that they are gzip files. This should save a little
space (files compress by 40-80%)
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).
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:)
the top of the map) works well. Depth issues have been taken care of as well
(sort of: same problems as non-clipped skybox, but you don't get sky IN the
map any more)
faces with 1 vertex are implemented, but I have no way of testing them :(ie, I
haven't found anywhere to test them, there just don't seem to be any sky polys
of the right shape)
be a bug in my face visiting code that's causing process_corners to think some
numver of faces < 5 are being visted when really 5 are. I'll sort that out
later (at worst causes a little overdraw).
cube vertex, that vertex is no longer added immediatly, instead delaying it's
addition to the poly vertex list until all the sky poly points have been
handled (this has a side benefit of completely eliminating those two almost
identical functions: enter_face() and leave_face() :). After the sky poly
vertexen have been processed, the faces the edges of the poly have visted are
analysed for all 14 possible cases to determine how many and which cube
vertexen are to be added to the face polys. So far, 9/14 cases are handled
properly and 1 seems to be mysteriously handled in what seems to be a correct
fashion part of the time (bloody heisenbugs). The remaining cases are: 5
visited faces with 1 vertex and 3 vertexen (the heisenbug); 6 faces and 2
vertexen (2 variants: neighboring vertexen and opposing vertexen); and 7 faces
with 1 vertex.
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.