q3map2_urt WARNING: Node brush list corrupted (0x00000000)
Hi there, 'q3map2_urt' is bugged, i've made a simple map, 6 walls, couple of lights entities, a respawn entity, save it, compile it, et voila, i got this 'warnings' https://paste.ubuntu.com/p/ZN2jcRGwHg/ at comile time, and once i load up the map, the players felt into the void like a liked map, i know the compiler 'q3map2_urt' it's bugged, becouse i got no warnings and everything is ok compiling with plain ol' good 'q3map2'
I'm using Arch Linux 64 bits, and gtkradiant version is: gtkradiant-git r1318.4314e833-1 from AUR
- Try a 32 bit binary.
- Try on Windows.
- Provide the map?
Well, luckyly q3map2 works great, so don't need to use a 32 bits binary, windows... no thanks, and this is the simple map i tested on: https://www.dropbox.com/s/9x2joyhvm2mrsfq/ut4_zombie.map
on last test gave me this warnings:
WARNING: Node brush list corrupted (0xD1E975B0) WARNING: Node brush list corrupted (0xD1E967B0) WARNING: Node brush list corrupted (0xD1ED39C0) WARNING: Node brush list corrupted (0xD1EC34C0) WARNING: Node brush list corrupted (0xD1E98060) WARNING: Node brush list corrupted (0xD1ED3E80) WARNING: Node brush list corrupted (0xD1EBE480) WARNING: Node brush list corrupted (0xD1E989A0) WARNING: Node brush list corrupted (0xD1ED4440) WARNING: Node brush list corrupted (0xD1EC7570) WARNING: Node brush list corrupted (0xD1E984E0) WARNING: Node brush list corrupted (0xD1ED4DC0) WARNING: Node brush list corrupted (0xD1EC6180) WARNING: Node brush list corrupted (0xD1E953B0) WARNING: Node brush list corrupted (0xD1E96C30) WARNING: Node brush list corrupted (0xD1E98E60) WARNING: Node brush list corrupted (0xD1EC2F00) WARNING: Node brush list corrupted (0xD1E99420) WARNING: Node brush list corrupted (0xD1ECC7B0) WARNING: Node brush list corrupted (0xD1E99D60) WARNING: Node brush list corrupted (0xD1EC5840) WARNING: Node brush list corrupted (0xD1E998A0) WARNING: Node brush list corrupted (0xD1ED1700) WARNING: Node brush list corrupted (0xD1E95830) WARNING: Node brush list corrupted (0xD1E970F0) WARNING: Node brush list corrupted (0xD1E9A7E0) WARNING: Node brush list corrupted (0xD1ED1240) WARNING: Node brush list corrupted (0xD1E9AC60) WARNING: Node brush list corrupted (0xD1ED1CC0) WARNING: Node brush list corrupted (0xD1E9A220) WARNING: Node brush list corrupted (0xD1ED2600) WARNING: Node brush list corrupted (0xD1E9B5E0) WARNING: Node brush list corrupted (0xD1ED2140) WARNING: Node brush list corrupted (0xD1E95CF0) WARNING: Node brush list corrupted (0xD1E961B0) WARNING: Node brush list corrupted (0xD1E9B120) WARNING: Node brush list corrupted (0xD1ED3080) WARNING: Node brush list corrupted (0xD1E9CA60) WARNING: Node brush list corrupted (0xD1E9BBA0) WARNING: Node brush list corrupted (0xD1ED3500) WARNING: Node brush list corrupted (0xD1EBCC00) WARNING: Node brush list corrupted (0xD1E9C4E0) WARNING: Node brush list corrupted (0xD1ED2AC0) WARNING: Node brush list corrupted (0xD1E9D020) WARNING: Node brush list corrupted (0xD1E9C020) WARNING: Node brush list corrupted (0xD1EBB930) WARNING: Node brush list corrupted (0xD1ED4900) WARNING: Node brush list corrupted (0xD1E9D4E0)
Same problem here on ubuntu 18.04 64bit, gtkradiant 1.6.6, I get this huge list of "WARNING: Node brush list corrupted" which takes a long time to finish.. also I get an unexplained map leaked errors in a hollow brush. I then tried to compile the example map derssingroom_sample, atlist no leaks but the same huge list of "WARNING: Node brush list corrupted".. and when I start the map the player falls down in to the infinite!
Ok..I tried to comment the following code in writebsp.c (for both q3map2 and q3map2_urt):
if ( (size_t) b < 256 ) {
Sys_FPrintf( SYS_WRN, "WARNING: Node brush list corrupted (0x%08X)\n", b );
break;
}
and now I don't only receive the warnings anymore but I can also walk on my map and on the example map as well !!! I don't know how much this makes sense, since I don't know what the rest of the code is doing, but I see a "break;" there which prevents executing the rest of the scope.
Looks like this condition is compiled wrong, because for example 0xD1E975B0 is definitely > 256.
Or may be address is print wrong, because X specifier stands for unsigned int and size of pointer != size of int in 64 bit usually. Portable print should use zX or p specifiers afaik.