Commit Graph

45 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 06d14eb411 [qtv] Get entity bounds from the model
This gets culling working nicely
2021-12-27 19:45:25 +09:00
Bill Currie 046b9600d5 [qtv] Fix a pile of bit-rot
qtv compiles again after rebasing. I doubt the changes actually work.
2021-12-26 14:45:32 +09:00
Bill Currie 0ba00652a1 some work on getting pvs compiling 2021-12-26 13:10:16 +09:00
Bill Currie 88249a2e33 add pvs culling 2021-12-26 13:08:11 +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 6d5ffa9f8e [build] Move to non-recursive make
There's still some cleanup to do, but everything seems to be working
nicely: `make -j` works, `make distcheck` passes. There is probably
plenty of bitrot in the package directories (RPM, debian), though.

The vc project files have been removed since those versions are way out
of date and quakeforge is pretty much dependent on gcc now anyway.

Most of the old Makefile.am files  are now Makemodule.am.  This should
allow for new Makefile.am files that allow local building (to be added
on an as-needed bases).  The current remaining Makefile.am files are for
standalone sub-projects.a

The installable bins are currently built in the top-level build
directory. This may change if the clutter gets to be too much.

While this does make a noticeable difference in build times, the main
reason for the switch was to take care of the growing dependency issues:
now it's possible to build tools for code generation (eg, using qfcc and
ruamoko programs for code-gen).
2020-06-25 11:35:37 +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 03322f27ea Document qtv connection management. 2010-12-21 09:44:04 +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 31c13d92a2 Protocol 666/large map support from FitzQuake.
Alpha and lerping aren't implemented yet, but things seem to be working. I
can load and play oms2.bsp (Conflagrant Rodent).
2010-11-26 16:20:05 +09:00
Bill Currie 0dfff8fd58 ignore stuff 2010-08-07 10:42:09 +00:00
Bill Currie 37e52bad71 map changes now work through a proxy 2010-01-13 06:52:15 +00: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 839c00b97b back out the large packet/entity related patches. they've provent to be troublesome and it seems FTE has a better solution. 2007-05-07 14:58:53 +00:00
Bill Currie 52f7bd4bb4 MAX_ENTITIES patch from phrosty 2007-04-19 07:36:12 +00:00
Bill Currie 6355674bd3 correct copyright headers 2005-06-09 03:07:13 +00:00
Bill Currie 5480c38da5 fix the "blue bars" problem when connecting to qtv over a laggy network.
also flush the entities packet when things go wrong to avoid crashing:)
(thanks for your help, Spike)
2005-05-10 02:39:54 +00:00
Bill Currie 57fc1eacb6 now everything that should be sent gets sent 2005-05-09 14:49:54 +00:00
Bill Currie 07cd150677 packet entities seem to work. players are a bit borked, though. not sure if
it's in the server or the proxy, yet
2005-05-08 13:24:00 +00:00
Bill Currie d9a7214c2a packet entities sort of work 2005-05-08 10:41:11 +00:00
Bill Currie 9683888e70 prespawn stuff seems to be done (evil hack for signon buffers, but hey:) 2005-05-08 09:10:43 +00:00
Bill Currie a409ea4a74 spawn code complete 2005-05-08 08:04:50 +00:00
Bill Currie a154ad2835 patch from sunspot/shadows to make net_drop non-global and a bunch more
work on qtv
2005-05-08 06:35:46 +00:00
Bill Currie 4a425a1b1a though none of the signon info is sent yet, the spectating client now gets
put into the map. can't move yet, though
2005-05-08 00:48:21 +00:00
Bill Currie 88ae6de8bf whee, clients now get spammed with text messages when "connected" to a
server
2005-05-07 13:57:07 +00:00
Bill Currie be93162837 svc_[delta]packetentities now getting parsed 2005-05-07 05:13:37 +00:00
Bill Currie 4443ef50c8 forgot I also had the beginnings of player updates 2005-05-06 08:19:26 +00:00
Bill Currie da1df94452 split out the qw protocol parsing from the server managmement code 2005-05-06 07:24:30 +00:00
Bill Currie 966b5ee387 "mvd" stuff now gets streamed to the qtv proxy :) 2005-05-05 07:31:31 +00:00
Bill Currie cd2f9434fc proxy now stays connected :) also gets the server data packet. most changes
due to move of pmove.h
2005-05-02 04:09:15 +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
Bill Currie 1033f7e322 move qw/include/protocol.h to include/qw/protocol.h making life easier
qtv can now connect to a server (won't stay connected though)
2004-02-21 02:31:22 +00:00
Bill Currie f94b0b3800 clients can now connect, but all that happens is the qtv console fills up
with "hi"
2004-02-20 05:37:47 +00:00
Bill Currie 60d2cd1ed9 now responds to ping and status commands via connectionless packets 2004-02-20 04:29:03 +00:00
Bill Currie e303db1687 start working on server connections. can add, list and delete servers 2004-02-20 02:39:34 +00:00
Bill Currie 6ae4b6f8bb get the QWTV (qtv) project going :) 2004-02-18 23:21:11 +00:00