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
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
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
e2ba8d7b5a
fNoclip not required for Q2 any more
2021-10-10 14:12:02 -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
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
Jonathan
52839d4e7f
Run clang-format pass
2021-10-05 15:54:06 -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
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
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
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
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
f1744118e2
qbsp: move BSPX BRUSHLIST struct types out to bspfile.hh
2021-09-25 15:42:42 -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
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
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
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
ae02ff5393
Implement leafbrushes cache
...
Fix bmodel leafbrushes (tank Spoike)
2021-09-12 13:27:39 -04: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
Jonathan
8cdb9ff6c4
Initial attempt at leafbrushes
2021-09-09 05:11:47 -04:00
Jonathan
9800f4f738
Mostly all native!!
2021-09-09 00:26:17 -04: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
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
04ad8e2962
OOP wad file stuff
2021-09-04 23:23:03 -04: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
54799a11fc
qbsp: restore bspx brushes writing
2021-09-04 11:47:33 -06:00
Eric Wasylishen
047bc1299a
qbsp: fix tests
2021-09-01 01:19:24 -06: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
899b2b8384
qbsp: drop MemSize stuff
2021-08-24 22:51:44 -06:00
Eric Wasylishen
1123205d47
qbsp: replace FreeMem uses
2021-08-24 22:49:06 -06:00
Eric Wasylishen
208a9610ad
qbsp: delete bspfile.cc/hh
2021-08-24 22:23:24 -06:00
Eric Wasylishen
561ffffb9b
qbsp: refactor model writing
2021-08-23 21:01:49 -06:00
Eric Wasylishen
24fc2ffc6a
qbsp: refactor plane lump writing
2021-08-23 18:02:05 -06:00
Eric Wasylishen
460428d099
qbsp: refactor texinfo lump writing
2021-08-23 18:02:05 -06:00
Eric Wasylishen
ff7f8a1542
qbsp: add -nothreads debug option
2021-08-23 00:12:38 -06:00
Eric Wasylishen
b5fcdec19e
cleanup: remove "byte" typedef
2021-02-07 14:02:35 -07:00
Eric Wasylishen
79d3aa99de
qbsp: fix relative paths for .wad files
...
Fixes #279
2019-10-27 19:03:45 -06:00
Eric Wasylishen
209d481b4c
qbsp: attempted fix of -wrbrushes (ProcessEntity behaviour was changed
...
a while ago and copy/pasted code in BSPX_CreateBrushList wasn't updated)
2019-10-03 00:13:00 -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
83d9071269
qbsp: fix tjuncs on bmodels
...
Fixes #232
2019-03-25 01:31:43 -06:00
Eric Wasylishen
ad65449cef
qbsp: add "-midsplitsurffraction n" option as an alt. to -maxnodesize
...
switch to midsplit if the node contains more than this fraction of the
model's total surfaces. Try 0.15 to 0.5. Works better than
maxNodeSize for maps with a 3D skybox (e.g. +-128K unit maps)
2019-02-11 00:52:38 -07: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
4a360989f3
qbsp: add -worldextent option for compiling large maps, default 65536
2018-12-24 01:53:08 -07:00
Eric Wasylishen
4491598bdb
qbsp: fix qbsp crash when worldspawn has 0 brushes
2018-03-23 14:48:20 -06:00
Eric Wasylishen
b85d627c8f
change branding to ericw-tools
2017-10-19 16:35:37 -06:00
Eric Wasylishen
d4f3e5de65
qbsp: partially revert "csg: mirror faces, even for solid, to help leaf content assignment" and turn it into a flag
...
(comit a910dd861a )
fixes https://github.com/ericwa/tyrutils-ericw/issues/175 (swtest2.map)
2017-09-16 11:18:30 -06:00
Eric Wasylishen
8bfe9b4602
qbsp: exportobj.cc: helpers for exporting face/brush vectors
2017-07-23 14:15:10 -06:00
Eric Wasylishen
7c49d499c2
qbsp: tidy FreeBrushes
2017-07-23 02:48:58 -06:00
Eric Wasylishen
1a15d5f0e9
qbsp: add -leaktest option (from q2)
2017-07-15 12:23:11 -06:00
Eric Wasylishen
0263f95e59
qbsp: add -expand flag from q3map for testing hull1 expansion
2017-07-11 17:54:28 -06:00
Eric Wasylishen
be2799578f
qbsp: remove dead code (extrafaces)
2017-07-11 00:05:57 -06:00
Eric Wasylishen
240d65f788
qbsp: outside.cc rewrite
...
- no more recursively traversing portals, as this can overflow the stack
- better outside filling and .pts file generation, inspired by q3map
(do a bfs from all leafs with entities, storing the number of steps
from an occupied leaf in each leaf. Then do a dfs from the outside node
to the first entity we hit.)
- .por file writing was dropped for now, can be re-added later
2017-07-10 12:46:22 -06:00
Eric Wasylishen
bb3e296a0d
qbsp: FillOutside: count portals yourself
2017-07-09 01:06:49 -06:00
Eric Wasylishen
01fa4a9f58
qbsp: set up test case for #158
2017-07-08 16:23:08 -06:00
Eric Wasylishen
117f568cd7
qbsp: don't write unused texinfo.
...
also cleanup planes writing
2017-07-03 01:58:26 -06:00
Eric Wasylishen
97787e9d2c
qbsp: add extrafaces argument to MakeFaceEdges
2017-07-02 20:06:41 -06:00
Eric Wasylishen
80380fa7fd
qbsp: drop ExportNodePlanes. Planes were already deduplicated by
...
FindPlanes.
2017-07-01 17:25:02 -06:00
Eric Wasylishen
73ffb37417
misc_external_map: fix -onlyents
2017-06-15 17:38:49 -06:00
Eric Wasylishen
37ed11c2ed
qbsp: experimental "misc_external_map" entity
...
"_external_map" - map to load
"_external_map_classname" - classname to switch to (e.g. func_wall)
"_external_map_angle" - rotation angle around Z axis
2017-06-15 03:43:39 -06:00
Eric Wasylishen
19dd7b1c4a
qbsp: log number of planes after calling Brush_LoadEntity
2017-06-10 01:15:49 -06:00
Eric Wasylishen
77f3da30bf
qbsp: add func_detail_fence
2017-06-09 15:13:13 -06:00
Eric Wasylishen
d01b740b5b
qbsp: add -omitdetailwall and -omitdetailillusionary
2017-06-07 14:12:02 -06:00
Eric Wasylishen
44445becb8
qbsp: rename "_nosurfacefragment" to func_detail_wall
2017-06-05 16:22:15 -06:00
Eric Wasylishen
3ca83ea46e
qbsp: add logging for func_detail_illusionary and _nosurfacefragment
2017-06-05 14:37:40 -06:00
Eric Wasylishen
ac78efed98
qbsp: func_detail rewrite.
...
- Fix corrupt VIS issues when using func_detail
- func_detail no longer seals the map.
- add func_detail_illusionary entity type
- add func_detail key "_nosurfacefragment"
2017-06-05 14:09:31 -06:00
Eric Wasylishen
213e4b9f7d
qbsp: add a -nodetail switch, for debugging func_detail issues
2017-05-31 23:23:53 -06:00
Eric Wasylishen
f5d4cd9202
qbsp: add -forceprt1 option for generating a PRT1 to load in editors
...
This is for previewing the portals between clusters, since no editors
can load PRT2.
2017-05-31 23:18:04 -06:00
Eric Wasylishen
8f4b506608
qbsp: refactor cmake setup
2017-04-28 13:04:51 -06:00
Eric Wasylishen
64efc77055
qbsp: expose some stuff in qbsp.hh
2017-04-28 13:04:44 -06:00
Eric Wasylishen
9034eb107a
qbsp: move remaining headers to include directory
2017-04-20 19:52:06 -06:00
Eric Wasylishen
ed89dc487a
qbsp: add docs for -convert option
2017-03-26 17:07:52 -06:00
Eric Wasylishen
af355a87be
qbsp: fix -convert quake2
2017-03-26 16:35:26 -06:00
Eric Wasylishen
f3caed2f8b
qbsp: support -convert quake2 to write classic q2/q3 format with three 0 flags
2017-03-26 16:06:21 -06:00
Eric Wasylishen
8294e1d750
qbsp: change -convert valve220 to shorter -convert valve
2017-03-26 15:32:58 -06:00
Eric Wasylishen
57bed163be
qbsp: change "brushprimtivies" label to shorter "bp"
2017-03-23 14:38:08 -06:00
Eric Wasylishen
c2bb2bea32
qbsp: first draft of * to valve220 conversion
2017-03-21 21:01:10 -06:00
Eric Wasylishen
a6f56d9111
qbsp: add -omitdetail option
2017-02-27 13:26:01 -07:00
Eric Wasylishen
a6468984bf
all: finish c++ification
2016-10-17 19:52:17 -06:00
Eric Wasylishen
cc12810da3
qbsp: brush primitives support
2016-10-04 22:39:13 -06:00
Eric Wasylishen
e3775e7f09
qbsp: accept absolute paths to map file (thanks lurq)
2016-09-24 12:34:29 -06:00
Eric Wasylishen
939778bd23
build: add snprintf wrapper from QuakeSpasm (vs2013 compat)
2016-08-06 15:47:40 -07:00
Eric Wasylishen
1340529234
qbsp: add -splitsky and -splitturb, finer control over -splitspecial
2016-04-16 22:53:33 -06:00
Eric Wasylishen
60c0b64906
qbsp: change mapdata_t to use std::vector
2016-03-20 14:02:31 -06:00
Eric Wasylishen
4ee88ede3b
qbsp: turn map.num* into functions
2016-03-12 13:50:24 -07:00
Eric Wasylishen
923118dfc6
qbsp: convert qbsp.c to c++
2016-03-11 20:43:05 -07:00