Commit Graph

832 Commits

Author SHA1 Message Date
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