Hello, All. First time poster here. I've had over 2 years to muck around in ROM's code and a fraction of that to lurk on the list, so I thought it's about time I gave a little back. Here goes... (Warning, semi-long email follows)
The reason it's difficult to do this with ROM is the exit/room structure itself. Not the data structures, but the way they work. The whole idea behind the current system (IMHO) is flexibility, and in this situation that very flexibility bites you in the butt. This flexibility allows a room to link to itself (exit leaves north and arrives south into the same room) and for "return" exits to lead in different directions than they originated (exit leaves north and arrives east). It also allows what I like to think of as "variable distance" exits. For example... Room 100 links East/West to room 101 Room 101 links East/West to room 102 Room 102 links North/South to room 103 Room 103 links East/West to room 104 Room 104 links North/South to room 100 This would (intelligently) give you a map like this if you were standing in room 100: ( * = room, --- = exit between rooms, @ = you ) 104 103 *---------* | | @-----*---* 100 101 102 but with a "simple" mapping algorithm (that doesn't understand distance properly) if standing in room 100 would look like 104 103 *-----* | | | @-----*-----* 100 101 102 Ouch. 103 and 101 do NOT link to eachother and 102 actually links to 103, not "empty space"!!! Why? In reality, the exit link between Room 103 and 104 is "longer" than that between 100 and 101 or between 101 and 102. That's why you'll (almost) never see a "quick and easy" snippet for mapping an area. ROM allows too many difficult to map situations to make an easy snippet. Sorry for that bad news, but now some ideas - 1. Implement a "distance" value for each exit and make a way to map "variable distance" exits correctly. A.k.a., the exit between room 103 and 104 would have a distance of 2 and the rest would have a distance of 1 so the mapper will make the "exit line" between 103 and 104 longer. (This requires a custom mapping function and editing of all areas in your mud - not a very fun thing, but would be the most rewarding IMHO.) 2. Create static maps and print out a part of that map based upon what room the player is in. (Maybe the easiest.) 3. Move the ROM areas to a coordinate locked system that doesn't allow all of ROM's nifty exit features (self-linking rooms, "variable length" exits, etc...) and requires all rooms and exits to fit nicely on the "grid". (Ick! Yuck! Nasty!) Questions, comments? Fire away! Tony > I saw an ascii map on a mud one time and the map itself had an area of > about 5 x 5 rooms, with the current room you were in being in the middle > of the map. I found a snippet for an ascii map, but the map doesn't go > further than the next room over. Is anyone familiar with this snippet and > if so, has anyone made any adjustments to it? If not, does anyone have > their own piece of code they are willing to share? > > Thanks, > Noose > > > -- > ROM mailing list > [email protected] > http://www.rom.org/cgi-bin/mailman/listinfo/rom >

