[Gtkradiant] [Bug 1022] New: winding_alloc

gtkradiant@zerowing.idsoftware.com gtkradiant@zerowing.idsoftware.com
Sun, 22 Aug 2004 12:21:27 -0500


http://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=1022

           Summary: winding_alloc
           Product: GtkRadiant
           Version: 1.4
          Platform: All
        OS/Version: Windows 2000/XP
            Status: NEW
          Severity: normal
          Priority: P2
         Component: editor
        AssignedTo: ttimo@idsoftware.com
        ReportedBy: chruker@tiscali.dk


Doing a CSG merge on the four brushes in this sample map, crashes version 
1.4.0 with a winding_alloc: 65 points error message:
[map]
// entity 0
{
"mapcoordsmaxs" "9472 -8448"
"mapcoordsmins" "-15616 16384"
"classname" "worldspawn"
"_blocksize" "0"
// brush 0
{
( 3264 1984 0 ) ( -3392 1984 0 ) ( -3392 -2112 0 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( -3392 -2112 224 ) ( -3392 1984 224 ) ( 3264 1984 224 ) radiant/notex 0 0 0 
0.500000 0.500000 0 0 0
( 0 1280 0 ) ( 0 512 0 ) ( 0 1280 224 ) common/caulk 0 0 0 0.500000 0.500000 0 
4 0
( -256 0 0 ) ( -1536 0 0 ) ( -256 0 224 ) common/caulk 0 0 0 0.500000 0.500000 
0 4 0
( -3220 0 0 ) ( -3220 36 0 ) ( -3220 0 224 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( -3220 96 0 ) ( -3208 272 0 ) ( -3220 96 224 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( -3208 272 0 ) ( -3184 448 0 ) ( -3208 272 224 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( -3184 448 0 ) ( -3160 568 0 ) ( -3184 448 224 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( -3160 568 0 ) ( -3112 736 0 ) ( -3160 568 224 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( -3112 736 0 ) ( -3052 880 0 ) ( -3112 736 224 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( -3052 880 0 ) ( -2984 999 0 ) ( -3052 880 224 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( -2984 999 0 ) ( -2911 1114 0 ) ( -2984 999 224 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( -2911 1114 0 ) ( -2820 1212 0 ) ( -2911 1114 224 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( -2820 1212 0 ) ( -2722 1303 0 ) ( -2820 1212 224 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( -2722 1303 0 ) ( -2607 1376 0 ) ( -2722 1303 224 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( -2607 1376 0 ) ( -2488 1444 0 ) ( -2607 1376 224 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( -2488 1444 0 ) ( -2344 1504 0 ) ( -2488 1444 224 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( -2344 1504 0 ) ( -2176 1552 0 ) ( -2344 1504 224 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( -2176 1552 0 ) ( -2056 1576 0 ) ( -2176 1552 224 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( -2056 1576 0 ) ( -1880 1600 0 ) ( -2056 1576 224 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( -1880 1600 0 ) ( -1704 1612 0 ) ( -1880 1600 224 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( -1704 1612 0 ) ( -1608 1612 0 ) ( -1704 1612 224 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
}
// brush 1
{
( -1704 -1612 224 ) ( -1608 -1612 0 ) ( -1704 -1612 0 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( -1880 -1600 224 ) ( -1704 -1612 0 ) ( -1880 -1600 0 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( -2056 -1576 224 ) ( -1880 -1600 0 ) ( -2056 -1576 0 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( -2176 -1552 224 ) ( -2056 -1576 0 ) ( -2176 -1552 0 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( -2344 -1504 224 ) ( -2176 -1552 0 ) ( -2344 -1504 0 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( -2488 -1444 224 ) ( -2344 -1504 0 ) ( -2488 -1444 0 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( -2607 -1376 224 ) ( -2488 -1444 0 ) ( -2607 -1376 0 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( -2722 -1303 224 ) ( -2607 -1376 0 ) ( -2722 -1303 0 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( -2820 -1212 224 ) ( -2722 -1303 0 ) ( -2820 -1212 0 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( -2911 -1114 224 ) ( -2820 -1212 0 ) ( -2911 -1114 0 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( -2984 -999 224 ) ( -2911 -1114 0 ) ( -2984 -999 0 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( -3052 -880 224 ) ( -2984 -999 0 ) ( -3052 -880 0 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( -3112 -736 224 ) ( -3052 -880 0 ) ( -3112 -736 0 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( -3160 -568 224 ) ( -3112 -736 0 ) ( -3160 -568 0 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( -3184 -448 224 ) ( -3160 -568 0 ) ( -3184 -448 0 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( -3208 -272 224 ) ( -3184 -448 0 ) ( -3208 -272 0 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( -3220 -96 224 ) ( -3208 -272 0 ) ( -3220 -96 0 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( -3220 0 224 ) ( -3220 -36 0 ) ( -3220 0 0 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( -256 0 224 ) ( -1536 0 0 ) ( -256 0 0 ) common/caulk 0 0 0 0.500000 0.500000 
0 4 0
( 0 -1280 224 ) ( 0 -512 0 ) ( 0 -1280 0 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( 3264 -1984 224 ) ( -3392 -1984 224 ) ( -3392 2112 224 ) radiant/notex 0 0 0 
0.500000 0.500000 0 0 0
( -3392 2112 0 ) ( -3392 -1984 0 ) ( 3264 -1984 0 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
}
// brush 2
{
( 1704 1612 224 ) ( 1608 1612 0 ) ( 1704 1612 0 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( 1880 1600 224 ) ( 1704 1612 0 ) ( 1880 1600 0 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( 2056 1576 224 ) ( 1880 1600 0 ) ( 2056 1576 0 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( 2176 1552 224 ) ( 2056 1576 0 ) ( 2176 1552 0 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( 2344 1504 224 ) ( 2176 1552 0 ) ( 2344 1504 0 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( 2488 1444 224 ) ( 2344 1504 0 ) ( 2488 1444 0 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( 2607 1376 224 ) ( 2488 1444 0 ) ( 2607 1376 0 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( 2722 1303 224 ) ( 2607 1376 0 ) ( 2722 1303 0 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( 2820 1212 224 ) ( 2722 1303 0 ) ( 2820 1212 0 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( 2911 1114 224 ) ( 2820 1212 0 ) ( 2911 1114 0 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( 2984 999 224 ) ( 2911 1114 0 ) ( 2984 999 0 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( 3052 880 224 ) ( 2984 999 0 ) ( 3052 880 0 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( 3112 736 224 ) ( 3052 880 0 ) ( 3112 736 0 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( 3160 568 224 ) ( 3112 736 0 ) ( 3160 568 0 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( 3184 448 224 ) ( 3160 568 0 ) ( 3184 448 0 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( 3208 272 224 ) ( 3184 448 0 ) ( 3208 272 0 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( 3220 96 224 ) ( 3208 272 0 ) ( 3220 96 0 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( 3220 0 224 ) ( 3220 36 0 ) ( 3220 0 0 ) common/caulk 0 0 0 0.500000 0.500000 
0 4 0
( 256 0 224 ) ( 1536 0 0 ) ( 256 0 0 ) common/caulk 0 0 0 0.500000 0.500000 0 
4 0
( 0 1280 224 ) ( 0 512 0 ) ( 0 1280 0 ) common/caulk 0 0 0 0.500000 0.500000 0 
4 0
( -3264 1984 224 ) ( 3392 1984 224 ) ( 3392 -2112 224 ) radiant/notex 0 0 0 
0.500000 0.500000 0 0 0
( 3392 -2112 0 ) ( 3392 1984 0 ) ( -3264 1984 0 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
}
// brush 3
{
( -3264 -1984 0 ) ( 3392 -1984 0 ) ( 3392 2112 0 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( 3392 2112 224 ) ( 3392 -1984 224 ) ( -3264 -1984 224 ) radiant/notex 0 0 0 
0.500000 0.500000 0 0 0
( 0 -1280 0 ) ( 0 -512 0 ) ( 0 -1280 224 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( 256 0 0 ) ( 1536 0 0 ) ( 256 0 224 ) common/caulk 0 0 0 0.500000 0.500000 0 
4 0
( 3220 0 0 ) ( 3220 -36 0 ) ( 3220 0 224 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( 3220 -96 0 ) ( 3208 -272 0 ) ( 3220 -96 224 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( 3208 -272 0 ) ( 3184 -448 0 ) ( 3208 -272 224 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( 3184 -448 0 ) ( 3160 -568 0 ) ( 3184 -448 224 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( 3160 -568 0 ) ( 3112 -736 0 ) ( 3160 -568 224 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( 3112 -736 0 ) ( 3052 -880 0 ) ( 3112 -736 224 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( 3052 -880 0 ) ( 2984 -999 0 ) ( 3052 -880 224 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( 2984 -999 0 ) ( 2911 -1114 0 ) ( 2984 -999 224 ) common/caulk 0 0 0 0.500000 
0.500000 0 4 0
( 2911 -1114 0 ) ( 2820 -1212 0 ) ( 2911 -1114 224 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( 2820 -1212 0 ) ( 2722 -1303 0 ) ( 2820 -1212 224 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( 2722 -1303 0 ) ( 2607 -1376 0 ) ( 2722 -1303 224 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( 2607 -1376 0 ) ( 2488 -1444 0 ) ( 2607 -1376 224 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( 2488 -1444 0 ) ( 2344 -1504 0 ) ( 2488 -1444 224 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( 2344 -1504 0 ) ( 2176 -1552 0 ) ( 2344 -1504 224 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( 2176 -1552 0 ) ( 2056 -1576 0 ) ( 2176 -1552 224 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( 2056 -1576 0 ) ( 1880 -1600 0 ) ( 2056 -1576 224 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( 1880 -1600 0 ) ( 1704 -1612 0 ) ( 1880 -1600 224 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
( 1704 -1612 0 ) ( 1608 -1612 0 ) ( 1704 -1612 224 ) common/caulk 0 0 0 
0.500000 0.500000 0 4 0
}
}
[/map]

I know that the error is probably because it can't handle that many 
vertexpoints in the same plane, but that should only give the user a simple 
error, instead of crashing the editor.

I tried it with the 1.5.0 from 17. august, and it doesn't crash. However 
despite that the console logs the merge as succesfull, the resulting brush is 
gone.