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
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
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
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
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
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
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
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
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
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
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
ecaa002774
fix items in walls in hipnotic
2007-05-14 11:16:41 +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
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
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
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