by randi » Sat May 07, 2011 6:38 pm
The actual problem here is that there are over 11000 sidedefs referencing the missing texture "MICHELLE". For every one of these sidedefs, the loader scans every single linedef to report where it was used. So when it appears to have hung, it's actually busy spewing a list of missing textures. I have limited this output so maps with extreme numbers of missing textures do not take an extreme amount of time to load.
As for the crash, it happens during the garbage collector. Under normal circumstances, you won't be quitting the game during the middle of a map load (and thereby triggering the garbage collector), so I'm not going to worry about it. It wouldn't be worth the trouble to ensure that all pointers are consistent during the loading process.
The actual problem here is that there are over 11000 sidedefs referencing the missing texture "MICHELLE". For every one of these sidedefs, the loader scans every single linedef to report where it was used. So when it appears to have hung, it's actually busy spewing a list of missing textures. I have limited this output so maps with extreme numbers of missing textures do not take an extreme amount of time to load.
As for the crash, it happens during the garbage collector. Under normal circumstances, you won't be quitting the game during the middle of a map load (and thereby triggering the garbage collector), so I'm not going to worry about it. It wouldn't be worth the trouble to ensure that all pointers are consistent during the loading process.