Bill Currie
ff693a956a
Avoid missed portals in trace_to_leaf().
2011-12-06 22:09:40 +09:00
Bill Currie
8c840a7003
Sanitize trace_hits_plane().
...
While unit normals aren't needed, they were too big for sane math. Now
epsilon can be used for the distance tests. One of the two new tests passes
now :).
2011-12-06 22:06:25 +09:00
Bill Currie
2b65f81b72
Use a saner "infinity".
...
8e6 is just too big for reasonable floating point.
This fixes the bogus portals.
2011-12-06 20:50:09 +09:00
Bill Currie
632817fed5
Fail properly when the portals are bogus.
2011-12-06 20:48:31 +09:00
Bill Currie
f496f4d260
Whee, more tests that break things :)
2011-12-06 20:47:57 +09:00
Bill Currie
8fe703d747
Trace to adjoining leafs when necessary.
...
When the trace stradles a plane in the current leaf, check the other side
of the portal, too, as it is possible that leaf will restrict the movement
of the trace.
All current tests pass! However, I can think of some situations (and I
already have a solution) where things will fail, but that's next.
2011-12-06 17:27:05 +09:00
Bill Currie
4c17ca9583
Break out trace_hits_portal() from trace_enters_leaf().
2011-12-06 08:46:04 +09:00
Bill Currie
9a9079a2b3
Correct the start-solid in a corner test.
...
It turns out that the box trace CAN get out of the solid from that location
(though a similar point trace can not). This is because of my decision to
allow non-points to touch a plane from either side without crossing the
plane, whereas a point touching a plane is always considered to be on the
front side of the plane as there is no further information to disambiguate
on which side of the plane the point is.
2011-12-05 22:11:58 +09:00
Bill Currie
4419d4c4ad
Move the trace into the leaf before testing the contents.
...
The trace is moved as far into the leaf as possible without leaving the
other side of the leaf. This ensures that trace_contents is started from a
good location. There is currently a problem with traces that stradle a
plane getting, but this has cleared up all the current contents related
tests.
2011-12-05 22:11:58 +09:00
Bill Currie
c588d28b96
Clear contents flags before calling trace_contents.
2011-12-05 22:11:58 +09:00
Bill Currie
8307d9f233
Rename check_in_leaf to trace_enters_leaf.
2011-12-05 22:11:58 +09:00
Bill Currie
3bd029d599
Make the contents flags clear.
...
I got tired of not being able to remember which flag was which in the
output.
2011-12-05 22:11:47 +09:00
Bill Currie
8e512a087c
More failing contents tests.
...
However, I have a plan :)
2011-12-05 09:03:04 +09:00
Bill Currie
b4a497baab
Correctly restore the saved start point.
...
This fixes the point test failures.
2011-12-04 21:12:12 +09:00
Bill Currie
7da6df9dfb
Use the "real" contents of the trace's location when visiting a leaf.
...
When visiting a leaf in box mode, use trace_contents() to get the highest
priority contents of any leafs touched by the box in the current location.
I'm now down to one failing test case, and it's an "allsolid" issue that
might be an incorrect assumption in my test case.
2011-12-04 19:14:35 +09:00
Bill Currie
053d801e92
Break out the leaf visit code into its own funciton.
2011-12-04 18:52:17 +09:00
Bill Currie
4e76aa3025
Don't split on a plane parallel to the motion.
...
This seems to improve the start/all solid cases a little, and it should
speed things up a little by avoiding unnecessary polygon tests.
2011-12-04 12:46:22 +09:00
Bill Currie
ed8e09608a
Fix the negative fractions coming from edge_portal_dist().
...
I have a better fix in the works, but I wanted edge_portal_dist() to be
correct.
2011-12-04 12:11:27 +09:00
Bill Currie
e5903a60ff
Put the mistaken test case back in.
2011-12-04 11:00:38 +09:00
Bill Currie
eb5d2720e4
Avoid a segfault when there's no split plane.
2011-12-04 10:55:46 +09:00
Bill Currie
cdfc922bce
Fix a silly test case error.
2011-12-04 10:47:52 +09:00
Bill Currie
487a6b20ab
Test collisions with a ridge smaller than the box.
...
Whee, found a failing test case :)
2011-12-04 09:02:12 +09:00
Bill Currie
55eb88b52c
Create some tests for MOD_HullContents.
2011-12-03 22:18:43 +09:00
Bill Currie
581972c905
More file splitting for code reuse.
2011-12-03 21:13:01 +09:00
Bill Currie
dadfb78992
Split out the hull data so it can be used in other tests.
2011-12-03 20:23:42 +09:00
Bill Currie
9ad298a716
Check whether the portal and box intersect.
...
Now on to creating tests for MOD_HullContents :)
2011-12-03 19:59:12 +09:00
Bill Currie
d9a641c600
Avoid a segfault when the hull hasn't been portalized.
...
Serves me right for forgetting to test the main engine :P
2011-12-03 09:06:57 +09:00
Bill Currie
27642a080a
Avoid infinite recursion.
2011-12-01 12:57:06 +09:00
Bill Currie
f9d56f2941
Add MOD_HullContents().
...
If trace is null or point type, or the hull doesn't have portals, or the
first node is a leaf, MOD_HullContents operates in point mode (exactly the
same way as SV_HullPointContents()). However, in box mode, all leafs
touched by the trace are checked for their contents. The contents field of
trace (a bit field) will indicate the contents type of all touched leafs.
The returned contents value indicates the most important contents:
solid > lava > slime > water > empty
The one's complement value of the contents type is the bit number of the
contents bit field. I'm not sure how useful this will be as getting the
amount of overlap is currently not supported.
2011-12-01 12:26:33 +09:00
Bill Currie
7ee31dd475
Allow the trace start to be in multiple leafs.
...
This fixes a couple of in-solid tests, but something better is needed.
2011-11-28 20:56:21 +09:00
Bill Currie
13d37f4838
Add a bunch of in-solid tests.
...
Tests where the box is only partially in a solid tend to fail (particularly
when the solid is on the back side of the split plane).
2011-11-28 20:56:21 +09:00
Bill Currie
50b08c98fa
Add some snug-fit tests and fix the uncovered bugs.
...
The tests involve the box fitting into a hole with zero slop (this would be
impossible with point clipping).
2011-11-28 20:56:21 +09:00
Bill Currie
985667ecba
Fix plane touching box backsideness.
...
Because a box has size, even when touching a plane, the side on which the
box is can be determined (unlike a point).
2011-11-28 20:56:21 +09:00
Bill Currie
869cd19260
Box traces can now graze a corner.
2011-11-28 20:56:21 +09:00
Bill Currie
45d55d7e9a
Test the simple wedge.
2011-11-28 20:56:21 +09:00
Bill Currie
2c9b07b257
Scale the box edge vectors.
...
Now they represent the lengths of the edges as expected by the edge/polygon
code.
2011-11-28 20:56:20 +09:00
Bill Currie
60dbc0e342
Fix the last few bugs breaking the distance code.
...
The code itself seems to work now. There are still some problems: the box
faces are using unit vectors for the edges, or I should go back to unit
vectors for the portal edges; starting in a solid corner won't always work;
etc. However, that's just mopping up: the main algorithm seems to be
working.
2011-11-28 20:56:20 +09:00
Bill Currie
996859c367
Correct the projection code.
...
That needed to be the intersection of two coplanar lines.
2011-11-28 20:56:20 +09:00
Bill Currie
ab2ec644d6
Clip the portals when running the test cases.
...
When the portals are too big, floats break down and break the tests. This
might not be much of an issue in real maps, but my tests use "infinite"
planes.
2011-11-28 20:56:20 +09:00
Bill Currie
2abff68089
Fix some more silly bugs.
...
The target test now works, but some others have broken due to getting
negative fractions.
2011-11-28 20:56:20 +09:00
Bill Currie
a1da8ecdd0
Fix some silly errors that broke most of the box tests.
...
Uninitialized variables and crossed signs. Oops :/
2011-11-28 20:56:20 +09:00
Bill Currie
8fc99566ab
Add code to clip the motion of the box to the leaf's portals.
...
Unfortunately, something is broken (all box tests fail due to 0 fraction).
2011-11-28 20:56:20 +09:00
Bill Currie
5ee552ea5b
Don't normalize the portal edge vectors.
...
This simplifies the collision handling code.
2011-11-28 20:56:20 +09:00
Bill Currie
174f381125
Add some more tests for the ramp.
...
These tests pass, but show the basic polygon testing working (just not the
collision handling and thus fraction determination).
2011-11-28 20:56:20 +09:00
Bill Currie
750b5ba0ed
Be a little more lenient with float comparisons.
...
Unfortunately, Pythagorus and binary don't play well together, so rounding
errors are inevetible when testing with a slope. However, 1e-6 seems to be
a good epsilon (printf's %g hides it nicely :).
2011-11-28 20:56:20 +09:00
Bill Currie
73b93ffd74
Clean up the in_leaf test line.
2011-11-28 20:54:35 +09:00
Bill Currie
e3d8394b7a
Use the split_plane for the in-leaf test.
...
This seems to work better (all previously working tests pass again), but
the target test is still broken.
2011-11-28 20:54:35 +09:00
Bill Currie
7b59eaf0cd
Use the correct vector for the plane distance.
...
Oops :)
2011-11-28 20:54:35 +09:00
Bill Currie
cde0bbb807
For now, don't use box clipping for point traces.
...
Until I figure out how I want to handle zero sized boxes, don't test them.
2011-11-28 20:54:35 +09:00
Bill Currie
fd5aee1d5e
Use the portals to check leaf validity.
...
If the trace hits a portal on the plane that brought us to the leaf, then
we actually are in the leaf (otherwise, we shouldn't be here and thus
should ignore the leaf). At least, that's my thinking.
Many point tests fail (but they're really using box clipping with a zero
sized box) and two box tests fail.
2011-11-28 20:54:35 +09:00
Bill Currie
297275e3de
Create edge information for the portals.
2011-11-28 20:54:35 +09:00
Bill Currie
662c04dfdc
Add a function to obtain the unit vectors of a winding's edges.
2011-11-28 20:54:35 +09:00
Bill Currie
e41da2f579
Store the start fraction and position in the right stack slot.
...
Oops. Yay, valgrind.
2011-11-28 20:54:35 +09:00
Bill Currie
d61cb25a44
Add code to rebuild the bsp brushes.
...
Names and locations of declarations are still up in the air, but things
seem to be working assuming my test code is correct.
2011-11-28 20:54:35 +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
2f23cfa4d0
Add a new (failing) test case.
...
This one demonstrates the need for more information in the bsp tree
(surface polygons). When the box collides with a corner where one side is
flat and the other angled, but there's a partition plane cutting the two,
the box can instead collide with the angled side before it hits the corner.
2011-11-28 20:54:34 +09:00
Bill Currie
7a1faee460
Bail out when the trace advances past the nearest collision.
2011-11-28 20:54:34 +09:00
Bill Currie
a943cdf2c4
Handle dual collisions.
...
When the trace collides with something on both sides of a plane, the nearer
collision is required. The code now correctly checks both sides and keeps
the nearer collision.
2011-11-28 20:54:34 +09:00
Bill Currie
0cf5dec5bb
Fix the covered step tests.
...
However, there is still a problem with moves where the box is always cut
by the plane: both sides need to be tested (done), but when the first side
checked allows longer motion than the second, but still collides, only the
first side is checked. The shorter motion is required.
2011-11-28 20:54:34 +09:00
Bill Currie
8cc320b7ef
Move the start point to the near side of the crossed plane.
...
I'm not sure the end point needs to be moved at all, but I'll leave it
alone for now. I have a couple of failing test cases that seem to be caused
by not handling moves where the box is always cut by the plane.
2011-11-28 20:54:34 +09:00
Bill Currie
fa6390a46a
Correct the sign for the shift in frac.
...
However, this is not entirely correct as the new start point when testing
the other side of the plane also needs to be calculated.
2011-11-28 20:54:34 +09:00
Bill Currie
b82d9f5894
Another test, another bug.
...
Fix an incorrect test using offset (forgot to negate).
2011-11-28 20:54:34 +09:00
Bill Currie
9984a2e87a
Fix some missing usages of offset.
...
This fixes my one failing box clip test. Now I need to find more broken
cases. At least now, they should be real tests.
2011-11-28 20:54:33 +09:00
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
Bill Currie
6637f3fba5
more FIXME and whitespace cleanups
2002-01-12 04:46:15 +00:00
Seth Galbraith
3b6c2c8d0d
pretty 32 bit color sprite tga loading - e.g progs/s_light.spr_0.tga
2002-01-11 04:20:41 +00:00
Bill Currie
72d6f34dc8
first step to using a saner internal represnetation for the high precietion
...
models.
2002-01-07 06:32:46 +00:00
Seth Galbraith
42456845f0
high precision software mdl rendering
2002-01-05 03:21:02 +00:00
Seth Galbraith
6ec47e6be6
slaying hardcoded mdl vertex and triangle limit
2002-01-04 07:40:00 +00:00
Bill Currie
013f503738
start getting const-correct on vec3_t params
2002-01-03 05:29:38 +00:00
Seth Galbraith
d570f0905f
high precision model loading
2001-12-30 02:30:26 +00:00
Bill Currie
bd0ac4a38a
merge Mod_LoadSpriteFrame from gl and sw back into the common sprite loader
...
pulling the gl specific code (the loading of the texture into GL) into
a separate function (Mod_SpriteLoadTexture), which is just a stub in sw
2001-11-22 05:31:44 +00:00
Bill Currie
0be2a31f2e
lots of code cleanup. Merge Mod_LoadAllSkins, merge the sw32 model loading
...
code into the sw model loading code, remove all refs to r_pixbytes from the
sw renderer (it was never anything but 1), kill libQFmodels_sw32, remove
all the 16 bit code from the 8 bit sw renderer.
2001-11-21 19:13:53 +00:00
Bill Currie
7d14013041
fix many, many bugs in the alias skin loading, transforming and rendering
...
code. This fixes blather's `melted models' (sw), the nq alt player model
skins (gl), the arbitrary limits on skins and skin groups in gl, and the
incorrect timing of group skins (animated) in gl.
2001-11-21 08:14:05 +00:00
Bill Currie
ec75b71711
don't bother with fullbright skins for models that are allways fullbright and
...
clean up a misplaced function prototype
2001-11-20 08:45:26 +00:00
Bill Currie
5dab7ccaf7
precalculate smoe model specific info (wether the whole model is fullbright,
...
if it should have shadows, whether it should be scaled/translated (gl eyes),
and the minimum lighting (player)). give a 1.9% speedup in null renderer.
2001-11-20 08:02:35 +00:00
Bill Currie
d168a3daee
this should remove the requirement for gmake on bsd systems
2001-11-12 16:23:41 +00:00
Bill Currie
85c9e0ab1e
more externs cleaned up
2001-10-29 17:46:03 +00:00
Bill Currie
3ce8029f74
fix a silly goof with the models
2001-10-28 05:43:53 +00:00
Bill Currie
78a3e398d5
* taniwha gets medieval on extern
2001-10-28 04:23:37 +00:00
Adam Olsen
3bba5398ba
- audit malloc usage. now everything checks the return value :)
2001-10-24 22:50:06 +00:00
Bill Currie
b3914eeaaa
elimination of bare printf (with some exceptions) from libs: Sys_Printf is
...
used instead
2001-10-18 16:42:14 +00:00
Bill Currie
a1d2cf3532
duplicate file name cleanup and make dist works
2001-10-03 17:50:36 +00:00
Jeff Teunissen
873521a68d
Makefile cleanup continues. Models.
2001-09-28 09:49:09 +00:00
Bill Currie
b1f4a778f9
the rcsid commit from hell }:>
2001-09-28 06:26:31 +00:00
Chris Ison
0efd28abcc
trying to get bootstrap to work in cygwin
2001-09-25 23:04:13 +00:00
Bill Currie
49a85718f8
total nukage of Con_*Printf calls from libs (except for video). Sys_*Printf
...
(Sys_DPrintf is new) is now used exclusively for all lib printing. Con_Init
sets the sys printf recirection to Con_Print (which has been revamped
appropriatly) and the server sets it to SV_Print (which was SV_Printf and
the new SV_Printf calls /it/). This should fix the rcon print redirection
issues.
2001-09-21 04:22:46 +00:00
Bill Currie
74e9f89e8c
forward port the client info string filtering from 0.3 and remove info.h from
...
a couple of c files that no longer need it.
2001-09-11 03:10:29 +00:00
Bill Currie
ea614fc2c6
turns out the sprite models are /not/ relocatable, so back out that change
...
in favor of cleaning up the accessors
2001-08-31 17:33:25 +00:00
Adam Olsen
384dfb7b66
- partial work for putting sprites in the cache.
...
doesn't currently build.
2001-08-31 15:32:11 +00:00
Adam Olsen
f1a016c8a5
- Refine the Cache_Get callback, to use a void * instead of a char *
...
- Switch alias models over to Cache_Get/Cache_Release
2001-08-31 12:22:45 +00:00
Adam Olsen
6cab8cf4e0
- change Cache_Get calls to Cache_TryGet (which I just added), so they
...
can tollerate failure.
- minor error message tweak (an emptry string is not NULL!)
2001-08-31 03:48:26 +00:00
Ragnvald Maartmann-Moe IV
20544c6c67
Remove some obsolete comments.
2001-08-25 03:06:46 +00:00
Ragnvald Maartmann-Moe IV
c6266aba36
sw32. Flee in terror. This'll break compilation for everything until -sdl32 compiles. sw32 wont work for a while either, so don't get overly excited yet.
2001-08-25 02:47:11 +00:00
Bill Currie
8059265181
pr_strings.c:
...
fix some off-by-one bugs
gl_mesh.c:
make the messing... message developer mode
2001-08-15 06:01:38 +00:00
Bill Currie
9f2418d873
new cvar: gl_mesh_cache. controls minimum triangle count in a model before
...
the model is cached or cache checks are done for that model. 0 disables
caching entrirely.
2001-08-14 20:02:54 +00:00
Bill Currie
cd522a6f97
should now handle any size of model. also modify the mesh file format slightly
...
(version and commands+verts sum for checking) and change the mesh extention to
.qfms
2001-08-08 08:52:55 +00:00
Bill Currie
dcc6a76313
make SURF_LIGHTBOTHSIDES work and fix a bug in Mod_PointInLeaf that was
...
preventing grenades from lighting up surfaces when using the vis lighting
2001-08-05 05:59:15 +00:00
Bill Currie
f9e85cdf8a
split up mleaf_t's minmaxs into two arrays
2001-08-03 23:54:09 +00:00
Bill Currie
6cb2cb5bdc
start making the rotated bounding box (really dynamic clipping huls) more
...
generice, and also more in line with the rest of quake's clipping system
(ie, support the entity size selected hulls). I'm not /entirly happy with
what's here, but it's a start, and the force fields in customtf work /much/
better :)
2001-07-30 04:33:59 +00:00