Commit graph

304 commits

Author SHA1 Message Date
Bill Currie
9d63298032 Tweak a fixme comment.
The code is potentially slow, especially on big maps, but I haven't noticed
any issues yet.
2011-11-28 20:54:33 +09:00
Bill Currie
03abb3b27d Add support for ellipsoids.
Not that boxes work yet, but the fix is the same.
2011-11-28 20:54:33 +09:00
Bill Currie
b4da9241f6 Make a fresh start on box clipping.
I even have a failing test to fix :)
2011-11-28 20:54:33 +09:00
Bill Currie
940476dce1 Do some renaming to make things a little clearer. 2011-10-02 15:07:36 +09:00
Bill Currie
a356ce6572 Assume the trace will be allsolid.
Rather than setting allsolid when the trace fails to leave solid space,
clear it when the trace enters non-solid space. This is necessary because
the trace might visit only one node and thus the failure to leave solid
space will not be detected. This fixes the problem with hipnotic's bobbing
water.
2011-09-27 17:14:42 +09:00
Bill Currie
9c6693d567 Correct hull3 and its tests.
I'd gotten the solid/empty parts backwards.
2011-09-27 17:11:57 +09:00
Bill Currie
3e74aa5303 Add trace-qf-bad.c to Makefile.am and testclip.c. 2011-09-27 17:09:04 +09:00
Bill Currie
e23ee07b6f Ensure id's trace is properly initialized. 2011-09-27 15:38:28 +09:00
Bill Currie
32ff639bf3 Add an old qf version of trace.c
This version is broken (it's the one "fixed" by commit 981622f9), but it
does behave correctly for hipnotic's bobbing water. The question is, why?
2011-09-27 13:00:19 +09:00
Bill Currie
9daa0b7bde Rename the empty and solid flags, and use them correctly.
seen_empty and seen_solid much better reflect their meanings, and also use
them correctly (eg, visiting an empty node does not clear seen_solid).
Hipnotic's bobbing water is still broken, though.
2011-09-27 12:33:50 +09:00
Bill Currie
a7482570b6 Document the geometry in the tests. 2011-09-27 12:30:21 +09:00
Bill Currie
aa6b7ef7e8 Add some water based tests.
Unfortunatly, they haven't uncovered the bug.
2011-09-26 21:02:54 +09:00
Bill Currie
800e8cb3da Make the id trace code more readily usable in the engine. 2011-09-26 19:56:00 +09:00
Bill Currie
ae0dc6f06b Disable the "shouldn't happen" code.
It causes the tests to fail, and doesn't affect the problem I'm currently
facing.
2011-09-26 19:56:00 +09:00
Bill Currie
baf9b7c181 Make the test nodes a little easier to read. 2011-09-26 19:56:00 +09:00
Bill Currie
683adf1850 Print the name and texture number for model skins.
Use SYS_GLT (1024) for gl texture debugging.
2011-09-26 13:03:53 +09:00
Antti Harri
358a844a42 Implement --version-info configure switch to override QuakeForge
library versioning. From Lasse Collin, thanks!
2011-07-09 01:23:36 +03:00
Bill Currie
b18ff4ed3e Move test-qfs.c into a test directory.
Same as before: avoiding -prefic-pic issues.

Also, catch some minor snafus found in the previous commit. With this, make
distcheck passes again :)
2011-06-12 16:34:15 +09:00
Bill Currie
c522726021 Move the testclip program into its own directory.
Same as with the audio test program, this is to avoid issues with
-prefer-pic.
2011-06-12 16:12:52 +09:00
Bill Currie
74a7e07dfc Use AM_CFLAGS instead of CFLAGS.
CFLAGS is meant to be reserved for the user.
2011-05-10 12:44:44 +09:00
Bill Currie
981622f969 Make MOD_TraceLine behave "correctly".
MOD_TraceLine now behaves the same as id's SV_RecursiveHullCheck (from
WinQuake). This means that even if the trace would escape from solid space
into non-solid space, the trace is treated as allsolid if it crosses from
one solid space to another before hitting the empty space.

trace-id.c is used only for establishing the behaviour of id's code.
2010-12-06 15:30:56 +09:00
Bill Currie
c2af7896bd Revert "make droptofloor continue the trace if it starts solid"
This reverts commit 10232acdfe.

The problem was really in the trace code, but it got fixed by "accident"
when I had similar problems in hipnotic a couple of years later. Now to
figure out just what the trace could really should be doing.
2010-12-05 14:56:32 +09:00
Bill Currie
31640dd1b9 Clean out the last traces of my boxclip code.
I've been experiencing funny trace issues while playing Soul of Evil. While
I think the boxclip dregs shouldn't be causing problems, it's probably best
to clean them out properly before trying to fix anything.
2010-12-05 14:52:20 +09:00
Bill Currie
8831a109a4 Create and use mclipnode_t.
I didn't realize this was a critical part of fitzquake's large map
support. This should fix the non-solid brush entities in Conflagrant
Rodent.
2010-11-29 09:36:21 +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
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
92f84e97a4 Unlimited loaded models. 2010-11-26 16:19:25 +09:00
Bill Currie
9a30968c87 type size correctness 2010-10-13 20:52:06 +09:00
Bill Currie
cd159e1cc1 Use LoadBSPMem to load brush models.
Now that Mod_LoadBrushModel uses bspfile.[ch], the engine uses the same
code as the tools to work with bsp files.
2010-10-13 20:52:05 +09:00
Bill Currie
2185a3dcd0 Remove almost all of my boxclip developement.
This is to prevent others accidently getting headaches from my code.
2010-08-20 14:13:23 +09:00
Bill Currie
0dfff8fd58 ignore stuff 2010-08-07 10:42:09 +00:00
Bill Currie
3e0aaea535 more build fixes from Despair (parallel make, this time) 2010-05-28 13:37:51 +00:00
Bill Currie
51932ee433 --enable-boxclip configure option and some more tweaks, I guess (been too long) 2009-12-19 04:45:01 +00:00
Bill Currie
a26cd68ea9 more tests, more progress. just need to fix a regression that popped up while fixing the new test (18) 2009-03-22 00:31:44 +00:00
Bill Currie
dd27143f62 finally got the failing test I wanted 2009-03-20 15:01:18 +00:00
Bill Currie
21c12ad7d5 damn, it failing was because I was using the wrong hull. now, why does the engine fail here? 2009-03-20 11:57:36 +00:00
Bill Currie
7dae886b93 label "expect" and "got" lines 2009-03-20 11:55:47 +00:00
Bill Currie
1f1375fdbb add another (currently failing) testcase 2009-03-20 11:51:59 +00:00
Bill Currie
384ad30df8 correct the last 4 edges. all existing testcases now pass. 2009-03-20 11:38:04 +00:00
Bill Currie
fea4189150 complete rewrite of validate_solid. also, put the trace points on the other side of the split plane. Just one more set of related tests to fix. 2009-03-20 11:20:59 +00:00
Bill Currie
0ff4165149 why didn't I do this earlier? 2009-03-20 03:40:30 +00:00
Bill Currie
f59f2dc7b9 some more progress with box clipping and much a saner test harness 2009-03-20 03:33:03 +00:00
Bill Currie
e992edaf31 that fixed the test case (why isn't sgn a standard function? :P) 2009-03-19 04:56:44 +00:00
Bill Currie
3be88c3e1d still disabled since it's still broken, but progress has been made. Fortunately, some of the breakage shows up as a regression in the testcases. 2009-03-19 03:16:24 +00:00
Bill Currie
2b81eaea6c console.h include cleanup 2007-11-06 12:40:38 +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
e15fae264a well, it finally seems to work, but q1 maps (especially start's ramp to e3) are not such that they're particulary playable due to being designed for point clipping. so still disabled until something can be sorted out. 2007-09-29 23:28:41 +00:00
Bill Currie
0ee9e1cf3e more accurate expects and don't recurse for non-crossings 2007-09-23 08:33:26 +00:00
Bill Currie
3d79256653 closer still. have problems with allsolid traces and flags in general 2007-09-23 05:41:17 +00:00
Bill Currie
973a30bce0 show inwater as well (though irrelevant for test map) 2007-09-23 05:40:08 +00:00
Bill Currie
9f7018685e a little easier to see what's expected 2007-09-23 04:07:39 +00:00
Bill Currie
0234b7ed93 nice little test of box clipping. doesn't get installed :) 2007-09-23 03:48:05 +00:00
Bill Currie
f7faad118b didn't quite get that checkin right 2007-09-21 14:04:30 +00:00
Bill Currie
36f5edb9d3 still disabled, but it's mostly working now. serves me right for blindly following the q2 code :P (it be buggy) 2007-09-21 13:58:07 +00:00
Bill Currie
19f0d23f8b it's disabled, but my box clipping is getting close 2007-09-21 12:44:19 +00:00
Bill Currie
37ad41ecb7 MOD_TraceLine doesn't need to return anything... 2007-09-17 11:24:42 +00:00
Bill Currie
2881b4b284 make MOD_TraceLine recursive again so I can work on box clipping without losing so much hair 2007-09-16 07:55:44 +00:00
Bill Currie
866eaa22f6 don't segfault when there are holes in the texture list 2007-05-16 09:23:54 +00:00
Bill Currie
ecaa002774 fix items in walls in hipnotic 2007-05-14 11:16:41 +00:00
Bill Currie
aca80a7baf fix the gold-key/radiation-symbol bug in rock2 2007-05-09 10:55:02 +00:00
Bill Currie
b963665ad7 don't stop a trace on transition from solid to non-solid. this fixes the grapple problem in prozaccoop, but really the bug is in the progs but this is a faster fix for now until I decide whether I want to stop a trace on transition or not, or whether to make it optional. 2007-04-28 02:16:47 +00:00
Bill Currie
447a3e8254 fix some nasty catches I was experiencing. I don't know why my logic didn't work, but it definitely didn't. 2007-04-07 06:51:36 +00:00
Bill Currie
99c0954b47 the big dso visibility patch :). Sure, we have to have unique names for static builds, but with controlled visibitly we should get faster program loads (although this isn't C++, so it's not as bad) and complex plugins are cleaner. 2007-03-10 12:00:59 +00:00
Bill Currie
24ab92e68d things seem to be working nicely in point mode 2006-12-25 01:21:52 +00:00
Bill Currie
9a7e4bc5e6 fix some comments 2006-12-24 08:01:39 +00:00
Bill Currie
8dce95b4ba do some renaming of variables to save my sanity 2006-12-24 06:34:12 +00:00
Bill Currie
46a74c831a don't go through the back side of walls 2006-12-24 05:05:27 +00:00
Bill Currie
bcdf710316 bah, missed those 0s 2006-12-24 04:34:08 +00:00
Bill Currie
7624f2eb87 still disabled, but put the box tracing code in the shared code 2006-12-24 03:46:12 +00:00
Bill Currie
45d467d748 box tracing (instead of point). Currently disabled because it doesn't work right just yet. However, when it is working, it will let us do things like crouching, crawling, arbitrary sized objects (including players), etc. 2006-12-24 03:13:29 +00:00
Bill Currie
b3a2759e5b oops, missed that somehow 2006-12-24 03:03:41 +00:00
Bill Currie
a483f8670d use the vector/plane macros to clean up the code a bit 2006-12-24 03:01:15 +00:00
Bill Currie
7d2784e1bc whitespace 2006-07-23 01:34:14 +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
10232acdfe make droptofloor continue the trace if it starts solid. fixes the ceiling
hugging sng in e1m7.
2005-04-24 13:31:47 +00:00
Bill Currie
0bfac8dd88 win32 compile fixes
This is an imperfect revision of history.
2004-11-06 02:21:00 +00:00
Bill Currie
2cb81b37f9 move the *_RecursiveHullCheck functions from pmovetst.c and world.c to MOD_TraceLine in libs/models/trace.c, at the same time rewriting the code to work itteratively rather than recursively.
This is an imperfect revision of history.
2004-11-02 08:40:00 +00:00
Bill Currie
986dae9ec9 as discussed with fuh, hide the endian dependency of the checksum calcs
(evil way of using md4, but oh well).
2004-05-16 23:17:51 +00:00
Bill Currie
beb22957db do some sanity checking on the header lumps in case of truncated file 2004-02-29 04:24:42 +00:00
Bill Currie
f9b95cee92 some micro-optimisations 2004-02-23 07:17:41 +00:00
Ragnvald Maartmann-Moe IV
c4402e07bd Working towards merging q2 model, sprite, and map support. Check back in a few
years, might be finished. ;)
2004-02-08 02:49:38 +00:00
Bill Currie
77b2942982 several libs can now get built as dlls in windows: console, gamecode,
gamecode_builtins, gib, image, modules, object, ruamoko and util.
2004-01-19 07:47:41 +00:00
Bill Currie
7ba6756810 temporary hack to avoid crashing when s_explod.mdl isn't precached but
explosions are requested
2004-01-17 07:14:42 +00:00
Bill Currie
629e22aa61 fix a buffer overflow and an underflow 2004-01-17 05:11:34 +00:00
Ragnvald Maartmann-Moe IV
4597b44334 /, not // in paths. textures//foo.png is ugly. ;) 2004-01-08 03:33:45 +00:00
Ragnvald Maartmann-Moe IV
043c1ce466 Check for %s_luma as well as %s_glow. Also a bit of whitespace. 2004-01-04 01:20:20 +00:00
Bill Currie
40b8974c33 better external skin handling from Grievre 2003-12-28 05:25:06 +00:00
Ragnvald Maartmann-Moe IV
1be98dcf08 gl_external_textures -> gl_textures_external, plus whitespace & codingstyle. 2003-12-23 20:05:52 +00:00
Bill Currie
4b6b5135ac more texture tweeks from Griever: gl_external_textures 2003-12-23 08:38:33 +00:00
Bill Currie
9f76665963 luma tweak (redundant code removal) from Grievre 2003-12-23 07:22:04 +00:00
Ragnvald Maartmann-Moe IV
12d3a137a1 Luma texture support for brush models (From Fuh, by way of Grievre). 2003-12-21 08:02:03 +00:00
Bill Currie
2b5a3753ca nuke QF/texture.h moving it's contents into QF/image.h (yay, finally, a
real home for tex_t:)
2003-09-04 18:59:39 +00:00
Bill Currie
39ed540979 LoadImage is now used for all external textures giving almost transparent
.png and .tga support.
2003-09-04 18:46:59 +00:00
Bill Currie
ff43d61f81 use the correct bytes per pixel count 2003-09-04 16:26:14 +00:00
Bill Currie
4d1313d0c1 don't seg when using 1 component lightmaps 2003-08-30 22:39:27 +00:00
Bill Currie
7ead5a91f8 don't let gcc automaticly inline functions but make gcc inline bigger
functions when told to. also make gcc warn if it can't inline a function.

Explicitly inline several functions (including moving VectorNormalize to
mathlib.h so it /can/ be) resulting in a 5.5% speedup for spam2 (88 to 92
fps)
2003-08-11 06:05:07 +00:00
Bill Currie
6a94607d9d rename VectorMA to VectorMultAdd, add VectorMultSub and use it in a few
places. Not certain how much speed difference it makes :/
2003-08-08 15:25:53 +00:00
Bill Currie
0cf0f710b7 remove some unneeded code 2003-07-09 15:34:58 +00:00
Bill Currie
4f66e1e9da fix a bunch of the previous FIXMEs. needs a bit more work for win32
compiling
2003-07-08 22:39:45 +00:00
Bill Currie
5f3573143a the beginnings of a jihad against buffer overflows 2003-05-08 23:24:02 +00:00
Bill Currie
eb099ae0d3 make qf gcc 3.3 clean 2003-04-17 00:01:48 +00:00
Bill Currie
01bff9c79e WildCode's alias model VA prepatory patch 2003-04-08 04:13:49 +00:00
Ragnvald Maartmann-Moe IV
88c2735d9c Make sprite rendering use vertex arrays, as a test for detection of vertex array support (tests only for OpenGL 1.1 or better, at the moment, no driver blacklist yet). 2003-03-20 19:58:18 +00:00
Bill Currie
c186266f06 whitespace 2003-03-12 02:21:51 +00:00
Bill Currie
bb5f5e0a0c fix a couple of gcc 2.95 warnings 2003-02-19 21:41:37 +00:00
Ragnvald Maartmann-Moe IV
e3ea39e67b QuakeForge now supports map specific textures in textures/mapname/. 2003-02-19 17:41:16 +00:00
Bill Currie
851d203916 work towards a more secure qfs 2003-02-14 22:36:10 +00:00
Bill Currie
6a687f5e45 rename all the globals in quakefs.[ch] to be QFS_* or qfs_* 2003-02-14 19:46:07 +00:00
Bill Currie
761a7546dd re-arrange things so __attribute__ and __builtin_expect are properly
autoconfiscated so rcsid will continue to work with gcc 3.3
2003-01-15 15:31:36 +00:00
Bill Currie
71196fedf6 make gcc more anal about prototypes, string constants and function
visibility (ie, global functions must have a prototype)
2003-01-06 18:28:13 +00:00
Bill Currie
ca4b3acd6c big protototype cleanup. Now, except for a few cases, all non-static
prototypes are in headers files.
2002-11-05 19:12:51 +00:00
Bill Currie
d7e7b7de7d cause the model to load into a calloced buffer rather than the hunk temp
region to avoid the data getting corrupted by cache shufflings. This
/should/ fix the bad extents bug (Closes: #37)
2002-10-11 02:54:02 +00:00
Bill Currie
75c7119cd8 gamma correct the loaded lightmaps so swgamma works better (MUCH better:) 2002-09-15 05:04:14 +00:00
Bill Currie
f7b4dffcc0 get larger player skins working in gl 2002-09-13 05:32:28 +00:00
Ragnvald Maartmann-Moe IV
cb241c50bf Replace * with # in map names, rather than _. Seems to be the "standard" for replacement textures. 2002-09-10 23:40:13 +00:00
Ragnvald Maartmann-Moe IV
b7c2f5efa3 Allow loading textures from textures directory, as well as from maps. 2002-09-06 21:52:11 +00:00
Ragnvald Maartmann-Moe IV
c4609f5195 Experimentally allow external texture loading. Also prevent loading RGB textures as RGBA, which wastes a lot of texture memory, and looks ugly on 16bpp boards. 2002-09-06 21:37:22 +00:00
Ragnvald Maartmann-Moe IV
92db391e7c Optimize model rendering a hair. WildCode spotted that minimum shade was only being applied to the view model (why do we set it up for other stuff if it's not going to be used?). While looking at that, I noticed we could do the divide by 200 in model setup. 2002-09-01 23:45:22 +00:00
Bill Currie
f473a4fa17 more thorough reporting on bad surface extents 2002-08-27 16:01:51 +00:00
Bill Currie
ec47e08e1c go back to using QFile, quakeio.h and quakefs.h 2002-08-27 07:16:28 +00:00
Ragnvald Maartmann-Moe IV
e2e605841f Code in variable declarations. Yuck. *thwaps taniwha* 2002-08-25 16:51:30 +00:00
Ragnvald Maartmann-Moe IV
ddb90e1acd More whitespace. Eek. 2002-08-25 16:35:22 +00:00
Ragnvald Maartmann-Moe IV
19315a399f Whitespace, comment cleanups. 2002-08-25 14:25:38 +00:00
Ragnvald Maartmann-Moe IV
44e2fbaa87 More whitespace. 2002-08-22 20:06:30 +00:00
Ragnvald Maartmann-Moe IV
6ab0175cfc Whitespace... 2002-08-22 19:16:44 +00:00
Ragnvald Maartmann-Moe IV
e6e920747c Whoops, more whitespace. 2002-08-22 19:08:33 +00:00
Bill Currie
c44ec1993d handle up to 512x512 map textures /properly/. would be nicer if the max
could be dynamic
2002-08-22 19:00:55 +00:00
Ragnvald Maartmann-Moe IV
27f9b7a1c0 Whitespace. 2002-08-22 18:45:58 +00:00
Ragnvald Maartmann-Moe IV
87b5d2ec5b Whitespace. 2002-08-22 18:38:07 +00:00
Ragnvald Maartmann-Moe IV
c91f1a2aea Rename Length to VectorLength. 2002-08-20 02:22:40 +00:00
Ragnvald Maartmann-Moe IV
32a85e7130 Clipping cleanups.
Calculate radius for alias models as well as brush.
Culling is no longer optional on alias models (was only ever disabled for viewmodel, which is a lot of extra effort to avoid clip testing 1 thing out of hundreds).
Clip QSG2 scaled alias models with a scaled bbox.
2002-08-20 00:48:59 +00:00
Ragnvald Maartmann-Moe IV
e9febea31c Whitespace. 2002-08-19 06:00:31 +00:00
Bill Currie
b1a180b25e move the view model check for min_light into the model loader (checks for
progs/v_*)
2002-08-19 04:05:02 +00:00
Bill Currie
2ce0f2ded2 we now require modern autoconf (2.52+), automake (1.6+) and libtool (1.4+).
This gives us a bunch more flexibility. plugins no longer have the "lib"
prefix or the version suffix, they're now installed in
$fs_sharepath/QFplugins,, builds should take much less time (in general,
only one of pic or non-pic versions are build), bins and libs can have
individual CFLAGS
2002-08-01 19:49:10 +00:00
Bill Currie
1337b8bd3d be a little more verbose with the "Bad surface extents" error. 2002-07-03 21:03:49 +00:00
Ragnvald Maartmann-Moe IV
df55030fa8 Fix alias bounding box sizes, so that large critters don't disappear when at edge of view frustrum...
(Taken and debugged from tutorial on quakesrc.org)
2002-06-14 09:33:37 +00:00
Bill Currie
8a762bdaaf hack to work around the gl lighting fix breaking sw 2002-05-30 21:39:21 +00:00
Bill Currie
4e67f8d155 remove an extern 2002-05-30 18:38:57 +00:00
Ragnvald Maartmann-Moe IV
f1f942dfd1 Hacking my way towards working r_lightmap_components 1.
Users of r_lightmap_components 1, should set `int mod_lightmap_bytes = 1` at the start of `quakeforge/libs/models/brush/gl_model_brush.c`.
2002-05-25 15:29:22 +00:00
Bill Currie
6a5bbf6f0a memory allocation checking cleanup 2002-05-14 06:37:28 +00:00
Bill Currie
44dcf74627 strip the \n from all(?) of the Sys_Error calls (Sys_Error itself will be
adding \n).
2002-05-14 06:12:29 +00:00
Bill Currie
e4975cd675 very minor load-time optimisation 2002-04-23 17:23:18 +00:00
Bill Currie
b322835767 fix a missing \n 2002-04-03 18:50:36 +00:00
Bill Currie
26d7463be7 the majority of raptor's sgi build patch. I'll look at the last two bits
(server.c and vid_sdl.c) later.
2002-03-03 06:03:51 +00:00
Bill Currie
316386b542 mod->textures can legitimatly have null textures, so be on the lookout for
them. This fixes the client crash on certain levels.
2002-01-24 02:44:19 +00:00
Seth Galbraith
31a98f0f80 only load tgas for texture names that end in backslash 2002-01-17 16:31:34 +00:00
Bill Currie
6dbdfc0464 yeah, it's an icky global, but it's actually the right way to get at the
model header in the model loader.
2002-01-17 02:10:06 +00:00
Seth Galbraith
778af4276e external tga skin loading, doesn't work for players (teamcolor stuff) 2002-01-16 20:32:39 +00:00
Seth Galbraith
93116bc827 external mip texture loading 2002-01-16 01:02:50 +00:00
Seth Galbraith
9c1969146c cleanup, implemented tga loading for gfx.wad files 2002-01-15 21:05:34 +00:00