Eric Wasylishen
b06736dea4
qbsp: fix leak in base1leak test
2022-05-05 01:01:33 -06:00
Eric Wasylishen
5cae1919ce
qbsp: fix areaportals
2022-05-04 21:04:36 -06:00
Eric Wasylishen
893b0b080e
qbsp: move to unique_ptr<brush_t> vectors
2022-05-03 02:35:43 -06:00
Eric Wasylishen
bec0357352
qbsp: proper marksurfaces population
2022-05-02 02:35:13 -06:00
Eric Wasylishen
e1eb0e8cbd
qbsp: fix noclipfaces issues
2022-05-02 00:05:50 -06:00
Eric Wasylishen
2ad9e27d3b
qbsp: remove unused face csg code
2022-05-01 01:13:03 -06:00
Eric Wasylishen
81e0da4d62
qbsp: mark invisible sides on brush entities
...
fixes brush_clipping_order test failure
2022-05-01 00:01:11 -06:00
Eric Wasylishen
5b4a9956c6
qbsp: add -debugchop
2022-04-30 15:10:19 -06:00
Eric Wasylishen
cb2268efdf
qbsp: initial ChopBrushes implementation
2022-04-30 14:33:26 -06:00
Eric Wasylishen
029e95dc3b
qbsp: add PruneNodes
2022-04-28 00:49:26 -06:00
Eric Wasylishen
8efb6f689b
qbsp: add -outsidedebug flag
2022-04-27 19:18:27 -06:00
Eric Wasylishen
90e064e9e1
testqbsp: attempt to add a q2 test case (not working yet)
2022-04-26 23:45:44 -06:00
Eric Wasylishen
d5320d5aaa
qbsp: subdivide faces after merging
2022-04-26 21:41:03 -06:00
Eric Wasylishen
df9d530c21
qbsp: fix weird calling convention of SubdivideFace
2022-04-26 21:32:24 -06:00
Eric Wasylishen
f9aa40a50f
qbsp: fix outside filling in maps with detail
2022-04-26 00:25:52 -06:00
Eric Wasylishen
064147b908
qbsp: move PortalizeWorld() to portals.hh
2022-04-24 01:07:20 -06:00
Eric Wasylishen
133ee77fc5
testqbsp: fix textures not loading in tests
2022-04-20 01:31:26 -06:00
Eric Wasylishen
aa3174d732
testqbsp: initialize filesystem the same as a regular qbsp run
2022-04-20 01:25:29 -06:00
Eric Wasylishen
78210947ff
qbsp: add -keepprt option
2022-04-19 01:03:18 -06:00
Eric Wasylishen
28c9cda561
Merge remote-tracking branch 'Paril/type-cleanup' into brushbsp
2022-04-17 13:46:50 -06:00
Eric Wasylishen
20a1b7b94b
qbsp: szBSPName -> bsp_path, szMapName -> map_path
2022-04-17 13:41:23 -06:00
Jonathan
0b41f0a03b
notriggermodels support
2022-04-16 22:20:29 -04:00
Eric Wasylishen
f467257f72
qbsp: start test case for qbsp_simple_sealed2.map
2022-04-15 21:05:14 -06:00
Eric Wasylishen
8a71b372bd
qbsp: remove unnecessary num*() helpers from mapdata_t
2022-04-15 00:27:50 -06:00
Eric Wasylishen
5df0dde756
map.cc: move rgfStartSpots to map struct
2022-04-11 17:49:49 -06:00
Eric Wasylishen
9d2f00a1b2
qbsp: tidying: move pWorldEnt() to mapdata_t
2022-04-11 00:13:42 -06:00
Eric Wasylishen
b7fbb48763
qbsp: enable new outside filling
2022-04-10 00:00:28 -06:00
Eric Wasylishen
a3d54cf48d
qbsp: remove unused face_t::original
2022-04-09 23:40:35 -06:00
Eric Wasylishen
407b39cad1
qbsp.hh: remove writebsp.hh and outside.hh includes
2022-04-09 23:30:42 -06:00
Eric Wasylishen
b736704e5e
qbsp.hh: remove portals.hh include
2022-04-09 23:28:12 -06:00
Eric Wasylishen
95824d26e4
qbsp.hh: remove surfaces.hh include
2022-04-09 23:25:54 -06:00
Eric Wasylishen
ca589906d8
qbsp.hh: remove merge.hh include
2022-04-09 23:25:01 -06:00
Eric Wasylishen
2e14909e84
qbsp.hh: remove map.hh include
2022-04-09 23:23:26 -06:00
Eric Wasylishen
f71ae3658e
qbsp.hh: remove solidbsp.hh include
2022-04-09 23:19:34 -06:00
Eric Wasylishen
147a76c11b
qbsp.hh: remove csg4.hh include
2022-04-09 23:17:43 -06:00
Eric Wasylishen
9295181f84
qbsp.hh: remove brush.hh include
2022-04-09 23:15:21 -06:00
Eric Wasylishen
39d1930446
outside.cc: prototype marking visible brush sides
2022-04-09 21:46:01 -06:00
Eric Wasylishen
edad06cc5a
qbsp: planning outside filling approach, wip
2022-04-05 19:46:59 -06:00
Eric Wasylishen
449b76db70
qbsp: remove unused region.hh header
2022-04-05 19:46:59 -06:00
Eric Wasylishen
a019088c2f
Merge branch 'type-cleanup' into brushbsp
2022-04-02 21:05:46 -06:00
Jonathan
c81e9ace28
remove old threading code entirely
...
add new parallel logging stuff in common/parallel which wraps parallel_for(_each) and provides automatic percentage indicator
fix issue with light not pulling in settings
move logging stuff into its own namespace and simplify
2022-03-01 10:28:59 -05:00
Jonathan
df92d9ce12
Command line args systems ( #2 )
...
* cmd
* cmake change for tbb DLLs
add in test for double-hyphens
* cmd
* game version
* settings!
* bsp texture usage
decompile fix for q1bsp
* finish up the options for qbsp
* light finished?
* finish up the few missing bits
* move scalar/int32 up
* Run clang-format pass
* natvis for our mathlib
use slightly faster storage for winding
fix light tests
* allow dictionary to be a base type
* re-run style
* Remove cfg_static
Fix options summary
* natvis for lockable_value<T>
* last-ish pass?
* format
* forgot last few lockables
2022-02-27 00:01:57 -05:00
Eric Wasylishen
b04a6e9a30
qbsp: csg: re-add checking of map file order
2022-02-21 12:00:26 -07:00
Eric Wasylishen
3b348af301
qbsp: wip mirroring faces
2022-02-21 00:47:57 -07:00
Eric Wasylishen
91f7d9adaa
qbsp: remove surface_t
2022-02-21 00:05:48 -07:00
Eric Wasylishen
70ea752587
qbsp: restore MergeAll
2022-02-20 23:57:42 -07:00
Eric Wasylishen
cb464031da
qbsp: track original brushes, populate q2 leafbrushes accurately
2022-02-20 16:10:44 -07:00
Eric Wasylishen
8c84871129
qbsp: wip: add CSG-ing back in
2022-02-20 01:19:55 -07:00
Eric Wasylishen
2a257693c6
Merge branch 'type-cleanup' into brushbsp
2022-02-17 00:43:08 -07:00
Jonathan
b0ece93f83
Fix/implement animated textures for Q2
2022-02-16 19:23:19 -05:00
Eric Wasylishen
055f865ef0
qbsp: add very rough pass of building visible faces
...
- faces are subdivided where neeed
- markfaces not calculated accurately
- overlaps/clipping not handled
2022-02-13 19:51:59 -07:00
Eric Wasylishen
1fbfd199c5
qbsp: wip port of BrushBSP from Q2 tools
...
currently can compile qbsp_simple.map (2 brushes)
no faces, but generates leafs/nodes which seem OK
2022-02-13 12:03:27 -07:00
Eric Wasylishen
dc10d90c36
add missing <list> include
2022-02-07 00:35:27 -07:00
Eric Wasylishen
6b5b426636
qbsp: remove internal list in face_t
2022-02-07 00:02:51 -07:00
Jonathan
ed325eedea
surface faces now use list/vector
2022-02-06 11:39:22 -07:00
Eric Wasylishen
8531286777
qbsp: replace `-nothreads` with `-threads 1` for consistency with light/vis
2022-01-30 17:50:21 -07:00
Jonathan
d076920665
Revert "Instead of calculating brush extents globally, do it per brush creation"
...
This reverts commit 069720078f .
2022-01-27 01:52:08 -05:00
Jonathan
069720078f
Instead of calculating brush extents globally, do it per brush creation
...
Use portal node bounds for extents
2022-01-27 01:03:38 -05:00
Jonathan
3f37de95a5
Fix tests
2022-01-26 18:15:53 -05:00
Jonathan
571e7337fc
Fix the temporary hintskip detection and finally move it to gamedef
...
Dynamic extent calculation - turned on by default - will automatically determine the extents used for winding_from_plane beforehand. On a 50kb .map file it only takes about 10ms, so for the majority of maps it should be instantaneous.
2022-01-26 18:03:31 -05:00
Jonathan
f9f76b6dbb
skip the flips - saves us a bit of time!
2022-01-25 04:18:52 -05:00
Jonathan
674be0c812
Fix a few messages (missing newlines, period in wrong place)
...
Use fragments to store TJunction bits instead of having them in separate-but-chained faces
2022-01-25 03:23:39 -05:00
Jonathan
dfd31d7441
make markfaces a vector to simplify usage
2022-01-25 00:13:12 -05:00
Jonathan
1764afb475
Revert "Revert "make brush::faces a vector""
...
This reverts commit 11d2d51165 .
Fixes implementation - was swapped logic in brush bevels
2022-01-24 14:55:21 -05:00
Jonathan
11d2d51165
Revert "make brush::faces a vector"
...
This reverts commit 30c7ef94ac .
This was causing issues with bevel brushes in Q2 mode. Not sure why yet. Will attempt this again soonish.
2022-01-24 14:26:28 -05:00
Jonathan
be865bc5b8
Fix `face_get_contents` not handling hintskip properly
...
Simplify `Brush_GetContents` and use the first non-skip face as the base contents
Move period out of `LoadExternalMap` error message so it doesn't confuse the reader
Fix `WriteEntitiesToString` crashing on entities without any brushes (note: need a column/line on mapentity in future)
2022-01-23 23:18:59 -05:00
Jonathan
e92b9f1ff9
Fix miscalculation for has_struct
...
Remove unused variable
2022-01-23 21:48:24 -05:00
Jonathan
5d6d7a71a2
Fix missing includes for list
2022-01-23 19:28:50 -05:00
Jonathan
75339df231
Simplify surface_t by using lists
2022-01-23 19:00:01 -05:00
Jonathan
5f81657621
move calculatesurfaceinfo into a member func
2022-01-23 00:46:11 -05:00
Jonathan
5dd2deba8e
use custom type for two-sided things to simplify brain power (.front/.back is easier to process than [0]/[1])
2022-01-23 00:26:58 -05:00
Jonathan
07dd73e5bc
Persist native contents when converting them to detail
...
Simplify hull areas
Q2's `face_get_contents` generated empty surfaces when SKIP was used. It now has another line of defense to ensure contents aren't set to empty, but I'm not sure where the other line of defense went that was supposed to do this.
Remove old comment
2022-01-22 17:23:51 -05:00
Jonathan
63b8608799
Remove unused functions & tests
...
Fix test harness
2022-01-17 14:35:18 -05:00
Jonathan
53b4f640e2
use vector<brush_t> directly now
2022-01-17 11:06:13 -05:00
Jonathan
1a0b8c724a
use vector of unique_ptrs for brushes; temporary, going to simplify it further
2022-01-17 10:42:24 -05:00
Jonathan
30c7ef94ac
make brush::faces a vector
2022-01-17 09:49:10 -05:00
Eric Wasylishen
b681690807
qbsp: fix some memory leaks
2022-01-16 12:47:19 -07:00
Jonathan
e2d64e0e5d
FS simplification
...
Fix transparency calculation (33% is 33% opacity, not 33% transparency)
2021-12-20 14:51:14 -05:00
Jonathan
0c827208ec
Allow `-subdivide 0` to turn off subdivision
...
imglib now lives in common
fs 'load' split into two functions, where and load. the former allows you to query for and return archive & path for a given file, whereas the latter handles that for you.
use log verbose in light rather than own verbose flag
2021-11-21 15:08:02 -05:00
Jonathan
8cadf06d81
New FS!
...
First FS test: use it for decompile for Q2 to prevent unnecessary suffixes
2021-11-05 19:25:37 -04:00
Eric Wasylishen
a937e3cdba
qbsp: areaportal support
2021-10-27 22:51:43 -06:00
Jonathan
c37ec80667
Implement game-agnostic Brush_GetContents
2021-10-26 09:13:48 -04:00
Jonathan
cb3c81aaf8
vec3_t gonedy
2021-10-21 20:21:28 -04:00
Jonathan
84b4388f4b
Added a deprecation sniffer so I can find problematic areas later
...
Revert tjunc fixes
Add -notjunc to match other editors
Rid Light_Add since it's too simple
2021-10-20 04:27:22 -04:00
Jonathan
1bf6261826
constexpr/inline qv:: where appropriate
...
comment out rewrite test in bspinfo
updated tjunc code
2021-10-19 23:26:43 -04:00
Jonathan
a7de4bdae2
Remove unused thingies
...
Use qplane3 where we can
2021-10-17 06:24:02 -04:00
Jonathan
e974285fe7
Merge branch 'type-cleanup' of https://github.com/Paril/ericw-tools into type-cleanup
2021-10-12 13:52:53 -04:00
Jonathan
e1290fd0f4
Snap normals/tangents/bitangents written from WriteNormals to save some bits
...
Texvec inherits mat<2, 4> now, since it's the most logical type for it to be based on.
2021-10-12 13:52:47 -04:00
Jonathan
e6fd6b653e
A few more vec3_t -> qvec
...
qmat follows other type conventions (T, N, M) and is annotated differently so it's not as confusing to follow
Removed qmat::operator[] - it's not clear from calling it that it's column-major (as evidenced by the comments needing to explicitly make clear at call sites that it's column, not row), so I've collapsed them into two separate functions that explicitly fetch either a column or a row. This also ties them nicely into qvec<N>.
2021-10-12 12:03:59 -04:00
Eric Wasylishen
c88274f806
qbsp: outside.cc: rewrite with outside -> in filling
2021-10-11 22:40:26 -06:00
Jonathan
bd6bc0dc56
surfflags remap -> is_valid to match contentflags
...
warn on excessive key/value lengths, per-game
2021-10-11 19:45:55 -04:00
Jonathan
01b8abf93c
Removed a lot of unused functions
...
Moved vector-related operations from mathlib to qvec, moved a few into qv::
Use clamp/max/min directly instead of #define'ing them
Move a few single-use functions directly above their usages
2021-10-10 14:04:09 -04:00
Jonathan
a8d5125321
Merge branch 'type-cleanup' of https://github.com/Paril/ericw-tools into type-cleanup
2021-10-09 14:14:54 -04:00
Jonathan
eb4bcf96dc
-includeskip for Q2RTX
...
Fix missing fmt include
Default nexttexinfo to -1 to match other tools
Fmt support for bspversion_t, use that instead of a static function
Cleanup write functions
2021-10-09 14:14:49 -04:00
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
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
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
ca0111ce5d
Fix missing unordered_map
...
Maybe fix for tons of -Wunused-value
2021-10-05 23:00:13 -04:00
Jonathan
52839d4e7f
Run clang-format pass
2021-10-05 15:54:06 -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