Commit graph

48 commits

Author SHA1 Message Date
Bill Currie
15d7222ebb [model] Remove Mod_LeafPVS in favor of mix/set
The use of a static set makes Mod_LeafPVS not thread safe and also means
that the set is not usable with the set iterators after going to a
smaller map from a larger map.
2023-08-05 11:51:01 +09:00
Bill Currie
ecb9a15946 [model] Clean up the brush leaf api a little
Those functions now all take mod_brush_t since they don't work with any
other type of model.
2023-06-28 21:45:41 +09:00
Bill Currie
dbd3d6502a Nuke qboolean from orbit
I never liked it, but with C2x coming out, it's best to handle bools
properly. I haven't gone through all the uses of int as bool (I'll leave
that for fixing when I encounter them), but this gets QF working with
both c2x (really, gnu2x because of raw strings).
2023-06-13 18:06:11 +09:00
Bill Currie
7240d2dc80 [model] Move plane info into mnode_t, and visframe out
The main goal was to get visframe out of mnode_t to make it thread-safe
(each thread can have its own visframe array), but moving the plane info
into mnode_t made for better data access patters when traversing the bsp
tree as the plane is right there with the child indices. Nicely, the
size of mnode_t is the same as before (64 bytes due to alignment), with
4 bytes wasted.

Performance-wise, there seems to be very little difference. Maybe
slightly slower.

The unfortunate thing about the change is the plane distance is negated,
possibly leading to some confusion, particularly since the box and
sphere culling functions were affected. However, this is so point-plane
distance calculations can be done with a single 4d dot product.
2022-05-22 12:41:23 +09:00
Bill Currie
db01650dac Update vec3_t/vec4f_t hacks to work with clang
Still work with gcc, of course, and I still need to fix them properly,
but now they're actually slightly easier to find as they all have vec_t
and FIXME on the same line.
2022-03-31 00:08:26 +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
5f93c115ff [util] Make developer flag names easier to manage
They're now an enum, and the flag part of the name is all lowercase, but
now the flag definitions and names list will never get out of sync.
2021-03-29 22:38:47 +09:00
Bill Currie
8466de2325 [client] Use vec4_t in entity_state_t
And clean up the mess (sort of:P)
2021-03-11 16:19:49 +09:00
Bill Currie
ca38f9b616 [qw] Use entity_state_t as a base for player_state_t
This will, in the long run, help clean up a lot of the differences in
the handling of entities in the clients.
2021-03-11 14:27:36 +09:00
Bill Currie
7970525ef4 [util] Make va thread-safe
It now takes a context pointer (opaque data) that holds the buffers it
uses for the temporary strings. If the context pointer is null, a static
context is used (making those uses of va NOT thread-safe). Most calls to
va use the static context, but all such calls have been formatted
consistently so they are easy to find when it comes time to do a full
audit.
2021-01-31 16:05:48 +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
4cef9792f4 [util] Make hash-tables semi-thread-safe
They take a pointer to a free-list used for hashlinks so the hashlink
pools can be per-thread. However, hash tables that are not updated are
always thread-safe, so this affects only updates. progs_t has been set
up such that it is easy for multiple progs within one thread can share
hashlinks.
2020-03-25 15:43:16 +09:00
Bill Currie
ec42bde527 Make hash tables more const correct.
And clean up the resulting mess :/
2012-10-27 11:44:31 +09:00
Bill Currie
b4ad695e16 Make info_t opaque.
I didn't like the way client/server code was poking around at the
implementation. Instead, provide a couple of accessor functions for the
same information.
2012-06-14 22:46:23 +09:00
Bill Currie
23a38738fc Massive whitespace cleanup.
Lots of trailing whitespace and otherwise blank lines.
2012-05-22 08:23:22 +09:00
Bill Currie
bc1b483525 Nuke the rcsid stuff.
It's pretty useless in git.
2012-04-22 10:56:32 +09:00
Bill Currie
2035e65bad Make the qport flags a little more doc friendly. 2011-07-23 17:51:07 +09: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
8c4fe2f844 Rename Sys_DPrintf to Sys_MaskPrintf.
We now have finer runtime control over what gets printed. Need to do a
SYS_DEV audit, creating new masks as apropriate.
2010-11-26 16:19:26 +09:00
Bill Currie
37e52bad71 map changes now work through a proxy 2010-01-13 06:52:15 +00:00
Bill Currie
997102fea8 audit the usage of "only"
There are still a few iffy places (notably around certain prepositions), but
the relevant sentences are now much easier to read.
2010-01-13 06:42:26 +00:00
Bill Currie
d66934942d nuke Con_Printf and Con_DPrintf and use Sys_* instead 2007-11-06 10:17:14 +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
c2894dcfce make backbuf max size tunable (for the big packets) 2007-05-07 12:09:10 +00:00
Bill Currie
52f7bd4bb4 MAX_ENTITIES patch from phrosty 2007-04-19 07:36:12 +00:00
Bill Currie
3fb03fc2be hah, should have been using __attribute__((used)) all that time (rather
than __attribute__((unused))). fixes the missing console in -x11
2005-08-04 15:27:09 +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
fc18658e86 doh, put the spawn stuff in the prespawn function 2005-05-08 08:14:24 +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
d2c586dae7 forgot to "disconnect" the client when it drops 2005-05-07 14:00:53 +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
77af004b32 bah, need svc_chokecount when real clients are connected :P 2005-05-07 11:42:04 +00:00
Bill Currie
8950f3188f messed up the logic for ucmd_unkown 2005-05-01 04:08:47 +00:00
Bill Currie
2697671a9b make MSG_ReadDeltaUsercmd use a param rather than global to read the
message.
2005-04-27 12:16:15 +00:00
Bill Currie
ca46503607 add -Wsign-compare (default for -Wall only in C++) and fix up the warnings 2004-07-13 19:14:01 +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