Skip to content
Quake 3 BSP-to-AAS compiler
Branch: master
Clone or download
Pull request Compare This branch is 72 commits ahead of bnoordhuis:master.
sago007 Update README.md
Added the Travis CI shield to prove that it compiles.
Latest commit e81b0f2 Dec 23, 2016
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
deps Optimized it. Made it more predictable and gave it a new version number. Sep 13, 2016
.gitignore Removed some unused files. Replaced by cmake Sep 4, 2016
.travis.yml Added Travis build file Sep 6, 2016
CMakeLists.txt Some cleanup. Sep 11, 2016
LICENSE Add LICENSE file. Aug 19, 2011
README.md Update README.md Dec 23, 2016
_files.cpp Renamed files. Does not compile Sep 11, 2016
aas_areamerging.cpp Removed a lot of unused threading functions. I have tested that the W… Sep 13, 2016
aas_areamerging.h Convert Windows line endings to UNIX line endings. Nov 6, 2010
aas_cfg.cpp Removed a lot of unused threading functions. I have tested that the W… Sep 13, 2016
aas_cfg.h Removed a lot of unused threading functions. I have tested that the W… Sep 13, 2016
aas_create.cpp
aas_create.h Removed a lot of unused threading functions. I have tested that the W… Sep 13, 2016
aas_edgemelting.cpp Renamed files. Does not compile Sep 11, 2016
aas_edgemelting.h Convert Windows line endings to UNIX line endings. Nov 6, 2010
aas_facemerging.cpp
aas_facemerging.h Convert Windows line endings to UNIX line endings. Nov 6, 2010
aas_file.cpp Fixed all but one warning Sep 11, 2016
aas_file.h Fix implicit function declaration warnings. Jul 31, 2012
aas_gsubdiv.cpp Added more const, static and removed unused functions Sep 11, 2016
aas_gsubdiv.h Convert Windows line endings to UNIX line endings. Nov 6, 2010
aas_map.cpp Removed a lot of unused threading functions. I have tested that the W… Sep 13, 2016
aas_map.h Converted a file to c++ and added some pragma onces Sep 7, 2016
aas_prunenodes.cpp Converted a couple of more files to C++ and fixed some bugs Sep 9, 2016
aas_prunenodes.h Converted a couple of more files to C++ and fixed some bugs Sep 9, 2016
aas_store.cpp Removed a lot of unused threading functions. I have tested that the W… Sep 13, 2016
aas_store.h Removed a lot of unused threading functions. I have tested that the W… Sep 13, 2016
aasfile.h Now compiles as C++. Currently with warnings. The offsetof along with… Sep 11, 2016
be_aas.h Now compiles as C++. Currently with warnings. The offsetof along with… Sep 11, 2016
be_aas_bspc.cpp Now compiles as C++. Currently with warnings. The offsetof along with… Sep 11, 2016
be_aas_bspc.h Fix implicit function declaration warnings. Jul 31, 2012
be_aas_cluster.h Now compiles as C++. Currently with warnings. The offsetof along with… Sep 11, 2016
be_aas_def.h Now compiles as C++. Currently with warnings. The offsetof along with… Sep 11, 2016
be_aas_optimize.h Now compiles as C++. Currently with warnings. The offsetof along with… Sep 11, 2016
botlib.h Now compiles as C++. Currently with warnings. The offsetof along with… Sep 11, 2016
brushbsp.cpp Added more const, static and removed unused functions Sep 11, 2016
bspc.cpp
cm_public.h Now compiles as C++. Currently with warnings. The offsetof along with… Sep 11, 2016
csg.cpp Removed unused function. Sep 12, 2016
glfile.cpp Added more const, static and removed unused functions Sep 11, 2016
l_bsp_ent.cpp Deleted most of the Q2 code. There is a slight overlap with the Q3 co… Sep 13, 2016
l_bsp_ent.h Optimized it. Made it more predictable and gave it a new version number. Sep 13, 2016
l_bsp_q2.cpp Deleted most of the Q2 code. There is a slight overlap with the Q3 co… Sep 13, 2016
l_bsp_q2.h Deleted most of the Q2 code. There is a slight overlap with the Q3 co… Sep 13, 2016
l_bsp_q3.cpp Removed a lot of unused threading functions. I have tested that the W… Sep 13, 2016
l_bsp_q3.h Converted map_q3 to C++. Well sort of. It compiles but it is still C … Sep 4, 2016
l_cmd.cpp It is now possible to compile the Windows version with MXE Sep 11, 2016
l_cmd.h Added more const, static and removed unused functions Sep 11, 2016
l_libvar.h Now compiles as C++. Currently with warnings. The offsetof along with… Sep 11, 2016
l_log.cpp Removed a lot of unused threading functions. I have tested that the W… Sep 13, 2016
l_log.h Added a lot of format checks and fixed several related bugs Sep 9, 2016
l_math.cpp Removed a lot of unused threading functions. I have tested that the W… Sep 13, 2016
l_math.h Converted map_q3 to C++. Well sort of. It compiles but it is still C … Sep 4, 2016
l_mem.cpp Now compiles as C++. Currently with warnings. The offsetof along with… Sep 11, 2016
l_mem.h Converted a couple of more files to C++ and fixed some bugs Sep 9, 2016
l_memory.h Now compiles as C++. Currently with warnings. The offsetof along with… Sep 11, 2016
l_poly.cpp Removed a lot of unused threading functions. I have tested that the W… Sep 13, 2016
l_poly.h Now compiles as C++. Currently with warnings. The offsetof along with… Sep 11, 2016
l_precomp.h Now compiles as C++. Currently with warnings. The offsetof along with… Sep 11, 2016
l_qfiles.cpp Some cleanup. Sep 12, 2016
l_qfiles.h Some cleanup Sep 11, 2016
l_script.h Now compiles as C++. Currently with warnings. The offsetof along with… Sep 11, 2016
l_struct.h Now compiles as C++. Currently with warnings. The offsetof along with… Sep 11, 2016
l_threads.cpp Removed a lot of unused threading functions. I have tested that the W… Sep 13, 2016
l_threads.h Removed a lot of unused threading functions. I have tested that the W… Sep 13, 2016
l_utils.cpp Renamed files. Does not compile Sep 11, 2016
l_utils.h Converted a couple of more files to C++ and fixed some bugs Sep 9, 2016
leakfile.cpp Some cleanup. Sep 12, 2016
local.h Some cleanup. Sep 11, 2016
map.cpp Deleted most of the Q2 code. There is a slight overlap with the Q3 co… Sep 13, 2016
map_q2.cpp Deleted most of the Q2 code. There is a slight overlap with the Q3 co… Sep 13, 2016
map_q3.cpp Deleted most of the Q2 code. There is a slight overlap with the Q3 co… Sep 13, 2016
nodraw.cpp Renamed files. Does not compile Sep 11, 2016
portals.cpp Fixed the remaining warning Sep 11, 2016
q2files.h Now compiles as C++. Currently with warnings. The offsetof along with… Sep 11, 2016
q3files.h Merge remote-tracking branch 'ttimo/master' Jun 24, 2016
q_shared.h
qbsp.h Deleted most of the Q2 code. There is a slight overlap with the Q3 co… Sep 13, 2016
qcommon_local.h Now compiles as C++. Currently with warnings. The offsetof along with… Sep 11, 2016
qfiles.h Convert Windows line endings to UNIX line endings. Nov 6, 2010
tetrahedron.cpp
tetrahedron.h Convert Windows line endings to UNIX line endings. Nov 6, 2010
textures.cpp Some cleanup. Sep 12, 2016
tree.cpp Now compiles as C++. Currently with warnings. The offsetof along with… Sep 11, 2016
unzip.h Converted a couple of more files to C++ and fixed some bugs Sep 9, 2016

README.md

bspc Build Status

This is the Quake III: Arena BSP-to-AAS compiler. This is a slight variation that combines a couple of different versions from github into one.

Another difference is that a lot of legacy support has been removed. Q1, Q2, Sin, Half-Life are no longer suported. This has reduced the number of code lines significantly. The basic source files has also been converted to C++11, to make future enhancement easier. The code is still a bit of a mine field but I am working on changing that.

Downloading

You can download the latest version here.

Compiling

Provided that you have CMake, A C compiler (clang or gcc) and a C++11 compiler (clang or gcc based) do:

cmake . && make

The Windows version is cross compiled using MXE (www.mxe.cc):

i686-w64-mingw32.static-cmake . && make

Usage

Straight from the source:

Usage:   bspc [-<switch> [-<switch> ...]]
Example 1: bspc -bsp2aas /quake3/baseq3/maps/mymap?.bsp
Example 2: bspc -bsp2aas /quake3/baseq3/pak0.pk3/maps/q3dm*.bsp

Switches:
   bsp2aas  <[pakfilter/]filter.bsp>    = convert BSP to AAS
   reach    <filter.bsp>                = compute reachability & clusters
   cluster  <filter.aas>                = compute clusters
   aasopt   <filter.aas>                = optimize aas file
   aasinfo  <filter.aas>                = show AAS file info
   output   <output path>               = set output path
   threads  <X>                         = set number of threads to X
   cfg      <filename>                  = use this cfg file
   optimize                             = enable optimization
   noverbose                            = disable verbose output
   breadthfirst                         = breadth first bsp building
   nobrushmerge                         = don't merge brushes
   noliquids                            = don't write liquids to map
   freetree                             = free the bsp tree
   nocsg                                = disables brush chopping
   forcesidesvisible                    = force all sides to be visible
   grapplereach                         = calculate grapple reachabilities

Works on

This version is primarily targeted OpenArena. It is tested on http://files.poulsander.com/~poul19/public_files/intooa.pk3 and http://files.poulsander.com/~poul19/public_files/islandctf4a3.pk3

Support

File a bug report if you run into issues.

License

This program is licensed under the GNU Public License v2.0 and any later version.

You can’t perform that action at this time.