Merge remote-tracking branch 'origin/master' into pr/322

This commit is contained in:
Eric Wasylishen 2021-10-07 23:40:57 -06:00
commit 447b9e0492
8 changed files with 5464 additions and 2 deletions

1
.gitignore vendored
View File

@ -6,6 +6,7 @@ CMakeFiles/
*.xcodeproj
.*/
testmaps/*.bsp
testmaps/*.bsp.qbsplog
testmaps/*.log
testmaps/*.prt
testmaps/*.vis

View File

@ -37,6 +37,7 @@ light invalid_texture_axes.map || exit 1
HASH_CHECK_BSPS="qbsp_func_detail.bsp \
qbsp_func_detail_illusionary_plus_water.bsp \
qbsp_origin.bsp \
e1m1-bsp29.bsp \
e1m1-bsp2.bsp \
e1m1-2psb.bsp \
@ -53,7 +54,8 @@ HASH_CHECK_PRTS=${HASH_CHECK_BSPS//.bsp/.prt}
# for tiny test maps, we'll commit the .json export of the .bsp's
# directly to the git repo, so we can print a diff
COMMIT_JSON_MAPS="qbsp_func_detail.bsp \
qbsp_func_detail_illusionary_plus_water.bsp"
qbsp_func_detail_illusionary_plus_water.bsp \
qbsp_origin.bsp"
# smaller test maps for specific features/combinations
# check .json diff of COMMIT_JSON_MAPS

View File

@ -1,5 +1,6 @@
415d75b92b48e753b3ffc462b9e002a6c4e659481e8cc7609b268d03d0985029 *qbsp_func_detail.bsp
c9524f3858d9df55f612fb4b75670434712c2ed58a37e8534bf48f82eb6f81db *qbsp_func_detail_illusionary_plus_water.bsp
d53dd0556bca6dc2cc0663732e0e0494b280dae5ced4a3b653078122f287cdff *qbsp_origin.bsp
c3e0cfd0388a730835a73eb33155a454e459d2173e4b2e4df3825a45e1d9b34e *e1m1-bsp29.bsp
6c1280a4db77acd2076a47cf918f1ef7d60e6646bfb995373c122fe74522d495 *e1m1-bsp2.bsp
c73b5d7c4a769fc49ef84f7dd5e1c0e241526ba38ed3c65995f0addbf5052bb1 *e1m1-2psb.bsp

View File

@ -1,5 +1,6 @@
6b27857f7fca00c0412998db914f19f1e0c1408dbbd8800230589a39c67b94bb *qbsp_func_detail.bsp
9c316cfa2587aba74925a96883bc5553490daf14ad3ed31a2669cfd7a53036a2 *qbsp_func_detail_illusionary_plus_water.bsp
5758716ec3ba451cc293ae25eecff4679c0ad7379bef09f0b01f19ce6eb52d63 *qbsp_origin.bsp
9c8e99b94adab8a1c167585cea24b93f5de97eb27edfa1d1bdf62e65b8c41225 *e1m1-bsp29.bsp
663d18865131d41cd2e3114c1cbe19d81aadd12bd6c76b8500508b9216bbf167 *e1m1-bsp2.bsp
1a1b53f1bdebf966a0846b9466638c0b3b3678eee6488fb572dd9a9ccd7b3084 *e1m1-2psb.bsp
@ -12,6 +13,7 @@ af969da100d8dda94d355277c60382c925aabe18c6a4ce9b7500e4e43313f7f4 *e1m1-bspxbrush
02edda18a76b57b2e24f92b4dc9967239ebb9e5136e4f43522e381059bafd458 *qbspfeatures.bsp
abf3633d5a6d0e167ce9bacec476d3408c8240df5f3d72d14867cd201d4e3674 *qbsp_func_detail.prt
c0995c6b92256fa048c1a755ebe7e07f5fae33cb64e3c53adc234380fe44f267 *qbsp_func_detail_illusionary_plus_water.prt
b1ac538e53efc28ace2088324b1c0504d0f09b013d30b39ce231d76124bc6c22 *qbsp_origin.prt
08349ab23c97120c41493d8fb00b9a6c41553aba64b1710ba11cc5bdfbe51e45 *e1m1-bsp29.prt
08349ab23c97120c41493d8fb00b9a6c41553aba64b1710ba11cc5bdfbe51e45 *e1m1-bsp2.prt
08349ab23c97120c41493d8fb00b9a6c41553aba64b1710ba11cc5bdfbe51e45 *e1m1-2psb.prt

134
testmaps/qbsp_origin.map Normal file
View File

@ -0,0 +1,134 @@
// Game: Quake
// Format: Valve
// entity 0
{
"mapversion" "220"
"classname" "worldspawn"
"wad" "deprecated/free_wad.wad;deprecated/fence.wad;deprecated/origin.wad;deprecated/hintskip.wad"
"_wateralpha" "0.5"
"_tb_def" "builtin:Quoth2.fgd"
// brush 0
{
( -176 -256 64 ) ( -176 -255 64 ) ( -176 -256 65 ) tsl_wall1 [ 0 -1 0 0 ] [ 0 0 -1 -32 ] 0 1 1
( -176 -432 64 ) ( -176 -432 65 ) ( -175 -432 64 ) tsl_wall1 [ 1 0 0 16 ] [ 0 0 -1 -32 ] 0 1 1
( -176 -256 96 ) ( -175 -256 96 ) ( -176 -255 96 ) tsl_wall1 [ -1 0 0 -16 ] [ 0 -1 0 0 ] 0 1 1
( -160 192 352 ) ( -160 193 352 ) ( -159 192 352 ) tsl_wall1 [ 1 0 0 16 ] [ 0 -1 0 0 ] 0 1 1
( -160 176 80 ) ( -159 176 80 ) ( -160 176 81 ) tsl_wall1 [ -1 0 0 -16 ] [ 0 0 -1 -32 ] 0 1 1
( -160 192 80 ) ( -160 192 81 ) ( -160 193 80 ) tsl_wall1 [ 0 1 0 0 ] [ 0 0 -1 -32 ] 0 1 1
}
// brush 1
{
( -160 176 88 ) ( -160 177 88 ) ( -160 176 89 ) tsl_wall1 [ 0 1.0000000000000002 0 -32 ] [ 0 0 -1.0000000000000002 -32 ] 0 1 1
( -160 176 88 ) ( -160 176 89 ) ( -159 176 88 ) tsl_wall1 [ -1 0 0 -16 ] [ 0 0 -1 -32 ] 0 1 1
( -160 176 96 ) ( -159 176 96 ) ( -160 177 96 ) tsl_wall1 [ -1.0000000000000002 0 0 -16 ] [ 0 1.0000000000000002 0 -40 ] 0 1 1
( 288 192 352 ) ( 288 193 352 ) ( 289 192 352 ) tsl_wall1 [ -1.0000000000000002 0 0 -16 ] [ 0 -1.0000000000000002 0 48 ] 0 1 1
( 288 192 96 ) ( 289 192 96 ) ( 288 192 97 ) tsl_wall1 [ -1 0 0 -16 ] [ 0 0 -1 -32 ] 0 1 1
( 288 192 96 ) ( 288 192 97 ) ( 288 193 96 ) tsl_wall1 [ 0 -1.0000000000000002 0 0 ] [ 0 0 -1.0000000000000002 -32 ] 0 1 1
}
// brush 2
{
( -160 -112 96 ) ( -160 -111 96 ) ( -160 -112 97 ) orangestuff8 [ 0 1 0 -16 ] [ 0 0 -1 0 ] 0 1 1
( -80 -432 80 ) ( -81 -432 80 ) ( -80 -432 81 ) orangestuff8 [ -1 0 0 16 ] [ 0 0 -1 0 ] 180 1 1
( -80 -432 80 ) ( -80 -431 80 ) ( -81 -432 80 ) orangestuff8 [ 1 0 0 -16 ] [ 0 -1 0 16 ] 180 1 1
( -160 -112 96 ) ( -161 -112 96 ) ( -160 -111 96 ) orangestuff8 [ -1 0 0 16 ] [ 0 -1 0 16 ] 180 1 1
( -160 176 96 ) ( -160 176 97 ) ( -161 176 96 ) orangestuff8 [ 1 0 0 -16 ] [ 0 0 -1 0 ] 180 1 1
( 288 -432 80 ) ( 288 -432 81 ) ( 288 -431 80 ) orangestuff8 [ 0 -1 0 16 ] [ 0 0 -1 0 ] 0 1 1
}
// brush 3
{
( -160 -448 88 ) ( -160 -447 88 ) ( -160 -448 89 ) tsl_wall1 [ 0 1.0000000000000002 0 80 ] [ 0 0 -1.0000000000000002 -32 ] 0 1 1
( -160 -448 88 ) ( -160 -448 89 ) ( -159 -448 88 ) tsl_wall1 [ -1 0 0 -16 ] [ 0 0 -1 -32 ] 0 1 1
( -160 -448 96 ) ( -159 -448 96 ) ( -160 -447 96 ) tsl_wall1 [ -1.0000000000000002 0 0 -16 ] [ 0 1.0000000000000002 0 72 ] 0 1 1
( 288 -432 352 ) ( 288 -431 352 ) ( 289 -432 352 ) tsl_wall1 [ -1.0000000000000002 0 0 -16 ] [ 0 -1.0000000000000002 0 -64 ] 0 1 1
( 288 -432 96 ) ( 289 -432 96 ) ( 288 -432 97 ) tsl_wall1 [ -1 0 0 -16 ] [ 0 0 -1 -32 ] 0 1 1
( 288 -432 96 ) ( 288 -432 97 ) ( 288 -431 96 ) tsl_wall1 [ 0 -1.0000000000000002 0 -112 ] [ 0 0 -1.0000000000000002 -32 ] 0 1 1
}
// brush 4
{
( -160 -256 352 ) ( -160 -255 352 ) ( -160 -256 353 ) orangestuff8 [ 0 0 -1.0000000000000002 0 ] [ 0 -1.0000000000000002 0 0 ] 180 1 1
( 288 -432 360 ) ( 288 -432 361 ) ( 289 -432 360 ) orangestuff8 [ -1.0000000000000002 0 0 0 ] [ 0 0 1.0000000000000002 -16 ] 180 1 1
( -160 -256 352 ) ( -159 -256 352 ) ( -160 -255 352 ) orangestuff8 [ -1 0 0 0 ] [ 0 -1 0 0 ] 180 1 1
( 288 176 368 ) ( 288 177 368 ) ( 289 176 368 ) orangestuff8 [ -1 0 0 0 ] [ 0 -1 0 0 ] 180 1 1
( 288 176 360 ) ( 289 176 360 ) ( 288 176 361 ) orangestuff8 [ -1.0000000000000002 0 0 0 ] [ 0 0 1.0000000000000002 -16 ] 180 1 1
( 288 176 360 ) ( 288 176 361 ) ( 288 177 360 ) orangestuff8 [ 0 0 1.0000000000000002 0 ] [ 0 -1.0000000000000002 0 0 ] 180 1 1
}
// brush 5
{
( 288 192 80 ) ( 288 193 80 ) ( 288 192 81 ) tsl_wall1 [ 0 1 0 0 ] [ 0 0 -1 -32 ] 0 1 1
( 304 -432 64 ) ( 303 -432 64 ) ( 304 -432 65 ) tsl_wall1 [ -1 0 0 16 ] [ 0 0 -1 -32 ] 180 1 1
( 304 -256 96 ) ( 304 -255 96 ) ( 303 -256 96 ) tsl_wall1 [ 1 0 0 -16 ] [ 0 -1 0 0 ] 180 1 1
( 304 -256 352 ) ( 303 -256 352 ) ( 304 -255 352 ) tsl_wall1 [ 1 0 0 -16 ] [ 0 -1 0 0 ] 180 1 1
( 288 176 80 ) ( 288 176 81 ) ( 287 176 80 ) tsl_wall1 [ 1 0 0 -16 ] [ 0 0 -1 -32 ] 180 1 1
( 304 -256 64 ) ( 304 -256 65 ) ( 304 -255 64 ) tsl_wall1 [ 0 -1 0 0 ] [ 0 0 -1 -32 ] 0 1 1
}
}
// entity 1
{
"classname" "light"
"origin" "72 -136 168"
"light" "3000"
}
// entity 2
{
"classname" "info_player_start"
"origin" "-88 -64 120"
}
// entity 3
{
"classname" "rotate_object"
"targetname" "fan"
// brush 0
{
( 208 -208 352 ) ( 208 -224 352 ) ( 208 -224 336 ) origin [ 0 -0.5 0 24 ] [ 0 0 -0.5 8 ] 0 1 1
( 208 -224 352 ) ( 224 -224 352 ) ( 224 -224 336 ) origin [ 0.5 0 0 -52 ] [ 0 0 -0.5 8 ] 0 1 1
( 224 -224 336 ) ( 224 -208 336 ) ( 208 -208 336 ) origin [ -0.5 0 0 52 ] [ 0 -0.5 0 24 ] 0 1 1
( 208 -208 352 ) ( 224 -208 352 ) ( 224 -224 352 ) origin [ 0.5 0 0 -52 ] [ 0 -0.5 0 24 ] 0 1 1
( 224 -208 336 ) ( 224 -208 352 ) ( 208 -208 352 ) origin [ -0.5 0 0 52 ] [ 0 0 -0.5 8 ] 0 1 1
( 224 -224 352 ) ( 224 -208 352 ) ( 224 -208 336 ) origin [ 0 0.5 0 -24 ] [ 0 0 -0.5 8 ] 0 1 1
}
// brush 1
{
( 212 -220 348 ) ( 204 -272 348 ) ( 204 -272 340 ) bolt14 [ -6.123233995736766e-17 -1 0 16 ] [ 0 0 -1 -12 ] 0 1 1
( 204 -272 348 ) ( 228 -272 348 ) ( 228 -272 340 ) bolt14 [ 1 -6.123233995736766e-17 0 -20 ] [ 0 0 -1 -12 ] 0 1 1
( 204 -272 340 ) ( 228 -272 340 ) ( 220 -220 340 ) bolt14 [ -6.123233995736766e-17 -1 0 16 ] [ 1 -6.123233995736766e-17 0 -20 ] 90 1 1
( 220 -220 348 ) ( 228 -272 348 ) ( 204 -272 348 ) bolt14 [ 6.123233995736766e-17 1 0 -16 ] [ 1 -6.123233995736766e-17 0 -20 ] 270 1 1
( 220 -220 340 ) ( 220 -220 348 ) ( 212 -220 348 ) bolt14 [ -1 6.123233995736766e-17 0 20 ] [ 0 0 -1 -12 ] 0 1 1
( 228 -272 340 ) ( 228 -272 348 ) ( 220 -220 348 ) bolt14 [ 6.123233995736766e-17 1 0 -16 ] [ 0 0 -1 -12 ] 0 1 1
}
// brush 2
{
( 160 -204 348 ) ( 160 -228 348 ) ( 160 -228 340 ) bolt14 [ 0 -1 0 44 ] [ 0 0 -1 -12 ] 0 1 1
( 212 -220 340 ) ( 212 -212 340 ) ( 160 -204 340 ) bolt14 [ -1 0 0 0 ] [ 0 -1 0 44 ] 0 1 1
( 160 -204 348 ) ( 212 -212 348 ) ( 212 -220 348 ) bolt14 [ 1 0 0 0 ] [ 0 -1 0 44 ] 0 1 1
( 160 -228 348 ) ( 212 -220 348 ) ( 212 -220 340 ) bolt14 [ 1 0 0 0 ] [ 0 0 -1 -12 ] 0 1 1
( 212 -212 340 ) ( 212 -212 348 ) ( 160 -204 348 ) bolt14 [ -1 0 0 0 ] [ 0 0 -1 -12 ] 0 1 1
( 212 -220 348 ) ( 212 -212 348 ) ( 212 -212 340 ) bolt14 [ 0 1 0 -44 ] [ 0 0 -1 -12 ] 0 1 1
}
// brush 3
{
( 212 -212 340 ) ( 204 -160 340 ) ( 204 -160 348 ) bolt14 [ -6.123233995736766e-17 -1 0 16 ] [ 0 0 -1 -12 ] 0 1 1
( 212 -212 348 ) ( 220 -212 348 ) ( 220 -212 340 ) bolt14 [ 1 -6.123233995736766e-17 0 -20 ] [ 0 0 -1 -12 ] 0 1 1
( 220 -212 340 ) ( 228 -160 340 ) ( 204 -160 340 ) bolt14 [ -6.123233995736766e-17 -1 0 16 ] [ 1 -6.123233995736766e-17 0 -20 ] 90 1 1
( 204 -160 348 ) ( 228 -160 348 ) ( 220 -212 348 ) bolt14 [ 6.123233995736766e-17 1 0 -16 ] [ 1 -6.123233995736766e-17 0 -20 ] 270 1 1
( 228 -160 340 ) ( 228 -160 348 ) ( 204 -160 348 ) bolt14 [ -1 6.123233995736766e-17 0 20 ] [ 0 0 -1 -12 ] 0 1 1
( 220 -212 348 ) ( 228 -160 348 ) ( 228 -160 340 ) bolt14 [ 6.123233995736766e-17 1 0 -16 ] [ 0 0 -1 -12 ] 0 1 1
}
// brush 4
{
( 220 -212 348 ) ( 220 -220 348 ) ( 220 -220 340 ) bolt14 [ 0 -1 0 44 ] [ 0 0 -1 -12 ] 0 1 1
( 220 -220 348 ) ( 272 -228 348 ) ( 272 -228 340 ) bolt14 [ 1 0 0 0 ] [ 0 0 -1 -12 ] 0 1 1
( 272 -204 340 ) ( 272 -204 348 ) ( 220 -212 348 ) bolt14 [ -1 0 0 0 ] [ 0 0 -1 -12 ] 0 1 1
( 272 -228 340 ) ( 272 -204 340 ) ( 220 -212 340 ) bolt14 [ -1 0 0 0 ] [ 0 -1 0 44 ] 0 1 1
( 220 -212 348 ) ( 272 -204 348 ) ( 272 -228 348 ) bolt14 [ 1 0 0 0 ] [ 0 -1 0 44 ] 0 1 1
( 272 -228 348 ) ( 272 -204 348 ) ( 272 -204 340 ) bolt14 [ 0 1 0 -44 ] [ 0 0 -1 -12 ] 0 1 1
}
// brush 5
{
( 212 -220 348 ) ( 212 -212 340 ) ( 212 -212 348 ) bolt14 [ 0 -1 0 20 ] [ 0 0 -1 20 ] 0 1 1
( 220 -220 348 ) ( 212 -220 340 ) ( 212 -220 348 ) bolt14 [ 1 0 0 -24 ] [ 0 0 -1 20 ] 0 1 1
( 220 -212 340 ) ( 212 -220 340 ) ( 220 -220 340 ) bolt14 [ -1 0 0 24 ] [ 0 -1 0 20 ] 0 1 1
( 220 -212 348 ) ( 212 -220 348 ) ( 212 -212 348 ) bolt14 [ 1 0 0 -24 ] [ 0 -1 0 20 ] 0 1 1
( 220 -212 348 ) ( 212 -212 340 ) ( 220 -212 340 ) bolt14 [ -1 0 0 24 ] [ 0 0 -1 20 ] 0 1 1
( 220 -212 348 ) ( 220 -220 340 ) ( 220 -220 348 ) bolt14 [ 0 1 0 -20 ] [ 0 0 -1 20 ] 0 1 1
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,88 @@
---- qbsp / ericw-tools v0.18.1-373-gca7002c ----
Input file: qbsp_origin.map
Output file: qbsp_origin.bsp
SetQdirFromPath: no "maps" in 'C:\Users\Eric\Documents\ericwtools-vcpkgtest\testmaps\/qbsp_origin.map'
---- LoadMapFile ----
*** WARNING 06: No info_player_deathmatch entities in level
72 faces
12 brushes
4 entities
4 unique texnames
50 texinfo
Opened WAD: deprecated/free_wad.wad
Opened WAD: deprecated/fence.wad
Opened WAD: deprecated/origin.wad
Opened WAD: deprecated/hintskip.wad
Processing hull 0...
---- Brush_LoadEntity ----
6 brushes
12 planes
---- CSGFaces ----
36 brushfaces
36 csgfaces
36 mergedfaces
---- SolidBSP ----
24 split nodes
6 solid leafs
19 empty leafs
0 water leafs
0 detail leafs
0 detail illusionary leafs
0 detail fence leafs
0 illusionary visblocker leafs
120 leaffaces
120 nodefaces
---- Portalize ----
19 vis leafs
19 vis clusters
40 vis portals
---- FillOutside ----
18 outleafs
---- MergeAll ----
6 mergefaces
---- SolidBSP ----
6 split nodes
6 solid leafs
1 empty leafs
0 water leafs
0 detail leafs
0 detail illusionary leafs
0 detail fence leafs
0 illusionary visblocker leafs
32 leaffaces
32 nodefaces
---- Portalize ----
1 vis leafs
1 vis clusters
0 vis portals
---- Tjunc ----
28 world edges
100 edge points
16 edges added by tjunctions
0 faces added by tjunctions
---- MakeFaceEdges ----
---- GrowRegions ----
Processing hull 1...
Processing hull 2...
---- WriteBSPFile ----
Writing qbsp_origin.bsp as BSP version Quake BSP
Wrote qbsp_origin.bsp
2 models
58 planes 1160
66 vertexes 792
20 nodes 480
18 texinfos 720
54 faces 1080
64 clipnodes 512
12 leafs 336
54 marksurfaces 108
117 edges 468
232 surfedges 928
4 textures 38260
lightdata 0
visdata 0
entdata 417
0.057 seconds elapsed

View File

@ -497,7 +497,8 @@ static void LeafFlow(int leafnum, mleaf_t *dleaf, const mbsp_t *bsp)
totalvis += numvis;
/* Allocate for worst case where RLE might grow the data (unlikely) */
compressed = new uint8_t[(portalleafs * 2) / 8];
/* Also, always allocate at least 1 byte (for vising single leaf test maps) */
compressed = new uint8_t[qmax(1, (portalleafs * 2) / 8)];
len = CompressRow(outbuffer, (portalleafs + 7) >> 3, compressed);
dest = vismap_p;