qbsp: fix func_detail_fence/func_detail_wall with DETAIL set on brushes
This commit is contained in:
parent
60dea4af4c
commit
096f347a12
|
|
@ -746,7 +746,7 @@ static void Brush_LoadEntity(mapentity_t &dst, mapentity_t &src, hull_index_t hu
|
|||
continue;
|
||||
|
||||
/* turn solid brushes into detail, if we're in hull0 */
|
||||
if (hullnum <= 0 && contents.is_solid(qbsp_options.target_game)) {
|
||||
if (hullnum <= 0 && contents.is_any_solid(qbsp_options.target_game)) {
|
||||
if (detail_illusionary) {
|
||||
contents = qbsp_options.target_game->create_detail_illusionary_contents(contents);
|
||||
} else if (detail_fence) {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,126 @@
|
|||
// Game: Quake 2
|
||||
// Format: Quake2 (Valve)
|
||||
// entity 0
|
||||
{
|
||||
"mapversion" "220"
|
||||
"classname" "worldspawn"
|
||||
"_tb_textures" "textures/e1u1"
|
||||
// brush 0
|
||||
{
|
||||
( 24 244 64 ) ( 24 245 64 ) ( 24 244 65 ) e1u1/ggrat4_2 [ 0 1.0000000000000002 0 -16 ] [ 0 0 -1.0000000000000002 -32 ] 0 1 1
|
||||
( 24 68 64 ) ( 24 68 65 ) ( 25 68 64 ) e1u1/ggrat4_2 [ -1 0 0 -16 ] [ 0 0 -1 -32 ] 0 1 1
|
||||
( 24 244 96 ) ( 25 244 96 ) ( 24 245 96 ) e1u1/ggrat4_2 [ -1.0000000000000002 0 0 -16 ] [ 0 1.0000000000000002 0 -48 ] 0 1 1
|
||||
( 40 692 352 ) ( 40 693 352 ) ( 41 692 352 ) e1u1/ggrat4_2 [ -1.0000000000000002 0 0 -16 ] [ 0 -1.0000000000000002 0 -80 ] 0 1 1
|
||||
( 40 676 80 ) ( 41 676 80 ) ( 40 676 81 ) e1u1/ggrat4_2 [ -1 0 0 -16 ] [ 0 0 -1 -32 ] 0 1 1
|
||||
( 40 692 80 ) ( 40 692 81 ) ( 40 693 80 ) e1u1/ggrat4_2 [ 0 -1.0000000000000002 0 64 ] [ 0 0 -1.0000000000000002 -32 ] 0 1 1
|
||||
}
|
||||
// brush 1
|
||||
{
|
||||
( 40 676 88 ) ( 40 677 88 ) ( 40 676 89 ) e1u1/ggrat4_2 [ 0 1.0000000000000002 0 -32 ] [ 0 0 -1.0000000000000002 -32 ] 0 1 1
|
||||
( 40 676 88 ) ( 40 676 89 ) ( 41 676 88 ) e1u1/ggrat4_2 [ -1 0 0 -16 ] [ 0 0 -1 -32 ] 0 1 1
|
||||
( 40 676 96 ) ( 41 676 96 ) ( 40 677 96 ) e1u1/ggrat4_2 [ -1.0000000000000002 0 0 -16 ] [ 0 1.0000000000000002 0 -40 ] 0 1 1
|
||||
( 488 692 352 ) ( 488 693 352 ) ( 489 692 352 ) e1u1/ggrat4_2 [ -1.0000000000000002 0 0 -16 ] [ 0 -1.0000000000000002 0 48 ] 0 1 1
|
||||
( 488 692 96 ) ( 489 692 96 ) ( 488 692 97 ) e1u1/ggrat4_2 [ -1 0 0 -16 ] [ 0 0 -1 -32 ] 0 1 1
|
||||
( 488 692 96 ) ( 488 692 97 ) ( 488 693 96 ) e1u1/ggrat4_2 [ 0 -1.0000000000000002 0 0 ] [ 0 0 -1.0000000000000002 -32 ] 0 1 1
|
||||
}
|
||||
// brush 2
|
||||
{
|
||||
( 40 52 88 ) ( 40 53 88 ) ( 40 52 89 ) e1u1/ggrat4_2 [ 0 1 0 0 ] [ 0 0 -1 -32 ] 0 1 1
|
||||
( 40 52 88 ) ( 40 52 89 ) ( 41 52 88 ) e1u1/ggrat4_2 [ -1.0000000000000002 0 0 -32 ] [ 0 0 -1.0000000000000002 -32 ] 0 1 1
|
||||
( 40 52 96 ) ( 41 52 96 ) ( 40 53 96 ) e1u1/ggrat4_2 [ 0 1.0000000000000002 0 0 ] [ 1.0000000000000002 0 0 -32 ] 0 1 1
|
||||
( 488 68 352 ) ( 488 69 352 ) ( 489 68 352 ) e1u1/ggrat4_2 [ 0 1.0000000000000002 0 0 ] [ -1.0000000000000002 0 0 -96 ] 0 1 1
|
||||
( 488 68 96 ) ( 489 68 96 ) ( 488 68 97 ) e1u1/ggrat4_2 [ 1.0000000000000002 0 0 -80 ] [ 0 0 -1.0000000000000002 -32 ] 0 1 1
|
||||
( 488 68 96 ) ( 488 68 97 ) ( 488 69 96 ) e1u1/ggrat4_2 [ 0 1 0 0 ] [ 0 0 -1 -32 ] 0 1 1
|
||||
}
|
||||
// brush 3
|
||||
{
|
||||
( 40 244 352 ) ( 40 245 352 ) ( 40 244 353 ) e1u1/florr1_8 [ 0 0 -1.0000000000000002 0 ] [ 0 -1.0000000000000002 0 0 ] 180 1 1
|
||||
( 488 68 360 ) ( 488 68 361 ) ( 489 68 360 ) e1u1/florr1_8 [ -1.0000000000000002 0 0 0 ] [ 0 0 1.0000000000000002 -16 ] 180 1 1
|
||||
( 40 244 352 ) ( 41 244 352 ) ( 40 245 352 ) e1u1/florr1_8 [ -1 0 0 0 ] [ 0 -1 0 0 ] 180 1 1
|
||||
( 488 676 368 ) ( 488 677 368 ) ( 489 676 368 ) e1u1/florr1_8 [ -1 0 0 0 ] [ 0 -1 0 0 ] 180 1 1
|
||||
( 488 676 360 ) ( 489 676 360 ) ( 488 676 361 ) e1u1/florr1_8 [ -1.0000000000000002 0 0 0 ] [ 0 0 1.0000000000000002 -16 ] 180 1 1
|
||||
( 488 676 360 ) ( 488 676 361 ) ( 488 677 360 ) e1u1/florr1_8 [ 0 0 1.0000000000000002 0 ] [ 0 -1.0000000000000002 0 0 ] 180 1 1
|
||||
}
|
||||
// brush 4
|
||||
{
|
||||
( 488 692 80 ) ( 488 693 80 ) ( 488 692 81 ) e1u1/ggrat4_2 [ 0 1 0 0 ] [ 0 0 -1 -32 ] 0 1 1
|
||||
( 504 68 64 ) ( 503 68 64 ) ( 504 68 65 ) e1u1/ggrat4_2 [ -1 0 0 16 ] [ 0 0 -1 -32 ] 180 1 1
|
||||
( 504 244 96 ) ( 504 245 96 ) ( 503 244 96 ) e1u1/ggrat4_2 [ 1 0 0 -16 ] [ 0 -1 0 0 ] 180 1 1
|
||||
( 504 244 352 ) ( 503 244 352 ) ( 504 245 352 ) e1u1/ggrat4_2 [ 1 0 0 -16 ] [ 0 -1 0 0 ] 180 1 1
|
||||
( 488 676 80 ) ( 488 676 81 ) ( 487 676 80 ) e1u1/ggrat4_2 [ 1 0 0 -16 ] [ 0 0 -1 -32 ] 180 1 1
|
||||
( 504 244 64 ) ( 504 244 65 ) ( 504 245 64 ) e1u1/ggrat4_2 [ 0 -1 0 0 ] [ 0 0 -1 -32 ] 0 1 1
|
||||
}
|
||||
// brush 5
|
||||
{
|
||||
( 40 388 96 ) ( 40 389 96 ) ( 40 388 97 ) e1u1/florr1_8 [ 0 1 0 -16 ] [ 0 0 -1 0 ] 0 1 1
|
||||
( 240 400 96 ) ( 224 400 96 ) ( 224 400 224 ) e1u1/florr1_8 [ 1 0 0 16 ] [ 0 0 -1 0 ] 180 1 1
|
||||
( 120 68 80 ) ( 120 69 80 ) ( 119 68 80 ) e1u1/florr1_8 [ 1 0 0 -16 ] [ 0 -1 0 16 ] 180 1 1
|
||||
( 40 388 96 ) ( 39 388 96 ) ( 40 389 96 ) e1u1/florr1_8 [ -1 0 0 16 ] [ 0 -1 0 16 ] 180 1 1
|
||||
( 40 676 96 ) ( 40 676 97 ) ( 39 676 96 ) e1u1/florr1_8 [ 1 0 0 -16 ] [ 0 0 -1 0 ] 180 1 1
|
||||
( 488 68 80 ) ( 488 68 81 ) ( 488 69 80 ) e1u1/florr1_8 [ 0 -1 0 16 ] [ 0 0 -1 0 ] 0 1 1
|
||||
}
|
||||
// brush 6
|
||||
{
|
||||
( 40 388 96 ) ( 40 389 96 ) ( 40 388 97 ) e1u1/florr1_8 [ 0 1 0 -16 ] [ 0 0 -1 0 ] 0 1 1
|
||||
( 120 68 80 ) ( 119 68 80 ) ( 120 68 81 ) e1u1/florr1_8 [ -1 0 0 16 ] [ 0 0 -1 0 ] 180 1 1
|
||||
( 120 68 80 ) ( 120 69 80 ) ( 119 68 80 ) e1u1/florr1_8 [ 1 0 0 -16 ] [ 0 -1 0 16 ] 180 1 1
|
||||
( 40 388 96 ) ( 39 388 96 ) ( 40 389 96 ) e1u1/florr1_8 [ -1 0 0 16 ] [ 0 -1 0 16 ] 180 1 1
|
||||
( 240 368 96 ) ( 224 368 224 ) ( 224 368 96 ) e1u1/florr1_8 [ -1 0 0 -16 ] [ 0 0 -1 0 ] 180 1 1
|
||||
( 488 68 80 ) ( 488 68 81 ) ( 488 69 80 ) e1u1/florr1_8 [ 0 -1 0 16 ] [ 0 0 -1 0 ] 0 1 1
|
||||
}
|
||||
// brush 7
|
||||
{
|
||||
( 40 388 96 ) ( 40 389 96 ) ( 40 388 97 ) e1u1/florr1_8 [ 0 1 0 -16 ] [ 0 0 -1 0 ] 0 1 1
|
||||
( 240 368 96 ) ( 224 368 96 ) ( 224 368 224 ) e1u1/florr1_8 [ 1 0 0 16 ] [ 0 0 -1 0 ] 180 1 1
|
||||
( 120 68 80 ) ( 120 69 80 ) ( 119 68 80 ) e1u1/florr1_8 [ 1 0 0 -16 ] [ 0 -1 0 16 ] 180 1 1
|
||||
( 40 388 96 ) ( 39 388 96 ) ( 40 389 96 ) e1u1/florr1_8 [ -1 0 0 16 ] [ 0 -1 0 16 ] 180 1 1
|
||||
( 240 400 96 ) ( 224 400 224 ) ( 224 400 96 ) e1u1/florr1_8 [ -1 0 0 -16 ] [ 0 0 -1 0 ] 180 1 1
|
||||
( 304 384 96 ) ( 304 368 96 ) ( 304 368 224 ) e1u1/florr1_8 [ 0 1 0 16 ] [ 0 0 -1 0 ] 0 1 1
|
||||
}
|
||||
// brush 8
|
||||
{
|
||||
( 304 384 96 ) ( 304 368 224 ) ( 304 368 96 ) e1u1/c_met11_2 [ 0 -1 0 -16 ] [ 0 0 -1 0 ] 0 1 1
|
||||
( 240 368 96 ) ( 224 368 96 ) ( 224 368 224 ) e1u1/c_met11_2 [ 1 0 0 16 ] [ 0 0 -1 0 ] 180 1 1
|
||||
( 120 68 80 ) ( 120 69 80 ) ( 119 68 80 ) e1u1/c_met11_2 [ 1 0 0 -16 ] [ 0 -1 0 16 ] 180 1 1
|
||||
( 40 388 96 ) ( 39 388 96 ) ( 40 389 96 ) e1u1/c_met11_2 [ -1 0 0 16 ] [ 0 -1 0 16 ] 180 1 1
|
||||
( 240 400 96 ) ( 224 400 224 ) ( 224 400 96 ) e1u1/c_met11_2 [ -1 0 0 -16 ] [ 0 0 -1 0 ] 180 1 1
|
||||
( 336 400 96 ) ( 336 368 96 ) ( 336 368 224 ) e1u1/c_met11_2 [ 0 1 0 16 ] [ 0 0 -1 0 ] 0 1 1
|
||||
}
|
||||
// brush 9
|
||||
{
|
||||
( 336 400 96 ) ( 336 368 224 ) ( 336 368 96 ) e1u1/florr1_8 [ 0 -1 0 -16 ] [ 0 0 -1 0 ] 0 1 1
|
||||
( 240 368 96 ) ( 224 368 96 ) ( 224 368 224 ) e1u1/florr1_8 [ 1 0 0 16 ] [ 0 0 -1 0 ] 180 1 1
|
||||
( 120 68 80 ) ( 120 69 80 ) ( 119 68 80 ) e1u1/florr1_8 [ 1 0 0 -16 ] [ 0 -1 0 16 ] 180 1 1
|
||||
( 40 388 96 ) ( 39 388 96 ) ( 40 389 96 ) e1u1/florr1_8 [ -1 0 0 16 ] [ 0 -1 0 16 ] 180 1 1
|
||||
( 240 400 96 ) ( 224 400 224 ) ( 224 400 96 ) e1u1/florr1_8 [ -1 0 0 -16 ] [ 0 0 -1 0 ] 180 1 1
|
||||
( 488 68 80 ) ( 488 68 81 ) ( 488 69 80 ) e1u1/florr1_8 [ 0 -1 0 16 ] [ 0 0 -1 0 ] 0 1 1
|
||||
}
|
||||
}
|
||||
// entity 1
|
||||
{
|
||||
"classname" "light"
|
||||
"origin" "192 348 264"
|
||||
"light" "3000"
|
||||
}
|
||||
// entity 2
|
||||
{
|
||||
"classname" "info_player_start"
|
||||
"origin" "112 436 120"
|
||||
}
|
||||
// entity 3
|
||||
{
|
||||
"classname" "func_detail_fence"
|
||||
// brush 0
|
||||
{
|
||||
( 256 256 96 ) ( 256 258 96 ) ( 256 256 98 ) e1u1/box3_8 [ 0 0 -0.5 0 ] [ 0 -0.5000000000000007 0 -20 ] 180 1 1 134217728 0 0
|
||||
( 256 352 112 ) ( 288 320 368 ) ( 288 320 112 ) e1u1/box3_8 [ 0.35355339059327234 -0.35355339059327423 0 -19.88225 ] [ 0 0 -0.4999999999999998 -36 ] 180 1 1 134217728 0 0
|
||||
( 288 448 112 ) ( 256 416 368 ) ( 256 416 112 ) e1u1/box3_8 [ -0.35355339059327234 -0.35355339059327423 0 -8.901581 ] [ 0 0 -0.4999999999999998 -36 ] 180 1 1 134217728 0 0
|
||||
( 224 320 96 ) ( 224 320 98 ) ( 226 320 96 ) e1u1/box3_8 [ -0.49999999999999817 0 0 -8 ] [ 0 0 -0.5 0 ] 180 1 1 134217728 0 0
|
||||
( 224 256 96 ) ( 226 256 96 ) ( 224 258 96 ) e1u1/box3_8 [ -0.49999999999999806 0 0 -8 ] [ 0 -0.5000000000000007 0 -20 ] 180 1 1 134217728 0 0
|
||||
( 352 416 288 ) ( 352 418 288 ) ( 354 416 288 ) e1u1/box3_8 [ -0.49999999999999806 0 0 -8 ] [ 0 -0.5000000000000007 0 -20 ] 180 1 1 134217728 0 0
|
||||
( 352 448 128 ) ( 354 448 128 ) ( 352 448 130 ) e1u1/box3_8 [ -0.49999999999999817 0 0 -8 ] [ 0 0 0.5 32 ] 180 1 1 134217728 0 0
|
||||
( 352 320 112 ) ( 384 352 368 ) ( 384 352 112 ) e1u1/box3_8 [ 0.35355339059327234 0.35355339059327423 0 -15.098419 ] [ 0 0 -0.4999999999999998 0 ] 180 1 1 134217728 0 0
|
||||
( 384 416 112 ) ( 352 448 368 ) ( 352 448 112 ) e1u1/box3_8 [ -0.35355339059327234 0.35355339059327423 0 59.882248 ] [ 0 0 -0.4999999999999998 0 ] 180 1 1 134217728 0 0
|
||||
( 384 416 128 ) ( 384 416 130 ) ( 384 418 128 ) e1u1/box3_8 [ 0 0 0.5 32 ] [ 0 -0.5000000000000007 0 -20 ] 180 1 1 134217728 0 0
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,126 @@
|
|||
// Game: Quake 2
|
||||
// Format: Quake2 (Valve)
|
||||
// entity 0
|
||||
{
|
||||
"mapversion" "220"
|
||||
"classname" "worldspawn"
|
||||
"_tb_textures" "textures/e1u1"
|
||||
// brush 0
|
||||
{
|
||||
( 24 244 64 ) ( 24 245 64 ) ( 24 244 65 ) e1u1/ggrat4_2 [ 0 1.0000000000000002 0 -16 ] [ 0 0 -1.0000000000000002 -32 ] 0 1 1
|
||||
( 24 68 64 ) ( 24 68 65 ) ( 25 68 64 ) e1u1/ggrat4_2 [ -1 0 0 -16 ] [ 0 0 -1 -32 ] 0 1 1
|
||||
( 24 244 96 ) ( 25 244 96 ) ( 24 245 96 ) e1u1/ggrat4_2 [ -1.0000000000000002 0 0 -16 ] [ 0 1.0000000000000002 0 -48 ] 0 1 1
|
||||
( 40 692 352 ) ( 40 693 352 ) ( 41 692 352 ) e1u1/ggrat4_2 [ -1.0000000000000002 0 0 -16 ] [ 0 -1.0000000000000002 0 -80 ] 0 1 1
|
||||
( 40 676 80 ) ( 41 676 80 ) ( 40 676 81 ) e1u1/ggrat4_2 [ -1 0 0 -16 ] [ 0 0 -1 -32 ] 0 1 1
|
||||
( 40 692 80 ) ( 40 692 81 ) ( 40 693 80 ) e1u1/ggrat4_2 [ 0 -1.0000000000000002 0 64 ] [ 0 0 -1.0000000000000002 -32 ] 0 1 1
|
||||
}
|
||||
// brush 1
|
||||
{
|
||||
( 40 676 88 ) ( 40 677 88 ) ( 40 676 89 ) e1u1/ggrat4_2 [ 0 1.0000000000000002 0 -32 ] [ 0 0 -1.0000000000000002 -32 ] 0 1 1
|
||||
( 40 676 88 ) ( 40 676 89 ) ( 41 676 88 ) e1u1/ggrat4_2 [ -1 0 0 -16 ] [ 0 0 -1 -32 ] 0 1 1
|
||||
( 40 676 96 ) ( 41 676 96 ) ( 40 677 96 ) e1u1/ggrat4_2 [ -1.0000000000000002 0 0 -16 ] [ 0 1.0000000000000002 0 -40 ] 0 1 1
|
||||
( 488 692 352 ) ( 488 693 352 ) ( 489 692 352 ) e1u1/ggrat4_2 [ -1.0000000000000002 0 0 -16 ] [ 0 -1.0000000000000002 0 48 ] 0 1 1
|
||||
( 488 692 96 ) ( 489 692 96 ) ( 488 692 97 ) e1u1/ggrat4_2 [ -1 0 0 -16 ] [ 0 0 -1 -32 ] 0 1 1
|
||||
( 488 692 96 ) ( 488 692 97 ) ( 488 693 96 ) e1u1/ggrat4_2 [ 0 -1.0000000000000002 0 0 ] [ 0 0 -1.0000000000000002 -32 ] 0 1 1
|
||||
}
|
||||
// brush 2
|
||||
{
|
||||
( 40 52 88 ) ( 40 53 88 ) ( 40 52 89 ) e1u1/ggrat4_2 [ 0 1 0 0 ] [ 0 0 -1 -32 ] 0 1 1
|
||||
( 40 52 88 ) ( 40 52 89 ) ( 41 52 88 ) e1u1/ggrat4_2 [ -1.0000000000000002 0 0 -32 ] [ 0 0 -1.0000000000000002 -32 ] 0 1 1
|
||||
( 40 52 96 ) ( 41 52 96 ) ( 40 53 96 ) e1u1/ggrat4_2 [ 0 1.0000000000000002 0 0 ] [ 1.0000000000000002 0 0 -32 ] 0 1 1
|
||||
( 488 68 352 ) ( 488 69 352 ) ( 489 68 352 ) e1u1/ggrat4_2 [ 0 1.0000000000000002 0 0 ] [ -1.0000000000000002 0 0 -96 ] 0 1 1
|
||||
( 488 68 96 ) ( 489 68 96 ) ( 488 68 97 ) e1u1/ggrat4_2 [ 1.0000000000000002 0 0 -80 ] [ 0 0 -1.0000000000000002 -32 ] 0 1 1
|
||||
( 488 68 96 ) ( 488 68 97 ) ( 488 69 96 ) e1u1/ggrat4_2 [ 0 1 0 0 ] [ 0 0 -1 -32 ] 0 1 1
|
||||
}
|
||||
// brush 3
|
||||
{
|
||||
( 40 244 352 ) ( 40 245 352 ) ( 40 244 353 ) e1u1/florr1_8 [ 0 0 -1.0000000000000002 0 ] [ 0 -1.0000000000000002 0 0 ] 180 1 1
|
||||
( 488 68 360 ) ( 488 68 361 ) ( 489 68 360 ) e1u1/florr1_8 [ -1.0000000000000002 0 0 0 ] [ 0 0 1.0000000000000002 -16 ] 180 1 1
|
||||
( 40 244 352 ) ( 41 244 352 ) ( 40 245 352 ) e1u1/florr1_8 [ -1 0 0 0 ] [ 0 -1 0 0 ] 180 1 1
|
||||
( 488 676 368 ) ( 488 677 368 ) ( 489 676 368 ) e1u1/florr1_8 [ -1 0 0 0 ] [ 0 -1 0 0 ] 180 1 1
|
||||
( 488 676 360 ) ( 489 676 360 ) ( 488 676 361 ) e1u1/florr1_8 [ -1.0000000000000002 0 0 0 ] [ 0 0 1.0000000000000002 -16 ] 180 1 1
|
||||
( 488 676 360 ) ( 488 676 361 ) ( 488 677 360 ) e1u1/florr1_8 [ 0 0 1.0000000000000002 0 ] [ 0 -1.0000000000000002 0 0 ] 180 1 1
|
||||
}
|
||||
// brush 4
|
||||
{
|
||||
( 488 692 80 ) ( 488 693 80 ) ( 488 692 81 ) e1u1/ggrat4_2 [ 0 1 0 0 ] [ 0 0 -1 -32 ] 0 1 1
|
||||
( 504 68 64 ) ( 503 68 64 ) ( 504 68 65 ) e1u1/ggrat4_2 [ -1 0 0 16 ] [ 0 0 -1 -32 ] 180 1 1
|
||||
( 504 244 96 ) ( 504 245 96 ) ( 503 244 96 ) e1u1/ggrat4_2 [ 1 0 0 -16 ] [ 0 -1 0 0 ] 180 1 1
|
||||
( 504 244 352 ) ( 503 244 352 ) ( 504 245 352 ) e1u1/ggrat4_2 [ 1 0 0 -16 ] [ 0 -1 0 0 ] 180 1 1
|
||||
( 488 676 80 ) ( 488 676 81 ) ( 487 676 80 ) e1u1/ggrat4_2 [ 1 0 0 -16 ] [ 0 0 -1 -32 ] 180 1 1
|
||||
( 504 244 64 ) ( 504 244 65 ) ( 504 245 64 ) e1u1/ggrat4_2 [ 0 -1 0 0 ] [ 0 0 -1 -32 ] 0 1 1
|
||||
}
|
||||
// brush 5
|
||||
{
|
||||
( 40 388 96 ) ( 40 389 96 ) ( 40 388 97 ) e1u1/florr1_8 [ 0 1 0 -16 ] [ 0 0 -1 0 ] 0 1 1
|
||||
( 240 400 96 ) ( 224 400 96 ) ( 224 400 224 ) e1u1/florr1_8 [ 1 0 0 16 ] [ 0 0 -1 0 ] 180 1 1
|
||||
( 120 68 80 ) ( 120 69 80 ) ( 119 68 80 ) e1u1/florr1_8 [ 1 0 0 -16 ] [ 0 -1 0 16 ] 180 1 1
|
||||
( 40 388 96 ) ( 39 388 96 ) ( 40 389 96 ) e1u1/florr1_8 [ -1 0 0 16 ] [ 0 -1 0 16 ] 180 1 1
|
||||
( 40 676 96 ) ( 40 676 97 ) ( 39 676 96 ) e1u1/florr1_8 [ 1 0 0 -16 ] [ 0 0 -1 0 ] 180 1 1
|
||||
( 488 68 80 ) ( 488 68 81 ) ( 488 69 80 ) e1u1/florr1_8 [ 0 -1 0 16 ] [ 0 0 -1 0 ] 0 1 1
|
||||
}
|
||||
// brush 6
|
||||
{
|
||||
( 40 388 96 ) ( 40 389 96 ) ( 40 388 97 ) e1u1/florr1_8 [ 0 1 0 -16 ] [ 0 0 -1 0 ] 0 1 1
|
||||
( 120 68 80 ) ( 119 68 80 ) ( 120 68 81 ) e1u1/florr1_8 [ -1 0 0 16 ] [ 0 0 -1 0 ] 180 1 1
|
||||
( 120 68 80 ) ( 120 69 80 ) ( 119 68 80 ) e1u1/florr1_8 [ 1 0 0 -16 ] [ 0 -1 0 16 ] 180 1 1
|
||||
( 40 388 96 ) ( 39 388 96 ) ( 40 389 96 ) e1u1/florr1_8 [ -1 0 0 16 ] [ 0 -1 0 16 ] 180 1 1
|
||||
( 240 368 96 ) ( 224 368 224 ) ( 224 368 96 ) e1u1/florr1_8 [ -1 0 0 -16 ] [ 0 0 -1 0 ] 180 1 1
|
||||
( 488 68 80 ) ( 488 68 81 ) ( 488 69 80 ) e1u1/florr1_8 [ 0 -1 0 16 ] [ 0 0 -1 0 ] 0 1 1
|
||||
}
|
||||
// brush 7
|
||||
{
|
||||
( 40 388 96 ) ( 40 389 96 ) ( 40 388 97 ) e1u1/florr1_8 [ 0 1 0 -16 ] [ 0 0 -1 0 ] 0 1 1
|
||||
( 240 368 96 ) ( 224 368 96 ) ( 224 368 224 ) e1u1/florr1_8 [ 1 0 0 16 ] [ 0 0 -1 0 ] 180 1 1
|
||||
( 120 68 80 ) ( 120 69 80 ) ( 119 68 80 ) e1u1/florr1_8 [ 1 0 0 -16 ] [ 0 -1 0 16 ] 180 1 1
|
||||
( 40 388 96 ) ( 39 388 96 ) ( 40 389 96 ) e1u1/florr1_8 [ -1 0 0 16 ] [ 0 -1 0 16 ] 180 1 1
|
||||
( 240 400 96 ) ( 224 400 224 ) ( 224 400 96 ) e1u1/florr1_8 [ -1 0 0 -16 ] [ 0 0 -1 0 ] 180 1 1
|
||||
( 304 384 96 ) ( 304 368 96 ) ( 304 368 224 ) e1u1/florr1_8 [ 0 1 0 16 ] [ 0 0 -1 0 ] 0 1 1
|
||||
}
|
||||
// brush 8
|
||||
{
|
||||
( 304 384 96 ) ( 304 368 224 ) ( 304 368 96 ) e1u1/c_met11_2 [ 0 -1 0 -16 ] [ 0 0 -1 0 ] 0 1 1
|
||||
( 240 368 96 ) ( 224 368 96 ) ( 224 368 224 ) e1u1/c_met11_2 [ 1 0 0 16 ] [ 0 0 -1 0 ] 180 1 1
|
||||
( 120 68 80 ) ( 120 69 80 ) ( 119 68 80 ) e1u1/c_met11_2 [ 1 0 0 -16 ] [ 0 -1 0 16 ] 180 1 1
|
||||
( 40 388 96 ) ( 39 388 96 ) ( 40 389 96 ) e1u1/c_met11_2 [ -1 0 0 16 ] [ 0 -1 0 16 ] 180 1 1
|
||||
( 240 400 96 ) ( 224 400 224 ) ( 224 400 96 ) e1u1/c_met11_2 [ -1 0 0 -16 ] [ 0 0 -1 0 ] 180 1 1
|
||||
( 336 400 96 ) ( 336 368 96 ) ( 336 368 224 ) e1u1/c_met11_2 [ 0 1 0 16 ] [ 0 0 -1 0 ] 0 1 1
|
||||
}
|
||||
// brush 9
|
||||
{
|
||||
( 336 400 96 ) ( 336 368 224 ) ( 336 368 96 ) e1u1/florr1_8 [ 0 -1 0 -16 ] [ 0 0 -1 0 ] 0 1 1
|
||||
( 240 368 96 ) ( 224 368 96 ) ( 224 368 224 ) e1u1/florr1_8 [ 1 0 0 16 ] [ 0 0 -1 0 ] 180 1 1
|
||||
( 120 68 80 ) ( 120 69 80 ) ( 119 68 80 ) e1u1/florr1_8 [ 1 0 0 -16 ] [ 0 -1 0 16 ] 180 1 1
|
||||
( 40 388 96 ) ( 39 388 96 ) ( 40 389 96 ) e1u1/florr1_8 [ -1 0 0 16 ] [ 0 -1 0 16 ] 180 1 1
|
||||
( 240 400 96 ) ( 224 400 224 ) ( 224 400 96 ) e1u1/florr1_8 [ -1 0 0 -16 ] [ 0 0 -1 0 ] 180 1 1
|
||||
( 488 68 80 ) ( 488 68 81 ) ( 488 69 80 ) e1u1/florr1_8 [ 0 -1 0 16 ] [ 0 0 -1 0 ] 0 1 1
|
||||
}
|
||||
}
|
||||
// entity 1
|
||||
{
|
||||
"classname" "light"
|
||||
"origin" "192 348 264"
|
||||
"light" "3000"
|
||||
}
|
||||
// entity 2
|
||||
{
|
||||
"classname" "info_player_start"
|
||||
"origin" "112 436 120"
|
||||
}
|
||||
// entity 3
|
||||
{
|
||||
"classname" "func_detail_wall"
|
||||
// brush 0
|
||||
{
|
||||
( 256 256 96 ) ( 256 258 96 ) ( 256 256 98 ) e1u1/box3_8 [ 0 0 -0.5 0 ] [ 0 -0.5000000000000007 0 -20 ] 180 1 1 134217728 0 0
|
||||
( 256 352 112 ) ( 288 320 368 ) ( 288 320 112 ) e1u1/box3_8 [ 0.35355339059327234 -0.35355339059327423 0 -19.88225 ] [ 0 0 -0.4999999999999998 -36 ] 180 1 1 134217728 0 0
|
||||
( 288 448 112 ) ( 256 416 368 ) ( 256 416 112 ) e1u1/box3_8 [ -0.35355339059327234 -0.35355339059327423 0 -8.901581 ] [ 0 0 -0.4999999999999998 -36 ] 180 1 1 134217728 0 0
|
||||
( 224 320 96 ) ( 224 320 98 ) ( 226 320 96 ) e1u1/box3_8 [ -0.49999999999999817 0 0 -8 ] [ 0 0 -0.5 0 ] 180 1 1 134217728 0 0
|
||||
( 224 256 96 ) ( 226 256 96 ) ( 224 258 96 ) e1u1/box3_8 [ -0.49999999999999806 0 0 -8 ] [ 0 -0.5000000000000007 0 -20 ] 180 1 1 134217728 0 0
|
||||
( 352 416 288 ) ( 352 418 288 ) ( 354 416 288 ) e1u1/box3_8 [ -0.49999999999999806 0 0 -8 ] [ 0 -0.5000000000000007 0 -20 ] 180 1 1 134217728 0 0
|
||||
( 352 448 128 ) ( 354 448 128 ) ( 352 448 130 ) e1u1/box3_8 [ -0.49999999999999817 0 0 -8 ] [ 0 0 0.5 32 ] 180 1 1 134217728 0 0
|
||||
( 352 320 112 ) ( 384 352 368 ) ( 384 352 112 ) e1u1/box3_8 [ 0.35355339059327234 0.35355339059327423 0 -15.098419 ] [ 0 0 -0.4999999999999998 0 ] 180 1 1 134217728 0 0
|
||||
( 384 416 112 ) ( 352 448 368 ) ( 352 448 112 ) e1u1/box3_8 [ -0.35355339059327234 0.35355339059327423 0 59.882248 ] [ 0 0 -0.4999999999999998 0 ] 180 1 1 134217728 0 0
|
||||
( 384 416 128 ) ( 384 416 130 ) ( 384 418 128 ) e1u1/box3_8 [ 0 0 0.5 32 ] [ 0 -0.5000000000000007 0 -20 ] 180 1 1 134217728 0 0
|
||||
}
|
||||
}
|
||||
|
|
@ -686,75 +686,90 @@ TEST_CASE("q2_tb_cleanup" * doctest::test_suite("testmaps_q2"))
|
|||
|
||||
TEST_CASE("q2_detail_wall" * doctest::test_suite("testmaps_q2"))
|
||||
{
|
||||
const auto [bsp, bspx, prt] = LoadTestmapQ2("q2_detail_wall.map");
|
||||
// q2_detail_wall_with_detail_bit.map has the DETAIL content flag set on the
|
||||
// brushes inside the func_detail_wall. the func_detail_wall should take priority.
|
||||
const std::vector<std::string> maps{"q2_detail_wall.map", "q2_detail_wall_with_detail_bit.map"};
|
||||
|
||||
CHECK(GAME_QUAKE_II == bsp.loadversion->game->id);
|
||||
for (const auto &mapname : maps) {
|
||||
SUBCASE(mapname.c_str()) {
|
||||
const auto [bsp, bspx, prt] = LoadTestmapQ2(mapname);
|
||||
|
||||
const auto deleted_face_pos = qvec3d{320, 384, 96};
|
||||
const auto in_detail_wall = qvec3d{320, 384, 100};
|
||||
CHECK(GAME_QUAKE_II == bsp.loadversion->game->id);
|
||||
|
||||
auto *detail_wall_leaf = BSP_FindLeafAtPoint(&bsp, &bsp.dmodels[0], in_detail_wall);
|
||||
const auto deleted_face_pos = qvec3d{320, 384, 96};
|
||||
const auto in_detail_wall = qvec3d{320, 384, 100};
|
||||
|
||||
{
|
||||
INFO("check leaf / brush contents");
|
||||
auto *detail_wall_leaf = BSP_FindLeafAtPoint(&bsp, &bsp.dmodels[0], in_detail_wall);
|
||||
|
||||
CAPTURE(contentflags_t{detail_wall_leaf->contents}.to_string(bsp.loadversion->game));
|
||||
CHECK(Q2_CONTENTS_SOLID == detail_wall_leaf->contents);
|
||||
{
|
||||
INFO("check leaf / brush contents");
|
||||
|
||||
REQUIRE(1 == Leaf_Brushes(&bsp, detail_wall_leaf).size());
|
||||
auto *brush = Leaf_Brushes(&bsp, detail_wall_leaf).at(0);
|
||||
CAPTURE(contentflags_t{detail_wall_leaf->contents}.to_string(bsp.loadversion->game));
|
||||
CHECK(Q2_CONTENTS_SOLID == detail_wall_leaf->contents);
|
||||
|
||||
CAPTURE(contentflags_t{brush->contents}.to_string(bsp.loadversion->game));
|
||||
CHECK(Q2_CONTENTS_SOLID == brush->contents);
|
||||
}
|
||||
REQUIRE(1 == Leaf_Brushes(&bsp, detail_wall_leaf).size());
|
||||
auto *brush = Leaf_Brushes(&bsp, detail_wall_leaf).at(0);
|
||||
|
||||
{
|
||||
INFO("check fully covered face is deleted");
|
||||
CHECK(!BSP_FindFaceAtPoint(&bsp, &bsp.dmodels[0], deleted_face_pos));
|
||||
}
|
||||
CAPTURE(contentflags_t{brush->contents}.to_string(bsp.loadversion->game));
|
||||
CHECK(Q2_CONTENTS_SOLID == brush->contents);
|
||||
}
|
||||
|
||||
{
|
||||
INFO("check floor under detail fence is not deleted, and not split");
|
||||
{
|
||||
INFO("check fully covered face is deleted");
|
||||
CHECK(!BSP_FindFaceAtPoint(&bsp, &bsp.dmodels[0], deleted_face_pos));
|
||||
}
|
||||
|
||||
auto *face_under_fence = BSP_FindFaceAtPoint(&bsp, &bsp.dmodels[0], qvec3d{320, 348, 96});
|
||||
auto *face_outside_fence = BSP_FindFaceAtPoint(&bsp, &bsp.dmodels[0], qvec3d{320, 312, 96});
|
||||
{
|
||||
INFO("check floor under detail fence is not deleted, and not split");
|
||||
|
||||
CHECK(face_under_fence);
|
||||
CHECK(face_under_fence == face_outside_fence);
|
||||
auto *face_under_fence = BSP_FindFaceAtPoint(&bsp, &bsp.dmodels[0], qvec3d{320, 348, 96});
|
||||
auto *face_outside_fence = BSP_FindFaceAtPoint(&bsp, &bsp.dmodels[0], qvec3d{320, 312, 96});
|
||||
|
||||
CHECK(face_under_fence);
|
||||
CHECK(face_under_fence == face_outside_fence);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE("q2_detail_fence" * doctest::test_suite("testmaps_q2"))
|
||||
{
|
||||
const auto [bsp, bspx, prt] = LoadTestmapQ2("q2_detail_fence.map");
|
||||
const std::vector<std::string> maps{"q2_detail_fence.map", "q2_detail_fence_with_detail_bit.map"};
|
||||
|
||||
CHECK(GAME_QUAKE_II == bsp.loadversion->game->id);
|
||||
for (const auto &mapname : maps) {
|
||||
SUBCASE(mapname.c_str())
|
||||
{
|
||||
const auto [bsp, bspx, prt] = LoadTestmapQ2(mapname);
|
||||
|
||||
auto *detail_wall_leaf = BSP_FindLeafAtPoint(&bsp, &bsp.dmodels[0], qvec3d{320, 384, 100});
|
||||
CHECK(GAME_QUAKE_II == bsp.loadversion->game->id);
|
||||
|
||||
{
|
||||
INFO("check leaf / brush contents");
|
||||
CAPTURE(contentflags_t{detail_wall_leaf->contents}.to_string(bsp.loadversion->game));
|
||||
auto *detail_wall_leaf = BSP_FindLeafAtPoint(&bsp, &bsp.dmodels[0], qvec3d{320, 384, 100});
|
||||
|
||||
CHECK((Q2_CONTENTS_WINDOW | Q2_CONTENTS_DETAIL | Q2_CONTENTS_TRANSLUCENT) == detail_wall_leaf->contents);
|
||||
{
|
||||
INFO("check leaf / brush contents");
|
||||
CAPTURE(contentflags_t{detail_wall_leaf->contents}.to_string(bsp.loadversion->game));
|
||||
|
||||
REQUIRE(1 == Leaf_Brushes(&bsp, detail_wall_leaf).size());
|
||||
CHECK((Q2_CONTENTS_WINDOW | Q2_CONTENTS_DETAIL | Q2_CONTENTS_TRANSLUCENT) ==
|
||||
Leaf_Brushes(&bsp, detail_wall_leaf).at(0)->contents);
|
||||
}
|
||||
CHECK((Q2_CONTENTS_WINDOW | Q2_CONTENTS_DETAIL | Q2_CONTENTS_TRANSLUCENT) == detail_wall_leaf->contents);
|
||||
|
||||
{
|
||||
INFO("check fully covered face is not deleted");
|
||||
CHECK(BSP_FindFaceAtPoint(&bsp, &bsp.dmodels[0], qvec3d{320, 384, 96}));
|
||||
}
|
||||
REQUIRE(1 == Leaf_Brushes(&bsp, detail_wall_leaf).size());
|
||||
CHECK((Q2_CONTENTS_WINDOW | Q2_CONTENTS_DETAIL | Q2_CONTENTS_TRANSLUCENT) ==
|
||||
Leaf_Brushes(&bsp, detail_wall_leaf).at(0)->contents);
|
||||
}
|
||||
|
||||
{
|
||||
INFO("check floor under detail fence is not deleted, and not split");
|
||||
{
|
||||
INFO("check fully covered face is not deleted");
|
||||
CHECK(BSP_FindFaceAtPoint(&bsp, &bsp.dmodels[0], qvec3d{320, 384, 96}));
|
||||
}
|
||||
|
||||
auto *face_under_fence = BSP_FindFaceAtPoint(&bsp, &bsp.dmodels[0], qvec3d{320, 348, 96});
|
||||
auto *face_outside_fence = BSP_FindFaceAtPoint(&bsp, &bsp.dmodels[0], qvec3d{320, 312, 96});
|
||||
{
|
||||
INFO("check floor under detail fence is not deleted, and not split");
|
||||
|
||||
CHECK(face_under_fence);
|
||||
CHECK(face_under_fence == face_outside_fence);
|
||||
auto *face_under_fence = BSP_FindFaceAtPoint(&bsp, &bsp.dmodels[0], qvec3d{320, 348, 96});
|
||||
auto *face_outside_fence = BSP_FindFaceAtPoint(&bsp, &bsp.dmodels[0], qvec3d{320, 312, 96});
|
||||
|
||||
CHECK(face_under_fence);
|
||||
CHECK(face_under_fence == face_outside_fence);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue