Jonathan
b0ece93f83
Fix/implement animated textures for Q2
2022-02-16 19:23:19 -05:00
Jonathan
4cf6bc9e28
Merge branch 'type-cleanup' of https://github.com/Paril/ericw-tools into type-cleanup
2022-02-05 13:32:11 -05:00
Jonathan
b7a06f4bb3
Don't automatically assign SOLID to brushes that have a valid trace type
...
Fix mixed contents warning displaying the wrong contents
2022-02-05 13:32:06 -05: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
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
0414c77c19
Use copies rather than moving for conversion, so that graceful upgrades are graceful again
2022-01-25 04:49:20 -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
2f7a68a9e2
Fix making entire world detail
2022-01-22 21:39:15 -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
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
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
4d1901534f
common: fix gamedef_hl_t::get_default_palette()
2022-01-15 23:32:46 -07:00
Eric Wasylishen
4e94c7bab3
bspfile: fix UB reinterpret_cast causing ASan to complain on macOS
2022-01-15 22:40:03 -07:00
Eric Wasylishen
f02bbca0c7
parser: fix reading past end of buffer
2022-01-15 18:31:35 -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
d0ea010acb
bspfile.cc: fix handling of bsp format conversion
...
needs to return false so WriteBSPFile can upgrade to an extended limits format
2021-12-15 22:48:44 -07:00
Eric Wasylishen
eceb031daa
fs.cc: add missing <unordered_map> include
2021-12-13 19:52:48 -07:00
Eric Wasylishen
0d1c342bca
fs.cc: don't attempt to use reference lifetime extension on std::shared_ptr
...
clang/gcc are erroring on this line
2021-12-13 19:51:01 -07:00
Eric Wasylishen
e7d37df636
fs.cc: add missing <list> include
2021-12-13 19:37:23 -07:00
Eric Wasylishen
a33d2d342d
fs.cc: std::exception doesn't have a string constructor
2021-12-13 19:34:34 -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
Jonathan
1a1b4bdfb1
Re-ordered code to be easier to follow and write out all at once rather than doing it per-step
2021-10-31 19:28:52 -04:00
Eric Wasylishen
a937e3cdba
qbsp: areaportal support
2021-10-27 22:51:43 -06:00
Jonathan
0e361f9323
Support for Q2BSP decompilation
...
- there's still a couple failure cases - specifically base1 in the outdoor area has a side that wasn't able to match to a face
- the clip brush at the start of base1 gets cut into a bunch of pieces because of the whole "check for texinfo, compare and split into multiple pieces" thing, but I'm pretty sure it's just one single brush - we need to ignore the splitting thing on clip brushes since they don't care about texture
- triggers don't pull in a temp texture
- origin brushes?
2021-10-27 17:56:56 -04:00
Jonathan
c37ec80667
Implement game-agnostic Brush_GetContents
2021-10-26 09:13:48 -04:00
Eric Wasylishen
6856789eef
bspfile.cc: move "can't see through solid" to the top of portal_can_see_through
...
fixes LoadPortals: out of bounds leaf in portal 68 issue
2021-10-25 20:24:21 -06:00
Eric Wasylishen
d2837eb58c
bspfile: contents_are_[empty/solid/sky/liquid]: return false if an extended content type
2021-10-25 01:11:09 -06:00
Eric Wasylishen
02d3284045
bspfile: get rid of default implementations of contents_are_empty/solid/sky
2021-10-25 00:05:11 -06:00
Jonathan
3456f62a90
Smaller equalExact (probably should just get rid of this tbh)
...
Fix for ClosestPointOnLine
2021-10-24 14:20:24 -04:00
Jonathan
d0e557b9cb
Fix BSPX on q2bsp
...
Fix normalize generating NaNs to match old behavior of generating zero on zero length
Remove extended texinfo file before potentially not writing new one
2021-10-24 06:56:31 -04:00
Jonathan
74253fd189
Fixed Unix/Clang compilation
...
Adjusted makefile to work with both clang and msvc on win32
Removed "WIN32", use the standard _WIN32 instead
Fixed bad VectorCopy's
Use qvec4b instead of special color_rgba type
qvec now follows built-in type procedures for handling operators; this means that (qvec3i + qvec3f) will now properly produce a float, as one would expect, instead of adding the float to the integers without casting to the common type.
2021-10-23 07:35:41 -04:00
Jonathan
a21be0362c
replace VectorCompare, CrossProduct, DotProduct
...
qv::dot handles inputs a bit more gracefully now
plane::distance_to for distance checks, and dplane has the fast version
2021-10-21 23:25:19 -04:00
Jonathan
95b47db922
More qmat/qvec where appropriate
...
Add a json.hh file which includes common JSON serialization types
surfflags_t::extended uses booleans instead of a bitflag for simplicity
JSON serialization for surfflags
2021-10-19 21:15:00 -04:00
Jonathan
a7de4bdae2
Remove unused thingies
...
Use qplane3 where we can
2021-10-17 06:24:02 -04:00
Jonathan
fd18fc154c
Fix various warnings by testing a clang-cl compile
2021-10-12 14:39:15 -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
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
9dcef7839a
common: remove dead code (mesh_t, octree)
2021-10-09 11:40:35 -06:00
Eric Wasylishen
056e9442fd
bspinfo, bspfile: fixes for handling of \0 terminator on entdata
2021-10-08 23:03:05 -06:00
Eric Wasylishen
f3f07d9e06
bspfile: fix reading/writing of entdata adding extra null terminators
2021-10-08 22:45:55 -06:00
Eric Wasylishen
34b6462641
build: build common as a static library
2021-10-08 20:08:26 -06:00
Eric Wasylishen
4c17969651
build: remove mingw workaround (unsupported)
2021-10-08 19:46:48 -06:00
Eric Wasylishen
76d0dae890
mathlib: GLM_InterpolateNormal: quick hack to fix build of testlight
2021-10-08 19:31:06 -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
3df3891563
bspfile: fix hexen2 hull sizes
2021-10-08 00:56:11 -06:00
Jonathan
a2edc09018
Resolve GCC wanting `template` before emplacements
2021-10-05 22:54:25 -04: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
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
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
Jonathan
792951792c
some more cleanup
2021-10-02 05:56:45 -04: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
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
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
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
Jonathan
ed37289290
Store extended limits format in bspversion
2021-09-23 14:42:56 -04:00
Eric Wasylishen
73c665abfe
bspfile.cc: gamedef_q1_like_t: fix template argument shadowing
2021-09-23 00:39:10 -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
8093e94864
bspfile.cc: fix build
2021-09-22 00:25:23 -06:00
Eric Wasylishen
80a4aa1b97
Merge branch 'master' into qbsp-contentflags
2021-09-22 00:12:27 -06:00
Eric Wasylishen
8d51e23ecc
bspfile: add fixme about q2 overflow checking
2021-09-21 00:09:55 -06:00
Eric Wasylishen
0c0cc9ef81
bspfile: fix OverflowsUint16
2021-09-20 23:59:26 -06:00
Eric Wasylishen
7622ca1a3b
bspfile: fix incorrectly identifying bsp2 as hexen2bsp2
2021-09-20 19:38:38 -06:00
Jonathan
2ebfdb096f
Remove COM_Parse, use parser_t
...
Game controls hull sizes now
2021-09-20 19:45:09 -04:00
Jonathan
9f1f575761
Parser simplification and classification
...
Hulls stored in game definitions
2021-09-20 16:24:38 -04:00
Jonathan
49fd62b9f3
Lotta more file stuff. Have to think about fscanf though.
2021-09-19 22:20:39 -04:00
Jonathan
326626f127
Remove some old stuff
...
Cleanup/rework of logging system. I'm not too happy about it still, but, it's at least a bit easier to follow now.
Started cleanup of file-related stuff.
2021-09-19 18:17:28 -04:00
Jonathan
17606fde4b
Use variant instead of having all BSP types allocated at once (even though they are smol)
...
Move ownership of pointers to the bsp structures themselves for now.
2021-09-16 11:52:37 -04:00
Jonathan
e8bd554cc0
winding_t is now a C++ type - a hybrid stack/heap array.
...
In preparation for converting all of the vec_t[3] to qvec's, the Vector routines are now templated and work with any type that provides indexing operators.
Polylib.cc is gone, since this all needs to be in header now
qvec can now implicitly convert from T[N]
constexpr where appropriate
static inline -> inline
side_t is now an enum, moved into mathlib
2021-09-16 03:10:51 -04:00
Jonathan
1dd4df1b20
calloc/malloc/free -> new/new/delete (except for specific scenarios)
2021-09-14 11:39:12 -04:00
Jonathan
eb6bb81d61
use the C++ includes
...
stdbool not required
_vsnprintf and _snprintf are standard in MSVC since 2015, so I just use them directly now. They'll be replaced by std::fmt later anyways.
use <thread> for threading, instead of pthreads/windows.h thread directly
2021-09-14 08:46:03 -04:00
Jonathan
7f8d2cfb49
Fix single line functions
2021-09-14 02:56:44 -04:00
Jonathan
4e7542b111
Clang format pass
...
typedef -> using
include guards -> pragma once
typedef struct x { } y; -> struct y { }
some fixes to extremely old code that shouldn't be required any more
2021-09-14 02:32:26 -04:00
Jonathan
facf3490c7
typedef changes
2021-09-13 13:04:18 -04:00
Eric Wasylishen
d2ea0cee41
Merge remote-tracking branch 'origin/master' into qbsp-use-common
2021-09-12 23:04:42 -06:00
Jonathan
c95a1e2ccb
q2 and bug fixes
...
# Conflicts:
# include/qbsp/qbsp.hh
# include/qbsp/winding.hh
# qbsp/brush.cc
# qbsp/csg4.cc
# qbsp/merge.cc
2021-09-12 08:34:01 -04:00
xDShot
4a1feadaab
#include <limits.h> ( #319 )
...
Fixes error about undefined INT_MAX in common/bspfile.cc
2021-09-12 00:15:02 -06:00
Jonathan
8cdb9ff6c4
Initial attempt at leafbrushes
2021-09-09 05:11:47 -04:00
Jonathan
35040d1bd3
Q2 working sorta
2021-09-09 02:13:28 -04:00
Jonathan
9800f4f738
Mostly all native!!
2021-09-09 00:26:17 -04:00
Ozkan Sezer
69cb6b981f
bsputil: write ents in binary mode and print its crc in 4-digit hex ( #317 )
2021-09-08 17:50:32 -06:00
Jonathan
004fcb57c1
Content flags type, splitting up native and compiler flags.
...
Extreme WIP and likely not working properly. Need to rid all direct .native usages and direct them through target_version->game
2021-09-07 06:13:17 -04:00
Jonathan
00efa6e67d
Fix operator<
...
Introduce gamedef, to reduce rewriting of data in bspversions
fix name of needs_subdivision
include value in texinfo, in prep for Q2
2021-09-07 01:41:32 -04:00
Jonathan
437459a4dd
Finish using game everywhere
2021-09-06 18:09:13 -04:00
Jonathan
dd3bcebe39
Fix missing newline
2021-09-06 17:29:09 -04:00
Jonathan
01d1400971
Merge branch 'qbsp-use-common' of https://github.com/ericwa/ericw-tools into qbsp-use-common
...
# Conflicts:
# common/bspfile.cc
# qbsp/writebsp.cc
2021-09-06 17:27:42 -04:00
Jonathan
3bc9b1b0f8
Instead of directly comparing BSP version pointers just for game type, I compacted quake2/hexen2 into a single enum.
...
Feature check in bspver for colored lightmaps, which replaces the many "version == q2 || version == qbism || version == hl".
2021-09-06 17:13:37 -04:00
Jonathan
8fd1d89b8d
Fix double-delete
...
Fix typo
2021-09-05 17:39:17 -04:00
Jonathan
dad0e61f63
Fix for texinfo/miptex searching routines
...
surf flags now use the "native + extended" format that will eventually be used for brush contents. Q1 output seems identical, haven't tested Q2 yet.
2021-09-05 16:56:29 -04:00
Eric Wasylishen
c90ac7d6a7
common: bsp29: validate edges/marksurfaces
2021-09-05 01:28:58 -06:00
Eric Wasylishen
948932f333
common: bsp29: validate clipnodes
2021-09-05 01:10:23 -06:00
Eric Wasylishen
a0ccb765e8
common: validate bsp29 nodes and faces
2021-09-05 01:04:39 -06:00
Eric Wasylishen
f978d2a8d5
common: start adding overflow checks to ConvertBSPFormat
2021-09-05 00:44:25 -06:00
Jonathan
3b656e6ef1
Cleanup & preserve texture name for q2bsp
2021-09-04 22:15:04 -04:00
Jonathan
b01fddf7f1
More Q2 support
2021-09-04 18:49:01 -04:00
Eric Wasylishen
54d9e08033
qbsp: handle target bsp version
2021-09-01 00:42:30 -06:00
Eric Wasylishen
3cbf54749e
qbsp: fix -onlyents
2021-08-31 23:53:40 -06:00
Eric Wasylishen
2e09ad509b
Merge remote-tracking branch 'origin/master' into qbsp-use-common
2021-08-31 22:40:51 -06:00
Jonathan
90973e1198
Q2bsp VIS support ( #315 )
...
* Add QBSP - the BSP2-esque variant to Q2BSP - to bspinfo, and all of its accompanying structures.
* pass around ident, since Q2 needs it - admittedly it's a bit ugly, but it works for now.
conversion for QBSP
* Fix light
* _qbsp_ -> _qbism_
* Introduced bspversion_t, a struct that holds pertinent information about different BSP versions and also acts as a tagged pointer type for direct comparisons. This makes a lot of code paths simpler. I'm not entirely set on the wordings or usages yet, and maybe we can stuff boolean flags inside of them for different behaviors (for instance Q2, QBism and HL would have the "colored lightmap" boolean set to true, which replaces the check-for-all-three in the lightmapper)
Swapped arguments to ConvertBSPFormat to have the conversion target last instead of first
Finished rename of qbsp -> qbism
Tested:
- bspinfo on various BSPs I had laying around (Q1, Q2, Qbism)
- bsputil converting between Q2 and Qbism, and that they loaded in engine/roundtripped properly
Not tested:
- vis/rad on anything major (I still can't run rad due to embree being weird)
- bsputil conversion of Q1-esque maps
* Q2 VIS
Almost working, just in-game is not 100% functional
* PHS! Q2 VIS!
* Fix missing loadversion assignment
Fix missing \n
* Implement q2bsp -> mbsp visdata copy
fix sky lighting to use arghrad compat
2021-08-31 22:38:12 -06:00
Eric Wasylishen
a75ad998e7
common: clean up Hexen II handling
2021-08-30 01:05:18 -06:00
Eric Wasylishen
8beda9a039
common, qbsp: make Error() noreturn
2021-08-26 20:22:45 -06:00
Jonathan
eaa86c71c6
Q2BSP + QBSP ( #313 )
...
* Add QBSP - the BSP2-esque variant to Q2BSP - to bspinfo, and all of its accompanying structures.
* pass around ident, since Q2 needs it - admittedly it's a bit ugly, but it works for now.
conversion for QBSP
* Fix light
* _qbsp_ -> _qbism_
* Introduced bspversion_t, a struct that holds pertinent information about different BSP versions and also acts as a tagged pointer type for direct comparisons. This makes a lot of code paths simpler. I'm not entirely set on the wordings or usages yet, and maybe we can stuff boolean flags inside of them for different behaviors (for instance Q2, QBism and HL would have the "colored lightmap" boolean set to true, which replaces the check-for-all-three in the lightmapper)
Swapped arguments to ConvertBSPFormat to have the conversion target last instead of first
Finished rename of qbsp -> qbism
Tested:
- bspinfo on various BSPs I had laying around (Q1, Q2, Qbism)
- bsputil converting between Q2 and Qbism, and that they loaded in engine/roundtripped properly
Not tested:
- vis/rad on anything major (I still can't run rad due to embree being weird)
- bsputil conversion of Q1-esque maps
2021-08-23 09:56:33 -06:00
Eric Wasylishen
f7256907d5
common: fix build of bsputils.cc with double == vec_t
2021-08-22 15:12:19 -06:00
Eric Wasylishen
6e12b3d956
common: fix another 99999 constant
2021-07-13 22:02:41 -06:00
Eric Wasylishen
c9570260fa
gcc 11: pass constant to offsetof
2021-05-30 23:12:17 -06:00
Eric Wasylishen
4ba0e99d3f
Light_PointInSolid: add check against model bounds
2021-05-21 22:35:41 -06:00
Eric Wasylishen
ab6956c9d0
bsputils: fix comment
2021-05-21 22:25:05 -06:00
Eric Wasylishen
72885addf1
common: fix build failure
2021-03-23 21:17:09 -06:00
Eric Wasylishen
fea7849315
common: preserve order of key/value pairs
2021-02-10 00:05:53 -07:00
Eric Wasylishen
b5fcdec19e
cleanup: remove "byte" typedef
2021-02-07 14:02:35 -07:00
Eric Wasylishen
f0e2f4ba96
common: small tweaks: CopyWinding accepts null, document face side
2021-02-05 22:26:13 -07:00
Eric Wasylishen
0cdd2f97ab
common: revert Face_Miptex change, it was breaking reading of
...
Q1 texture names. TODO: fix this properly?
2021-01-31 01:27:01 -07:00
Eric Wasylishen
9124653156
common: move EntData_ function to common
2021-01-30 21:11:25 -07:00
Eric Wasylishen
00e41688c3
light: quake2: arghrad-compatible phong support
...
(set face "value" to the same non-zero number, have light flag unset)
2020-12-31 12:39:17 -07:00
Eric Wasylishen
2f92681ba6
polylib: increase limits in BaseWindingForPlane
2020-08-23 11:35:15 -06:00
Eric Wasylishen
79d3aa99de
qbsp: fix relative paths for .wad files
...
Fixes #279
2019-10-27 19:03:45 -06:00
Shpoike
89365949bc
Squashed commit of the following:
...
commit 8ca122916d
Author: Eric Wasylishen <ewasylishen@gmail.com>
Date: Thu Jul 4 20:54:23 2019 -0600
fix linker error (radlights is in 2 .cpp files)
commit 8f06fc9c8d
Author: Eric Wasylishen <ewasylishen@gmail.com>
Date: Thu Jul 4 20:53:57 2019 -0600
add clarification comment
commit 038a553fb0
Author: Eric Wasylishen <ewasylishen@gmail.com>
Date: Thu Jul 4 20:30:27 2019 -0600
fix tests compilation
commit 02e94ec507
Author: Eric Wasylishen <ewasylishen@gmail.com>
Date: Thu Jul 4 19:59:25 2019 -0600
hlbsp: use q_snprintf
commit 669a5a7911
Author: Eric Wasylishen <ewasylishen@gmail.com>
Date: Thu Jul 4 19:56:21 2019 -0600
Reformat
commit 6653760982
Merge: 347a455 ac3553c
Author: Eric Wasylishen <ewasylishen@gmail.com>
Date: Thu Jul 4 19:28:06 2019 -0600
Merge remote-tracking branch 'origin/master' into hlbsp
# Conflicts:
# include/qbsp/qbsp.hh
commit 347a455102
Author: Shpoike <Shpoike@users.noreply.github.com>
Date: Thu Mar 28 02:18:16 2019 +0000
Misc HLBSP tweaks
Added support for multiple -wadpath args.
Added -xwadpath (for eg valve/*.wad to avoid bloat/license issues).
Reworked hint brushes - the non-hint surfaces can use any name, just so long as they're not 'hint', for compat with zhlt.
Support 'bevel' and 'null' textures for compat with zhlt.
commit 7fb22c7367
Author: Shpoike <Shpoike@users.noreply.github.com>
Date: Thu Mar 28 01:59:42 2019 +0000
Support for halflife-style .rad surface lights (probably too bright, but the basics work).
commit 2da504fb62
Author: Shpoike <Shpoike@users.noreply.github.com>
Date: Thu Mar 28 01:56:27 2019 +0000
Add minus-prefixed textures for halflife's randomised-textures feature, instead of getting crash-to-desktop errors when the map is loaded.
commit 6366199bdb
Author: Shpoike <Shpoike@users.noreply.github.com>
Date: Thu Mar 21 04:51:24 2019 +0000
First attempt at hlbsp output.
2019-07-04 21:08:17 -06:00
Eric Wasylishen
16ad2b077a
qbsp: -objexport debugging: Add another point where an .obj is dumped
2019-01-26 22:22:07 -07:00
Eric Wasylishen
8a47233bbf
bsputil: start a --compare feature for helping with qbsp testing
2019-01-10 02:58:37 -07:00
Eric Wasylishen
fa06716545
common: make VecStrf/VecStr threadsafe
2018-07-24 00:18:43 -06:00
Eric Wasylishen
af6d4744fc
SetQdirFromPath: don't make it an error if the qdir/gamedir/basedir
...
can't be found.
2018-07-23 23:00:56 -06:00
MaxED
07447a633e
Rewritten parts of surface light logic. Should resemble qrad3 looks a bit more now...
...
Added "surflightscale", "surflightbouncescale" and "surflightsubdivision" cmdline/worldspawn settings.
Fixed: a face should not be skipped when it has both sky and nodraw texinfo flags.
Fixed some non-windows compilation errors.
2018-05-25 14:59:22 +03:00
MaxED
0661098bc5
Quake 2 support: area lights, palette/texture loading, transparent/sky/fence face flags.
2018-05-08 15:50:01 +03:00
Eric Wasylishen
7b341e1b55
BSPX_AddLump: copy the input data
2018-02-18 16:06:56 -07:00
Eric Wasylishen
992484f173
common: fix SafeWrite error msg
2018-02-09 11:05:11 -07:00
Eric Wasylishen
b3cd6ccc1a
light: GLM_InterpolateNormal: make more robust against degenerate tris
2018-01-28 02:29:24 -07:00
Eric Wasylishen
6b14e166b8
light: make GLM_InterpolateNormal return failure on degenerate input
2018-01-28 02:19:09 -07:00
Eric Wasylishen
d10dec1803
light: make GLM_PolyCentroid accept degenerate faces (todo: must rename these)
2018-01-12 00:36:12 -07:00
Eric Wasylishen
82e3aef283
light: add FacePairConcavity
2018-01-11 21:57:48 -07:00
Eric Wasylishen
d31d3621bc
light: add MakePlane function
2017-12-10 21:28:35 -07:00
Eric Wasylishen
75bc7b86d0
light: add FIXME
2017-12-05 21:06:51 -07:00
Eric Wasylishen
d4d2d537eb
light: split GLM_PolyRandomPoint into precomputed portion
...
take uniform random params explicitly
2017-11-24 18:01:18 -07:00
Eric Wasylishen
f356ea40d1
bsputils: add more bounds-checked accessors
2017-11-23 23:45:05 -07:00
Eric Wasylishen
88ee157b97
mathlib: add LinesOverlap function
2017-11-23 23:45:00 -07:00
Eric Wasylishen
abf2a3665b
vis: fix to use mbsp_t
2017-10-24 20:01:04 -07:00
Eric Wasylishen
cbba35a346
common: logprint: print to visual studio console
2017-10-24 19:51:29 -07:00
Eric Wasylishen
37e2b94d3e
bsputils: add leafnum bounds check to Light_PointInSolid_r
2017-10-19 13:41:14 -07:00
Eric Wasylishen
873e0b8a35
common: Face_IsLightmapped: q2 support
2017-10-03 14:42:19 -06:00
Eric Wasylishen
2dc22b7088
common: add loadversion to mbsp_t
2017-10-03 14:17:42 -06:00
Eric Wasylishen
dff71edfe9
light: very early q2 support. half of the faces seem to be saved without lightmaps for some reason
2017-10-03 00:33:14 -06:00
Eric Wasylishen
b52c495574
common: fix q2 conversion bugs
2017-10-02 23:32:06 -06:00
Eric Wasylishen
63011ba5a2
common: WriteBSPFile: q2 support
2017-10-02 20:51:24 -06:00
Eric Wasylishen
df06ead299
common: q2 <-> generic conversion
2017-10-02 16:02:01 -06:00
Eric Wasylishen
8a854aeee9
common: add generic <-> bsp2, bsp2rqm conversions
2017-10-01 22:56:57 -06:00
Eric Wasylishen
8813d272cb
common, light, vis: change from bsp2_t to mbsp_t
2017-10-01 22:32:20 -06:00
Eric Wasylishen
b847af61e1
common: bsp29_t <-> mbsp_t conversion
2017-10-01 21:27:00 -06:00
Eric Wasylishen
f7635162c9
common: bspfile refactoring
2017-10-01 20:51:16 -06:00
Eric Wasylishen
5fc3110df6
common: get bspinfo working with q2bsp
2017-09-25 00:22:10 -06:00
Eric Wasylishen
55f2c3c47e
common: add q2 structs to bspfile.hh
2017-09-24 22:47:27 -06:00
Eric Wasylishen
c8ac9d2670
light: print position of degenerate faces during phong shading
2017-07-30 12:01:00 -06:00
Eric Wasylishen
9629134612
qbsp: fix some issues with SplitBrush
2017-07-23 01:32:04 -06:00
Eric Wasylishen
5893c16267
mathlib: add AddPointToBounds, ClearBounds
2017-07-22 16:31:15 -06:00
Eric Wasylishen
2710f9b1a1
qbsp: remove/comment dead code
2017-07-11 00:07:32 -06:00
Eric Wasylishen
4853dd40ee
mathlib: RotateAboutX/Y/Z: change to double
2017-07-05 15:02:24 -06:00
Eric Wasylishen
602616451c
bsputils: add BSP_GetWorldModel
2017-06-25 14:37:26 -06:00
Eric Wasylishen
4d9b41d3ec
mathlib: fix SetPlanePts linkage
2017-06-20 17:07:36 -06:00
Eric Wasylishen
af264821b7
mathlib: factor out SetPlanePts
2017-06-20 14:39:15 -06:00
Eric Wasylishen
c1f3a0f2e4
mathlib: ClosestPointOnLineSegment: handle degenerate line segment
2017-06-15 03:30:43 -06:00
Eric Wasylishen
7545119593
mathlib: change RotateAboutZ to double
2017-06-15 03:30:10 -06:00
Eric Wasylishen
157c3eeb4f
common: cmdlib: Add IsAbsolutePath from qbsp
2017-04-26 15:04:53 -06:00
Eric Wasylishen
e0564e8c2a
common: mathlib: don't need #define ANGLEEPSILON
2017-04-26 14:29:07 -06:00
Eric Wasylishen
ca58e90e15
common: remove EQUAL_EPSILON from mathlib.hh
2017-04-26 14:25:55 -06:00
Eric Wasylishen
902c45c946
all: make VectorCompare take an explicit epsilon
2017-04-26 14:20:45 -06:00
Eric Wasylishen
15cc98eb27
common: move SignedDegreesBetweenUnitVectors from qbsp, add test
2017-04-26 14:04:33 -06:00
Eric Wasylishen
b1f86d7ac1
common: implement buildMeshFromBSP
2017-04-24 02:01:16 -06:00
Eric Wasylishen
5eb4fd8790
common: make Face_Plane_E return a plane3f
2017-04-24 01:54:25 -06:00
Eric Wasylishen
a7df1994dc
common: fix up Face_Plane to remove unnecessary distance calc
2017-04-24 01:47:46 -06:00
Eric Wasylishen
68b084a6c3
replace glm with qvec
2017-04-24 00:26:49 -06:00
Eric Wasylishen
122b5ff51c
common: qmat: use NaN to indicate no inverse
2017-04-24 00:19:47 -06:00
Eric Wasylishen
48e057b31a
common: add qv::to_string
2017-04-23 20:57:35 -06:00
Eric Wasylishen
1c1c105abb
common: switch away from glm::closestPointOnLine
2017-04-23 20:51:02 -06:00
Eric Wasylishen
e5ec45cbe2
common: remove last use of glm::quat
2017-04-23 20:34:21 -06:00
Eric Wasylishen
fab993ad8d
common: add some rotation matrices
2017-04-23 19:59:57 -06:00
Eric Wasylishen
7887318def
common: move vec_from_mangle and mangle_from_vec to mathlib
2017-04-23 19:31:00 -06:00
Eric Wasylishen
eeb00bf74c
common: tidy qmat
2017-04-23 17:41:19 -06:00
Eric Wasylishen
8a4d1ff218
common: add 4x4 (from mesa) and 2x2 matrix inverse
2017-04-23 15:58:51 -06:00
Eric Wasylishen
fd8eafddee
common: add ClosestPointOnLine[Segment]
2017-04-23 14:06:58 -06:00
Eric Wasylishen
0358bc07b8
common: mesh_t: first draft of tjunc fixing
2017-04-23 02:06:20 -06:00
Eric Wasylishen
3f067e001a
common: add DistToLineSegment
2017-04-23 02:05:19 -06:00
Eric Wasylishen
56513cdb8e
common: add DistToLine
2017-04-23 01:39:59 -06:00
Eric Wasylishen
b8f5a4f8e1
common: change mesh_t to use qvec3f
2017-04-22 20:39:50 -06:00
Eric Wasylishen
28081f50c6
common: make float/double versions of aabb3
2017-04-22 15:11:41 -06:00
Eric Wasylishen
ee7181521d
fix build
2017-04-22 13:54:12 -06:00
Eric Wasylishen
c1189abccd
common: split up new octree/mesh/aabb/qvec stuff
2017-04-22 13:29:32 -06:00
Eric Wasylishen
d374a01b5a
mathlib: octree: change to storing in a std::vector
2017-04-20 00:59:00 -06:00
Eric Wasylishen
5b63ddbeba
mathlib: octree, aabb_t rework
2017-04-19 14:02:30 -06:00
Eric Wasylishen
055b5061f1
light: start a mesh_t class
2017-04-19 14:02:19 -06:00
Eric Wasylishen
30d9a53341
light: move FractionOfLine to mathlib
2017-03-18 23:26:16 -06:00
Eric Wasylishen
3e7b4448c1
mathlib: add GLM_PolyArea
2017-03-18 23:26:10 -06:00
Eric Wasylishen
880ad3b381
bpsutil, common, light, vis: bounds check bsp->dfaces access
2017-03-18 16:31:52 -06:00
Eric Wasylishen
29884e2b4a
bsputils: add bounds checking to Face_GetNum
2017-03-18 16:17:01 -06:00
Eric Wasylishen
aa10d2da93
common: add std::vector<glm::vec3> polylib::GLM_WindingPoints(const winding_t *w)
2017-03-15 10:59:46 -06:00
Eric Wasylishen
0eb6864744
mathlib: add GLM_PolyRandomPoint
2017-03-12 12:58:36 -06:00
Eric Wasylishen
902fe7073c
mathlib: add RotateFromUpToSurfaceNormal
2017-03-07 13:13:24 -07:00
Eric Wasylishen
3ba1859be4
mathlib: CosineWeightedHemisphereSample
2017-03-07 12:45:54 -07:00
Eric Wasylishen
97a00f0f41
light: avoid recomputing things in CalcPointNormal
2017-02-26 22:58:08 -07:00
Eric Wasylishen
5630257164
light: catch nan's in normal interpolation
2017-02-26 20:48:47 -07:00
Eric Wasylishen
d88581e2da
light: add GLM_ProjectPointOntoPlane
2017-02-22 01:40:58 -07:00
Eric Wasylishen
044bd4c9c0
mathlib: PointsAlongLine: make into template
2017-02-21 21:18:22 -07:00
Eric Wasylishen
8067e0fa45
mathlib: add PointsAlongLine
2017-02-21 21:18:16 -07:00
Eric Wasylishen
71fbd17ea8
Revert "common: GLM_MakeInwardFacingEdgePlanes: handle non-convex poly"
...
This reverts commit bef9dd63d2 .
2017-02-16 15:47:36 -07:00
Eric Wasylishen
bef9dd63d2
common: GLM_MakeInwardFacingEdgePlanes: handle non-convex poly
2017-02-14 20:51:36 -07:00
Eric Wasylishen
52523c8208
mathlib: expose GLM_MakeInwardFacingEdgePlane()
2017-02-13 13:33:48 -07:00
Eric Wasylishen
2a17b4bccf
build fix
2017-02-12 11:54:52 -07:00
Eric Wasylishen
3a20d5410b
common: add shrink and clip poly funcs
2017-02-12 00:20:38 -07:00
Eric Wasylishen
b33cb75bb3
common: add missing tuple include
2017-02-11 11:56:35 -07:00
Eric Wasylishen
b54f893942
common: add GLM_InterpolateNormal
2017-02-11 11:02:37 -07:00
Eric Wasylishen
8ed7544063
light: fix up barycentric coords code, add tests
2017-02-11 11:02:28 -07:00
Eric Wasylishen
9aae46bd1c
light: adjust Light_PointInSolid to take a model param
2017-02-10 15:54:07 -07:00
Eric Wasylishen
a9f99076fd
common: add GLM_ClosestPointOnPolyBoundary
2017-02-10 15:52:12 -07:00
Eric Wasylishen
bd0556cf22
light: switch to new Face_Centroid
2017-02-09 00:17:22 -07:00
Eric Wasylishen
90bf0134de
common: move vec3_t_to_glm() to mathlib.hh
2017-02-08 15:01:03 -07:00
Eric Wasylishen
f95e8445ef
common: fix build error on windows (M_PI->Q_PI)
2017-02-07 21:36:24 -07:00
Eric Wasylishen
3acc48269e
light: add lanczos filter
2017-02-07 14:27:51 -07:00
Eric Wasylishen
9246454bfc
light: refactor some more stuff to GLM
2017-02-06 23:00:48 -07:00
Eric Wasylishen
7fdb77188c
light: work-in-progress stuff
2017-02-06 21:57:49 -07:00
Eric Wasylishen
9330d2c087
light: rename Face_MakeInwardFacingEdgePlanes() to Face_AllocInwardFacingEdgePlanes()
...
do memory allocation inside the function.
2017-02-01 14:38:42 -07:00
Eric Wasylishen
be3c84ec98
light: add a EdgePlanes_PointInside() function to bsputils.{hh,cc}
2017-02-01 14:38:42 -07:00
Eric Wasylishen
c035907ff8
light: move Face_MakeInwardFacingEdgePlanes() to bsputils.{hh,cc}
2017-02-01 14:38:42 -07:00
Eric Wasylishen
29b420c7dd
light: move Light_PointInSolid to bsputils.{hh,cc}
2017-02-01 14:38:42 -07:00
Eric Wasylishen
b46cba40a4
light: entity warnings: print bbox for bmodel entities
...
fixes https://github.com/ericwa/tyrutils-ericw/issues/120
2016-11-24 17:10:15 -07:00
Eric Wasylishen
cefadfa1f4
build: fix on MSVC 2013
2016-10-17 19:25:27 -07:00
Eric Wasylishen
a6468984bf
all: finish c++ification
2016-10-17 19:52:17 -06:00
Eric Wasylishen
d9bb0be32e
light: move Face_Contents to common
2016-10-17 17:37:28 -06:00
Eric Wasylishen
801d9652c0
common: add util function to get a face number
2016-09-20 00:01:15 -06:00
Eric Wasylishen
494f9bb050
common: make Q_assert inline
2016-09-18 15:44:04 -06:00
Eric Wasylishen
857b4402ad
light: change assertions to Q_assert (so they are all enabled in release builds)
2016-09-18 15:41:56 -06:00
Eric Wasylishen
b2fb764e36
common: new assertion macro used in all builds (debug/release)
2016-09-18 15:39:16 -06:00
Eric Wasylishen
33093151c6
common: ClipWinding: fix constness
2016-09-10 15:32:50 -06:00
Eric Wasylishen
687b1b20f6
light: bsp backend: fix and simplify Face_Contents to only look at texture names. it was broken when -splitspecial was used.
2016-09-09 13:04:53 -06:00
Eric Wasylishen
4fb903bd8e
common: add more AABB functions
2016-08-09 17:56:55 -06:00
Eric Wasylishen
79525b9aee
common: mathlib: add UniformPointOnSphere
2016-08-09 17:20:51 -06:00
Eric Wasylishen
0c63d61a60
common: mathlib: use EQUAL_EPSILON in AABBsDisjoint
2016-08-09 16:41:11 -06:00
Eric Wasylishen
0b6578e4b3
common: mathlib: add some AABB functions
2016-08-09 16:27:51 -06:00
Eric Wasylishen
d3070a18a4
common: build fix (M_PI -> Q_PI)
2016-08-09 16:05:43 -06:00
Eric Wasylishen
4be2fe289e
common: add RandomDir
2016-08-09 15:29:23 -06:00
Eric Wasylishen
68e1736ad1
light: move more stuff to bsputils.cc
2016-08-07 23:07:20 -06:00
Eric Wasylishen
486606eb88
light: rename GetSurfaceVertex to Face_VertexAtIndex
2016-08-07 22:57:45 -06:00