Merge branch 'master-merge' into qbsp-use-common

This commit is contained in:
Eric Wasylishen 2021-09-20 18:38:48 -06:00
commit 27f391d27c
55 changed files with 1559 additions and 1434 deletions

8
.gitignore vendored
View File

@ -5,3 +5,11 @@ build*/
CMakeFiles/
*.xcodeproj
.*/
testmaps/*.bsp
testmaps/*.log
testmaps/*.prt
testmaps/*.vis
testmaps/quake_map_source/*.bsp
testmaps/quake_map_source/*.log
testmaps/quake_map_source/*.prt
testmaps/quake_map_source/*.vis

View File

@ -10,40 +10,7 @@ install:
- ps: Invoke-WebRequest 'https://github.com/oneapi-src/oneTBB/releases/download/v2020.2/tbb-2020.2-win.zip' -OutFile 'tbb.zip'
- ps: 7z x tbb.zip -oc:\
build_script:
- ps: >-
git submodule update --init --recursive
$env:Path += ";C:\cygwin64\bin"
mkdir cmakebuild
cd cmakebuild
cmake .. -T v142 -Dembree_DIR="C:\embree-3.12.1.x64.vc14.windows" -DTBB_DIR="C:\tbb\cmake" -DCMAKE_GENERATOR_PLATFORM=x64 -DENABLE_LIGHTPREVIEW=NO -DQt5Widgets_DIR="C:\Qt\5.8\msvc2013_64\lib\cmake\Qt5Widgets"
$cmakePlatform = "x64"
msbuild /target:testlight /p:Configuration=Release /p:Platform=$cmakePlatform /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" ericw-tools.sln
if ( $? -eq $false ) {
throw "testlight failed to build"
}
msbuild /target:testqbsp /p:Configuration=Release /p:Platform=$cmakePlatform /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" ericw-tools.sln
if ( $? -eq $false ) {
throw "testqbsp failed to build"
}
msbuild /p:Configuration=Release /p:Platform=$cmakePlatform /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" PACKAGE.vcxproj
if ( $? -eq $false ) {
throw "package failed"
}
.\light\Release\testlight.exe
.\qbsp\Release\testqbsp.exe
- cmd: powershell .\build-appveyor.ps1
artifacts:
- path: cmakebuild\*.zip
deploy:

54
build-appveyor.ps1 Normal file
View File

@ -0,0 +1,54 @@
git submodule update --init --recursive
$env:Path += ";C:\cygwin64\bin"
# For sha256sum
$env:Path += ";C:\Program Files\Git\usr\bin"
mkdir cmakebuild
cd cmakebuild
cmake .. -T v142 -Dembree_DIR="C:\embree-3.12.1.x64.vc14.windows" -DTBB_DIR="C:\tbb\cmake" -DCMAKE_GENERATOR_PLATFORM=x64 -DENABLE_LIGHTPREVIEW=NO -DQt5Widgets_DIR="C:\Qt\5.8\msvc2013_64\lib\cmake\Qt5Widgets"
$cmakePlatform = "x64"
msbuild /target:testlight /p:Configuration=Release /p:Platform=$cmakePlatform /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" ericw-tools.sln
if ( $? -eq $false ) {
throw "testlight failed to build"
}
msbuild /target:testqbsp /p:Configuration=Release /p:Platform=$cmakePlatform /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" ericw-tools.sln
if ( $? -eq $false ) {
throw "testqbsp failed to build"
}
msbuild /p:Configuration=Release /p:Platform=$cmakePlatform /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" PACKAGE.vcxproj
if ( $? -eq $false ) {
throw "package failed"
}
.\light\Release\testlight.exe
if ( $? -eq $false ) {
throw "testlight failed"
}
.\qbsp\Release\testqbsp.exe
if ( $? -eq $false ) {
throw "testqbsp failed"
}
$env:Path += ";$(pwd)\qbsp\Release;$(pwd)\vis\Release;$(pwd)\light\Release"
cd ..\testmaps
. "C:\Program Files\Git\usr\bin\bash.exe" .\automatated_tests.sh
if ( $LastExitCode -ne 0 ) {
throw "automatated_tests.sh failed"
}

View File

@ -35,12 +35,8 @@ readelf -d ./light/light
unzip -X ericw-tools-*.zip
readelf -d ./ericw-tools-*/bin/light
# coarse tests on real maps (only checks success/failure exit status of tool)
# run regression tests
cd ..
export PATH="$(pwd)/$BUILD_DIR/qbsp:$(pwd)/$BUILD_DIR/light:$PATH"
export PATH="$(pwd)/$BUILD_DIR/qbsp:$(pwd)/$BUILD_DIR/light:$(pwd)/$BUILD_DIR/vis:$PATH"
cd testmaps
./automatated_tests.sh || exit 1
# test id1 maps for leaks
cd quake_map_source
./leaktest.sh || exit 1

View File

@ -1,5 +1,8 @@
#!/bin/bash
# for sha256sum, used by the tests
brew install coreutils
BUILD_DIR=build-osx
EMBREE_ZIP="https://github.com/embree/embree/releases/download/v3.13.0/embree-3.13.0.x86_64.macosx.zip"
@ -46,12 +49,8 @@ otool -L ./bsputil/bsputil
./light/testlight || exit 1
./qbsp/testqbsp || exit 1
# coarse tests on real maps (only checks success/failure exit status of tool)
# run regression tests
cd ..
export PATH="$(pwd)/$BUILD_DIR/qbsp:$(pwd)/$BUILD_DIR/light:$PATH"
export PATH="$(pwd)/$BUILD_DIR/qbsp:$(pwd)/$BUILD_DIR/light:$(pwd)/$BUILD_DIR/vis:$PATH"
cd testmaps
./automatated_tests.sh || exit 1
# test id1 maps for leaks
cd quake_map_source
./leaktest.sh || exit 1

View File

@ -61,14 +61,18 @@ if (embree_FOUND)
target_link_libraries (light PRIVATE embree)
add_definitions(-DHAVE_EMBREE)
# macOS/homebrew: hack around find_file applying the .. before resolving the symlink
# causing it not to find the LICENSE.txt
get_filename_component(embree_DIR_ABS "${embree_DIR}" REALPATH CACHE)
find_file(EMBREE_LICENSE LICENSE.txt
"${embree_DIR}/doc"
"${embree_DIR}/../../../doc"
"${embree_DIR}/../embree3/embree3" # vcpkg puts it here
"${embree_DIR}/../../.." # homebrew puts it here
"${embree_DIR_ABS}/doc"
"${embree_DIR_ABS}/../../../doc"
"${embree_DIR_ABS}/../embree3/embree3" # vcpkg puts it here
"${embree_DIR_ABS}/../../.." # homebrew puts it here
NO_DEFAULT_PATH)
if (EMBREE_LICENSE STREQUAL EMBREE_LICENSE-NOTFOUND)
message(WARNING "Couldn't find embree license. embree_DIR is ${embree_DIR}")
message(WARNING "Couldn't find embree license. embree_DIR: ${embree_DIR}, embree_DIR_ABS: ${embree_DIR_ABS}")
else()
message(STATUS "Found embree license: ${EMBREE_LICENSE}")
endif()

View File

@ -1,7 +1,89 @@
#!/bin/bash
# usage:
# ./automated_tests.sh [--update-hashes]
#
# If --update-hashes is given, updates the expected hash files.
# Otherwise tests the generated .bsp's match the expected hashes.
#
# qbsp, vis, light need to be in PATH before running.
#
# Returns exit status 1 if any tests failed, otherwise 0
# print statements as they are executed
set -x
UPDATE_HASHES=0
if [[ "$1" == "--update-hashes" ]]; then
UPDATE_HASHES=1
fi
# checking for lack of crashes
qbsp -noverbose invalid_texture_axes.map || exit 1
light invalid_texture_axes.map || exit 1
# hash checks
# Compiles Quake E1M1 under all supported output formats,
# then compare the hashes with what's been committed to the repo.
# Then vis all of the bsp's, and check the hashes again.
# Then light them, and check the hashes again.
#
# This check will naturally fail if any changes are made to the
# tools that alter the .bsp output - the idea is you would just
# regenerate the expected hashes, but check that the .bsp's still
# work in game at the same time.
HASH_CHECK_BSPS="e1m1-bsp29.bsp \
e1m1-bsp2.bsp \
e1m1-2psb.bsp \
e1m1-hexen2.bsp \
e1m1-hexen2-bsp2.bsp \
e1m1-hexen2-2psb.bsp \
e1m1-hlbsp.bsp"
qbsp -noverbose quake_map_source/E1M1.map e1m1-bsp29.bsp || exit 1
qbsp -noverbose -bsp2 quake_map_source/E1M1.map e1m1-bsp2.bsp || exit 1
qbsp -noverbose -2psb quake_map_source/E1M1.map e1m1-2psb.bsp || exit 1
qbsp -noverbose -hexen2 quake_map_source/E1M1.map e1m1-hexen2.bsp || exit 1
qbsp -noverbose -hexen2 -bsp2 quake_map_source/E1M1.map e1m1-hexen2-bsp2.bsp || exit 1
qbsp -noverbose -hexen2 -2psb quake_map_source/E1M1.map e1m1-hexen2-2psb.bsp || exit 1
qbsp -noverbose -hlbsp quake_map_source/E1M1.map e1m1-hlbsp.bsp || exit 1
if [[ $UPDATE_HASHES -ne 0 ]]; then
sha256sum ${HASH_CHECK_BSPS} > qbsp.sha256sum || exit 1
else
sha256sum --strict --check qbsp.sha256sum || exit 1
fi
# now run vis
# FIXME: vis output is nondeterministic when run with multiple threads!
for bsp in ${HASH_CHECK_BSPS}; do
vis -nostate -threads 1 ${bsp} || exit 1
done
if [[ $UPDATE_HASHES -ne 0 ]]; then
sha256sum ${HASH_CHECK_BSPS} > qbsp-vis.sha256sum || exit 1
else
sha256sum --strict --check qbsp-vis.sha256sum || exit 1
fi
# FIXME: light output is nondeterministic
# for bsp in ${HASH_CHECK_BSPS}; do
# light -threads 1 ${bsp} || exit 1
# done
# if [[ $UPDATE_HASHES -ne 0 ]]; then
# sha256sum ${HASH_CHECK_BSPS} > qbsp-vis-light.sha256sum || exit 1
# else
# sha256sum --strict --check qbsp-vis-light.sha256sum || exit 1
# fi
# leak tests on all id1 maps
cd quake_map_source
./leaktest.sh || exit 1
exit 0

View File

File diff suppressed because it is too large Load Diff

0
testmaps/test.sh → testmaps/deprecated/test.sh Executable file → Normal file
View File

View File

@ -1,337 +1,337 @@
// Game: Quake
// Format: Standard
// entity 0
{
"classname" "worldspawn"
"wad" "quake.wad"
"message" "Missing Faces TJunc BspStd"
// brush 0
{
( -128 -128 -32 ) ( -128 -127 -32 ) ( -128 -128 -31 ) afloor1_3 -0 -16 -0 1 1
( -0 -0 -0 ) ( -0 -0 1 ) ( -0 1 -0 ) afloor1_3 -0 -16 -0 1 1
( -128 -128 -32 ) ( -128 -128 -31 ) ( -127 -128 -32 ) afloor1_3 -0 -16 -0 1 1
( -0 -0 -0 ) ( 1 -0 -0 ) ( -0 -0 1 ) afloor1_3 -0 -16 -0 1 1
( -0 -0 -0 ) ( -0 1 -0 ) ( 1 -0 -0 ) afloor1_3 -0 -0 -0 1 1
( -128 -128 -32 ) ( -127 -128 -32 ) ( -128 -127 -32 ) afloor1_3 -0 -0 -0 1 1
}
// brush 1
{
( -16 -128 -0 ) ( -16 -127 -0 ) ( -16 -128 1 ) city1_4 -0 48 -0 1 1
( -0 80 16 ) ( -0 80 17 ) ( -0 81 16 ) city1_4 -0 48 -0 1 1
( -16 -128 -0 ) ( -16 -128 1 ) ( -15 -128 -0 ) city1_4 16 48 -0 1 1
( -0 -0 16 ) ( 1 -0 16 ) ( -0 -0 17 ) city1_4 16 48 -0 1 1
( -0 80 16 ) ( -0 81 16 ) ( 1 80 16 ) city1_4 16 -0 -0 1 1
( -16 -128 -0 ) ( -15 -128 -0 ) ( -16 -127 -0 ) city1_4 16 -0 -0 1 1
}
// brush 2
{
( -128 -128 -0 ) ( -128 -127 -0 ) ( -128 -128 1 ) city1_4 -0 48 -0 1 1
( -16 80 16 ) ( -16 80 17 ) ( -16 81 16 ) city1_4 -0 48 -0 1 1
( -32 -16 -0 ) ( -32 -16 1 ) ( -31 -16 -0 ) city1_4 32 48 -0 1 1
( -16 -0 16 ) ( -15 -0 16 ) ( -16 -0 17 ) city1_4 32 48 -0 1 1
( -16 80 16 ) ( -16 81 16 ) ( -15 80 16 ) city1_4 32 -0 -0 1 1
( -32 -128 -0 ) ( -31 -128 -0 ) ( -32 -127 -0 ) city1_4 32 -0 -0 1 1
}
// brush 3
{
( -16 -16 8 ) ( -48 -128 16 ) ( -48 -16 16 ) maya2_2 -0 -0 0 1 1
( -48 -16 16 ) ( -48 -128 16 ) ( -48 -128 -0 ) maya2_2 0 0 0 1 1
( -16 -16 8 ) ( -48 -16 16 ) ( -48 -16 -0 ) maya2_2 0 0 0 1 1
( -48 -128 -0 ) ( -16 -128 -0 ) ( -48 -16 -0 ) maya2_2 -0 -0 0 1 1
( -48 -16 -0 ) ( -16 -128 -0 ) ( -16 -16 8 ) maya2_2 -0 -0 0 1 1
( -16 -16 8 ) ( -16 -128 -0 ) ( -48 -128 16 ) maya2_2 -0 -0 0 1 1
( -48 -128 16 ) ( -16 -128 -0 ) ( -48 -128 -0 ) maya2_2 0 0 0 1 1
}
// brush 4
{
( 312 272 -48 ) ( 312 -416 -48 ) ( 312 272 264 ) sky4 -16 16 -0 1 1
( 304 -416 -48 ) ( 304 -416 264 ) ( 312 -416 -48 ) sky4 40 16 -0 1 1
( 304 272 264 ) ( 304 272 -48 ) ( 312 272 264 ) sky4 40 16 -0 1 1
( 304 -416 264 ) ( 304 272 264 ) ( 312 -416 264 ) sky4 40 16 -0 1 1
( 304 272 -48 ) ( 304 -416 -48 ) ( 312 272 -48 ) sky4 40 16 -0 1 1
( 304 272 264 ) ( 304 -416 264 ) ( 304 272 -48 ) sky4 -16 16 -0 1 1
}
// brush 5
{
( -424 -416 -48 ) ( -424 272 -48 ) ( -424 -416 264 ) sky4 -16 16 -0 1 1
( -416 -416 264 ) ( -416 -416 -48 ) ( -424 -416 264 ) sky4 40 16 -0 1 1
( -416 272 -48 ) ( -416 272 264 ) ( -424 272 -48 ) sky4 40 16 -0 1 1
( -416 272 264 ) ( -416 -416 264 ) ( -424 272 264 ) sky4 40 16 -0 1 1
( -416 -416 -48 ) ( -416 272 -48 ) ( -424 -416 -48 ) sky4 40 16 -0 1 1
( -416 -416 -48 ) ( -416 -416 264 ) ( -416 272 -48 ) sky4 -16 16 -0 1 1
}
// brush 6
{
( -416 272 264 ) ( -416 272 -48 ) ( 304 272 264 ) sky4 40 16 -0 1 1
( 304 264 264 ) ( -416 264 264 ) ( 304 272 264 ) sky4 40 16 -0 1 1
( -416 264 -48 ) ( 304 264 -48 ) ( -416 272 -48 ) sky4 40 16 -0 1 1
( 304 264 -48 ) ( 304 264 264 ) ( 304 272 -48 ) sky4 0 0 0 1 1
( -416 264 264 ) ( -416 264 -48 ) ( -416 272 264 ) sky4 0 0 0 1 1
( 304 264 264 ) ( 304 264 -48 ) ( -416 264 264 ) sky4 40 16 -0 1 1
}
// brush 7
{
( -416 -416 -48 ) ( -416 -416 264 ) ( 304 -416 -48 ) sky4 40 16 -0 1 1
( -416 -408 264 ) ( 304 -408 264 ) ( -416 -416 264 ) sky4 40 16 -0 1 1
( 304 -408 -48 ) ( -416 -408 -48 ) ( 304 -416 -48 ) sky4 40 16 -0 1 1
( 304 -408 264 ) ( 304 -408 -48 ) ( 304 -416 264 ) sky4 0 0 0 1 1
( -416 -408 -48 ) ( -416 -408 264 ) ( -416 -416 -48 ) sky4 0 0 0 1 1
( -416 -408 -48 ) ( 304 -408 -48 ) ( -416 -408 264 ) sky4 40 16 -0 1 1
}
// brush 8
{
( 304 -408 264 ) ( -416 -408 264 ) ( 304 264 264 ) sky4 40 16 -0 1 1
( 304 264 256 ) ( 304 -408 256 ) ( 304 264 264 ) sky4 0 0 0 1 1
( -416 -408 256 ) ( -416 264 256 ) ( -416 -408 264 ) sky4 0 0 0 1 1
( -416 264 256 ) ( 304 264 256 ) ( -416 264 264 ) sky4 0 0 0 1 1
( 304 -408 256 ) ( -416 -408 256 ) ( 304 -408 264 ) sky4 0 0 0 1 1
( 304 264 256 ) ( -416 264 256 ) ( 304 -408 256 ) sky4 40 16 -0 1 1
}
// brush 9
{
( -416 -408 -48 ) ( 304 -408 -48 ) ( -416 264 -48 ) sky4 40 16 -0 1 1
( 304 -408 -40 ) ( 304 264 -40 ) ( 304 -408 -48 ) sky4 0 0 0 1 1
( -416 264 -40 ) ( -416 -408 -40 ) ( -416 264 -48 ) sky4 0 0 0 1 1
( 304 264 -40 ) ( -416 264 -40 ) ( 304 264 -48 ) sky4 0 0 0 1 1
( -416 -408 -40 ) ( 304 -408 -40 ) ( -416 -408 -48 ) sky4 0 0 0 1 1
( -416 -408 -40 ) ( -416 264 -40 ) ( 304 -408 -40 ) sky4 40 16 -0 1 1
}
// brush 10
{
( -48 -168 16 ) ( -48 -168 -0 ) ( -16 -168 8 ) maya2_2 -0 -0 -0 1 1
( -16 -168 8 ) ( -48 -168 -0 ) ( -16 -200 -0 ) maya2_2 -0 -24 -0 1 1
( -16 -168 8 ) ( -48 -200 16 ) ( -48 -168 16 ) maya2_2 -0 -24 -0 1 1
( -16 -168 8 ) ( -16 -200 -0 ) ( -48 -200 16 ) maya2_2 -0 -24 -0 1 1
( -48 -200 16 ) ( -48 -200 -0 ) ( -48 -168 -0 ) maya2_2 24 -0 -0 1 1
( -48 -168 -0 ) ( -48 -200 -0 ) ( -16 -200 -0 ) maya2_2 -0 -24 -0 1 1
( -16 -200 -0 ) ( -48 -200 -0 ) ( -48 -200 16 ) maya2_2 -0 -0 -0 1 1
}
// brush 11
{
( -0 -152 16 ) ( -0 -152 -0 ) ( -0 -200 -0 ) city1_4 24 48 -0 1 1
( -0 -152 16 ) ( -16 -152 16 ) ( -16 -152 -0 ) city1_4 16 48 -0 1 1
( -16 -200 16 ) ( -16 -152 16 ) ( -0 -152 16 ) city1_4 16 -24 -0 1 1
( -16 -152 -0 ) ( -16 -200 -0 ) ( -0 -200 -0 ) city1_4 16 -24 -0 1 1
( -0 -200 -0 ) ( -16 -200 -0 ) ( -16 -200 16 ) city1_4 16 48 -0 1 1
( -16 -200 16 ) ( -16 -200 -0 ) ( -16 -152 -0 ) city1_4 24 48 -0 1 1
}
// brush 12
{
( -128 -280 -0 ) ( -128 -279 -0 ) ( -128 -280 1 ) city1_4 24 48 -0 1 1
( -16 -72 16 ) ( -16 -72 17 ) ( -16 -71 16 ) city1_4 24 48 -0 1 1
( -32 -168 -0 ) ( -32 -168 1 ) ( -31 -168 -0 ) city1_4 32 48 -0 1 1
( -16 -152 16 ) ( -15 -152 16 ) ( -16 -152 17 ) city1_4 32 48 -0 1 1
( -16 -72 16 ) ( -16 -71 16 ) ( -15 -72 16 ) city1_4 32 -24 -0 1 1
( -32 -280 -0 ) ( -31 -280 -0 ) ( -32 -279 -0 ) city1_4 32 -24 -0 1 1
}
// brush 13
{
( -0 -152 -0 ) ( -0 -152 -32 ) ( -0 -200 -32 ) afloor1_3 24 -16 -0 1 1
( -0 -152 -0 ) ( -128 -152 -0 ) ( -128 -152 -32 ) afloor1_3 -0 -16 -0 1 1
( -128 -200 -0 ) ( -128 -152 -0 ) ( -0 -152 -0 ) afloor1_3 -0 -24 -0 1 1
( -128 -152 -32 ) ( -128 -200 -32 ) ( -0 -200 -32 ) afloor1_3 -0 -24 -0 1 1
( -0 -200 -32 ) ( -128 -200 -32 ) ( -128 -200 -0 ) afloor1_3 -0 -16 -0 1 1
( -128 -200 -0 ) ( -128 -200 -32 ) ( -128 -152 -32 ) afloor1_3 24 -16 -0 1 1
}
// brush 14
{
( -0 -216 16 ) ( -0 -216 -0 ) ( -0 -264 -0 ) city1_4 24 48 -0 1 1
( -0 -216 16 ) ( -16 -216 16 ) ( -16 -216 -0 ) city1_4 16 48 -0 1 1
( -16 -264 16 ) ( -16 -216 16 ) ( -0 -216 16 ) city1_4 16 -24 -0 1 1
( -16 -216 -0 ) ( -16 -264 -0 ) ( -0 -264 -0 ) city1_4 16 -24 -0 1 1
( -0 -304 -0 ) ( -16 -304 -0 ) ( -16 -304 16 ) city1_4 16 48 -0 1 1
( -16 -264 16 ) ( -16 -264 -0 ) ( -16 -216 -0 ) city1_4 24 48 -0 1 1
}
// brush 15
{
( -128 -344 -0 ) ( -128 -343 -0 ) ( -128 -344 1 ) city1_4 24 48 -0 1 1
( -16 -136 16 ) ( -16 -136 17 ) ( -16 -135 16 ) city1_4 24 48 -0 1 1
( -32 -232 -0 ) ( -32 -232 1 ) ( -31 -232 -0 ) city1_4 32 48 -0 1 1
( -16 -216 16 ) ( -15 -216 16 ) ( -16 -216 17 ) city1_4 32 48 -0 1 1
( -16 -136 16 ) ( -16 -135 16 ) ( -15 -136 16 ) city1_4 32 -24 -0 1 1
( -32 -344 -0 ) ( -31 -344 -0 ) ( -32 -343 -0 ) city1_4 32 -24 -0 1 1
}
// brush 16
{
( -48 -232 16 ) ( -48 -232 -0 ) ( -16 -232 8 ) maya2_2 -0 -0 -0 1 1
( -16 -232 8 ) ( -48 -232 -0 ) ( -16 -264 -0 ) maya2_2 -0 -88 -0 1 1
( -16 -232 8 ) ( -48 -264 16 ) ( -48 -232 16 ) maya2_2 -0 -88 -0 1 1
( -16 -232 8 ) ( -16 -264 -0 ) ( -48 -264 16 ) maya2_2 -0 -88 -0 1 1
( -48 -264 16 ) ( -48 -264 -0 ) ( -48 -232 -0 ) maya2_2 88 -0 -0 1 1
( -48 -232 -0 ) ( -48 -264 -0 ) ( -16 -264 -0 ) maya2_2 -0 -88 -0 1 1
( -16 -264 -0 ) ( -48 -264 -0 ) ( -48 -264 16 ) maya2_2 -0 -0 -0 1 1
}
// brush 17
{
( -0 -216 -0 ) ( -0 -216 -32 ) ( -0 -264 -32 ) afloor1_3 24 -16 -0 1 1
( -0 -216 -0 ) ( -128 -216 -0 ) ( -128 -216 -32 ) afloor1_3 -0 -16 -0 1 1
( -128 -264 -0 ) ( -128 -216 -0 ) ( -0 -216 -0 ) afloor1_3 -0 -24 -0 1 1
( -128 -216 -32 ) ( -128 -264 -32 ) ( -0 -264 -32 ) afloor1_3 -0 -24 -0 1 1
( -0 -304 -32 ) ( -128 -304 -32 ) ( -128 -304 -0 ) afloor1_3 -0 -16 -0 1 1
( -128 -264 -0 ) ( -128 -264 -32 ) ( -128 -216 -32 ) afloor1_3 24 -16 -0 1 1
}
// brush 18
{
( -0 120 -0 ) ( -0 120 -32 ) ( -0 72 -32 ) afloor1_3 -56 -16 -0 1 1
( -0 120 -0 ) ( -128 120 -0 ) ( -128 120 -32 ) afloor1_3 -0 -16 -0 1 1
( -128 72 -0 ) ( -128 120 -0 ) ( -0 120 -0 ) afloor1_3 -0 56 -0 1 1
( -128 120 -32 ) ( -128 72 -32 ) ( -0 72 -32 ) afloor1_3 -0 56 -0 1 1
( -0 72 -32 ) ( -128 72 -32 ) ( -128 72 -0 ) afloor1_3 -0 -16 -0 1 1
( -48 72 -0 ) ( -48 72 -32 ) ( -48 120 -32 ) afloor1_3 -56 -16 -0 1 1
}
// brush 19
{
( -48 -8 -0 ) ( -48 -7 -0 ) ( -48 -8 1 ) city1_4 -56 48 -0 1 1
( -16 200 16 ) ( -16 200 17 ) ( -16 201 16 ) city1_4 -56 48 -0 1 1
( -32 104 -0 ) ( -32 104 1 ) ( -31 104 -0 ) city1_4 32 48 -0 1 1
( -16 120 16 ) ( -15 120 16 ) ( -16 120 17 ) city1_4 32 48 -0 1 1
( -16 200 16 ) ( -16 201 16 ) ( -15 200 16 ) city1_4 32 56 -0 1 1
( -32 -8 -0 ) ( -31 -8 -0 ) ( -32 -7 -0 ) city1_4 32 56 -0 1 1
}
// brush 20
{
( -48 104 16 ) ( -48 104 -0 ) ( -16 104 8 ) maya2_2 -0 -0 -0 1 1
( -16 104 8 ) ( -48 104 -0 ) ( -16 72 -0 ) maya2_2 -0 120 -0 1 1
( -16 104 8 ) ( -48 72 16 ) ( -48 104 16 ) maya2_2 -0 120 -0 1 1
( -16 104 8 ) ( -16 72 -0 ) ( -48 72 16 ) maya2_2 -0 120 -0 1 1
( -48 72 16 ) ( -48 72 -0 ) ( -48 104 -0 ) maya2_2 -120 -0 -0 1 1
( -48 104 -0 ) ( -48 72 -0 ) ( -16 72 -0 ) maya2_2 -0 120 -0 1 1
( -16 72 -0 ) ( -48 72 -0 ) ( -48 72 16 ) maya2_2 -0 -0 -0 1 1
}
// brush 21
{
( -0 120 16 ) ( -0 120 -0 ) ( -0 72 -0 ) city1_4 -56 48 -0 1 1
( -0 120 16 ) ( -16 120 16 ) ( -16 120 -0 ) city1_4 16 48 -0 1 1
( -16 72 16 ) ( -16 120 16 ) ( -0 120 16 ) city1_4 16 56 -0 1 1
( -16 120 -0 ) ( -16 72 -0 ) ( -0 72 -0 ) city1_4 16 56 -0 1 1
( -0 72 -0 ) ( -16 72 -0 ) ( -16 72 16 ) city1_4 16 48 -0 1 1
( -16 72 16 ) ( -16 72 -0 ) ( -16 120 -0 ) city1_4 -56 48 -0 1 1
}
// brush 22
{
( -120 -8 -0 ) ( -120 -7 -0 ) ( -120 -8 1 ) city1_4 8 48 -0 1 1
( -88 200 16 ) ( -88 200 17 ) ( -88 201 16 ) city1_4 8 48 -0 1 1
( -104 104 -0 ) ( -104 104 1 ) ( -103 104 -0 ) city1_4 40 48 -0 1 1
( -88 120 16 ) ( -87 120 16 ) ( -88 120 17 ) city1_4 40 48 -0 1 1
( -88 200 16 ) ( -88 201 16 ) ( -87 200 16 ) city1_4 40 -8 -0 1 1
( -104 -8 -0 ) ( -103 -8 -0 ) ( -104 -7 -0 ) city1_4 40 -8 -0 1 1
}
// brush 23
{
( -72 120 16 ) ( -72 120 -0 ) ( -72 72 -0 ) city1_4 8 48 -0 1 1
( -72 120 16 ) ( -88 120 16 ) ( -88 120 -0 ) city1_4 24 48 -0 1 1
( -88 72 16 ) ( -88 120 16 ) ( -72 120 16 ) city1_4 24 -8 -0 1 1
( -88 120 -0 ) ( -88 72 -0 ) ( -72 72 -0 ) city1_4 24 -8 -0 1 1
( -72 72 -0 ) ( -88 72 -0 ) ( -88 72 16 ) city1_4 24 48 -0 1 1
( -88 72 16 ) ( -88 72 -0 ) ( -88 120 -0 ) city1_4 8 48 -0 1 1
}
// brush 24
{
( -72 120 -0 ) ( -72 120 -32 ) ( -72 72 -32 ) afloor1_3 8 -16 -0 1 1
( -72 120 -0 ) ( -200 120 -0 ) ( -200 120 -32 ) afloor1_3 8 -16 -0 1 1
( -200 72 -0 ) ( -200 120 -0 ) ( -72 120 -0 ) afloor1_3 8 -8 -0 1 1
( -200 120 -32 ) ( -200 72 -32 ) ( -72 72 -32 ) afloor1_3 8 -8 -0 1 1
( -72 72 -32 ) ( -200 72 -32 ) ( -200 72 -0 ) afloor1_3 8 -16 -0 1 1
( -120 72 -0 ) ( -120 72 -32 ) ( -120 120 -32 ) afloor1_3 8 -16 -0 1 1
}
// brush 25
{
( -88 104 8 ) ( -120 104 -0 ) ( -88 72 -0 ) maya2_2 72 -8 -0 1 1
( -88 104 8 ) ( -88 72 -0 ) ( -120 72 16 ) maya2_2 72 -8 -0 1 1
( -120 104 -0 ) ( -120 72 -0 ) ( -88 72 -0 ) maya2_2 72 -8 -0 1 1
( -88 72 -0 ) ( -120 72 -0 ) ( -120 72 16 ) maya2_2 72 -0 -0 1 1
( -120 72 16 ) ( -88 104 16 ) ( -88 104 144 ) maya2_2 72 0 0 1 1
}
// brush 26
{
( -120 104 16 ) ( -120 104 -0 ) ( -88 104 8 ) maya2_2 72 -0 -0 1 1
( -88 104 8 ) ( -120 104 -0 ) ( -88 72 -0 ) maya2_2 72 -8 -0 1 1
( -88 104 8 ) ( -120 72 16 ) ( -120 104 16 ) maya2_2 72 -8 -0 1 1
( -120 72 16 ) ( -120 72 -0 ) ( -120 104 -0 ) maya2_2 8 -0 -0 1 1
( -120 104 -0 ) ( -120 72 -0 ) ( -88 72 -0 ) maya2_2 72 -8 -0 1 1
( -120 72 16 ) ( -88 104 144 ) ( -88 104 16 ) maya2_2 72 0 0 1 1
}
// brush 27
{
( -72 192 -0 ) ( -72 192 -32 ) ( -72 144 -32 ) afloor1_3 -0 -16 -0 1 1
( -72 192 -0 ) ( -200 192 -0 ) ( -200 192 -32 ) afloor1_3 8 -16 -0 1 1
( -200 144 -0 ) ( -200 192 -0 ) ( -72 192 -0 ) afloor1_3 8 -0 -0 1 1
( -200 192 -32 ) ( -200 144 -32 ) ( -72 144 -32 ) afloor1_3 8 -0 -0 1 1
( -72 144 -32 ) ( -200 144 -32 ) ( -200 144 -0 ) afloor1_3 8 -16 -0 1 1
( -120 144 -0 ) ( -120 144 -32 ) ( -120 192 -32 ) afloor1_3 -0 -16 -0 1 1
}
// brush 28
{
( -120 176 16 ) ( -120 176 -0 ) ( -88 176 8 ) maya2_2 72 -0 -0 1 1
( -88 176 8 ) ( -120 176 -0 ) ( -88 144 -0 ) maya2_2 72 64 -0 1 1
( -88 176 8 ) ( -120 144 16 ) ( -120 176 16 ) maya2_2 72 64 -0 1 1
( -120 144 16 ) ( -120 144 -0 ) ( -120 176 -0 ) maya2_2 -64 -0 -0 1 1
( -120 176 -0 ) ( -120 144 -0 ) ( -88 144 -0 ) maya2_2 72 64 -0 1 1
( -120 144 16 ) ( -88 176 144 ) ( -88 176 16 ) maya2_2 -0 -0 -0 1 1
}
// brush 29
{
( -88 176 8 ) ( -120 176 -0 ) ( -88 144 -0 ) maya2_2 72 64 -0 1 1
( -88 176 8 ) ( -88 144 -0 ) ( -120 144 16 ) maya2_2 72 64 -0 1 1
( -120 176 -0 ) ( -120 144 -0 ) ( -88 144 -0 ) maya2_2 72 64 -0 1 1
( -88 144 -0 ) ( -120 144 -0 ) ( -120 144 16 ) maya2_2 72 -0 -0 1 1
( -120 144 16 ) ( -88 176 16 ) ( -88 176 144 ) maya2_2 -0 -0 -0 1 1
}
// brush 30
{
( -72 192 16 ) ( -72 192 -0 ) ( -72 144 -0 ) city1_4 -0 48 -0 1 1
( -72 192 16 ) ( -88 192 16 ) ( -88 192 -0 ) city1_4 24 48 -0 1 1
( -88 144 16 ) ( -88 192 16 ) ( -72 192 16 ) city1_4 24 -0 -0 1 1
( -88 192 -0 ) ( -88 144 -0 ) ( -72 144 -0 ) city1_4 24 -0 -0 1 1
( -72 144 -0 ) ( -88 144 -0 ) ( -88 144 16 ) city1_4 24 48 -0 1 1
( -88 144 16 ) ( -88 144 -0 ) ( -88 192 -0 ) city1_4 -0 48 -0 1 1
}
// brush 31
{
( -88 240 -0 ) ( -88 208 -0 ) ( -88 240 8 ) maya2_2 -32 -0 -0 1 1
( -88 240 -0 ) ( -120 208 -0 ) ( -88 208 -0 ) maya2_2 -0 32 -0 1 1
( -88 240 8 ) ( -120 208 16 ) ( -120 208 -0 ) maya2_2 -32 -0 -0 1 1
( -120 208 -0 ) ( -120 208 16 ) ( -88 208 -0 ) maya2_2 -0 -0 -0 1 1
( -88 208 -0 ) ( -120 208 16 ) ( -88 240 8 ) maya2_2 -0 32 -0 1 1
}
// brush 32
{
( -120 240 -0 ) ( -120 208 -0 ) ( -88 240 -0 ) maya2_2 -0 32 -0 1 1
( -120 240 16 ) ( -120 208 16 ) ( -120 208 -0 ) maya2_2 -32 -0 -0 1 1
( -120 240 16 ) ( -88 240 8 ) ( -120 208 16 ) maya2_2 -0 32 -0 1 1
( -120 208 16 ) ( -88 240 8 ) ( -88 240 -0 ) maya2_2 -32 -0 -0 1 1
( -88 240 -0 ) ( -88 240 8 ) ( -120 240 16 ) maya2_2 -0 -0 -0 1 1
}
// brush 33
{
( -120 128 -0 ) ( -120 129 -0 ) ( -120 128 1 ) city1_4 -0 48 -0 1 1
( -88 336 16 ) ( -88 336 17 ) ( -88 337 16 ) city1_4 -0 48 -0 1 1
( -104 240 -0 ) ( -104 240 1 ) ( -103 240 -0 ) city1_4 40 48 -0 1 1
( -88 256 16 ) ( -87 256 16 ) ( -88 256 17 ) city1_4 40 48 -0 1 1
( -88 336 16 ) ( -88 337 16 ) ( -87 336 16 ) city1_4 40 -0 -0 1 1
( -104 128 -0 ) ( -103 128 -0 ) ( -104 129 -0 ) city1_4 40 -0 -0 1 1
}
// brush 34
{
( -72 256 16 ) ( -72 256 -0 ) ( -72 208 -0 ) city1_4 -0 48 -0 1 1
( -72 256 16 ) ( -88 256 16 ) ( -88 256 -0 ) city1_4 24 48 -0 1 1
( -88 208 16 ) ( -88 256 16 ) ( -72 256 16 ) city1_4 24 -0 -0 1 1
( -88 256 -0 ) ( -88 208 -0 ) ( -72 208 -0 ) city1_4 24 -0 -0 1 1
( -72 208 -0 ) ( -88 208 -0 ) ( -88 208 16 ) city1_4 24 48 -0 1 1
( -88 208 16 ) ( -88 208 -0 ) ( -88 256 -0 ) city1_4 -0 48 -0 1 1
}
// brush 35
{
( -72 256 -0 ) ( -72 256 -32 ) ( -72 208 -32 ) afloor1_3 -0 -16 -0 1 1
( -72 256 -0 ) ( -200 256 -0 ) ( -200 256 -32 ) afloor1_3 8 -16 -0 1 1
( -200 208 -0 ) ( -200 256 -0 ) ( -72 256 -0 ) afloor1_3 8 -0 -0 1 1
( -200 256 -32 ) ( -200 208 -32 ) ( -72 208 -32 ) afloor1_3 8 -0 -0 1 1
( -72 208 -32 ) ( -200 208 -32 ) ( -200 208 -0 ) afloor1_3 8 -16 -0 1 1
( -120 208 -0 ) ( -120 208 -32 ) ( -120 256 -32 ) afloor1_3 -0 -16 -0 1 1
}
}
// entity 1
{
"classname" "info_player_start"
"origin" "-96 -64 24"
}
// Game: Quake
// Format: Standard
// entity 0
{
"classname" "worldspawn"
"wad" "quake.wad"
"message" "Missing Faces TJunc BspStd"
// brush 0
{
( -128 -128 -32 ) ( -128 -127 -32 ) ( -128 -128 -31 ) afloor1_3 -0 -16 -0 1 1
( -0 -0 -0 ) ( -0 -0 1 ) ( -0 1 -0 ) afloor1_3 -0 -16 -0 1 1
( -128 -128 -32 ) ( -128 -128 -31 ) ( -127 -128 -32 ) afloor1_3 -0 -16 -0 1 1
( -0 -0 -0 ) ( 1 -0 -0 ) ( -0 -0 1 ) afloor1_3 -0 -16 -0 1 1
( -0 -0 -0 ) ( -0 1 -0 ) ( 1 -0 -0 ) afloor1_3 -0 -0 -0 1 1
( -128 -128 -32 ) ( -127 -128 -32 ) ( -128 -127 -32 ) afloor1_3 -0 -0 -0 1 1
}
// brush 1
{
( -16 -128 -0 ) ( -16 -127 -0 ) ( -16 -128 1 ) city1_4 -0 48 -0 1 1
( -0 80 16 ) ( -0 80 17 ) ( -0 81 16 ) city1_4 -0 48 -0 1 1
( -16 -128 -0 ) ( -16 -128 1 ) ( -15 -128 -0 ) city1_4 16 48 -0 1 1
( -0 -0 16 ) ( 1 -0 16 ) ( -0 -0 17 ) city1_4 16 48 -0 1 1
( -0 80 16 ) ( -0 81 16 ) ( 1 80 16 ) city1_4 16 -0 -0 1 1
( -16 -128 -0 ) ( -15 -128 -0 ) ( -16 -127 -0 ) city1_4 16 -0 -0 1 1
}
// brush 2
{
( -128 -128 -0 ) ( -128 -127 -0 ) ( -128 -128 1 ) city1_4 -0 48 -0 1 1
( -16 80 16 ) ( -16 80 17 ) ( -16 81 16 ) city1_4 -0 48 -0 1 1
( -32 -16 -0 ) ( -32 -16 1 ) ( -31 -16 -0 ) city1_4 32 48 -0 1 1
( -16 -0 16 ) ( -15 -0 16 ) ( -16 -0 17 ) city1_4 32 48 -0 1 1
( -16 80 16 ) ( -16 81 16 ) ( -15 80 16 ) city1_4 32 -0 -0 1 1
( -32 -128 -0 ) ( -31 -128 -0 ) ( -32 -127 -0 ) city1_4 32 -0 -0 1 1
}
// brush 3
{
( -16 -16 8 ) ( -48 -128 16 ) ( -48 -16 16 ) maya2_2 -0 -0 0 1 1
( -48 -16 16 ) ( -48 -128 16 ) ( -48 -128 -0 ) maya2_2 0 0 0 1 1
( -16 -16 8 ) ( -48 -16 16 ) ( -48 -16 -0 ) maya2_2 0 0 0 1 1
( -48 -128 -0 ) ( -16 -128 -0 ) ( -48 -16 -0 ) maya2_2 -0 -0 0 1 1
( -48 -16 -0 ) ( -16 -128 -0 ) ( -16 -16 8 ) maya2_2 -0 -0 0 1 1
( -16 -16 8 ) ( -16 -128 -0 ) ( -48 -128 16 ) maya2_2 -0 -0 0 1 1
( -48 -128 16 ) ( -16 -128 -0 ) ( -48 -128 -0 ) maya2_2 0 0 0 1 1
}
// brush 4
{
( 312 272 -48 ) ( 312 -416 -48 ) ( 312 272 264 ) sky4 -16 16 -0 1 1
( 304 -416 -48 ) ( 304 -416 264 ) ( 312 -416 -48 ) sky4 40 16 -0 1 1
( 304 272 264 ) ( 304 272 -48 ) ( 312 272 264 ) sky4 40 16 -0 1 1
( 304 -416 264 ) ( 304 272 264 ) ( 312 -416 264 ) sky4 40 16 -0 1 1
( 304 272 -48 ) ( 304 -416 -48 ) ( 312 272 -48 ) sky4 40 16 -0 1 1
( 304 272 264 ) ( 304 -416 264 ) ( 304 272 -48 ) sky4 -16 16 -0 1 1
}
// brush 5
{
( -424 -416 -48 ) ( -424 272 -48 ) ( -424 -416 264 ) sky4 -16 16 -0 1 1
( -416 -416 264 ) ( -416 -416 -48 ) ( -424 -416 264 ) sky4 40 16 -0 1 1
( -416 272 -48 ) ( -416 272 264 ) ( -424 272 -48 ) sky4 40 16 -0 1 1
( -416 272 264 ) ( -416 -416 264 ) ( -424 272 264 ) sky4 40 16 -0 1 1
( -416 -416 -48 ) ( -416 272 -48 ) ( -424 -416 -48 ) sky4 40 16 -0 1 1
( -416 -416 -48 ) ( -416 -416 264 ) ( -416 272 -48 ) sky4 -16 16 -0 1 1
}
// brush 6
{
( -416 272 264 ) ( -416 272 -48 ) ( 304 272 264 ) sky4 40 16 -0 1 1
( 304 264 264 ) ( -416 264 264 ) ( 304 272 264 ) sky4 40 16 -0 1 1
( -416 264 -48 ) ( 304 264 -48 ) ( -416 272 -48 ) sky4 40 16 -0 1 1
( 304 264 -48 ) ( 304 264 264 ) ( 304 272 -48 ) sky4 0 0 0 1 1
( -416 264 264 ) ( -416 264 -48 ) ( -416 272 264 ) sky4 0 0 0 1 1
( 304 264 264 ) ( 304 264 -48 ) ( -416 264 264 ) sky4 40 16 -0 1 1
}
// brush 7
{
( -416 -416 -48 ) ( -416 -416 264 ) ( 304 -416 -48 ) sky4 40 16 -0 1 1
( -416 -408 264 ) ( 304 -408 264 ) ( -416 -416 264 ) sky4 40 16 -0 1 1
( 304 -408 -48 ) ( -416 -408 -48 ) ( 304 -416 -48 ) sky4 40 16 -0 1 1
( 304 -408 264 ) ( 304 -408 -48 ) ( 304 -416 264 ) sky4 0 0 0 1 1
( -416 -408 -48 ) ( -416 -408 264 ) ( -416 -416 -48 ) sky4 0 0 0 1 1
( -416 -408 -48 ) ( 304 -408 -48 ) ( -416 -408 264 ) sky4 40 16 -0 1 1
}
// brush 8
{
( 304 -408 264 ) ( -416 -408 264 ) ( 304 264 264 ) sky4 40 16 -0 1 1
( 304 264 256 ) ( 304 -408 256 ) ( 304 264 264 ) sky4 0 0 0 1 1
( -416 -408 256 ) ( -416 264 256 ) ( -416 -408 264 ) sky4 0 0 0 1 1
( -416 264 256 ) ( 304 264 256 ) ( -416 264 264 ) sky4 0 0 0 1 1
( 304 -408 256 ) ( -416 -408 256 ) ( 304 -408 264 ) sky4 0 0 0 1 1
( 304 264 256 ) ( -416 264 256 ) ( 304 -408 256 ) sky4 40 16 -0 1 1
}
// brush 9
{
( -416 -408 -48 ) ( 304 -408 -48 ) ( -416 264 -48 ) sky4 40 16 -0 1 1
( 304 -408 -40 ) ( 304 264 -40 ) ( 304 -408 -48 ) sky4 0 0 0 1 1
( -416 264 -40 ) ( -416 -408 -40 ) ( -416 264 -48 ) sky4 0 0 0 1 1
( 304 264 -40 ) ( -416 264 -40 ) ( 304 264 -48 ) sky4 0 0 0 1 1
( -416 -408 -40 ) ( 304 -408 -40 ) ( -416 -408 -48 ) sky4 0 0 0 1 1
( -416 -408 -40 ) ( -416 264 -40 ) ( 304 -408 -40 ) sky4 40 16 -0 1 1
}
// brush 10
{
( -48 -168 16 ) ( -48 -168 -0 ) ( -16 -168 8 ) maya2_2 -0 -0 -0 1 1
( -16 -168 8 ) ( -48 -168 -0 ) ( -16 -200 -0 ) maya2_2 -0 -24 -0 1 1
( -16 -168 8 ) ( -48 -200 16 ) ( -48 -168 16 ) maya2_2 -0 -24 -0 1 1
( -16 -168 8 ) ( -16 -200 -0 ) ( -48 -200 16 ) maya2_2 -0 -24 -0 1 1
( -48 -200 16 ) ( -48 -200 -0 ) ( -48 -168 -0 ) maya2_2 24 -0 -0 1 1
( -48 -168 -0 ) ( -48 -200 -0 ) ( -16 -200 -0 ) maya2_2 -0 -24 -0 1 1
( -16 -200 -0 ) ( -48 -200 -0 ) ( -48 -200 16 ) maya2_2 -0 -0 -0 1 1
}
// brush 11
{
( -0 -152 16 ) ( -0 -152 -0 ) ( -0 -200 -0 ) city1_4 24 48 -0 1 1
( -0 -152 16 ) ( -16 -152 16 ) ( -16 -152 -0 ) city1_4 16 48 -0 1 1
( -16 -200 16 ) ( -16 -152 16 ) ( -0 -152 16 ) city1_4 16 -24 -0 1 1
( -16 -152 -0 ) ( -16 -200 -0 ) ( -0 -200 -0 ) city1_4 16 -24 -0 1 1
( -0 -200 -0 ) ( -16 -200 -0 ) ( -16 -200 16 ) city1_4 16 48 -0 1 1
( -16 -200 16 ) ( -16 -200 -0 ) ( -16 -152 -0 ) city1_4 24 48 -0 1 1
}
// brush 12
{
( -128 -280 -0 ) ( -128 -279 -0 ) ( -128 -280 1 ) city1_4 24 48 -0 1 1
( -16 -72 16 ) ( -16 -72 17 ) ( -16 -71 16 ) city1_4 24 48 -0 1 1
( -32 -168 -0 ) ( -32 -168 1 ) ( -31 -168 -0 ) city1_4 32 48 -0 1 1
( -16 -152 16 ) ( -15 -152 16 ) ( -16 -152 17 ) city1_4 32 48 -0 1 1
( -16 -72 16 ) ( -16 -71 16 ) ( -15 -72 16 ) city1_4 32 -24 -0 1 1
( -32 -280 -0 ) ( -31 -280 -0 ) ( -32 -279 -0 ) city1_4 32 -24 -0 1 1
}
// brush 13
{
( -0 -152 -0 ) ( -0 -152 -32 ) ( -0 -200 -32 ) afloor1_3 24 -16 -0 1 1
( -0 -152 -0 ) ( -128 -152 -0 ) ( -128 -152 -32 ) afloor1_3 -0 -16 -0 1 1
( -128 -200 -0 ) ( -128 -152 -0 ) ( -0 -152 -0 ) afloor1_3 -0 -24 -0 1 1
( -128 -152 -32 ) ( -128 -200 -32 ) ( -0 -200 -32 ) afloor1_3 -0 -24 -0 1 1
( -0 -200 -32 ) ( -128 -200 -32 ) ( -128 -200 -0 ) afloor1_3 -0 -16 -0 1 1
( -128 -200 -0 ) ( -128 -200 -32 ) ( -128 -152 -32 ) afloor1_3 24 -16 -0 1 1
}
// brush 14
{
( -0 -216 16 ) ( -0 -216 -0 ) ( -0 -264 -0 ) city1_4 24 48 -0 1 1
( -0 -216 16 ) ( -16 -216 16 ) ( -16 -216 -0 ) city1_4 16 48 -0 1 1
( -16 -264 16 ) ( -16 -216 16 ) ( -0 -216 16 ) city1_4 16 -24 -0 1 1
( -16 -216 -0 ) ( -16 -264 -0 ) ( -0 -264 -0 ) city1_4 16 -24 -0 1 1
( -0 -304 -0 ) ( -16 -304 -0 ) ( -16 -304 16 ) city1_4 16 48 -0 1 1
( -16 -264 16 ) ( -16 -264 -0 ) ( -16 -216 -0 ) city1_4 24 48 -0 1 1
}
// brush 15
{
( -128 -344 -0 ) ( -128 -343 -0 ) ( -128 -344 1 ) city1_4 24 48 -0 1 1
( -16 -136 16 ) ( -16 -136 17 ) ( -16 -135 16 ) city1_4 24 48 -0 1 1
( -32 -232 -0 ) ( -32 -232 1 ) ( -31 -232 -0 ) city1_4 32 48 -0 1 1
( -16 -216 16 ) ( -15 -216 16 ) ( -16 -216 17 ) city1_4 32 48 -0 1 1
( -16 -136 16 ) ( -16 -135 16 ) ( -15 -136 16 ) city1_4 32 -24 -0 1 1
( -32 -344 -0 ) ( -31 -344 -0 ) ( -32 -343 -0 ) city1_4 32 -24 -0 1 1
}
// brush 16
{
( -48 -232 16 ) ( -48 -232 -0 ) ( -16 -232 8 ) maya2_2 -0 -0 -0 1 1
( -16 -232 8 ) ( -48 -232 -0 ) ( -16 -264 -0 ) maya2_2 -0 -88 -0 1 1
( -16 -232 8 ) ( -48 -264 16 ) ( -48 -232 16 ) maya2_2 -0 -88 -0 1 1
( -16 -232 8 ) ( -16 -264 -0 ) ( -48 -264 16 ) maya2_2 -0 -88 -0 1 1
( -48 -264 16 ) ( -48 -264 -0 ) ( -48 -232 -0 ) maya2_2 88 -0 -0 1 1
( -48 -232 -0 ) ( -48 -264 -0 ) ( -16 -264 -0 ) maya2_2 -0 -88 -0 1 1
( -16 -264 -0 ) ( -48 -264 -0 ) ( -48 -264 16 ) maya2_2 -0 -0 -0 1 1
}
// brush 17
{
( -0 -216 -0 ) ( -0 -216 -32 ) ( -0 -264 -32 ) afloor1_3 24 -16 -0 1 1
( -0 -216 -0 ) ( -128 -216 -0 ) ( -128 -216 -32 ) afloor1_3 -0 -16 -0 1 1
( -128 -264 -0 ) ( -128 -216 -0 ) ( -0 -216 -0 ) afloor1_3 -0 -24 -0 1 1
( -128 -216 -32 ) ( -128 -264 -32 ) ( -0 -264 -32 ) afloor1_3 -0 -24 -0 1 1
( -0 -304 -32 ) ( -128 -304 -32 ) ( -128 -304 -0 ) afloor1_3 -0 -16 -0 1 1
( -128 -264 -0 ) ( -128 -264 -32 ) ( -128 -216 -32 ) afloor1_3 24 -16 -0 1 1
}
// brush 18
{
( -0 120 -0 ) ( -0 120 -32 ) ( -0 72 -32 ) afloor1_3 -56 -16 -0 1 1
( -0 120 -0 ) ( -128 120 -0 ) ( -128 120 -32 ) afloor1_3 -0 -16 -0 1 1
( -128 72 -0 ) ( -128 120 -0 ) ( -0 120 -0 ) afloor1_3 -0 56 -0 1 1
( -128 120 -32 ) ( -128 72 -32 ) ( -0 72 -32 ) afloor1_3 -0 56 -0 1 1
( -0 72 -32 ) ( -128 72 -32 ) ( -128 72 -0 ) afloor1_3 -0 -16 -0 1 1
( -48 72 -0 ) ( -48 72 -32 ) ( -48 120 -32 ) afloor1_3 -56 -16 -0 1 1
}
// brush 19
{
( -48 -8 -0 ) ( -48 -7 -0 ) ( -48 -8 1 ) city1_4 -56 48 -0 1 1
( -16 200 16 ) ( -16 200 17 ) ( -16 201 16 ) city1_4 -56 48 -0 1 1
( -32 104 -0 ) ( -32 104 1 ) ( -31 104 -0 ) city1_4 32 48 -0 1 1
( -16 120 16 ) ( -15 120 16 ) ( -16 120 17 ) city1_4 32 48 -0 1 1
( -16 200 16 ) ( -16 201 16 ) ( -15 200 16 ) city1_4 32 56 -0 1 1
( -32 -8 -0 ) ( -31 -8 -0 ) ( -32 -7 -0 ) city1_4 32 56 -0 1 1
}
// brush 20
{
( -48 104 16 ) ( -48 104 -0 ) ( -16 104 8 ) maya2_2 -0 -0 -0 1 1
( -16 104 8 ) ( -48 104 -0 ) ( -16 72 -0 ) maya2_2 -0 120 -0 1 1
( -16 104 8 ) ( -48 72 16 ) ( -48 104 16 ) maya2_2 -0 120 -0 1 1
( -16 104 8 ) ( -16 72 -0 ) ( -48 72 16 ) maya2_2 -0 120 -0 1 1
( -48 72 16 ) ( -48 72 -0 ) ( -48 104 -0 ) maya2_2 -120 -0 -0 1 1
( -48 104 -0 ) ( -48 72 -0 ) ( -16 72 -0 ) maya2_2 -0 120 -0 1 1
( -16 72 -0 ) ( -48 72 -0 ) ( -48 72 16 ) maya2_2 -0 -0 -0 1 1
}
// brush 21
{
( -0 120 16 ) ( -0 120 -0 ) ( -0 72 -0 ) city1_4 -56 48 -0 1 1
( -0 120 16 ) ( -16 120 16 ) ( -16 120 -0 ) city1_4 16 48 -0 1 1
( -16 72 16 ) ( -16 120 16 ) ( -0 120 16 ) city1_4 16 56 -0 1 1
( -16 120 -0 ) ( -16 72 -0 ) ( -0 72 -0 ) city1_4 16 56 -0 1 1
( -0 72 -0 ) ( -16 72 -0 ) ( -16 72 16 ) city1_4 16 48 -0 1 1
( -16 72 16 ) ( -16 72 -0 ) ( -16 120 -0 ) city1_4 -56 48 -0 1 1
}
// brush 22
{
( -120 -8 -0 ) ( -120 -7 -0 ) ( -120 -8 1 ) city1_4 8 48 -0 1 1
( -88 200 16 ) ( -88 200 17 ) ( -88 201 16 ) city1_4 8 48 -0 1 1
( -104 104 -0 ) ( -104 104 1 ) ( -103 104 -0 ) city1_4 40 48 -0 1 1
( -88 120 16 ) ( -87 120 16 ) ( -88 120 17 ) city1_4 40 48 -0 1 1
( -88 200 16 ) ( -88 201 16 ) ( -87 200 16 ) city1_4 40 -8 -0 1 1
( -104 -8 -0 ) ( -103 -8 -0 ) ( -104 -7 -0 ) city1_4 40 -8 -0 1 1
}
// brush 23
{
( -72 120 16 ) ( -72 120 -0 ) ( -72 72 -0 ) city1_4 8 48 -0 1 1
( -72 120 16 ) ( -88 120 16 ) ( -88 120 -0 ) city1_4 24 48 -0 1 1
( -88 72 16 ) ( -88 120 16 ) ( -72 120 16 ) city1_4 24 -8 -0 1 1
( -88 120 -0 ) ( -88 72 -0 ) ( -72 72 -0 ) city1_4 24 -8 -0 1 1
( -72 72 -0 ) ( -88 72 -0 ) ( -88 72 16 ) city1_4 24 48 -0 1 1
( -88 72 16 ) ( -88 72 -0 ) ( -88 120 -0 ) city1_4 8 48 -0 1 1
}
// brush 24
{
( -72 120 -0 ) ( -72 120 -32 ) ( -72 72 -32 ) afloor1_3 8 -16 -0 1 1
( -72 120 -0 ) ( -200 120 -0 ) ( -200 120 -32 ) afloor1_3 8 -16 -0 1 1
( -200 72 -0 ) ( -200 120 -0 ) ( -72 120 -0 ) afloor1_3 8 -8 -0 1 1
( -200 120 -32 ) ( -200 72 -32 ) ( -72 72 -32 ) afloor1_3 8 -8 -0 1 1
( -72 72 -32 ) ( -200 72 -32 ) ( -200 72 -0 ) afloor1_3 8 -16 -0 1 1
( -120 72 -0 ) ( -120 72 -32 ) ( -120 120 -32 ) afloor1_3 8 -16 -0 1 1
}
// brush 25
{
( -88 104 8 ) ( -120 104 -0 ) ( -88 72 -0 ) maya2_2 72 -8 -0 1 1
( -88 104 8 ) ( -88 72 -0 ) ( -120 72 16 ) maya2_2 72 -8 -0 1 1
( -120 104 -0 ) ( -120 72 -0 ) ( -88 72 -0 ) maya2_2 72 -8 -0 1 1
( -88 72 -0 ) ( -120 72 -0 ) ( -120 72 16 ) maya2_2 72 -0 -0 1 1
( -120 72 16 ) ( -88 104 16 ) ( -88 104 144 ) maya2_2 72 0 0 1 1
}
// brush 26
{
( -120 104 16 ) ( -120 104 -0 ) ( -88 104 8 ) maya2_2 72 -0 -0 1 1
( -88 104 8 ) ( -120 104 -0 ) ( -88 72 -0 ) maya2_2 72 -8 -0 1 1
( -88 104 8 ) ( -120 72 16 ) ( -120 104 16 ) maya2_2 72 -8 -0 1 1
( -120 72 16 ) ( -120 72 -0 ) ( -120 104 -0 ) maya2_2 8 -0 -0 1 1
( -120 104 -0 ) ( -120 72 -0 ) ( -88 72 -0 ) maya2_2 72 -8 -0 1 1
( -120 72 16 ) ( -88 104 144 ) ( -88 104 16 ) maya2_2 72 0 0 1 1
}
// brush 27
{
( -72 192 -0 ) ( -72 192 -32 ) ( -72 144 -32 ) afloor1_3 -0 -16 -0 1 1
( -72 192 -0 ) ( -200 192 -0 ) ( -200 192 -32 ) afloor1_3 8 -16 -0 1 1
( -200 144 -0 ) ( -200 192 -0 ) ( -72 192 -0 ) afloor1_3 8 -0 -0 1 1
( -200 192 -32 ) ( -200 144 -32 ) ( -72 144 -32 ) afloor1_3 8 -0 -0 1 1
( -72 144 -32 ) ( -200 144 -32 ) ( -200 144 -0 ) afloor1_3 8 -16 -0 1 1
( -120 144 -0 ) ( -120 144 -32 ) ( -120 192 -32 ) afloor1_3 -0 -16 -0 1 1
}
// brush 28
{
( -120 176 16 ) ( -120 176 -0 ) ( -88 176 8 ) maya2_2 72 -0 -0 1 1
( -88 176 8 ) ( -120 176 -0 ) ( -88 144 -0 ) maya2_2 72 64 -0 1 1
( -88 176 8 ) ( -120 144 16 ) ( -120 176 16 ) maya2_2 72 64 -0 1 1
( -120 144 16 ) ( -120 144 -0 ) ( -120 176 -0 ) maya2_2 -64 -0 -0 1 1
( -120 176 -0 ) ( -120 144 -0 ) ( -88 144 -0 ) maya2_2 72 64 -0 1 1
( -120 144 16 ) ( -88 176 144 ) ( -88 176 16 ) maya2_2 -0 -0 -0 1 1
}
// brush 29
{
( -88 176 8 ) ( -120 176 -0 ) ( -88 144 -0 ) maya2_2 72 64 -0 1 1
( -88 176 8 ) ( -88 144 -0 ) ( -120 144 16 ) maya2_2 72 64 -0 1 1
( -120 176 -0 ) ( -120 144 -0 ) ( -88 144 -0 ) maya2_2 72 64 -0 1 1
( -88 144 -0 ) ( -120 144 -0 ) ( -120 144 16 ) maya2_2 72 -0 -0 1 1
( -120 144 16 ) ( -88 176 16 ) ( -88 176 144 ) maya2_2 -0 -0 -0 1 1
}
// brush 30
{
( -72 192 16 ) ( -72 192 -0 ) ( -72 144 -0 ) city1_4 -0 48 -0 1 1
( -72 192 16 ) ( -88 192 16 ) ( -88 192 -0 ) city1_4 24 48 -0 1 1
( -88 144 16 ) ( -88 192 16 ) ( -72 192 16 ) city1_4 24 -0 -0 1 1
( -88 192 -0 ) ( -88 144 -0 ) ( -72 144 -0 ) city1_4 24 -0 -0 1 1
( -72 144 -0 ) ( -88 144 -0 ) ( -88 144 16 ) city1_4 24 48 -0 1 1
( -88 144 16 ) ( -88 144 -0 ) ( -88 192 -0 ) city1_4 -0 48 -0 1 1
}
// brush 31
{
( -88 240 -0 ) ( -88 208 -0 ) ( -88 240 8 ) maya2_2 -32 -0 -0 1 1
( -88 240 -0 ) ( -120 208 -0 ) ( -88 208 -0 ) maya2_2 -0 32 -0 1 1
( -88 240 8 ) ( -120 208 16 ) ( -120 208 -0 ) maya2_2 -32 -0 -0 1 1
( -120 208 -0 ) ( -120 208 16 ) ( -88 208 -0 ) maya2_2 -0 -0 -0 1 1
( -88 208 -0 ) ( -120 208 16 ) ( -88 240 8 ) maya2_2 -0 32 -0 1 1
}
// brush 32
{
( -120 240 -0 ) ( -120 208 -0 ) ( -88 240 -0 ) maya2_2 -0 32 -0 1 1
( -120 240 16 ) ( -120 208 16 ) ( -120 208 -0 ) maya2_2 -32 -0 -0 1 1
( -120 240 16 ) ( -88 240 8 ) ( -120 208 16 ) maya2_2 -0 32 -0 1 1
( -120 208 16 ) ( -88 240 8 ) ( -88 240 -0 ) maya2_2 -32 -0 -0 1 1
( -88 240 -0 ) ( -88 240 8 ) ( -120 240 16 ) maya2_2 -0 -0 -0 1 1
}
// brush 33
{
( -120 128 -0 ) ( -120 129 -0 ) ( -120 128 1 ) city1_4 -0 48 -0 1 1
( -88 336 16 ) ( -88 336 17 ) ( -88 337 16 ) city1_4 -0 48 -0 1 1
( -104 240 -0 ) ( -104 240 1 ) ( -103 240 -0 ) city1_4 40 48 -0 1 1
( -88 256 16 ) ( -87 256 16 ) ( -88 256 17 ) city1_4 40 48 -0 1 1
( -88 336 16 ) ( -88 337 16 ) ( -87 336 16 ) city1_4 40 -0 -0 1 1
( -104 128 -0 ) ( -103 128 -0 ) ( -104 129 -0 ) city1_4 40 -0 -0 1 1
}
// brush 34
{
( -72 256 16 ) ( -72 256 -0 ) ( -72 208 -0 ) city1_4 -0 48 -0 1 1
( -72 256 16 ) ( -88 256 16 ) ( -88 256 -0 ) city1_4 24 48 -0 1 1
( -88 208 16 ) ( -88 256 16 ) ( -72 256 16 ) city1_4 24 -0 -0 1 1
( -88 256 -0 ) ( -88 208 -0 ) ( -72 208 -0 ) city1_4 24 -0 -0 1 1
( -72 208 -0 ) ( -88 208 -0 ) ( -88 208 16 ) city1_4 24 48 -0 1 1
( -88 208 16 ) ( -88 208 -0 ) ( -88 256 -0 ) city1_4 -0 48 -0 1 1
}
// brush 35
{
( -72 256 -0 ) ( -72 256 -32 ) ( -72 208 -32 ) afloor1_3 -0 -16 -0 1 1
( -72 256 -0 ) ( -200 256 -0 ) ( -200 256 -32 ) afloor1_3 8 -16 -0 1 1
( -200 208 -0 ) ( -200 256 -0 ) ( -72 256 -0 ) afloor1_3 8 -0 -0 1 1
( -200 256 -32 ) ( -200 208 -32 ) ( -72 208 -32 ) afloor1_3 8 -0 -0 1 1
( -72 208 -32 ) ( -200 208 -32 ) ( -200 208 -0 ) afloor1_3 8 -16 -0 1 1
( -120 208 -0 ) ( -120 208 -32 ) ( -120 256 -32 ) afloor1_3 -0 -16 -0 1 1
}
}
// entity 1
{
"classname" "info_player_start"
"origin" "-96 -64 24"
}

View File

@ -0,0 +1,7 @@
c9683e945bb01528a768653cdb79584dfbc8be6f76b712cbf0d24482a4ae3cc3 *e1m1-bsp29.bsp
a8024b07d48abc0553ff3628d6d4cb62138f67808b425b833e5643068231c2e4 *e1m1-bsp2.bsp
cb11d4f40d92c9d349fd11f9e4901e9cd9aa82db9971181a615c197f75f4b4a6 *e1m1-2psb.bsp
f5656ae5a98b4044568e70a411afe2b37cae41c14f7262f26be2aa45aebc3672 *e1m1-hexen2.bsp
4e0fec87702736481d08d67366f300bf351944f0ebcd4daafa56cbfb2f509893 *e1m1-hexen2-bsp2.bsp
a5eb5b451baab8db48a141285479669656010fc7d3945e30672d609169b040e5 *e1m1-hexen2-2psb.bsp
ecf7a82cfad86c3b8a330645233c17011f77b8fef844130ac85dd6e8972eea8f *e1m1-hlbsp.bsp

7
testmaps/qbsp.sha256sum Normal file
View File

@ -0,0 +1,7 @@
d289427e3c8a7046dce509a83401f6732a9c5f8194f8beb3eee431e33215656c *e1m1-bsp29.bsp
85002a12afa023d850199e205f01fc58de2743f97aea9b2a22a3b0ac3ce8f7ad *e1m1-bsp2.bsp
832ec9aff302ddfcc5ab4fe0911afec0b4d57c60e02dc1c8f61e1edbf8f53eda *e1m1-2psb.bsp
5e20fca2a3b6c975efe257a5768d8f8cde10ecb96abec535ea2c2d0b45d3a051 *e1m1-hexen2.bsp
018b759817dcc2ca343bdd38d511c455c13be992734e97e2fa1ad88e614240b1 *e1m1-hexen2-bsp2.bsp
015c582d9a76ec0f911c5d5f2e7ebcc1ad01ee81860dd113222259f65a40e953 *e1m1-hexen2-2psb.bsp
66936b95d27716cbcb28bc6bf8a0191f8d53bc7e2823abcb85cd04fec9d2fcb6 *e1m1-hlbsp.bsp

View File

@ -6,3 +6,4 @@ for file in *.map; do
qbsp -leaktest -noverbose "$file" || exit 1
done
exit 0