Commit graph

40 commits

Author SHA1 Message Date
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
2aae757eff [qtv] Set worldmodel just after svc_modellist
Not sure why I thought skins_f was a good place. This seems to be much
more reliable.
2021-12-27 22:54: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
57dbd7ed72 [qtv] Load the right model for world
For whatever reason, the client puts the models offset by one, but qtv
does not. It's much easier to find dm6.bsp than *1 :P
2021-12-27 17:34:21 +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
7694ae29cc a compile fix 2021-12-26 13:10:14 +09:00
Bill Currie
88249a2e33 add pvs culling 2021-12-26 13:08:11 +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
0c1699fdbb Fix a pile of double semicolons 2021-01-09 20:42:23 +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
bc1b483525 Nuke the rcsid stuff.
It's pretty useless in git.
2012-04-22 10:56:32 +09:00
Bill Currie
9afb691dd9 Change MSG_ReadShort to return an unsigned short.
Avoiding the sign extension by default seems to be more useful.
2011-09-04 09:58:12 +09:00
Bill Currie
60c3b139d9 don't cause the clien to segfault while changing levels 2010-01-13 06:53:38 +00:00
Bill Currie
37e52bad71 map changes now work through a proxy 2010-01-13 06:52:15 +00:00
Bill Currie
3a3b55f15b never forward certain svc types
svc_stufftext needs to be filtered (not yet done)
2010-01-13 06:51:39 +00:00
Bill Currie
70cc48826c I think I finally got the protocol side of map changes right
"pause" qtv recorders while changing maps
send changing/reconnect via the qtv extensions
2010-01-13 06:50:44 +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
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
1029ad31bc really get player deltas working and get connecting and disconnecting
players working as well
2005-05-09 13:37:03 +00:00
Bill Currie
47bf8c8423 player deltas seem to be working 2005-05-09 12:12:48 +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
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
77af004b32 bah, need svc_chokecount when real clients are connected :P 2005-05-07 11:42:04 +00:00
Bill Currie
ec4bab3088 parse nails and actually print svc_prints :) 2005-05-07 11:19:05 +00:00
Bill Currie
a87a77e7a5 parse svc_temp_entity 2005-05-07 06:59:39 +00:00
Bill Currie
8caeb6aee2 get svc_playerinfo working (I think:) 2005-05-07 06:25:57 +00:00
Bill Currie
196622a83f parse ping and pl properly 2005-05-07 05:16:54 +00:00
Bill Currie
be93162837 svc_[delta]packetentities now getting parsed 2005-05-07 05:13:37 +00:00
Bill Currie
da1df94452 split out the qw protocol parsing from the server managmement code 2005-05-06 07:24:30 +00:00