use some explicit types (bspbrush_t::ptr for pointer, bspbrush_t::container for container of pointers, and bspbrush_t::make_ptr to create one) so that we can swap it out with different pointers easier later swap out bspbrush_t::ptr from unique_ptr to shared_ptr; it's not important yet, but it does not increase compilation time and will allow us to pass things to functions like SplitBrush without destroying the original as long as we still have a reference to it somewhere (important for ChopBrushes) add get_positive_plane to mapface_t instead of creating a whole copy of the bspbrush_t list, BrushBSP now just creates copies of the shared_ptrs which are then filtered down the tree; the originals are never modified by SplitBrushList and friends, only split into new brushes, so this is safe from what I can tell portals now directly reference the mapface_ts original_brushes now directly reference the mapbrush_ts early exit in `BrushBSP` if brush list is empty (moved to top) |
||
|---|---|---|
| .github/workflows | ||
| 3rdparty | ||
| bspinfo | ||
| bsputil | ||
| cmake | ||
| common | ||
| docs | ||
| include | ||
| light | ||
| lightpreview | ||
| qbsp | ||
| testmaps | ||
| tests | ||
| vis | ||
| .clang-format | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmodules | ||
| CMakeLists.txt | ||
| COPYING | ||
| README.md | ||
| appveyor.yml | ||
| build-appveyor.ps1 | ||
| build-linux-64.sh | ||
| build-osx.sh | ||
| changelog.md | ||
| clang-format-all.sh | ||
| gpl_v3.txt | ||
| testmaps.hh.in | ||
README.md
ericw-tools
- Website: http://ericwa.github.io/ericw-tools
- Maintainer: Eric Wasylishen (AKA ericw)
- Email: ewasylishen@gmail.com
Original tyurtils:
- Website: http://disenchant.net
- Author: Kevin Shanahan (AKA Tyrann)
- Email: tyrann@disenchant.net
About
ericw-tools is a branch of Tyrann's quake 1 tools, focused on adding lighting features, mostly borrowed from q3map2. There are a few bugfixes for qbsp as well. Original readme follows:
A collection of command line utilities for building Quake levels and working with various Quake file formats. I need to work on the documentation a bit more, but below are some brief descriptions of the tools.
Included utilities:
-
qbsp - Used for turning a .map file into a playable .bsp file.
-
light - Used for lighting a level after the bsp stage. This util was previously known as TyrLite
-
vis - Creates the potentially visible set (PVS) for a bsp.
-
bspinfo - Print stats about the data contained in a bsp file.
-
bsputil - Simple tool for manipulation of bsp file data
See the doc/ directory for more detailed descriptions of the various tools capabilities. See changelog.md for a brief overview of recent changes or https://github.com/ericwa/ericw-tools for the full changelog and source code.
Compiling
Dependencies: Embree 3.0+, TBB (TODO: version?), Sphinx (for building manuals)
Ubuntu
sudo apt install libembree-dev libtbb-dev cmake build-essential g++
sudo apt install python3-pip
python3 -m pip install sphinx_rtd_theme
export PATH="~/.local/bin/:$PATH"
git clone --recursive https://github.com/ericwa/ericw-tools
cd ericw-tools
mkdir build
cd build
cmake ..
Windows
Example using vcpkg (32-bit build):
# TODO: sphinx installation
git clone --recursive https://github.com/ericwa/ericw-tools
cd ericw-tools
git clone https://github.com/microsoft/vcpkg
.\vcpkg\bootstrap-vcpkg.bat
# NOTE: vcpkg builds for 32-bit by default
# NOTE: takes 30+ minutes
.\vcpkg\vcpkg install embree3
mkdir build
cd build
# PowerShell syntax for getting current directory -
# otherwise, replace with absolute path to "vcpkg/scripts/buildsystems/vcpkg.cmake"
cmake .. -DCMAKE_TOOLCHAIN_FILE="$(pwd)/../vcpkg/scripts/buildsystems/vcpkg.cmake" -DCMAKE_GENERATOR_PLATFORM=Win32
macOS 10.15
brew install embree tbb
python3 -m pip install sphinx_rtd_theme
git clone --recursive https://github.com/ericwa/ericw-tools
cd ericw-tools
mkdir build
cd build
cmake .. -GXcode -DCMAKE_PREFIX_PATH="$(brew --prefix embree);$(brew --prefix tbb)"
Credits
- Kevin Shanahan (AKA Tyrann) for the original tyrutils
- id Software (original release of these tools is at https://github.com/id-Software/quake-tools)
- rebb (ambient occlusion, qbsp improvements)
- q3map2 authors (AO, sunlight2, penumbra, deviance are from q3map2)
- Spike (hexen 2 support, phong shading, various features)
- MH (surface lights based on MHColour)
- mfx, sock, Lunaran (testing)
- Thanks to users at func_msgboard for feedback and testing
License
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Builds using Embree are licensed under GPLv3+ for compatibility with the Apache license.