Think I found a bug in g_map.cpp MAP::obstruct() line 433
if (x<0 || y<0 || x>=mapwidth || y>=mapwidth) return 1;
I think it should be
if (x<0 || y<0 || x>=mapwidth || y>=mapheight) return 1;
This is causing getobs() to report coords as obstructions on vertically large maps even if they aren't obstructions.
Oh, and using the Visual Studio debugger to debug VergeC is all kinds of awesome.