unbounded frame rate (you can still set it to clamp your fps to, for example,
your monitor's refresh rate), and cl_maxnetfps 0 is now based on your network
rate.
The NetQuake-compatible targets now also have an unbounded framerate. This is
OK, because the built-in server uses its own tick rate.
a static `stack') to avoid the function call overhead. this cuts about 40%
of the execution time from this function.
No matter what I tried, best results were obtained using __builtin_expect,
so make sure non-gcc compilers do the right thing when they encounter it.
building the render entity lists directly) so they get vis-clipped. The
benefits of this to newer gl cards/drivers or sw is negligable, but is a
pretty serious boost for the voodoo2 (~24%).
Cmd_TokenizeString since I realized the code was just pulling it apart and
putting it back together. Added Cmd_Argsu to access the unprocessed
command. Added support for else following if in such a way that
if/else if/else structures work. Added support for unary operators in
EXP and added the ! (not) operator. The ifnot command will be kept
for variety.
to GIB. Fixed a bug in dstring_replace that was causing too much data to
be copied when the incoming string was larger than what was being replaced.
Very minor reorganization in cmd.c (1 function moved around I think).
cmd.c should probably get broken up into separate files soon.
add dstring_replace. this replaces a string of lenth rlen at position
pos with data of lenth len, growing, shrinking and shuffling data as
appropriate. At this rate, the dstring `class' will get buffer gap
editing capabilities :)
cmd.c:
Cmd_TokenizeString builds cmd_active_buffer->line again.
Cmd_Process bails out instantly if cmd_active_buffer is a legacy buffer
and uses dstring_replace to modify the parameters in
cmd_active_buffer->line. This last change results in drastic
simplification (and accuracy) of the commandline reconstruction code,
both in Cmd_TokenizeString and Cmd_Process.
1) when /not/ building static plugins, the plugin info name is, once again,
PluginInfo, but is still type_name_PluginInfo for static plugins. This
allows plugins to be symlinked (highly desirable for the debian packages,
and likely others). This also requires plugins to /not/ be loaded with
RTLD_GLOBAL.
2) because of 1, snd_alsa_0_9 has to explicitly load libasound itself. This
just happens to fix my segfault on shutdown in RedHat 6.2.
it's not needed. This should speed things up fractionally for well behaved
mods/servers that send atomic svc_stufftext packets (ie, always ending in
\n).
found at the end of the string. This works around a stupidity in some
servers where stufftext commands are sent in pieces and might not reach
the client before execution occurs, resulting in parse errors.
handled, meaning that execution can be paused at any time without a hitch.
Warning: This is a major change to the architecture (or lack thereof) of
GIB. Please test for bugs! Also, there are a few ugly bits of code that
need to be cleaned up, but that work for now.
support for BSP models, until they can be fixed. gl_multitexture should now
actually be a speedup!
NOTE: Some OpenGL implementations have trouble with the texture function
used. 3Dfx Voodoo 1/2 are known to have this trouble. I don't know how to fix
this, or even if it can be fixed. :/
__va_list_tag va_list[1];) which causes grief when attempting to reuse
va_list variables (eg, in vsnprintf retry loops). This is the reason for
MisterP's crashes as the pointers in va_list no longer point to valid data.
acinclude.m4:
shamelessly steal the va_list, va_copy and __va_copy macros from
cdda2wav but modified so AC_DEFINE includes the description (so
acconfig.h can remain gone)
configure.ac:
use AC_TYPE_VA_LIST, AC_FUNC_VA_COPY and AC_FUNC_VA__COPY
dstring.c:
stash the incoming va_list args in a temp var before calling vsnprintf
then restore them each time before retrying, but only if va_list is an
array (hopefully this is ok for when va_list is a structure)
Useful on multi-homed machines where either you want qw-master to listen on
only one address or your operating system is lame.
While (currently) ugly, compiles for win32 again.
index into variables in either substitution (i.e. $bob[25]) or assignment
(i.e. bob[25] = 'q') When using assignment into an index of a var, the
current character is removed and replace with the new value. That means
that if the new value is longer than one character, the string will grow.
A feature that may be done in the future is indexing between two values
to get a substring, ie bob[25..30] = newstr.