Alan Keane suggested the following:

When a person wants to go to an object:

1.  Pathfinding can only take place around Rooms.
2.  Each Room has a Node at each entrance.
3.  The object binds itself to the nearest Node.
4.  The person queries the object, which returns the Node corresponding to
    the room it is in.
5.  The person then follows a chain of Nodes from the room he is in to the
    room where the object is.

Once the start and destination nodes have been located, it's just a matter of
moving between them, possibly using Droplets.
When each Node is reached, he moves to the next one.

The optimum path between each Node is then determined using a set of routeing
tables, which are pre-computed by the level editor, possibly as an aftertouch
like BSPing a doom level.  (Because the levels are basicallly static!)

Possibly the Nodes could be evenly spaced, every 8 tiles or so, instead of
being put in manually.  This would speed up the process of finding a Node
at runtime.
