Jonathan
d067630bc1
Merge branch 'brushbsp' of https://github.com/ericwa/ericw-tools into brushbsp
2023-03-27 03:23:19 -04:00
Eric Wasylishen
d7db2bdae5
qbsp: debug helper for finding areaportal leaks
2023-03-27 01:20:53 -06:00
Eric Wasylishen
f12cefb2c9
qbsp: if Q2_CONTENTS_SOLID bit is set, always assign invalid area
2023-03-26 19:02:25 -06:00
Jonathan
0bab917dc4
Merge branch 'brushbsp' of https://github.com/ericwa/ericw-tools into brushbsp
2023-03-26 20:24:51 -04:00
Eric Wasylishen
759811b548
qbsp: fix Portal_EntityFlood check
2023-03-26 18:04:06 -06:00
Jonathan
1dcfe58563
Merge branch 'brushbsp' of https://github.com/ericwa/ericw-tools into brushbsp
2023-03-26 18:29:41 -04:00
Jonathan
5daaeee6fb
allow `surflight_minlight_scale` to be specified per brush
2023-03-26 18:29:37 -04:00
Eric Wasylishen
6e064ae3c7
qbsp: restore detail to non-sealing
2023-03-26 16:20:10 -06:00
Eric Wasylishen
3c408f5d30
qbsp: better debug visualization for "missing portal sides" warning
...
writes a .missing_portal_sides.prt file for inspection in TB
2023-03-26 14:09:54 -06:00
Eric Wasylishen
7b7cabaf09
qbsp: don't merge above- and below- water faces in Q1 mode
...
works around caustics effects in ezQuake/nQuake leaking onto above-water faces.
2023-03-13 23:50:32 -06:00
Eric Wasylishen
41a4375376
qbsp: q2: reject DEADMONSTER and MONSTER in input brushes
...
we currently (hackily) use MONSTER as detail_wall internally (this will likely change later though.)
In any case these are invalid in input maps.
2023-03-12 23:39:25 -06:00
Eric Wasylishen
7ed36c9bec
qbsp: reject Q2 maps with mixed visible contents
2023-03-07 22:12:22 -07:00
Jonathan
1091183293
fix infinite loop if a texture is missing in the animation chain
2023-03-03 16:48:25 -05:00
Eric Wasylishen
06f2363902
qbsp: work around 45 degree plane issue in FindPortalSide
2023-03-01 21:09:15 -07:00
Eric Wasylishen
8130843fb3
qbsp: search for wad's relative to cwd
2023-02-26 23:27:38 -07:00
Eric Wasylishen
ac3937300b
qbsp: safer condition in last commit
2023-02-23 19:15:07 -07:00
Eric Wasylishen
ce030f53be
qbsp: fix func_detail_wall deleting merged faces
2023-02-23 19:08:35 -07:00
Eric Wasylishen
1c22f45b47
qbsp: avoid tjunc interaction between func_detail_wall and worldspawn
2023-02-22 23:12:40 -07:00
Eric Wasylishen
42da494707
qbsp: face_t: track front/back contents, instead of just front
2023-02-22 22:54:37 -07:00
Eric Wasylishen
d8b903823a
qbsp: create a tjunc.hh header
...
make some tjunc.cc functions static that weren't
2023-02-22 18:07:49 -07:00
Eric Wasylishen
096f347a12
qbsp: fix func_detail_fence/func_detail_wall with DETAIL set on brushes
2023-02-22 01:16:32 -07:00
Eric Wasylishen
60dea4af4c
qbsp: fix func_detail_wall in q2 mode
2023-02-22 00:57:31 -07:00
Eric Wasylishen
b17633f746
cleanup: set PackConstructorInitializers: Never
2023-02-20 10:23:59 -07:00
Eric Wasylishen
dd6e49c89f
light: support _object_channel_mask on func_group
2023-02-20 00:07:08 -07:00
Eric Wasylishen
eda6155844
cleanup: run ./clang-format-all.sh
...
clang-format version 15.0.7
2023-02-18 22:59:43 -07:00
Eric Wasylishen
7d6ed20dc1
unused includes cleanup
2023-02-18 16:14:11 -07:00
Eric Wasylishen
641fb780ac
light: allow customizing _world_units_per_luxel on func_group etc.
2023-02-17 00:07:43 -07:00
Jonathan
72a0a92d3a
fix area assertion/test failure
2023-02-13 20:41:11 -05:00
Jonathan
dd75cdf3e3
don't bother with area portal flooding if we are leaked
2023-02-13 20:18:09 -05:00
Eric Wasylishen
48fe527955
light: add _lightgrid_hint point entity key for customizing lightgrid bounds
...
use it as a info_null key: "_lightgrid_hint" "1"
2023-02-12 15:03:08 -07:00
Jonathan
c954953735
Merge branch 'brushbsp' of https://github.com/ericwa/ericw-tools into brushbsp
2023-02-12 08:10:59 -05:00
Jonathan
4c7459e673
fix the condition for Q2 phong warning
2023-02-12 08:10:52 -05:00
Eric Wasylishen
85ba6ca205
qbsp: fix "unsigned marksurfaces" warning printing wrongly after auto upgrade
2023-02-11 22:30:49 -07:00
Eric Wasylishen
71a0ce77ac
qbsp: q2: set leaf 0's cluster to -1
...
leaf 0 is the invalid placeholder leaf, but we were giving it
cluster 0 which is valid. instead, give it cluster -1
2023-02-07 23:17:55 -07:00
Jonathan
c2acae8c6b
fix hint brushes
2023-02-06 21:58:53 -05:00
Eric Wasylishen
c649fc2544
qbsp: add a warning message when the .bsp requires "extended limits" (unsigned marksurfaces)
2023-02-04 14:11:01 -07:00
Eric Wasylishen
302d600f4c
qbsp: strip _tb_ keys, convert __TB_empty to skip
2023-01-30 00:28:31 -07:00
Jonathan
36b8b21990
set -wrnormals by default on -q2rtx
...
inherit -phong from worldspawn
2023-01-18 15:49:51 -05:00
Eric Wasylishen
1fb53cbe4d
qbsp: fix area assignment on leaking q2 maps
...
reverts c9243d4fea
2022-12-21 21:18:06 -07:00
Eric Wasylishen
35fe26b7a6
qbsp: fix FindTargetEntity (was breaking hiprotate)
2022-12-19 00:55:20 -07:00
Jonathan
d5e29a1c90
add _nofill key, which causes an entity to not count as an entity for the purposes of occupancy (for lights in walls, etc)
...
add _nonudge key, to disabling nudging of lights "stuck" inside walls
2022-12-15 04:30:22 -05:00
Eric Wasylishen
82aa1e4396
light: make "_light_alpha 0" behave as expected (invisible to light)
2022-12-14 21:46:36 -07:00
Eric Wasylishen
e7b20733d3
qbsp: write .prt files in text mode for TB compatibility
2022-12-09 22:54:56 -07:00
Eric Wasylishen
3e673d2119
qbsp/light: restore TRANS33/TRANS66 faces casting translucent shadows by default
2022-12-06 23:38:43 -07:00
Eric Wasylishen
7ce14a376f
qbsp/light: make liquids not cast shadows by default
...
previously opaque Q2 liquids (e.g. lava, opaque water) were casting shadows / dirt
2022-12-06 17:03:39 -07:00
Jonathan
15b9a78fd1
fix gate being incorrect
...
add surflight grouping
fix minlight on color'd _surface lights
2022-12-05 20:35:44 -05:00
Eric Wasylishen
41de747a9a
qbsp: for "Q2 phong (value set, LIGHT unset) used on a mirrored face." warning, don't set value to 0
...
- setting value to 0 was not a robust way to disable phong
- it could actually have the reverse effect if "value 1" was
being used to change a smoothing group, setting value back to 0
could reintroduce unwanted smoothing
- that hack should be less useful with the phong system improvements
in the previous commits
2022-12-01 01:23:28 -07:00
Eric Wasylishen
f66e4790a4
qbsp/light: add no_phong texinfo flag (currently not used/exposed)
2022-12-01 01:16:17 -07:00
Eric Wasylishen
1065adecc6
qbsp/light: implement _phong_group key, equivalent to Q2 "value" field
2022-12-01 00:25:05 -07:00
Eric Wasylishen
abb92d4b0f
qbsp: fix crash when using -omitdetail and an all-detail bmodel
2022-11-21 01:13:31 -07:00
Eric Wasylishen
04adb17b1b
qbsp: fix -nodetail in q2 mode
2022-11-21 00:10:26 -07:00
Eric Wasylishen
12d82db8b1
qbsp: implement -omitdetail for q2
2022-11-20 23:58:30 -07:00
Eric Wasylishen
efac0c5a31
qbsp: make -noallowupgrade also disallow the extended-limits (int16_t -> uint16_t) subformats
2022-11-20 12:13:06 -07:00
Eric Wasylishen
c9111b2a6c
Merge pull request #337 from TTimo/colorcodes
...
Enable support for ANSI color codes on Windows 10 and newer, without …
2022-11-19 09:10:24 -08:00
Eric Wasylishen
9ab4ea8176
Move SetConsoleMode() call to logging::preinitialize(); helper
...
Don't do ENABLE_VIRTUAL_TERMINAL_INPUT as it breaks arrow key history
navigation in Windows Terminal after running one of the ericw-tools exe's.
2022-11-19 10:05:14 -07:00
Eric Wasylishen
9c3a807391
qbsp: warn and disable q2-style phong if used on a mirrored face
2022-11-17 23:51:00 -07:00
Jonathan
328fa6ade6
Merge branch 'brushbsp' of https://github.com/ericwa/ericw-tools into brushbsp
2022-11-17 13:55:37 -05:00
Jonathan
670347e64e
fix infinite loop if map has uppercase animated textures
2022-11-17 13:55:31 -05:00
ttimo
fb459253fe
Enable support for ANSI color codes on Windows 10 and newer, without needing to enable system wide. Good for CreateProcess CREATE_NEW_CONSOLE situations.
2022-11-15 11:09:19 -06:00
Eric Wasylishen
959fe32e18
portals.cc: add -verbose logging for missing portal sides
2022-11-14 21:49:01 -07:00
Eric Wasylishen
d7acd046c3
light/qbsp: add _surflight_rescale key
2022-11-12 17:07:02 -07:00
Eric Wasylishen
b81b52da5a
qbsp: fix nonsolid bmodels in hul1/2
2022-11-11 15:04:53 -07:00
Eric Wasylishen
93d059058f
testqbsp: fix mirrorinside + bmodels in Q1 mode
2022-11-11 12:33:47 -07:00
Jonathan
8b524cf324
Merge branch 'brushbsp' of https://github.com/ericwa/ericw-tools into brushbsp
2022-11-02 17:59:12 -04:00
Jonathan
b89b71455b
fix condition running in Q2 mode that isn't supported yet
2022-11-02 17:59:07 -04:00
Eric Wasylishen
2bd2515792
all: cleanup unused includes (Clion - detect not directly used)
2022-10-31 21:37:34 -06:00
Eric Wasylishen
0924423c20
light: header -> source move
2022-10-31 21:21:28 -06:00
Eric Wasylishen
35ffc00462
all: add LIGHT_/QBSP_/VIS_ prefixes to epsilons where necessary
2022-10-30 15:08:10 -06:00
Jonathan
5ea786702b
always include NODRAW + LIGHT
2022-10-30 15:29:42 -04:00
Eric Wasylishen
34f32f851c
common, qbsp: more functions moved from header -> source
2022-10-26 23:29:54 -06:00
Eric Wasylishen
ba3befca9b
qbsp: exportobj: re-add bspbrush_t::container version
2022-10-23 19:20:19 -06:00
Eric Wasylishen
9ff0752ad1
testqbsp: clean up clearing of data between tests
2022-10-23 19:20:19 -06:00
Eric Wasylishen
a950d2fcb7
qbsp: add exportobj.hh header
2022-10-23 19:20:19 -06:00
Eric Wasylishen
87ae7d63fa
qbsp: restore a variation on CSGFaces
2022-10-23 19:20:10 -06:00
Eric Wasylishen
501ced4bfe
qbsp: restore func_detail_wall support
2022-10-21 18:33:38 -06:00
Eric Wasylishen
636b376577
squash brushbsp-compilation-speedup branch
...
move function implementations out of headers
2022-10-21 18:00:58 -06:00
Eric Wasylishen
2a9393cc54
bspbrush_t: add contains_point() query
2022-10-05 23:49:34 -06:00
Jonathan
f51ab9b75e
Merge branch 'brushbsp' of https://github.com/ericwa/ericw-tools into brushbsp
2022-09-30 18:30:50 -04:00
Jonathan
09447178f5
error on -onlyents in Q2 mode
2022-09-30 18:30:46 -04:00
Eric Wasylishen
1160352a24
qbsp: make -debugleafvolumes only write out solid leafs
2022-09-28 19:23:57 -06:00
Eric Wasylishen
7a014819f0
qbsp: keep bspbrushes around if -debugbspbrushes is used
2022-09-27 09:55:02 -06:00
Eric Wasylishen
8d5d3233b7
qbsp: call CountLeafs at the end of hull processing
2022-09-19 21:00:36 -06:00
Eric Wasylishen
ed4e4d1327
qbsp: use tree_split_t::PRECISE on second BrushBSP for hulls
2022-09-18 18:05:28 -06:00
Eric Wasylishen
acf334daee
cleanup: rename surfflags_t::is_skip to is_nodraw
...
This is a break to the .json format
2022-09-18 15:47:14 -06:00
Eric Wasylishen
09f0e2a0c5
qbsp: preserve brush side texinfo in collision hulls
...
17k -> 9.8k clipnodes on testmaps\retrojam1_ericw.map
setting the texinfo to 0 was defeating the bsp heuristic, because
texinfo 0 was marked as is_skip, which makes side_t::is_visible()
return false (which makes us not care about splitting those brush sides)
2022-09-17 21:46:02 -06:00
Eric Wasylishen
04df42f8e0
qbsp: CreateSingleHull: remove unnecessary side.visible clearing (now done in CreateBrushWindings)
2022-09-17 21:00:01 -06:00
Eric Wasylishen
cea123f955
qbsp: Brush_LoadEntity: print source brush side stats (visible/invisible)
2022-09-17 20:27:21 -06:00
Eric Wasylishen
8ee39cf874
qbsp: CountLeafs: also measure avg/max bsp height
2022-09-17 19:53:49 -06:00
Eric Wasylishen
9c46699b60
qbsp: experiment with fixing micro-leaks
2022-09-12 02:10:04 -06:00
Eric Wasylishen
b17fc3eab1
qbsp: address missing "faceCopy.tested = false"
2022-09-12 00:56:10 -06:00
Eric Wasylishen
c90c16ee45
qbsp: add -debugleafvolumes
2022-09-12 00:36:33 -06:00
Eric Wasylishen
a926e5c397
qbsp: add -debugbspbrushes
2022-09-12 00:18:32 -06:00
Eric Wasylishen
4567f9b4b9
qbsp: add -debugleak for saving more info about leaks
2022-09-11 23:56:29 -06:00
Eric Wasylishen
ae37a4e667
qbsp: write .leak.prt files in addition to .pts to aid leak debugging
2022-09-11 20:35:51 -06:00
Jonathan
6713fedcbc
allow changing a brushes' lightmap color scale with `lightcolorscale`
2022-09-10 19:04:17 -04: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
b19527c3fd
qbsp: don't use brush sides to texture a portal if they're not coplanar
2022-09-08 21:20:49 -06:00
Jonathan
d4dde8350c
always mark leaked maps' nodes/leaves areas
2022-09-06 14:44:44 -04:00
Jonathan
b77dfbc7f9
Merge branch 'brushbsp' of https://github.com/ericwa/ericw-tools into brushbsp
2022-08-31 12:58:56 -04:00
Jonathan
075481a36f
add -nocolor for TB, etc
...
fix crashes on vis and light for invalid options
fix TB and others not receiving output
2022-08-31 12:58:04 -04:00
Eric Wasylishen
88a88882a9
qbsp: initialize 'visible' in CreateBrushWindings
2022-08-28 23:15:49 -06:00
Eric Wasylishen
3856dffc0a
qbsp: compilation speedup: isolate pareto in map.cc
2022-08-28 18:10:01 -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
7df6310d32
qbsp: init brush sides to visible
...
improves the quality of the first BSP build
2022-08-27 23:36:58 -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
34a7079b64
reverse the portals for leak lines in inside filling
2022-08-27 03:28:57 -04:00
Jonathan
b305ddaed9
port over the visible = true setting for hint sides
2022-08-25 21:45:33 -04:00
Jonathan
f27f16cebf
fix cherry pick error
2022-08-25 15:48:52 -04:00
Jonathan
5fb0d56da7
maxlight
...
# Conflicts:
# include/common/bspfile.hh
2022-08-24 21:50:11 -04:00
Jonathan
1ce5c5a7b1
combine flood + emit areaportals into a single step, since they won't ever be run not together
...
add stats for edges and faces
2022-08-24 12:02:56 -04:00
Jonathan
e14f42caba
emit edges and faces together instead of in two passes
2022-08-22 13:40:47 -04:00
Jonathan
e7ae158a10
split up BrushBSP and CountLeafs stat prints
2022-08-21 21:54:16 -04:00
Jonathan
4eebbd0bdd
re-introduce qbsp3's "don't use clip brush sides as splitters"
2022-08-21 17:36:19 -04:00
Jonathan
fe41b1ae1b
fix format error for Q1 contents
...
re-introduce chop since it may be a key to the puzzle for hullnums
allow caller to do full fragmentation, add option to force it
fix BrushGE causing liquids, etc to be cut up
2022-08-21 16:16:09 -04: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
282c5ec69f
stat printing adjustments
2022-08-21 15:01:45 -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
Jonathan
7fad0019c2
set omit properly
2022-08-20 15:09:47 -04:00
Jonathan
7422776f38
move _omitbrushes to the loading phase; this will greatly improve performance of loading a map with a ton of brushes that has most of them omitted.
2022-08-20 09:53:23 -04:00
Jonathan
bfe56b0663
fix the Q1 bevel code for testing later
2022-08-20 08:19:46 -04:00
Jonathan
39bbd643d5
Merge branch 'brushbsp' of https://github.com/ericwa/ericw-tools into brushbsp
2022-08-20 08:14:43 -04:00
Jonathan
8a5ad5bc4d
simplify Brush_LoadEntity a bit by moving some of the contents setting to mapbrush loading; note that this causes a bit of issue with mirror_inside & clipsametype currently because of Q1 contents code. needs adjusting
2022-08-20 08:14:36 -04:00
Eric Wasylishen
08e3254dae
brushbsp: track tree level for debugging
2022-08-20 00:52:24 -06:00
Eric Wasylishen
6b07e0c5f4
brushbsp: return split planes as side_t* for better debuggability
2022-08-20 00:51:52 -06:00
Jonathan
e020cd6be6
comment out the hintskip face removal; this seems to break later processes. qbsp3 doesn't do this..
2022-08-19 16:09:37 -04:00
Jonathan
84870cf366
since tree_t only exists as a type that only allocates heap memory, we don't need to wrap it in a unique_ptr; this also allows the vectors to keep their memory on the next pass, which may improve performance for huge maps
...
removed tree_t parameter from functions that don't need it
pass reference to tree_t instead of ptr
use an enum instead of std::optional<bool> for the ternary value to store split type, since it's more explicit and obvious now what the three values do
2022-08-19 15:15:53 -04:00
Jonathan
69aad26097
move & document bevel boolean
...
don't report invalid winding more than once
ceil the extents, so we don't get weird values like "world extents calculated to 5082.29327318318"
2022-08-19 13:46:37 -04:00
Jonathan
057ae544c4
use references in places where we know it's non-null
2022-08-19 12:11:35 -04:00
Jonathan
39475e3213
use on_epsilon instead of 0.1, to match Q1
2022-08-19 09:44:11 -04:00
Jonathan
0c4888d5d1
remove leftover debug code
2022-08-19 09:42:11 -04:00
Jonathan
9596855c62
Merge branch 'brushbsp' of https://github.com/ericwa/ericw-tools into brushbsp
2022-08-19 07:15:51 -04:00
Jonathan
a5557bc87d
Revert "remove the Q1 bevel stuff"
...
This reverts commit f5f80479a3 .
# Conflicts:
# qbsp/map.cc
2022-08-19 07:15:39 -04:00
Eric Wasylishen
6eab754ca3
qbsp: reset onnode at the beginning of BrushBSP
2022-08-18 22:26:33 -06:00
Jonathan
f57ecaf599
Q3 didn't need chop, we don't either!
2022-08-18 19:47:34 -04:00
Jonathan
424e3ee110
remove unused portal_t::face, unused
...
rename and re-type a few things to use twosided
2022-08-17 09:10:58 -04:00
Jonathan
9e764d8035
document some stuff
...
remove mapface_t::value and mapface_t::flags; they are duplicated by texinfo
add mapface_t::get_texinfo and face_t::get_texinfo so that you can fetch them easier
2022-08-17 07:30:31 -04:00
Jonathan
a2d6b63533
Merge branch 'brushbsp' of https://github.com/ericwa/ericw-tools into brushbsp
...
# Conflicts:
# qbsp/brush.cc
# qbsp/map.cc
2022-08-17 03:50:52 -04:00
Jonathan
f5f80479a3
remove the Q1 bevel stuff
2022-08-17 03:49:42 -04:00
Eric Wasylishen
fe43928802
fix build (unwanted static on TestExpandBrushes)
2022-08-17 01:18:11 -06:00
Eric Wasylishen
a2a7b987bc
revert last commit, q1 code is still producing better results with q1_rocks.map
2022-08-17 01:17:19 -06:00
Eric Wasylishen
688a033288
qbsp: switch back to qbsp3 brush bevels in q1 mode
...
now that the bug in the previous commit is fixed
2022-08-16 23:15:09 -06:00
Eric Wasylishen
6b1720e095
qbsp: fix bug from qbsp3's AddBrushBevels where edge bevels are wrongly rejected
...
fixes bad result in q1_hull_expansion_lip.map
2022-08-16 23:11:43 -06:00
Jonathan
95c728a5b6
fix legacy bevel bug
...
pushing up changes for Q1 hulls just in case we ever want these back
2022-08-16 13:52:30 -04:00
Jonathan
0c90a33f28
enable Q1-style hull expansion; these expanded brushes seem to look better. hopefully we can figure out a way to backport & optimize this code for mapbrush_t, but for now it's only used in Q1 hull expansions
2022-08-16 05:33:38 -04:00
Eric Wasylishen
f62136e04d
qbsp: wip fixing -expand feature
2022-08-16 01:36:09 -06:00
Eric Wasylishen
83cf63e77f
revert using detail on hull1/2 for now as it's breaking tests
2022-08-15 21:17:17 -06:00
Jonathan
92fdff1222
FreeTreePortals call missing
...
allow decompiling hulls (not hooked up to console yet)
2022-08-15 12:23:09 -04:00
Jonathan
027c45d608
Merge branch 'brushbsp' of https://github.com/ericwa/ericw-tools into brushbsp
2022-08-15 06:13:38 -04: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
20f5d73a3c
always use inside filling for auto
...
allow details in hulls
use std::optional for an optional-esque value
2022-08-15 04:53:36 -04:00