Commit Graph

128 Commits

Author SHA1 Message Date
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 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
Eric Wasylishen d2ea0cee41 Merge remote-tracking branch 'origin/master' into qbsp-use-common 2021-09-12 23:04:42 -06:00
Jonathan 42cc946db1 Fix texinfo 2021-09-12 11:14:52 -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
Ozkan Sezer b2911290a7
fix hexen2 hull sizes (#318) 2021-09-11 11:46:03 -06: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
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 c16bbf403d Change miptex thingies to handle const as the comment wishes they would
Use optional to properly indicate the intended purpose of optional/"unset" values rather than a magic number (also because for some reason outputnum was stuck at 0 even though it defaults to -1 and I didn't want to debug why)
beginning of Q2 contents
2021-09-07 03:24:16 -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 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 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
Jonathan 3b656e6ef1 Cleanup & preserve texture name for q2bsp 2021-09-04 22:15:04 -04:00
Eric Wasylishen 54d9e08033 qbsp: handle target bsp version 2021-09-01 00:42:30 -06:00
Eric Wasylishen 1123205d47 qbsp: replace FreeMem uses 2021-08-24 22:49:06 -06:00
Eric Wasylishen 1f7ac25f0c qbsp: removing fancy AllocMem uses 2021-08-24 22:40:35 -06:00
Eric Wasylishen c30a0a46a9 qbsp: fix origin brushes in hexen 2. Drop _no_bbox_rotation_expansion
document origin brushes. Never expand the bbox when origin brushes are in
use.
2020-02-24 01:26:53 -07:00
Eric Wasylishen cefd20c8da qbsp: fixes for -wrbrushes + rotation 2019-11-24 17:23:41 -07:00
Eric Wasylishen d7d797b898 qbsp: restore bounds expansion for rotators.
Add "_no_bbox_rotation_expansion" key for opting-out of the bounds expansion

Fixes #271
2019-10-27 23:02:05 -06:00
Eric Wasylishen 4ec22ee3f9 qbsp: more logging of face line numbers for errors/warnings 2019-10-13 23:10:42 -06:00
Eric Wasylishen 1577981960 qbsp: fix clip brushes export with -wrbrushes, and various other
fixes for -wrbrushes
2019-10-03 19:59:56 -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 ac3553cb50 brush.cc: temporary hotfix, disable bounding box tweak when rotate_offset
is set. Breaks usage of origin brush with func_train
2019-06-29 18:27:05 -06:00
Eric Wasylishen 4a360989f3 qbsp: add -worldextent option for compiling large maps, default 65536 2018-12-24 01:53:08 -07:00
Eric Wasylishen fc72bbb935 qbsp: fix _mirrorinside on bmodels so that they have CONTENTS_SOLID
as expected
2018-08-28 21:23:08 -06:00
Eric Wasylishen 30c19ab9da qbsp: support reading Q2/Q3 detail flag 2018-03-18 19:50:35 -06:00
Eric Wasylishen f92b48a8cb qbsp: experimental _noclipfaces key 2018-03-13 12:23:41 -06:00
Eric Wasylishen c9b32214c1 qbsp: fix "_mirrorinside" on bmodels.
NOTE: This turns the contents of bmodels to CONTENTS_EMPTY if
"_mirrorinside" is used. This is not ideal (e.g. if used on a func_door,
bullets will go through the door but it blocks the player), but it's
usable for func_illusionary at least.
2018-03-12 21:15:31 -06:00
Eric Wasylishen 3b3d753cf4 qbsp: make -omitdetail affect all detail types 2018-01-30 01:10:25 -07:00
Eric Wasylishen 2ea0076160 qbsp: experimental func_illusionary_visblocker 2017-10-24 22:17:10 -07:00
Eric Wasylishen d195c0bd2a qbsp: add _mirrorinside key for func_water, etc. 2017-08-27 12:14:09 -06:00
Eric Wasylishen c300170752 qbsp: disable q3map stuff 2017-07-24 14:13:57 -06:00
Eric Wasylishen 9377663e3c qbsp: fix rejecting valid brushes in SplitBrush 2017-07-23 16:29:00 -06:00
Eric Wasylishen 39aa7dcd0f qbsp: add FilterStructuralBrushesIntoTree 2017-07-23 13:13:09 -06:00
Eric Wasylishen b38c04b372 qbsp: clean up brush memory leaks 2017-07-23 13:12:14 -06:00
Eric Wasylishen 7c49d499c2 qbsp: tidy FreeBrushes 2017-07-23 02:48:58 -06:00
Eric Wasylishen 578d24951d qbsp: fix memory corruption in SplitBrush 2017-07-23 01:51:31 -06:00
Eric Wasylishen 9629134612 qbsp: fix some issues with SplitBrush 2017-07-23 01:32:04 -06:00
Eric Wasylishen 3bb22ef22b qbsp: add SplitBrush from q3map (not yet tested) 2017-07-23 00:42:09 -06:00
Eric Wasylishen 11a7e7bc88 qbsp: refactor BrushMostlyOnSide to take separate normal/dist 2017-07-22 19:36:55 -06:00
Eric Wasylishen 3c7ea88c37 qbsp: add CopyBrush 2017-07-22 18:20:03 -06:00
Eric Wasylishen 5158b6d296 qbsp: add BoundBrush (from q3map) 2017-07-22 17:09:03 -06:00
Eric Wasylishen 7ef5ad162d qbsp: add BrushMostlyOnSide (from q3map) 2017-07-22 17:05:09 -06:00
Eric Wasylishen 9868c7f965 qbsp: Add BrushVolume 2017-07-22 16:33:26 -06:00
Eric Wasylishen 7d1dc71069 qbsp: add Face_Plane 2017-07-22 16:31:26 -06:00
Eric Wasylishen 0ebbdac5f9 qbsp: refactor FindPlane 2017-07-17 21:24:32 -06:00
Eric Wasylishen 8b9f5ea40a qbsp: fix handling of duplicate planes
fixes spurious leak in e1m4.map
2017-07-15 13:51:26 -06:00
Eric Wasylishen 80380fa7fd qbsp: drop ExportNodePlanes. Planes were already deduplicated by
FindPlanes.
2017-07-01 17:25:02 -06:00
Eric Wasylishen 85a6b9095d qbsp: refactor PlaneInvEqual 2017-06-20 13:07:17 -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 224b0c4d2e qbsp: "Couldn't create brush faces": print .map line number 2017-04-30 19:05:01 -06:00
Eric Wasylishen 32eaa99d40 qbsp: rename our plane_t to qbsp_plane_t 2017-04-26 14:55:26 -06:00
Eric Wasylishen 902c45c946 all: make VectorCompare take an explicit epsilon 2017-04-26 14:20:45 -06:00
Eric Wasylishen 9034eb107a qbsp: move remaining headers to include directory 2017-04-20 19:52:06 -06:00
Eric Wasylishen 62f17545b9 qbsp: expose LoadBrush in header 2017-03-26 16:41:16 -06:00
Eric Wasylishen a6f56d9111 qbsp: add -omitdetail option 2017-02-27 13:26:01 -07:00
Eric Wasylishen 2673d9d8c3 qbsp: fix broken clipping hulls on rotating objects 2017-01-25 14:59:40 -07:00
Eric Wasylishen cc71ad024f qbsp: origin brush support
light: allow model offset on any brush entity with "origin" key set, not just ones with a "rotate_*" classname
2017-01-24 21:39:03 -07:00
Eric Wasylishen e5f5b99584 qbsp: bounds check some array accesses 2016-11-02 16:52:12 -06:00
Eric Wasylishen 05447ee0b9 qbsp: use a mtexinfo_t for texinfo before writing to bsp 2016-11-02 16:45:41 -06:00
Eric Wasylishen a6468984bf all: finish c++ification 2016-10-17 19:52:17 -06:00
Eric Wasylishen 939778bd23 build: add snprintf wrapper from QuakeSpasm (vs2013 compat) 2016-08-06 15:47:40 -07: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 3db441eea2 qbsp: rename files to .cc 2016-03-12 13:02:28 -07:00