testqbsp: add origin brush test
This commit is contained in:
parent
25dc4f5871
commit
9f3b752bec
|
|
@ -7,6 +7,7 @@
|
|||
#include <common/qvec.hh>
|
||||
#include <testmaps.hh>
|
||||
|
||||
#include <algorithm>
|
||||
#include <cstring>
|
||||
#include <map>
|
||||
|
||||
|
|
@ -484,3 +485,30 @@ TEST(testmaps_q1, brush_clipping_order)
|
|||
ASSERT_NE(nullptr, func_wall_button_face);
|
||||
ASSERT_STREQ("sbutt2", Face_TextureName(&bsp, func_wall_button_face));
|
||||
}
|
||||
|
||||
/**
|
||||
* Box room with a rotating fan (just a cube). Works in a mod with hiprotate - AD, Quoth, etc.
|
||||
*/
|
||||
TEST(testmaps_q1, origin)
|
||||
{
|
||||
const mbsp_t bsp = LoadTestmap("qbsp_origin.map");
|
||||
|
||||
ASSERT_FALSE(map.leakfile);
|
||||
|
||||
// 0 = world, 1 = rotate_object
|
||||
ASSERT_EQ(2, bsp.dmodels.size());
|
||||
|
||||
// check that the origin brush didn't clip away any solid faces, or generate faces
|
||||
ASSERT_EQ(6, bsp.dmodels[1].numfaces);
|
||||
|
||||
// FIXME: should the origin brush update the dmodel's origin too?
|
||||
ASSERT_EQ(qvec3f(0, 0, 0), bsp.dmodels[1].origin);
|
||||
|
||||
// check that the origin brush updated the entity lump
|
||||
auto ents = EntData_Parse(bsp.dentdata);
|
||||
auto it = std::find_if(ents.begin(), ents.end(),
|
||||
[](const entdict_t &dict) -> bool { return dict.get("classname") == "rotate_object"; });
|
||||
|
||||
ASSERT_NE(it, ents.end());
|
||||
ASSERT_EQ("216 -216 340", it->get("origin"));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -79,56 +79,28 @@
|
|||
"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
|
||||
( 208 -208 344 ) ( 208 -224 344 ) ( 208 -224 328 ) origin [ 0 -0.5 0 24 ] [ 0 0 -0.5 8 ] 0 1 1
|
||||
( 208 -224 344 ) ( 224 -224 344 ) ( 224 -224 328 ) origin [ 0.5 0 0 -52 ] [ 0 0 -0.5 8 ] 0 1 1
|
||||
( 224 -224 332 ) ( 224 -208 332 ) ( 208 -208 332 ) origin [ -0.5 0 0 52 ] [ 0 -0.5 0 24 ] 0 1 1
|
||||
( 208 -208 348 ) ( 224 -208 348 ) ( 224 -224 348 ) origin [ 0.5 0 0 -52 ] [ 0 -0.5 0 24 ] 0 1 1
|
||||
( 224 -208 328 ) ( 224 -208 344 ) ( 208 -208 344 ) origin [ -0.5 0 0 52 ] [ 0 0 -0.5 8 ] 0 1 1
|
||||
( 224 -224 344 ) ( 224 -208 344 ) ( 224 -208 328 ) 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
|
||||
( 168 -192 344 ) ( 168 -240 344 ) ( 168 -240 336 ) bolt14 [ -0.7071067811865477 0.7071067811865477 0 0 ] [ 0 0 -1.0000000000000002 0 ] 0 1 1
|
||||
( 168 -240 344 ) ( 264 -240 344 ) ( 264 -240 336 ) bolt14 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||
( 264 -240 336 ) ( 264 -192 336 ) ( 168 -192 336 ) bolt14 [ -1 0 0 24 ] [ 0 -1 0 20 ] 0 1 1
|
||||
( 168 -192 344 ) ( 264 -192 344 ) ( 264 -240 344 ) bolt14 [ 1 0 0 -24 ] [ 0 -1 0 20 ] 0 1 1
|
||||
( 264 -192 336 ) ( 264 -192 344 ) ( 168 -192 344 ) bolt14 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||
( 264 -240 344 ) ( 264 -192 344 ) ( 264 -192 336 ) bolt14 [ 0.7071067811865477 -0.7071067811865477 0 0 ] [ 0 0 -1.0000000000000002 0 ] 0 1 1
|
||||
}
|
||||
// brush 2
|
||||
}
|
||||
// entity 4
|
||||
{
|
||||
( 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
|
||||
}
|
||||
"classname" "func_rotate_entity"
|
||||
"origin" "216 -216 340"
|
||||
"target" "fan"
|
||||
"rotate" "0 -90 0"
|
||||
"spawnflags" "2"
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue