Commit graph

160 commits

Author SHA1 Message Date
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
ab04a1915e [build] Fix a pile of gcc 10 issues
gcc got stricter about array accesses, complicating progs macros, and
much better at detecting buffer overflows.
2020-12-21 14:14:29 +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
9248e8cf01 Update for doxygen 1.8.16 2020-02-11 15:22:42 +09:00
Bill Currie
34bcf7faab Do a pure/const/noreturn/format attribute pass.
I always wanted these, but as gcc now provides warnings for functions that
could do with such attributes, finding all the functions is much easier.
2018-10-09 12:42:21 +09:00
Bill Currie
59e85b7d5e Fix a pile of dead assignments.
Some were actual bugs!
2018-09-08 22:23:57 +09:00
Bill Currie
2329fb1885 Fix some warnings and bitrot. 2016-10-25 00:10:30 +09:00
Bill Currie
f5501fbf24 Fix a pile of automake deprecation warnings.
s/INCLUDES/AM_CPPFLAGS/g

I <3 sed :)
2013-11-24 13:11:50 +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
50b22ab163 Fix a rather silly snafu with smart-leak.
I blame this fever :P

Now smart-leak actually makes sense.
2012-09-18 07:48:39 +09:00
Bill Currie
156f3382a5 Emit the points in the expected order.
Associating p1 with n2 and p2 with n1 was a bit confusing. Makes for a
more-sensible points output file, too.
2012-09-16 13:51:42 +09:00
Bill Currie
d6476d4f93 Make some improvements to the leak files.
smart leak files now produce many points, not just one per portal. Normal
leak files now center the trail on the portal (instead of some weird
weighted average).
2012-09-16 12:38:55 +09:00
Bill Currie
bcda96a445 Report the source line of the entity in messages.
For now, just when PrintEntity is used to print the message, but having the
first line of the entity sure makes life easier.
2012-09-12 08:33:44 +09:00
Bill Currie
db25d5597d Handle quest format brushes.
Bah, I forgot I needed to fix the vertex count parsing when I did the
script lexing change.
2012-09-12 08:24:17 +09:00
Bill Currie
ea541b325d Set the map parser scripts to not lex single chars.
qbsp treats {foo as one token, not two.
2012-09-09 17:23:55 +09:00
Bill Currie
a37c5465e1 First step for BSP2 support. DOES NOT WORK!
All of the nastiness is hidden in bspfile.c (including the old bsp29
specific data types). However, the conversions between bsp29 and bsp2 are
implemented but not yet hooked up properly. This commit just gets the data
structures in place and the obvious changes necessary to the rest of the
engine to get it to compile, plus a few obvious "make it work" changes.
2012-09-07 16:09:24 +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
eefa89e72e Remove the AM_CONDITIONALs from tools.
Now that the tools directories aren't entered when those tools aren't being
built, there's no reason to use AM_CONDITIONAL in there.
2012-02-10 02:50:42 +09:00
Bill Currie
853bf13d9e Move the winding code into libQFmodels. 2011-11-28 20:54:35 +09:00
Bill Currie
91e65b6c80 Rename mplane_t to plane_t and clean up the mess.
I got rather tired of there being multiple definitions of mostly compatible
plane types (and I need a common type anyway). dplane_t still exists for
now because I want to be careful when messing with the actual bsp format.
2011-11-28 20:54:34 +09:00
Bill Currie
2457837b37 Make some improvements to the winding docs. 2011-11-12 12:17:45 +09:00
Bill Currie
505660dffe Nuke another buffer.
Though snprintf was used, not having a buffer just makes things cleaner.
2011-09-07 09:41:06 +09:00
Bill Currie
f75b0a611b Some compile fixes for OpenBSD 2011-08-25 22:35:20 +09:00
Bill Currie
0f7390dd60 Clean up all the "set but not used" warnings.
gcc on my system is failing to treat this specific warning as an error :/
2011-06-19 10:48:02 +09:00
Bill Currie
d638fdce83 Add a PlaneFlip macro. 2011-05-07 19:29:03 +09:00
Bill Currie
d470094a55 Flip the nodes when flipping the plane. 2010-12-10 18:13:48 +09:00
Bill Currie
9ba70884c5 Prefer positive Z axis for 45 degree canonical planes. 2010-12-10 17:17:30 +09:00
Bill Currie
ba2a5838fd Normalize the clip plane before adding it to the bsp. 2010-12-10 17:17:30 +09:00
Bill Currie
a0828ddd06 Clean up bsp limits.
Delete all bogus bsp limits, fixing the code that depended on them.
Document those limits that are dictated by the format.
2010-12-07 17:58:09 +09:00
Bill Currie
ac88c86dd3 Scripts now treat {}()': as single character tokens. 2010-11-28 15:31:30 +09:00
Bill Currie
0c4b2f9e19 Add the default extension when no output file is specified. 2010-10-16 22:09:18 +09:00
Bill Currie
98fa427456 Add the extract-hull option to the usage output. 2010-10-16 16:16:58 +09:00
Bill Currie
985c27b52d Some more brush documentation. 2010-10-13 20:52:08 +09:00
Bill Currie
ef7958d680 Lots of const correctness. 2010-10-13 20:52:08 +09:00
Bill Currie
f4bff1d3b0 Make some code more readable. 2010-10-13 20:52:08 +09:00
Bill Currie
16e067c8cb More portal documentation. 2010-10-13 20:52:08 +09:00
Bill Currie
538956c389 Make parts of CutNodePortals_r() easier to read. 2010-10-13 20:52:08 +09:00
Bill Currie
08c6a185ad Documentation for writebsp. 2010-10-13 20:52:08 +09:00
Bill Currie
d90a630b04 Call AddAnimatingTextures only once rather than for every wad file. 2010-10-13 20:52:08 +09:00
Bill Currie
fcd1897421 Create the qfbsp doxygen modules.
Also, make doxygen extract static functions as well, so qfbsp's docs can be
more complete.
2010-10-13 20:52:08 +09:00
Bill Currie
bfc6c9e798 Document the smart-leak function. 2010-10-13 20:52:07 +09:00
Bill Currie
93517d40d8 Finish the port of smart leak files.
This comes from the OpenQuartz version of qbsp.
2010-10-13 20:52:07 +09:00
Bill Currie
ad8b08238d Make some vector code easier to read. 2010-10-13 20:52:07 +09:00
Bill Currie
44776f111f Documentation for winding. 2010-10-13 20:52:07 +09:00
Bill Currie
a8bd522ca1 Documentation for tjunc. 2010-10-13 20:52:07 +09:00
Bill Currie
f758cacc69 Make FindEdge easier to read. 2010-10-13 20:52:07 +09:00
Bill Currie
fc0e0f4665 Documentation for surfaces. 2010-10-13 20:52:07 +09:00
Bill Currie
f3e7a7ca89 Documentation for solidbsp. 2010-10-13 20:52:07 +09:00
Bill Currie
4b1b838f87 More braces and whitespace. 2010-10-13 20:52:07 +09:00