Re: non-recursive tracking algorithm (that works)

From: Daniel Koepke (dkoepke@CALIFORNIA.COM)
Date: 10/13/97

On Mon, 13 Oct 1997, Gary Barnett wrote:

-+1) Create a 3d array of ints to represent a zone. Each room will plug into
-+the array
-+   in whatever spot it is in relation to the other rooms. (sparse array)

There is, of course, some problems.  It requies everything to be
physically possible.  That is, you can't make west take you from
roomA to roomB, and east to take from roomB to roomC.  The rooms,
and zones, cannot overlap.  It's easier to prevent this with rooms
(unless you have a reason for doing it, then you should avoid it).
The main problem lies in mapping where zones are in relation to
each other.  Remember when Rome was north of Midgaard?  It was about
7 or 8 steps from the north exit of Midgaard (Behind the Altar?),
but the western forest was a few steps west, and going north you'd
never connect with Rome.  The same problem exists with other zones.
Where they would *logically* connect, they do not, because no-one
ever bothered to check.  As it is, the zones are free-floating
masses of rooms that can "magically" connect with one another.  If
you stapled them down to the ground in a limited space, several
would likely overlap...:\

The only way I can see to remedy this situation is to have the
program (or you can do it manually) find where two zones intersect
by in an illogical way by building the array and reporting the
two intersecting zones.  This is why, though, I am moving away from
free-floating, unlimited zones and placing them in a three-dimensional
cube.  It has its own limitations, but it's very neat for tracking,
flying, etc. (e.g., you don't have to *fake* flying or make it just
a hovering thing).

Daniel Anton Koepke -:- -:- [Nether]
"Human language is a cracked kettle on which we beat out tunes
 for bears to dance to when all the while we want to move the
 stars to pity." -- Flaubert

     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     | |

This archive was generated by hypermail 2b30 : 12/08/00 PST