line_of_sight() checks whether the `straight path'
between two sectors is unobstructed.
First bug: there are four straight line between two
points on a torus. line_of_sight() misses three
straight lines because it treats the torus like a
plane. This makes it screw up near the origin.
Second bug: we want shortest paths closest to a
shortest line. There may be two shortest paths closest
to a shortest line, assuming line_of_sight()'s
definition of `closest'. line_of_sight() arbitrarily
picks one. If one is obstructed and the other one
isn't, the result depends on which one it picks. This
is wrong.
In tiny worlds, there may be more than one shortest
line, but that's a pathological case.
Logged In: YES
user_id=596270
First bug is fixed.