ericwa / ericw-tools Goto Github PK
View Code? Open in Web Editor NEWQuake/Hexen 2 Map compiling tools - branch of http://disenchant.net/utils
Home Page: http://ericwa.github.io/ericw-tools
License: GNU General Public License v2.0
Quake/Hexen 2 Map compiling tools - branch of http://disenchant.net/utils
Home Page: http://ericwa.github.io/ericw-tools
License: GNU General Public License v2.0
Doesn't seem to happen with txqbsp-xt though.
{
"classname" "worldspawn"
{
( -160 -64 -16 ) ( -160 -63 -16 ) ( -160 -64 -15 ) afloor1_4 0 0 0 1 1
( 64 64 16 ) ( 64 64 17 ) ( 64 65 16 ) afloor1_4 0 0 0 1 1
( -64 -192 -16 ) ( -64 -192 -15 ) ( -63 -192 -16 ) afloor1_4 0 0 0 1 1
( 64 64 16 ) ( 65 64 16 ) ( 64 64 17 ) afloor1_4 0 0 0 1 1
( 64 64 16 ) ( 64 65 16 ) ( 65 64 16 ) afloor1_4 0 0 0 1 1
( -64 -64 -16 ) ( -63 -64 -16 ) ( -64 -63 -16 ) afloor1_4 0 0 0 1 1
}
{
( -160 64 -16 ) ( -160 65 -16 ) ( -160 64 -15 ) sky1 0 0 0 1 1
( 64 192 16 ) ( 64 192 17 ) ( 64 193 16 ) sky1 0 0 0 1 1
( -64 64 -16 ) ( -64 64 -15 ) ( -63 64 -16 ) sky1 0 0 0 1 1
( 64 192 16 ) ( 65 192 16 ) ( 64 192 17 ) sky1 0 0 0 1 1
( 64 192 128 ) ( 64 193 128 ) ( 65 192 128 ) sky1 0 0 0 1 1
( -64 64 -16 ) ( -63 64 -16 ) ( -64 65 -16 ) sky1 0 0 0 1 1
}
{
( 64 -64 -16 ) ( 64 -63 -16 ) ( 64 -64 -15 ) sky1 0 0 0 1 1
( 192 64 16 ) ( 192 64 17 ) ( 192 65 16 ) sky1 0 0 0 1 1
( 64 -192 -16 ) ( 64 -192 -15 ) ( 65 -192 -16 ) sky1 0 0 0 1 1
( 192 64 16 ) ( 193 64 16 ) ( 192 64 17 ) sky1 0 0 0 1 1
( 192 64 128 ) ( 192 65 128 ) ( 193 64 128 ) sky1 0 0 0 1 1
( 64 -64 -16 ) ( 65 -64 -16 ) ( 64 -63 -16 ) sky1 0 0 0 1 1
}
{
( -0 -32 32 ) ( 64 -32 48 ) ( 64 -32 32 ) hint 0 0 0 1 1
( -32 -0 32 ) ( -32 64 48 ) ( -32 -0 48 ) hint 0 0 0 1 1
( -0 -0 -32 ) ( 64 64 -32 ) ( -0 64 -32 ) hint 0 0 0 1 1
( -0 -0 48 ) ( 64 64 48 ) ( 64 -0 48 ) hint 0 0 0 1 1
( -0 128 32 ) ( 64 128 48 ) ( -0 128 48 ) hint 0 0 0 1 1
( 224 -0 32 ) ( 224 64 48 ) ( 224 64 32 ) hint 0 0 0 1 1
}
}
{
"classname" "info_player_start"
"origin" "-128 -64 40"
"angle" "-0"
}
kristian@kristian-Parallels-Virtual-Platform:~/Documents/tyrutils-ericw/build$ cmake --build .
Scanning dependencies of target man_bspinfo
[ 1%] Generating bspinfo.html
[ 1%] Built target man_bspinfo
Scanning dependencies of target bspinfo
[ 3%] Building C object bspinfo/CMakeFiles/bspinfo.dir/bspinfo.c.o
[ 5%] Building C object bspinfo/CMakeFiles/bspinfo.dir/__/common/cmdlib.c.o
[ 7%] Building C object bspinfo/CMakeFiles/bspinfo.dir/__/common/bspfile.c.o
[ 8%] Building C object bspinfo/CMakeFiles/bspinfo.dir/__/common/log.c.o
[ 10%] Building C object bspinfo/CMakeFiles/bspinfo.dir/__/common/threads.c.o
Linking C executable bspinfo
[ 10%] Built target bspinfo
Scanning dependencies of target man_bsputil
[ 12%] Generating bsputil.html
[ 12%] Built target man_bsputil
Scanning dependencies of target bsputil
[ 14%] Building C object bsputil/CMakeFiles/bsputil.dir/bsputil.c.o
[ 15%] Building C object bsputil/CMakeFiles/bsputil.dir/__/common/cmdlib.c.o
[ 17%] Building C object bsputil/CMakeFiles/bsputil.dir/__/common/bspfile.c.o
[ 19%] Building C object bsputil/CMakeFiles/bsputil.dir/__/common/log.c.o
[ 21%] Building C object bsputil/CMakeFiles/bsputil.dir/__/common/threads.c.o
Linking C executable bsputil
[ 21%] Built target bsputil
Scanning dependencies of target man_light
[ 22%] Generating light.html
[ 22%] Built target man_light
Scanning dependencies of target light
[ 24%] Building C object light/CMakeFiles/light.dir/entities.c.o
[ 26%] Building C object light/CMakeFiles/light.dir/litfile.c.o
[ 28%] Building C object light/CMakeFiles/light.dir/ltface.c.o
/home/kristian/Documents/tyrutils-ericw/light/ltface.c: In function ‘CheckObstructed’:
/home/kristian/Documents/tyrutils-ericw/light/ltface.c:585:5: error: ‘for’ loop initial declarations are only allowed in C99 mode
for (int x = -1; x <= 1; x += 2) {
^
/home/kristian/Documents/tyrutils-ericw/light/ltface.c:585:5: note: use option -std=c99 or -std=gnu99 to compile your code
/home/kristian/Documents/tyrutils-ericw/light/ltface.c:586:9: error: ‘for’ loop initial declarations are only allowed in C99 mode
for (int y = -1; y <= 1; y += 2) {
^
/home/kristian/Documents/tyrutils-ericw/light/ltface.c: In function ‘CalcPoints’:
/home/kristian/Documents/tyrutils-ericw/light/ltface.c:638:5: error: ‘for’ loop initial declarations are only allowed in C99 mode
for (int t = 0; t < surf->height; t++) {
^
/home/kristian/Documents/tyrutils-ericw/light/ltface.c:639:9: error: ‘for’ loop initial declarations are only allowed in C99 mode
for (int s = 0; s < surf->width; s++) {
^
make[2]: *** [light/CMakeFiles/light.dir/ltface.c.o] Error 1
make[1]: *** [light/CMakeFiles/light.dir/all] Error 2
make: *** [all] Error 2
see testphongtjunc.map
sock reports they are broken in 3314748
Causes light leaking in jam2_mfx near 224 -504 1888.25
e.g. not using gate, w/ delay 2 lights
Give brief descriptions and group the options into categories
so we can read keys for func_detail/group, instead of hacking them into texinfo flags?
Given texture name doesn't receive minlight
kristian@kristian-Parallels-Virtual-Platform:~/Documents/tyrutils-ericw/build$ cmake ..
-- Configuring done
-- Generating done
-- Build files have been written to: /home/kristian/Documents/tyrutils-ericw/build
kristian@kristian-Parallels-Virtual-Platform:~/Documents/tyrutils-ericw/build$ cmake --build .
[ 1%] Built target man_bspinfo
Scanning dependencies of target bspinfo
[ 3%] Building C object bspinfo/CMakeFiles/bspinfo.dir/bspinfo.c.o
[ 5%] Building C object bspinfo/CMakeFiles/bspinfo.dir/__/common/cmdlib.c.o
[ 7%] Building C object bspinfo/CMakeFiles/bspinfo.dir/__/common/bspfile.c.o
[ 8%] Building C object bspinfo/CMakeFiles/bspinfo.dir/__/common/log.c.o
[ 10%] Building C object bspinfo/CMakeFiles/bspinfo.dir/__/common/threads.c.o
Linking C executable bspinfo
CMakeFiles/bspinfo.dir/__/common/threads.c.o: In function `RunThreadsOn':
threads.c:(.text+0x1d1): undefined reference to `pthread_mutexattr_init'
threads.c:(.text+0x278): undefined reference to `pthread_attr_setstacksize'
threads.c:(.text+0x2f7): undefined reference to `pthread_create'
threads.c:(.text+0x34b): undefined reference to `pthread_join'
collect2: error: ld returned 1 exit status
make[2]: *** [bspinfo/bspinfo] Error 1
make[1]: *** [bspinfo/CMakeFiles/bspinfo.dir/all] Error 2
make: *** [all] Error 2
Possibly relevant on stackoverflow: http://stackoverflow.com/questions/1662909/undefined-reference-to-pthread-create-in-linux
Removing if (angle <= 0)
and (dist >= 0)
checks in LightFace_Entity fixes them
Rotating entities are probably broken now
Why does this func_detail brush have t-juncs?
{
"spawnflags" "0"
"classname" "worldspawn"
"wad" "Q.wad"
"_point_format" "1"
"_sunlight" "300"
"_sun_mangle" "-60 -60 0"
"_sunlight_color" "1 0.631373 0.631373"
{
( -1440 -4672 1200 ) ( -1440 -4672 1232 ) ( 672 -4672 1200 ) sky1 0 -16 0 1 1
( -3136 -2688 1200 ) ( -3136 -1632 1200 ) ( -3136 -2688 1232 ) sky1 0 -16 0 1 1
( -1440 -2688 1184 ) ( 672 -2688 1184 ) ( -1440 -1632 1184 ) sky1 0 0 0 1 1
( 672 -576 1232 ) ( -1440 -576 1232 ) ( 672 -576 1200 ) sky1 0 -16 0 1 1
( 1568 -1632 1232 ) ( 1568 -1632 1200 ) ( 1568 -2688 1232 ) sky1 0 -16 0 1 1
( 672 -1632 1312 ) ( 672 -2688 1312 ) ( -1440 -1632 1312 ) sky1 0 0 0 1 1
}
{
( -1440 -4672 1200 ) ( -1440 -4672 1232 ) ( 672 -4672 1200 ) sky1 0 -16 0 1 1
( 1536 -2688 1200 ) ( 1536 -1632 1200 ) ( 1536 -2688 1232 ) sky1 0 -16 0 1 1
( -1440 -2688 1184 ) ( 672 -2688 1184 ) ( -1440 -1632 1184 ) sky1 0 0 0 1 1
( 672 -544 1232 ) ( -1440 -544 1232 ) ( 672 -544 1200 ) sky1 0 -16 0 1 1
( 1568 -1632 1232 ) ( 1568 -1632 1200 ) ( 1568 -2688 1232 ) sky1 0 -16 0 1 1
( 672 -1632 3136 ) ( 672 -2688 3136 ) ( -1440 -1632 3136 ) sky1 0 0 0 1 1
}
{
( -1440 -4672 1200 ) ( -1440 -4672 1232 ) ( 672 -4672 1200 ) sky1 0 -16 0 1 1
( -3136 -2688 1200 ) ( -3136 -1632 1200 ) ( -3136 -2688 1232 ) sky1 0 -16 0 1 1
( -1440 -2688 3072 ) ( 672 -2688 3072 ) ( -1440 -1632 3072 ) sky1 0 -16 0 1 1
( 672 -544 1232 ) ( -1440 -544 1232 ) ( 672 -544 1200 ) sky1 0 -16 0 1 1
( 1568 -1632 1232 ) ( 1568 -1632 1200 ) ( 1568 -2688 1232 ) sky1 0 -16 0 1 1
( 672 -1632 3104 ) ( 672 -2688 3104 ) ( -1440 -1632 3104 ) sky1 0 0 0 1 1
}
{
( -1440 -4672 1200 ) ( -1440 -4672 1232 ) ( 672 -4672 1200 ) sky1 0 -16 0 1 1
( -3136 -2688 1200 ) ( -3136 -1632 1200 ) ( -3136 -2688 1232 ) sky1 0 -16 0 1 1
( -1440 -2688 1184 ) ( 672 -2688 1184 ) ( -1440 -1632 1184 ) sky1 0 0 0 1 1
( 672 -4544 1232 ) ( -1440 -4544 1232 ) ( 672 -4544 1200 ) sky1 0 -16 0 1 1
( 1568 -1632 1232 ) ( 1568 -1632 1200 ) ( 1568 -2688 1232 ) sky1 0 -16 0 1 1
( 672 -1632 3296 ) ( 672 -2688 3296 ) ( -1440 -1632 3296 ) sky1 0 0 0 1 1
}
{
( -1440 -4672 1200 ) ( -1440 -4672 1232 ) ( 672 -4672 1200 ) sky1 0 -16 0 1 1
( -3136 -2688 1200 ) ( -3136 -1632 1200 ) ( -3136 -2688 1232 ) sky1 0 -16 0 1 1
( -1440 -2688 1184 ) ( 672 -2688 1184 ) ( -1440 -1632 1184 ) sky1 0 0 0 1 1
( 672 -544 1232 ) ( -1440 -544 1232 ) ( 672 -544 1200 ) sky1 0 -16 0 1 1
( -3072 -1632 1232 ) ( -3072 -1632 1200 ) ( -3072 -2688 1232 ) sky1 0 -16 0 1 1
( 672 -1632 3680 ) ( 672 -2688 3680 ) ( -1440 -1632 3680 ) sky1 0 0 0 1 1
}
{
( -1440 -608 1200 ) ( -1440 -608 1232 ) ( 672 -608 1200 ) sky1 0 -16 0 1 1
( -3136 -2688 1200 ) ( -3136 -1632 1200 ) ( -3136 -2688 1232 ) sky1 0 -16 0 1 1
( -1440 -2688 1184 ) ( 672 -2688 1184 ) ( -1440 -1632 1184 ) sky1 0 0 0 1 1
( 672 -544 1232 ) ( -1440 -544 1232 ) ( 672 -544 1200 ) sky1 0 -16 0 1 1
( 1568 -1632 1232 ) ( 1568 -1632 1200 ) ( 1568 -2688 1232 ) sky1 0 -16 0 1 1
( 672 -1632 3104 ) ( 672 -2688 3104 ) ( -1440 -1632 3104 ) sky1 0 0 0 1 1
}
}
{
"spawnflags" "0"
"classname" "info_player_start"
"origin" "496 -944 2056"
"angle" "270"
}
{
"spawnflags" "0"
"classname" "func_detail"
"_smooth" "cop1_6"
{
( -112 -2128 1408 ) ( -112 -2128 1824 ) ( 80 -2128 1408 ) skip -0 -0 -0 1 1
( -112 -1936 1536 ) ( -112 -2128 1824 ) ( -112 -2128 1408 ) skip -0 -0 -0 1 1
( 80 -2128 1408 ) ( 80 -1936 1408 ) ( -112 -2128 1408 ) skip -0 -0 -0 1 1
( 80 -1936 1632 ) ( -112 -1936 1536 ) ( 80 -1936 1408 ) skip -0 -0 -0 1 1
( 80 -1936 1408 ) ( 80 -2128 1408 ) ( 80 -1936 1632 ) skip -0 -0 -0 1 1
( -112 -1936 1536 ) ( 80 -1936 1632 ) ( -112 -2128 1824 ) cop1_6 -0 -0 -0 1 1
( -112 -1936 1536 ) ( -112 -2128 1408 ) ( 80 -1936 1408 ) skip -0 -0 -0 1 1
}
{
( 272 -2128 1408 ) ( 80 -2128 1408 ) ( 272 -2128 2128 ) skip 0 0 0 1 1
( 80 -1936 1408 ) ( 80 -1936 1632 ) ( 80 -2128 1408 ) skip 0 0 0 1 1
( 272 -2128 1408 ) ( 272 -1936 1408 ) ( 80 -2128 1408 ) skip 0 0 0 1 1
( 272 -1936 1408 ) ( 272 -1936 1840 ) ( 80 -1936 1408 ) skip 0 0 0 1 1
( 272 -1936 1408 ) ( 272 -2128 1408 ) ( 272 -1936 1840 ) skip 0 0 0 1 1
( 80 -1936 1632 ) ( 272 -1936 1840 ) ( 80 -2128 1920 ) cop1_6 0 0 0 1 1
}
}
the juggernaut bsp files has no property set version, and must be edited to property handled in linux
so the bsp files must be altered or regenerated to change the paths to a lowercase due case-sensity are mandatory in real operating systems such like linux, unix, freebsd or mac
when i try to use the tools in a juggernaut bsp file i got that result:
JDM1.BSP
BSP is version 1347633737
************ ERROR ************
i want to promote a debian oficial package and the features documentation are only in the web page, the build system are not documented (reviewing the sources i noted a dual build system using cmake or makefiles, and seems cmake generates binaries in different places)
to enable delay-4 style skipping of light-in front-of-plane test
Investigate the black wall face:
{
"spawnflags" "0"
"classname" "worldspawn"
"wad" "telefragged.wad"
{
( -112 1472 160 ) ( -112 1472 288 ) ( 192 1472 160 ) jf2brick01 0 0 0 1 1
( -112 -48 -800 ) ( 192 -48 -800 ) ( -112 -0 -800 ) jf2brick01 32 -32 0 1 1
( 192 1536 288 ) ( -112 1536 288 ) ( 192 1536 160 ) jf2brick01 0 0 0 1 1
( -640 1536 -112 ) ( -512 1536 -112 ) ( -640 1504 -112 ) jf2brick01 32 -32 0 1 1
( -896 1472 -176 ) ( -896 1600 -176 ) ( -896 1472 -160 ) jf2brick01 32 -16 0 1 1
( -832 1472 -192 ) ( -832 1344 -192 ) ( -832 1472 -64 ) jf2rust68 0 0 90 1 1
}
{
( -896 -48 -64 ) ( -896 -0 -64 ) ( -896 -48 64 ) jf2brick01 32 16 0 1 1
( 128 -0 -368 ) ( 128 -48 -368 ) ( -176 -0 -368 ) jf2plat08 0 0 0 1 1
( -704 1280 -400 ) ( -576 1280 -400 ) ( -704 1296 -400 ) jf2rust76 0 0 0 1 1
( -768 1440 -368 ) ( -768 1440 -240 ) ( -896 1440 -368 ) jf2brick01 -32 16 0 1 1
( -736 1264 -400 ) ( -736 1280 -400 ) ( -736 1264 -528 ) jf2rust68 16 0 90 1 1
( -800 1248 -400 ) ( -928 1248 -400 ) ( -800 1248 -272 ) jf2brick01 -32 16 0 1 1
}
{
( -112 1472 160 ) ( -112 1472 288 ) ( 192 1472 160 ) jf2rust68 0 0 0 1 1
( -112 -48 -800 ) ( 192 -48 -800 ) ( -112 -0 -800 ) jf2brick01 32 -32 0 1 1
( 192 1536 288 ) ( -112 1536 288 ) ( 192 1536 160 ) jf2brick01 0 0 0 1 1
( -640 1536 -112 ) ( -512 1536 -112 ) ( -640 1504 -112 ) jf2brick01 32 -32 0 1 1
( -832 1472 -192 ) ( -832 1472 -64 ) ( -832 1344 -192 ) jf2brick01 32 -16 0 1 1
( -800 1472 -176 ) ( -800 1344 -176 ) ( -800 1472 -48 ) jf2rust68 0 0 90 1 1
}
{
( -112 1472 160 ) ( -112 1472 288 ) ( 192 1472 160 ) jf2brick01 0 0 0 1 1
( -112 -48 -800 ) ( 192 -48 -800 ) ( -112 -0 -800 ) jf2brick01 0 0 0 1 1
( 192 1536 288 ) ( -112 1536 288 ) ( 192 1536 160 ) jf2brick01 0 0 0 1 1
( -896 1472 -176 ) ( -896 1472 -160 ) ( -896 1600 -176 ) jf2brick01 0 0 0 1 1
( -960 1472 -208 ) ( -960 1472 -80 ) ( -960 1344 -208 ) jf2brick01 0 0 0 1 1
( -928 1536 -112 ) ( -944 1536 -112 ) ( -928 1664 -112 ) jf2brick01 0 0 0 1 1
}
{
( -368 1248 -64 ) ( -368 1248 64 ) ( -64 1248 -64 ) jf2brick01 0 0 0 1 1
( -368 -48 -656 ) ( -64 -48 -656 ) ( -368 -0 -656 ) jf2brick01 0 0 0 1 1
( -64 1440 64 ) ( -368 1440 64 ) ( -64 1440 -64 ) jf2brick01 0 0 0 1 1
( -992 1216 -248 ) ( -992 1216 -120 ) ( -992 1088 -248 ) jf2brick01 0 0 0 1 1
( -896 1216 -288 ) ( -896 1088 -288 ) ( -896 1216 -160 ) jf2brick01 0 0 0 1 1
( -928 1200 -368 ) ( -928 1168 -368 ) ( -944 1184 -368 ) jf2plat08 0 0 0 1 1
}
{
( -960 -48 -64 ) ( -960 -0 -64 ) ( -960 -48 64 ) jf2rust68 0 0 90 1 1
( 128 1472 64 ) ( -176 1472 64 ) ( 128 1472 -64 ) jf2rust68 0 0 90 1 1
( 128 -0 -368 ) ( 128 -48 -368 ) ( -176 -0 -368 ) jf2rust68 0 0 90 1 1
( -704 1280 -400 ) ( -576 1280 -400 ) ( -704 1296 -400 ) jf2rust68 0 0 90 1 1
( -736 1264 -400 ) ( -736 1280 -400 ) ( -736 1264 -528 ) jf2rust68 0 0 90 1 1
( -784 1440 -400 ) ( -912 1440 -400 ) ( -784 1440 -272 ) jf2rust68 0 0 90 1 1
}
{
( -112 1472 160 ) ( -112 1472 288 ) ( 192 1472 160 ) jf2brick01 0 0 0 1 1
( -112 -48 -800 ) ( 192 -48 -800 ) ( -112 -0 -800 ) jf2brick01 32 -32 0 1 1
( 192 1536 288 ) ( -112 1536 288 ) ( 192 1536 160 ) jf2brick01 0 0 0 1 1
( -640 1536 -112 ) ( -512 1536 -112 ) ( -640 1504 -112 ) jf2brick01 32 -32 0 1 1
( -672 1472 -272 ) ( -672 1344 -272 ) ( -672 1472 -144 ) jf2rust68 0 0 90 1 1
( -800 1472 -176 ) ( -800 1472 -48 ) ( -800 1344 -176 ) jf2brick01 32 -16 0 1 1
}
{
( 128 1472 64 ) ( -176 1472 64 ) ( 128 1472 -64 ) jf2brick01 -32 16 0 1 1
( -704 -0 64 ) ( -704 -0 -64 ) ( -704 -48 64 ) jf2rust68 16 0 90 1 1
( 128 -0 -368 ) ( 128 -48 -368 ) ( -176 -0 -368 ) jf2rust68 0 0 0 1 1
( -704 1280 -400 ) ( -576 1280 -400 ) ( -704 1296 -400 ) jf2rust68 0 0 0 1 1
( -784 1376 -368 ) ( -912 1376 -368 ) ( -784 1376 -240 ) jf2brick01 -32 16 0 1 1
( -736 1264 -400 ) ( -736 1264 -528 ) ( -736 1280 -400 ) jf2brick01 32 16 0 1 1
}
{
( -368 1216 -64 ) ( -368 1216 64 ) ( -64 1216 -64 ) jf2brick01 32 16 0 1 1
( -960 1216 -248 ) ( -960 1088 -248 ) ( -960 1216 -120 ) jf2brick01 32 16 0 1 1
( -992 1376 -240 ) ( -992 1392 -240 ) ( -992 1376 -112 ) jf2brick01 32 16 0 1 1
( -960 1344 -272 ) ( -960 1360 -272 ) ( -832 1344 -272 ) jf2plat08 0 0 90 1 1
( -976 1472 -272 ) ( -976 1472 -144 ) ( -1104 1472 -272 ) jf2rust72 0 0 0 1 1
( -976 1200 -372 ) ( -976 1216 -372 ) ( -992 1200 -372 ) jf2brick01 32 -32 0 1 1
}
{
( -368 1216 -64 ) ( -368 1216 64 ) ( -64 1216 -64 ) jf2rust68 16 0 90 1 1
( -64 1472 64 ) ( -368 1472 64 ) ( -64 1472 -64 ) jf2lite10 0 16 0 1 1
( -64 -0 -240 ) ( -64 -48 -240 ) ( -368 -0 -240 ) jf2rust68 0 0 0 1 1
( -960 1216 -248 ) ( -960 1088 -248 ) ( -960 1216 -120 ) jf2rust68 16 0 90 1 1
( -992 1376 -240 ) ( -992 1392 -240 ) ( -992 1376 -112 ) jf2rust68 0 0 0 1 1
( -960 1344 -272 ) ( -832 1344 -272 ) ( -960 1360 -272 ) jf2rust68 0 0 0 1 1
}
{
( -112 1472 160 ) ( -112 1472 288 ) ( 192 1472 160 ) jf2brick01 0 0 0 1 1
( 192 1536 288 ) ( -112 1536 288 ) ( 192 1536 160 ) jf2rust68 16 0 90 1 1
( -640 1536 -80 ) ( -512 1536 -80 ) ( -640 1504 -80 ) jf2brick01 0 0 0 1 1
( -896 1472 -176 ) ( -896 1472 -160 ) ( -896 1600 -176 ) jf2brick01 0 0 0 1 1
( -960 1472 -208 ) ( -960 1472 -80 ) ( -960 1344 -208 ) jf2brick01 0 0 0 1 1
( -928 1536 -112 ) ( -928 1664 -112 ) ( -944 1536 -112 ) jf2brick01 0 0 0 1 1
}
{
( -368 -48 -96 ) ( -64 -48 -96 ) ( -368 -0 -96 ) jf2rust76 0 0 0 1 1
( -832 -0 432 ) ( -832 -0 304 ) ( -832 -48 432 ) jf2brick01 32 0 0 1 1
( -928 1152 -48 ) ( -928 1024 -48 ) ( -944 1152 -48 ) jf2brick01 32 -32 0 1 1
( -912 1216 -112 ) ( -912 1216 -240 ) ( -944 1216 -112 ) jf2brick01 32 0 0 1 1
( -960 1472 -112 ) ( -960 1472 -240 ) ( -944 1472 -112 ) jf2brick01 32 0 0 1 1
( -1248 1280 -112 ) ( -1248 1280 -240 ) ( -1248 1292 -112 ) jf2brick01 32 0 0 1 1
}
{
( -112 1472 160 ) ( -112 1472 288 ) ( 192 1472 160 ) jf2brick01 0 0 0 1 1
( -640 -0 288 ) ( -640 -0 160 ) ( -640 -48 288 ) jf2rust68 32 -16 0 1 1
( 192 -0 128 ) ( 192 -48 128 ) ( -112 -0 128 ) jf2brick01 32 -32 0 1 1
( -640 1536 -112 ) ( -640 1504 -112 ) ( -512 1536 -112 ) jf2brick01 32 -32 0 1 1
( -896 1472 -176 ) ( -896 1600 -176 ) ( -896 1472 -160 ) jf2brick01 32 -16 0 1 1
( -512 1504 -16 ) ( -512 1504 112 ) ( -640 1504 -16 ) jf2brick01 32 -16 0 1 1
}
{
( -176 1216 304 ) ( -176 1216 432 ) ( 128 1216 304 ) jf2brick01 -32 0 0 1 1
( -176 -48 -96 ) ( 128 -48 -96 ) ( -176 -0 -96 ) jf2rust76 0 0 0 1 1
( 128 1472 432 ) ( -176 1472 432 ) ( 128 1472 304 ) jf2brick01 -32 0 0 1 1
( -592 1312 -16 ) ( -560 1328 -16 ) ( -576 1312 -16 ) jf2brick01 -32 -32 0 1 1
( -800 1248 -160 ) ( -800 1248 -288 ) ( -800 1264 -160 ) jf2brick01 32 0 0 1 1
( -672 1248 -160 ) ( -672 1264 -160 ) ( -672 1248 -288 ) jf2brick01 32 0 0 1 1
}
}
{
"spawnflags" "0"
"classname" "func_detail"
{
( -992 -48 352 ) ( -992 -0 352 ) ( -992 -48 480 ) jf2rust73 0 0 0 1 1
( -336 -48 -112 ) ( -32 -48 -112 ) ( -336 -0 -112 ) jf2rust68 0 0 0 1 1
( -960 1248 -112 ) ( -960 1264 -112 ) ( -960 1248 -240 ) jf2rust73 0 0 0 1 1
( -976 1216 -112 ) ( -1104 1216 -112 ) ( -976 1216 16 ) jf2brick01 0 48 0 1 1
( -976 1472 -112 ) ( -976 1472 16 ) ( -1104 1472 -112 ) jf2brick01 0 48 0 1 1
( -992 1424 -96 ) ( -992 1408 -96 ) ( -1120 1424 -96 ) jf2brick01 0 -32 0 1 1
}
}
{
"spawnflags" "0"
"classname" "func_group"
{
( -960 1744 -128 ) ( -960 1744 -112 ) ( -960 1856 -128 ) jf2rust01 0 32 0 1 1
( -1008 1472 -128 ) ( -1200 1472 -128 ) ( -1008 1472 -112 ) jf2rust68 0 0 0 1 1
( -1008 1744 -240 ) ( -1008 1856 -240 ) ( -1200 1744 -240 ) jf2rust01 0 -64 90 1 1
( -992 1856 -112 ) ( -992 1744 -112 ) ( -992 1856 -128 ) jf2rust72 0 -32 0 1 1
( -1200 1488 -112 ) ( -1200 1488 -128 ) ( -1008 1488 -112 ) jf2rust01 0 16 180 1 -1
( -992 1472 -192 ) ( -976 1472 -192 ) ( -992 1344 -192 ) jf2rust01 0 -64 90 1 1
}
{
( -960 1744 -128 ) ( -960 1744 -112 ) ( -960 1856 -128 ) jf2rust01 0 32 0 1 1
( -1008 1472 -128 ) ( -1200 1472 -128 ) ( -1008 1472 -112 ) jf2rust68 0 0 0 1 1
( -992 1856 -112 ) ( -992 1744 -112 ) ( -992 1856 -128 ) jf2lite10 0 0 0 1 1
( -1200 1488 -112 ) ( -1200 1488 -128 ) ( -1008 1488 -112 ) jf2rust01 0 16 180 1 -1
( -976 1472 -160 ) ( -976 1344 -160 ) ( -992 1472 -160 ) jf2rust01 0 -64 90 1 1
( -992 1472 -192 ) ( -992 1344 -192 ) ( -976 1472 -192 ) jf2rust01 0 -64 90 1 1
}
{
( -960 1744 -128 ) ( -960 1744 -112 ) ( -960 1856 -128 ) jf2rust01 0 32 0 1 1
( -1008 1472 -128 ) ( -1200 1472 -128 ) ( -1008 1472 -112 ) jf2rust68 0 0 0 1 1
( -992 1856 -112 ) ( -992 1744 -112 ) ( -992 1856 -128 ) jf2rust72 0 -32 0 1 1
( -1200 1488 -112 ) ( -1200 1488 -128 ) ( -1008 1488 -112 ) jf2rust01 0 16 180 1 -1
( -1200 1856 -112 ) ( -1008 1856 -112 ) ( -1200 1744 -112 ) jf2rust01 0 -64 90 1 1
( -976 1472 -160 ) ( -992 1472 -160 ) ( -976 1344 -160 ) jf2rust01 0 -64 90 1 1
}
}
{
"spawnflags" "0"
"classname" "func_detail"
{
( -656 1344 -272 ) ( -656 1344 -240 ) ( -496 1344 -272 ) jf2plat04 -16 0 0 1 1
( -496 1360 -244 ) ( -512 1376 -244 ) ( -656 1360 -244 ) {plat07 32 0 0 1 1
( -496 1360 -240 ) ( -656 1360 -240 ) ( -512 1376 -240 ) {plat07 32 32 0 1 1
( -959 1344 -244 ) ( -960 1344 -240 ) ( -959 1216 -244 ) jf2plat04 16 0 0 1 1
( -384 1471 -244 ) ( -256 1471 -244 ) ( -384 1472 -240 ) jf2plat04 -16 0 0 1 1
( -385 1216 -244 ) ( -385 1088 -244 ) ( -384 1216 -240 ) jf2plat04 16 0 0 1 1
}
{
( -528 1368 -240 ) ( -592 1368 -240 ) ( -528 1368 -256 ) jf2grey10 0 -16 0 1 1
( -944 1368 -240 ) ( -944 1360 -240 ) ( -944 1368 -256 ) jf2grey10 16 -16 0 1 1
( -528 1360 -240 ) ( -528 1360 -256 ) ( -592 1360 -240 ) jf2grey10 0 -16 0 1 1
( -528 1368 -245 ) ( -528 1360 -245 ) ( -592 1368 -245 ) jf2grey10 0 -16 0 1 1
( -528 1368 -256 ) ( -592 1368 -256 ) ( -528 1360 -256 ) jf2grey10 0 -16 0 1 1
( -352 1360 -240 ) ( -352 1368 -240 ) ( -352 1360 -256 ) jf2grey10 16 -16 0 1 1
}
}
{
"spawnflags" "0"
"classname" "func_illusionary"
{
( -832 -48 352 ) ( -832 -0 352 ) ( -832 -48 480 ) jf2rust73 0 0 0 1 1
( -176 -48 -112 ) ( 128 -48 -112 ) ( -176 -0 -112 ) jf2rust68 0 0 0 1 1
( -800 1248 -112 ) ( -800 1264 -112 ) ( -800 1248 -240 ) jf2rust73 0 0 0 1 1
( -816 1216 -112 ) ( -944 1216 -112 ) ( -816 1216 16 ) jf2brick01 -32 48 0 1 1
( -816 1472 -112 ) ( -816 1472 16 ) ( -944 1472 -112 ) jf2brick01 -32 48 0 1 1
( -832 1424 -96 ) ( -832 1408 -96 ) ( -960 1424 -96 ) jf2brick01 -32 -32 0 1 1
}
{
( -818 1472 -142 ) ( -818 1472 -136 ) ( -818 1420 -112 ) jf2rust62 16 -16 180 1 -1
( -814 1472 -142 ) ( -814 1420 -112 ) ( -814 1472 -136 ) jf2rust62 16 -16 180 1 -1
( -818 1420 -112 ) ( -814 1420 -112 ) ( -818 1472 -142 ) jf2rust62 32 -16 -180 1 1
( -814 1472 -136 ) ( -814 1431 -112 ) ( -818 1472 -136 ) jf2rust62 32 -16 -180 1 1
( -818 1431 -112 ) ( -814 1431 -112 ) ( -818 1420 -112 ) jf2rust62 32 -16 -180 1 1
( -818 1472 -142 ) ( -814 1472 -142 ) ( -818 1472 -136 ) jf2rust62 32 -16 -180 1 -1
}
}
{
"spawnflags" "0"
"classname" "func_detail"
{
( -752 1464 -80 ) ( -640 1464 -80 ) ( -752 1464 -128 ) jf2lite02 0 -32 -90 1 1
( -752 1456 -96 ) ( -752 1472 -96 ) ( -640 1456 -96 ) jf2rust69 0 -32 90 1 -1
( -784 1456 -80 ) ( -784 1456 -128 ) ( -784 1472 -80 ) jf2rust69 0 -32 0 1 1
( -640 1472 -128 ) ( -640 1472 -80 ) ( -752 1472 -128 ) jf2rust69 0 -32 -90 1 1
( -640 1472 -128 ) ( -752 1472 -128 ) ( -640 1456 -128 ) jf2rust69 0 -32 90 1 -1
( -688 1472 -128 ) ( -688 1456 -128 ) ( -688 1472 -80 ) jf2rust69 0 -32 0 1 1
}
}
{
"spawnflags" "0"
"classname" "light"
"origin" "-752 1456 -112"
"angle" "165"
}
{
"spawnflags" "0"
"classname" "light"
"origin" "-720 1456 -112"
"angle" "165"
}
{
"spawnflags" "0"
"classname" "light"
"origin" "-784 1232 -260"
"angle" "180"
}
{
"spawnflags" "0"
"classname" "light"
"origin" "-784 1232 -292"
"angle" "180"
}
{
"spawnflags" "0"
"classname" "light"
"origin" "-840 1184 -360"
}
{
"spawnflags" "0"
"classname" "info_player_start"
"origin" "-800 1296 -344"
"angle" "90"
}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.