private static void RecurseFindFloor( Map map, int x, int y, ArrayList floor )
{
Point2D p = new Point2D( x, y );
if ( floor.Contains( p ) )
return;
floor.Add( p );
for ( int xo = -1; xo <= 1; ++xo )
{
for ( int yo = -1; yo <= 1; ++yo )
{
if ( (xo != 0 || yo != 0) && IsFloor( map, x + xo, y + yo, false ) )
RecurseFindFloor( map, x + xo, y + yo, floor );
}
}
}
}