Eric Wasylishen
5cf82ee023
qbsp: restore use of options.worldExtent
...
should fix minor precision differences in .prt files
2021-10-08 19:04:11 -06:00
Jonathan
1b1679fa22
normals are now a special tuple-ish type, so that we can calculate tangents and bitangents for Q2RTX if requested (currently it always does it, but we can fix that later)
...
always emit texinfo for q2 brush sides
2021-10-08 14:17:48 -04:00
Eric Wasylishen
f6e9ba4eb2
qbsp: drop mapentity_t::epair_order and std::map for epairs
...
just store as a std::vector of pairs. Lookups aren't done much in qbsp
so linear search performance should be fine.
epair_order approach gets messy because we sometimes add epairs
2021-10-06 18:26:25 -06:00
Eric Wasylishen
9b19828530
qbsp: avoid triggering MSVC std::vector access bounds check
...
even though we're just taking the address with &, face->edges[face->w.size()]
was accessing an out-of-bounds element
2021-10-06 16:44:14 -06:00
Eric Wasylishen
0d06489016
qbsp: change HashVec to inline (fixing macOS build)
2021-10-06 16:38:24 -06:00
Jonathan
16d3bcc7c7
Revert "clang /macOS: un-constexpr things that were erroring"
...
This reverts commit 33745c3cb8 .
Value-initialize v which removes the need for the bottom `if constexpr` expression.
2021-10-06 03:42:46 -04:00
Eric Wasylishen
a84de6a2d6
csg4.cc: don't use alloca inside loop
...
it's crashing in release builds on macOS..
not sure exactly why, but it's also leaking stack
since none of them are freed until the function exits
2021-10-06 01:02:03 -06:00
Eric Wasylishen
22145327e6
qbsp: fix use-reference-after-vector-resize
2021-10-06 00:19:47 -06:00
Eric Wasylishen
097f033eb8
testqbsp: fix build
2021-10-05 23:41:43 -06:00
Eric Wasylishen
fd28067b5c
fix gcc errors about reference to temporary
2021-10-05 23:28:33 -06:00
Eric Wasylishen
33745c3cb8
clang /macOS: un-constexpr things that were erroring
...
neither clang nor gcc like the qvec(Args..) constructor
being constexpr.
GCC's error says:
error: member ‘qvec<3, double>::v’ must be initialized by mem-initializer in ‘constexpr’ constructor
2021-10-05 23:18:52 -06:00
Eric Wasylishen
c54fea1e87
qbsp: face_t: use a std::vector for edges
...
shared_ptr of C arrays is not working on macOS,
but std::vector is also more correct semantically
2021-10-05 23:15:43 -06:00
Jonathan
52839d4e7f
Run clang-format pass
2021-10-05 15:54:06 -04:00
Jonathan
4ad798e29c
Fix origin brushes
...
Fix merge stuff from qbsp-contentflags
2021-10-05 15:50:18 -04:00
Jonathan
7590230111
Merge remote-tracking branch 'remotes/origin/qbsp-contentflags' into type-cleanup
...
# Conflicts:
# bspinfo/bspinfo.cc
# common/bspfile.cc
# include/common/bspfile.hh
# qbsp/brush.cc
# qbsp/csg4.cc
# qbsp/portals.cc
# qbsp/qbsp.cc
# qbsp/solidbsp.cc
# qbsp/surfaces.cc
# qbsp/writebsp.cc
# vis/vis.cc
2021-10-05 01:21:16 -04:00
Eric Wasylishen
a91bc56aaa
qbsp: outside.cc: match original behaviour
2021-10-05 01:07:26 -04:00
Jonathan
0833d84a7a
Calculate tangents and bitangents (need to clean this up)
...
Implement formatters for qvec
Add -nolighting, which skips all non-lightstyled lights
2021-10-05 01:07:13 -04:00
Eric Wasylishen
5b62f61b29
qbsp: revert contents handling to be closer to master
2021-10-04 20:39:47 -06:00
Eric Wasylishen
ee8ee57cc1
qbsp: delete brushbsp.cc
2021-10-03 20:13:21 -06:00
Eric Wasylishen
1ed4dc71ad
Merge remote-tracking branch 'origin/master' into qbsp-contentflags
2021-10-03 20:04:19 -06:00
Eric Wasylishen
640befb4dc
qbsp: write portals as binary to avoid line ending differences
2021-10-03 19:47:00 -06:00
Eric Wasylishen
2560603f9b
qbsp: csg4.cc: bring closer to original behaviour
2021-10-03 12:32:50 -06:00
Eric Wasylishen
f0d12fc8f3
qbsp: Brush_LoadEntity: bring closer to the original code
2021-10-03 12:02:52 -06:00
Jonathan
037c587352
Merge remote-tracking branch 'remotes/origin/qbsp-contentflags' into type-cleanup
...
# Conflicts:
# bspinfo/bspinfo.cc
# include/common/bspfile.hh
# include/light/light.hh
# include/light/trace.hh
# light/light.cc
# light/ltface.cc
# light/trace.cc
# qbsp/brush.cc
# qbsp/csg4.cc
# qbsp/outside.cc
# qbsp/qbsp.cc
2021-10-03 13:08:50 -04:00
Jonathan
ae4512da2c
BSPX structurization and cleanup
...
Some more vec3_t removals
A bunch of float -> vec_t in light
Simplified construction of lockables
mapdata_t writes directly to an mbsp instead of vector copies
2021-10-03 12:16:13 -04:00
Eric Wasylishen
b78553d81b
qbsp: outside.cc: match original behaviour
2021-10-03 00:22:51 -06:00
Eric Wasylishen
9e9e21eaae
qbsp: move BSPX BRUSHLIST struct types out to bspfile.hh
2021-10-02 17:57:31 -06:00
Jonathan
792951792c
some more cleanup
2021-10-02 05:56:45 -04:00
Eric Wasylishen
59e71d7600
Merge branch 'master' into qbsp-contentflags
2021-10-01 23:39:12 -06:00
Eric Wasylishen
ddf2a36d39
qbsp: make func_detail_wall an alias for func_detail_fence
2021-10-01 23:18:27 -06:00
Eric Wasylishen
690ac8d24e
qbsp: Brush_GetContents_Q1: fix _mirrorinside
2021-10-01 21:19:18 -06:00
Jonathan
9d828d2085
Structured texture data!
...
Move vis decompress/compress back to vis since phs is handled there now too
Fix missing textures in Q1BSP
Comment areaportaling for now
2021-09-30 11:33:04 -04:00
Jonathan
74bbce9eab
First attempt at areaportals - sadly it seems like this method might not work with this compiler.
2021-09-28 13:17:27 -04:00
Jonathan
1a5dc9934f
Remove span offset code - the compression ratio was not worth it
...
Allow Q2-esque maps to compile under Q1 modes
Use Q2tools-adapted version of AddBrushBevels for compiling brush sides
Extended limits overflow code displays member that overflowed now, for debugging
2021-09-28 02:10:01 -04:00
Jonathan
cc932a96ee
Fix BSP being invalid in Q2 if vis is not run
...
Fixes for skylight in Q2
Don't throw on invalid area
2021-09-27 22:40:43 -04:00
Jonathan
a6f6cc2d15
qvec now has an empty default initializer, for speed purposes; fixed up places that relied on this behavior
...
simplified constructor for qvec(T...) that uses fold expressions
simplified rgba_miptex_t
fixed a lot of broken winding_base_t behavior
merged all winding types into winding_base_t
removed now-empty files
2021-09-27 20:44:15 -04:00
Jonathan
87d31e6d4f
A lot of type-y stuff here:
...
- bsp store vectors now
- vis stored in a way that is compatible with both Q2 and Q1
- binary reading of stuff, so swapping is done at load time now
- vis cleanup, although there's still a lot of raw long modification that should get simplified later
2021-09-25 23:58:02 -04:00
Eric Wasylishen
b36c428bef
brush.cc: attempt to fix test failures
2021-09-25 21:13:42 -06:00
Eric Wasylishen
5a1cb66308
brush.cc: fix sorting of clip brushes
2021-09-25 19:04:47 -06:00
Eric Wasylishen
54d7f50b38
brush.cc: clear CFLAGS_CLIP on bmodels to match old behaviour
2021-09-25 18:04:57 -06:00
Eric Wasylishen
f1744118e2
qbsp: move BSPX BRUSHLIST struct types out to bspfile.hh
2021-09-25 15:42:42 -06:00
Eric Wasylishen
f7c0c80a26
qbsp, light: allow _minlight to go up to 510 instead of 255 on func_detail/etc.
2021-09-25 13:11:15 -06:00
Jonathan
41b9a79e83
Merge branch 'qbsp-contentflags' into type-cleanup
...
# Conflicts:
# bsputil/bsputil.cc
# common/bspfile.cc
# common/cmdlib.cc
# include/common/bspfile.hh
# include/common/cmdlib.hh
# qbsp/brush.cc
# qbsp/portals.cc
# qbsp/writebsp.cc
# vis/vis.cc
2021-09-23 18:42:25 -04:00
Eric Wasylishen
71189def47
qbsp: write correct .prt file for Q2 (PRT1 with clusters)
...
# Conflicts:
# qbsp/portals.cc
2021-09-23 14:43:48 -04:00
Jonathan
ed37289290
Store extended limits format in bspversion
2021-09-23 14:42:56 -04:00
Eric Wasylishen
b3258611c9
brush.cc: AdjustContentsFromName: fix all liquids getting set to water
2021-09-23 00:04:45 -06:00
Eric Wasylishen
70aa7ebcdb
writebsp.cc: remove unneeded memset
...
map.exported_texinfos.push_back({}); will push a zeroed gtexinfo_t.
2021-09-22 22:34:36 -06:00
Jonathan
6ff2d67d12
major C++-esque change to BSP conversion:
...
- main mbsp types are declared first in the files, and types that were single-member are now not structs
- conversion is handled by the sub-types themselves. Currently no diagnostic for *what* members overflow, but, overflow is handled via thrown exceptions on all overflowable members
- aabb type is used where appropriate now, simplifying a few areas
2021-09-22 17:30:46 -04:00
Eric Wasylishen
80a4aa1b97
Merge branch 'master' into qbsp-contentflags
2021-09-22 00:12:27 -06:00
Jonathan
2ebfdb096f
Remove COM_Parse, use parser_t
...
Game controls hull sizes now
2021-09-20 19:45:09 -04:00