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
40807048f5
since faces are dynamic now, we don't need a temporary superface
2022-01-25 17:58:03 -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
6dadb1d8f6
slight speed boost on large maps by merging this loop into one (saves calculating metrics twice)
2022-01-24 15:10:26 -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
c9243d4fea
If we have a leak, reset occupied value so that FindOccupiedClusters can be re-entered later for areas
2022-01-24 14:41:37 -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
5a2d522892
partial revert of 1dee7269d6 - restores old tool behavior w/r/g noclipfaces
2022-01-22 21:46:32 -05:00
Jonathan
6c20e49cc3
change the flow of `face_get_contents` a bit; move earlier code into this block
...
remove `Brush_IsDetail`, as it's legacy and not required any more
MIST is no longer automatically "CFLAGS_DETAIL_ILLUSIONARY"
MIST/AUX default to _mirrorinside 1 if it's not set, matching vanilla behavior
2022-01-22 21:26:57 -05:00
Eric Wasylishen
edec33ad93
Merge branch 'type-cleanup' of https://github.com/Paril/ericw-tools into pr/322
2022-01-22 16:28:14 -07:00
Eric Wasylishen
d340bd06a5
qbsp: RemapContentsForExport: fix for q2 structural faces completely covered by detail fence not rendering
...
at least in yquake2, (vanilla?). Remaps the detail fence to "window"
2022-01-22 16:28:08 -07:00
Jonathan
6895fea115
Merge branch 'type-cleanup' of https://github.com/Paril/ericw-tools into type-cleanup
2022-01-22 17:55:42 -05:00
Jonathan
8dbb18cc94
Use stem() instead of filename() when we're only wanting to change filename without extension
2022-01-22 17:55:37 -05:00
Eric Wasylishen
c31edc6599
qbsp: FindMiptex: fix empty optional access when a .wal couldn't be found
2022-01-22 15:32:14 -07: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
68424edb8d
introduce a flag for whether the target game supports bmodels with contents
...
move the check in SubdivideFace so that it can early-exit if subdivision isn't even enabled
2022-01-21 00:51:06 -05:00
Jonathan
008d6db056
Fix detail for Q2 maps
...
Simplify winding::flip
Add an assert that a generated surface has a non-empty bounds (have a map that generates a face with 0,0,0 bounds)
2022-01-20 19:25:58 -05:00
Jonathan
0cca14d1b2
Fix bug in bitangent calculation - thank you AlexP
...
Allow `calc_sides` to skip writing outputs if they are not required, & return counts since they are constant sized
2022-01-20 16:35:56 -05:00
Jonathan
02a4463d00
include <list>
2022-01-17 16:24:29 -05:00
Jonathan
b824acb376
Reverse ordering of faces to match old code
...
Fix missing max(1) on leaf/cluster counts
2022-01-17 16:09:10 -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
Jonathan
60070e27b2
Merge branch 'type-cleanup' of https://github.com/Paril/ericw-tools into type-cleanup
2022-01-17 09:16:27 -05:00
Eric Wasylishen
b681690807
qbsp: fix some memory leaks
2022-01-16 12:47:19 -07:00
Jonathan
10fa97e6b8
Use string_view where appropriate for parser, add some additional constructors for ease of use
2022-01-16 04:17:06 -05:00
Eric Wasylishen
e6e232d43e
qbsp: fix delete/delete[] mismatch
2022-01-15 23:26:59 -07:00
Eric Wasylishen
2ebcdc9fde
qbsp: fix memory leak identified by LeakSanitizer
2022-01-15 23:01:55 -07:00
Eric Wasylishen
07e7179c74
fix build
2022-01-15 18:51:33 -07:00
Eric Wasylishen
f02bbca0c7
parser: fix reading past end of buffer
2022-01-15 18:31:35 -07:00
Eric Wasylishen
0dd7a73cc1
qbsp: flip brush clipping order to match original qbsp
...
Patch from Paril
2022-01-15 14:35:02 -07:00
Jonathan
3d9277b711
Merge branch 'type-cleanup' of https://github.com/Paril/ericw-tools into type-cleanup
2021-12-20 14:51:20 -05:00
Jonathan
e2d64e0e5d
FS simplification
...
Fix transparency calculation (33% is 33% opacity, not 33% transparency)
2021-12-20 14:51:14 -05:00
Eric Wasylishen
d6a17d022c
qbsp: CreateBrushFaces: fix accessing empty winding in `w->clip(...)` expression
2021-12-15 22:43:21 -07: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