Eric Wasylishen
501ced4bfe
qbsp: restore func_detail_wall support
2022-10-21 18:33:38 -06:00
Eric Wasylishen
c84f5898df
tests: doctest
2022-10-21 18:33:19 -06:00
Eric Wasylishen
636b376577
squash brushbsp-compilation-speedup branch
...
move function implementations out of headers
2022-10-21 18:00:58 -06:00
Jonathan
315ab418d2
fix warning
...
only enable the clock counter errors in debug
2022-10-02 16:20:27 -04:00
Eric Wasylishen
e8aeab3a55
test_qbsp.cc: split out q2 tests to a new file
2022-09-30 00:10:01 -06:00
Eric Wasylishen
d9d4ee99ad
include only needed catch2 headers
2022-09-29 19:49:53 -06:00
Eric Wasylishen
1726f95484
use <fmt/core.h> instead of <fmt/format.h>
...
Should lighten compile times.
The only loss here is we'll no longer inherit e.g. "float" format specifiers for qvec3f.
2022-09-29 19:49:48 -06:00
Eric Wasylishen
8bfd11ba13
testqbsp: add a obj2map terrain test case
...
some terrain I created in Blender
2022-09-26 22:40:09 -06:00
Eric Wasylishen
4369cd6313
tests: suppress colors when running tests
2022-09-22 00:11:37 -06:00
Eric Wasylishen
addf621074
tests: simple_worldspawn_detail passing now
2022-09-17 21:49:22 -06:00
Eric Wasylishen
c2e455e5b0
testqbsp: fix incorrect test expectation
2022-09-12 22:18:27 -06:00
Eric Wasylishen
68e2f97fbf
qbsp: sync FindAreas to Quake-2-Tools version
...
fixes area portals in cases when area has no point entities in it
2022-09-10 15:49:17 -06:00
Eric Wasylishen
a8a8966e28
test_qbsp: add failing test for 0.125 unit wide faces (currently not generated)
2022-09-08 23:51:51 -06:00
Eric Wasylishen
c8c526ab57
qbsp: fix mist-clip intersection chopping up the faces
...
note it makes the simple_worldspawn_detail clipnodes count
test fail. Clipnode counts are way too high in general so this isn't
a huge issue yet.
2022-08-28 14:13:14 -06:00
Eric Wasylishen
1ab6cc1e65
qbsp: fix iterator debug assertion in ChopBrushes
...
"cannot decrement begin list iterator"
2022-08-27 14:54:36 -06:00
Jonathan
2d8827e031
Revert "Q3 didn't need chop, we don't either!"
...
This reverts commit f57ecaf599 .
# Conflicts:
# include/qbsp/brushbsp.hh
2022-08-21 15:04:26 -04:00
Jonathan
1aaa513368
collapse certain map face issues into loggable warning stats to lessen maps spamming warnings on things that legacy compilers allow
...
adjust the wording of certain warning messages
don't display face crunching on bmodels/hulls by default
2022-08-20 20:13:27 -04:00
Eric Wasylishen
f3a2d99544
testqbsp: adjust q1_rocks test case
...
avoid potential ambiguity for BrushBSP over whether sky should split wall brushes
2022-08-20 00:22:21 -06:00
Eric Wasylishen
251a6dc7ca
testmaps: add a more minimal q1_rocks that's just a cube
2022-08-19 22:55:27 -06:00
Eric Wasylishen
648ffab77b
testqbsp: improve q1_rocks test
2022-08-19 22:10:16 -06:00
Eric Wasylishen
10051ceff5
testmaps: remove some accidental brushes in q1_hull_expansion_lip.map
...
testqbsp: more detailed q1_hull_expansion_lip tests for clipnodes
testqbsp: decompile hull1 of testmaps by default
testqbsp: corrections to the q1_hull_expansion_lip.map expectation
adjust gitignore
2022-08-19 20:49:59 -06:00
Jonathan
057ae544c4
use references in places where we know it's non-null
2022-08-19 12:11:35 -04:00
Jonathan
f57ecaf599
Q3 didn't need chop, we don't either!
2022-08-18 19:47:34 -04:00
Eric Wasylishen
4801e87b1c
testqbsp: don't allow q1_hull_expansion_lip to fail
2022-08-16 23:05:17 -06:00
Eric Wasylishen
cad5b3ccf3
testqbsp: add failing hull expansion test
2022-08-16 00:43:40 -06:00
Eric Wasylishen
2cc97c2519
testqbsp: start q1_rocks test case
2022-08-15 22:23:52 -06:00
Eric Wasylishen
41f765376f
testqbsp: adjust test expectations now that we're inside filling hull1/2
2022-08-15 21:16:53 -06:00
Jonathan
f7b8f85ece
use an optional<uint8_t> to store hull number, which gets rid of special -1 collision hull number.
...
fixed no-hull always chopping even with chop off
2022-08-15 06:13:30 -04:00
Jonathan
97665d15a9
fix slight mistype in Brush_LoadEntity
...
make ~settings_container virtual so light_t can be freed properly
reset visible to false on all brush sides
2022-08-15 03:37:38 -04:00
Eric Wasylishen
0642ad16d3
testqbsp: start a hull1 content type test
2022-08-14 18:14:56 -06:00
Eric Wasylishen
35859a6ea4
tests: add q1_wad_mapname test
2022-08-14 13:45:31 -06:00
Eric Wasylishen
995ac04673
tests: add a few clipnode count tests
...
adjust qbsp_simple_worldspawn_detail.map so it seals in hull1/2
2022-08-13 20:11:22 -06:00
Jonathan
6d66e6d5cf
group together # of clipped faces, to reduce console spam of Q1 maps
...
always allow midplane split for hulls
2022-08-12 21:38:41 -04:00
Eric Wasylishen
06a116670b
winding_t: make non-copyable
2022-08-12 02:06:23 -06:00
Eric Wasylishen
f3b9de57c6
build: add tbbmalloc
2022-08-09 00:19:39 -06:00
Jonathan
1c6b2e5a95
fix duplicate plane test
2022-08-08 21:27:42 -04:00
Jonathan
e5602358c1
Merge branch 'brushbsp-plane3-bevel' of https://github.com/ericwa/ericw-tools into brushbsp-plane3-bevel
2022-08-08 15:50:31 -04:00
Jonathan
b3fbf8841d
allow update_bounds to tell the caller that a brush may have been destroyed
2022-08-08 15:50:23 -04:00
Eric Wasylishen
9cb0d9b52c
testqbsp: add test for the previously missing face in base1
2022-08-08 00:16:09 -06:00
Jonathan
2abdeb2616
remove Face_Plane since we can directly access the real plane now
...
speed up CreateBrushWindings slightly since we know where the inverted plane is stored
2022-08-08 01:06:50 -04:00
Jonathan
4ec30e02a2
remove "brushes" from mapentity_t - it is now local to the ProcessEntity process
...
"node_t::original_brushes" is now only used during construction and cleared on Prune; original_mapbrushes is used to track the map brushes on nodes post-construction
calculate and cache contents on mapbrush_t
2022-08-06 19:28:17 -04:00
Jonathan
335db1c0e4
move map_source_location to parser as parser_source_location since the locations actually come from there rather than from the map; now the parser keeps track of the location, so it's a bit easier to follow
2022-08-05 23:17:15 -04:00
Jonathan
33a23a99c2
Revert "tests: update aabb_contains to account for new behaviour"
...
This reverts commit ef613a69a9 .
2022-08-05 07:01:20 -04:00
Eric Wasylishen
84cbd48777
test_qbsp: use "-tjunc rotate" on a face count sensitive test
2022-08-04 21:38:12 -06:00
Eric Wasylishen
ef613a69a9
tests: update aabb_contains to account for new behaviour
2022-08-04 21:34:11 -06:00
Jonathan
627428756c
track a shared pointer for `map_source_location` instead of memory pointer, so that we can allocate it as we go
...
use it for brushes and faces
2022-08-04 15:37:37 -04:00
Jonathan
ec62a0e8d0
move in the rest of the missing code back into LoadBrush
...
fix bug with c_brushesremoved brushes
move & CreateBrushWindings use where required
store the source face we made a bspbrush_t side from
fix test issue
2022-08-03 12:35:47 -04:00
Jonathan
58d1e5230e
remove hullbrush_t; just directly work via the bspbrush_t since we have the bevels pre-calculated in mapbrush_t
...
track the mapbrush we were created from in bspbrush_t; we use this later for outputting the collision brush for q2bsp. bevels are busted though..
2022-08-03 04:47:50 -04:00
Jonathan
24168c8e40
clang pass
2022-08-02 21:57:33 -04:00
Jonathan
5f35575c02
remove map.faces and map.brushes; now, brushes are stored inline in mapentity_t, and faces are stored inline in mapbrush_t
...
calculate brush bounds (and winding) and add bevels after all of the rest of the map has loaded, so that it has proper world extents
calculate world extents right after the map is loaded
2022-08-02 20:59:08 -04:00
Jonathan
1ad0eb530d
going back to using planenums, but going for the qbsp3-esque system
2022-08-02 14:17:59 -04:00
Jonathan
93655913c0
Merge branch 'brushbsp' of https://github.com/ericwa/ericw-tools into brushbsp
...
# Conflicts:
# include/qbsp/qbsp.hh
2022-08-02 06:24:46 -04:00
Jonathan
53adb9fed5
split winding_base_t into two types, so that we can switch out the backing storage
...
default winding_t for the main polylib to use heap-based, exact-memory-usage-only, winding
2022-08-02 06:09:20 -04:00
Eric Wasylishen
e05a2bdf75
qbsp: "-add additional.map" feature
2022-08-01 19:13:10 -06:00
Eric Wasylishen
f665cd5cb6
testqbsp: rename our copy of base1.map to base1-test.map
...
for easier loading in game in Q2
2022-07-31 21:29:25 -06:00
Jonathan
360daea172
fix test failure from map parsing
2022-07-29 22:41:57 -04:00
Jonathan
d9a9046e46
fix some foot-guns with qbsp_plane_t - type is auto-set now
2022-07-28 05:51:55 -04:00
Eric Wasylishen
a2451a41fb
qbsp: rewrite of q1 contents representation in bspfile.cc
...
use q2-like bitflags so we can represent mixes like (water | mist), which we need within the compiler
2022-07-27 02:31:49 -06:00
Eric Wasylishen
876646eeeb
testqbsp: use "-tjunc rotate" on tests which are testing for a strict number of faces output
2022-07-22 22:40:24 -06:00
Jonathan
da9546e260
change settings semantics to be simpler and more clear:
...
- no more "isLocked" - use getSource directly (locked is a confusing name)
- no more split parse/setValue functions. there's only one entry point each now, and all they do is pass along the source passed to it from its parser.
- no separate setters, use setValue(value, source)
- add a "game target" source, which is low priority and indicates to the user that the value would have been default but was changed to a better value for the game target
2022-07-14 09:03:59 -04:00
Eric Wasylishen
7f955a5247
testmaps: add q1_tjunc_angled_face
2022-07-13 00:59:46 -06:00
Eric Wasylishen
a604c448c1
testqbsp: relax detail_illusionary_intersecting to pass with new tjunc code
2022-07-13 00:22:36 -06:00
Eric Wasylishen
e2fe6f8963
testqbsp: turn on the q1 maps test on release builds
2022-07-12 23:36:55 -06:00
Eric Wasylishen
f1f558b069
testqbsp: add detail_illusionary + water test
2022-07-12 00:07:39 -06:00
Eric Wasylishen
da7e36390f
testqbsp: start some contentflags tests
2022-07-12 00:02:05 -06:00
Eric Wasylishen
f86a5343fb
qbsp: rename options -> qbsp_options
2022-07-10 17:30:00 -06:00
Eric Wasylishen
1c59cc3a44
tests: add INCLUDE_DIRECTORIES(${EMBREE_INCLUDE_DIRS})
2022-07-10 17:01:25 -06:00
Eric Wasylishen
050886f32c
tests: unify tests under one target
...
to ease sharing code. vis/light tests are going to need the testqbsp infrastructure.
2022-07-10 16:36:15 -06:00