Commit graph

15 commits

Author SHA1 Message Date
Bill Currie
12c84046f3 [cvar] Make cvars properly typed
This is an extremely extensive patch as it hits every cvar, and every
usage of the cvars. Cvars no longer store the value they control,
instead, they use a cexpr value object to reference the value and
specify the value's type (currently, a null type is used for strings).
Non-string cvars are passed through cexpr, allowing expressions in the
cvars' settings. Also, cvars have returned to an enhanced version of the
original (id quake) registration scheme.

As a minor benefit, relevant code having direct access to the
cvar-controlled variables is probably a slight optimization as it
removed a pointer dereference, and the variables can be located for data
locality.

The static cvar descriptors are made private as an additional safety
layer, though there's nothing stopping external modification via
Cvar_FindVar (which is needed for adding listeners).

While not used yet (partly due to working out the design), cvars can
have a validation function.

Registering a cvar allows a primary listener (and its data) to be
specified: it will always be called first when the cvar is modified. The
combination of proper listeners and direct access to the controlled
variable greatly simplifies the more complex cvar interactions as much
less null checking is required, and there's no need for one cvar's
callback to call another's.

nq-x11 is known to work at least well enough for the demos. More testing
will come.
2022-04-24 19:15:22 +09:00
Bill Currie
a9bd436837 [build] Autoconfiscate printf format attribute
I don't know if gnu_printf is appropriate for all cases, but it is
needed for mingw32.
2021-03-27 19:52:59 +09:00
Bill Currie
9248e8cf01 Update for doxygen 1.8.16 2020-02-11 15:22:42 +09:00
Bill Currie
bc1b483525 Nuke the rcsid stuff.
It's pretty useless in git.
2012-04-22 10:56:32 +09:00
Jeff Teunissen
a56f6b2e37 Docs: switch to SVG for the .fig files, add borders around imgs
Self-explanatory, really.
2011-08-23 01:39:40 -04:00
Bill Currie
676e9a2292 Add some info to the qtv status bar.
For now, server and client counts.
2010-12-21 18:15:31 +09:00
Bill Currie
9a037c8d6a Some more qtv docs (mostly overview/status). 2010-12-21 16:44:05 +09:00
Bill Currie
1018203f19 Begin documenting qtv. 2010-12-21 09:25:17 +09:00
Bill Currie
92714b19bf Make some functions static.
They don't need to be public.
2010-12-21 09:23:59 +09:00
Bill Currie
701652b8aa progress on getting map changing to work with qtv
subsequent map changes are still behaving strangely, but signon buffer
handling is now much better.
2010-01-13 06:46:26 +00:00
Bill Currie
6355674bd3 correct copyright headers 2005-06-09 03:07:13 +00:00
Bill Currie
6caf86f342 make sure the server being connected to supports qtv 2004-02-27 00:10:46 +00:00
Bill Currie
06e4000d0d type forward delc issues 2004-02-26 23:24:44 +00:00
Bill Currie
4eb2842400 add backbufs to client_t. can now easily send reliable data to the client 2004-02-22 06:19:38 +00:00
Bill Currie
6e6df349e4 move the ucmd message code into a common qw lib (more will likely follow) 2004-02-21 05:09:02 +00:00