Jonathan
1eaf2170f8
Merge branch 'brushbsp' of https://github.com/ericwa/ericw-tools into brushbsp
...
# Conflicts:
# light/trace_embree.cc
2023-12-07 14:13:36 -05:00
Jonathan
9ed4f3d042
bunch of double -> float
...
fix Q2 animated textures
2023-12-07 14:11:46 -05:00
Eric Wasylishen
ad9fd7fc59
common: structured bspxbrushes reading/writing
2023-11-25 17:28:26 -07:00
Eric Wasylishen
d5ffbd9d33
qbsp: remove unused type
2023-11-18 23:24:03 -07:00
Jonathan
93da0c9905
add the ability to specify a chop order; this is to help with "nested" func_groups and layers, since TB makes them an implicit object at random spots in the BSP. Now you can be sure your objects will chop in the right order.
2023-06-26 00:50:08 -04:00
Eric Wasylishen
731bafd9fe
qbsp: fix edge reuse causing software renderer artifacts with liquids
...
fixes q1_liquid_software.map in tyrquake
thanks to Mankrip for reporting this
2023-05-28 16:28:33 -06:00
Jonathan
0ab3aae111
Merge branch 'brushbsp' of https://github.com/ericwa/ericw-tools into brushbsp
...
# Conflicts:
# common/bspfile.cc
2023-05-08 17:47:12 -04:00
Jonathan
1548f25daf
allow individual brush chop control
...
allow passing _surflight_targetname to set targetnames for switchable lights on bmodels
2023-05-08 17:44:32 -04:00
Eric Wasylishen
18a7df1a1b
style: reformat
2023-05-07 21:44:29 -06:00
Jonathan
bd047020d2
fix antiportals up a bit
2023-04-29 13:40:34 -04:00
Jonathan
39a54abfc6
add support for a region brush (code needs to be cleaned up a bit though)
...
allow _surflight_style on brush models
2023-04-28 13:31:50 -04:00
Eric Wasylishen
8830a949e6
qbsp: only print "doesn't touch two areas" once per entity
...
log source location as well
2023-03-27 20:15:19 -06:00
Eric Wasylishen
4569ab1b33
qbsp: delete leftover areaportal leak files on startup
2023-03-27 20:05:33 -06: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
eda6155844
cleanup: run ./clang-format-all.sh
...
clang-format version 15.0.7
2023-02-18 22:59:43 -07:00
Eric Wasylishen
34f32f851c
common, qbsp: more functions moved from header -> source
2022-10-26 23:29:54 -06:00
Eric Wasylishen
a950d2fcb7
qbsp: add exportobj.hh header
2022-10-23 19:20:19 -06:00
Eric Wasylishen
4567f9b4b9
qbsp: add -debugleak for saving more info about leaks
2022-09-11 23:56:29 -06: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
7df6310d32
qbsp: init brush sides to visible
...
improves the quality of the first BSP build
2022-08-27 23:36:58 -06:00
Jonathan
e14f42caba
emit edges and faces together instead of in two passes
2022-08-22 13:40:47 -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
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
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
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
Eric Wasylishen
f62136e04d
qbsp: wip fixing -expand feature
2022-08-16 01:36:09 -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
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
Jonathan
781a772d8a
move immediately instead of splicing after construction (probably compiles to the same code but whatever)
...
don't add all of the `result_portals_onnode` one at a time; just directly copy-elision the result.
2022-08-14 07:33:41 -04: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
Jonathan
097b564cc6
remove bspbrush_t::original; it is no longer required since mapbrush_t is what the output is being written to
...
use some explicit types (bspbrush_t::ptr for pointer, bspbrush_t::container for container of pointers, and bspbrush_t::make_ptr to create one) so that we can swap it out with different pointers easier later
swap out bspbrush_t::ptr from unique_ptr to shared_ptr; it's not important yet, but it does not increase compilation time and will allow us to pass things to functions like SplitBrush without destroying the original as long as we still have a reference to it somewhere (important for ChopBrushes)
add get_positive_plane to mapface_t
instead of creating a whole copy of the bspbrush_t list, BrushBSP now just creates copies of the shared_ptrs which are then filtered down the tree; the originals are never modified by SplitBrushList and friends, only split into new brushes, so this is safe from what I can tell
portals now directly reference the mapface_ts
original_brushes now directly reference the mapbrush_ts
early exit in `BrushBSP` if brush list is empty (moved to top)
2022-08-10 16:02:16 -04:00
Jonathan
bca6bda7c3
move `visible` to mapface_t since we only need to store one boolean for it
2022-08-10 01:29:34 -04:00
Jonathan
74dcb1454e
remove mapface_t::visible, it's unused
2022-08-10 00:55:10 -04:00
Jonathan
834838ed72
move lmshift to mapface_t
...
store original mapface_t that a face_t was generated from
2022-08-10 00:53:58 -04:00
Jonathan
70f015a36c
move func_areaportal and lmshift from bspbrush_t to mapbrush_t
2022-08-10 00:48:55 -04:00
Jonathan
426668701e
clip_back/clip_front to match ChopWindingInPlace
...
simplify constructors for winding heap
use std::vector again for mapentity_t since it's being copied because of the std::list
2022-08-08 21:08:27 -04:00
Jonathan
f490878e97
remove old plane lock stuff
...
use spatial hash for planes
2022-08-08 00:58:56 -04:00
Jonathan
6787e60e14
Merge branch 'brushbsp-plane3-bevel' of https://github.com/ericwa/ericw-tools into brushbsp-plane3-bevel
...
# Conflicts:
# include/qbsp/map.hh
2022-08-08 00:40:09 -04:00
Jonathan
f5ef0f90f4
spatial hash using pareto for vertex positions
2022-08-08 00:39:53 -04:00
Eric Wasylishen
3ca9d23f1c
qbsp: rewrite plane_hash to fix test failure on macOS
2022-08-07 21:19:31 -06: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
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
9af74ce083
store linenum on mapbrush_t; add new location type, but not using it yet, for later so we can track more complex locations (external/-add maps, etc)
...
add extra sanity checking to polylib
adjust some warnings to be clearer and not indicate that the world will break
add sanity check to update_bounds, and don't add empty windings to the bounds
2022-08-04 12:05:04 -04:00
Jonathan
c9eab719bc
remove old code
...
add visible on mapface_t although it's unused
2022-08-03 13:26:04 -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
98610982c9
export the final dbrush_t right in ExportBrushList_r instead of doing it ahead of time
2022-08-03 05:09:39 -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