Fatal crash to desktop on Mono/Linux.
Hi Steve, so as you may or may not know, we've been busy modifying mono to run the game almost perfectly under mono on Linux (So far our biggest problem is trying to get metric perfect fonts, because Microsoft Sans is not a freely available font, and your layout is pixel precise, as well as a couple of corner cases around hardcoded "\" in file paths - both are mostly fixable easily enough by modifying mono).
Sadly, there's one corner case that seems to have cropped up around Passive Sensors display. It seems that somewhere in the code that draws the passive sensors on screen, you're sharing a System. Drawing. Pen object between multiple methods without cleaning it up afterwards - this results in a race condition on Linux/Mono where the garbage collector tries to double-free the Pen object. (My hypothesis is that because the same pen passes between multiple methods, it gets queued into the global GC queue for subsequent deletion. However, it is realized by the compiler that the Pen isn't actually needed after whatever toplevel method is using it, and it therefore disposes of it using the destructor. The GC thread however, still sees the Pen in the GC queue and tries to clean it up again).
If I could ask for you to Dispose() the pen object after you've used it to draw passive sensors (and whatever else it is shared with in that method) that should fix the problem for us weirdos on Linux.
Thanks!