On Thu, 4 Jul 1996, Nick wrote: > > Right now, IMHO, exits are not done very well in stock Circle. We are bound > to the use of 'n,s,e,w' (and ne,nw,se,sw if you add that in) for the most > part. On some other muds, exits are so versatile that an exit can be called > anything you want (and you don't have to modify the source, it just allows > exits to be anything). Has anyone implemented this on Circle? If so, send > the code snippets to the list - I'm sure some of us would appreciate it. I > did something like it myself, but it was for a different thing which isn't at > all compatible. :) I made variable exits with my mud, and the way I implemented it would require more source patches than I'm willing to post. The world files have to be completely changed, etc. Rather than an array of exits, you have a linked list, so each time you mess with exits you have to switch it to the new way. Also you have to rewrite how exits open/close because you cant just assume that the exit through the door opens east on the other end. Before if you opened a door north, it would auto open the door in the room south it linked. You have to add "linknames" and a link pointer so you know what to link to. And without an OLC this makes world building horrendous. Possible idea/timeline on how to change exits. 1. edit structs.h change: struct room_direction_data add a name field, and a pointer to the next room_direction_data (i.e. linked list) add a char *linkname, so that you know what exit in the other room to link to, and a struct room_direction_data *link which is the pointer to the room to change. in struct room_data change exits from an array to a pointer 2. grep for exits in all the .c files, and change every instance to use linked lists rather than an array 3. spend days (if not months) debugging :) 4. e-mail me if you need help (note: help, not me to do it for you) Steve quickey@cyberverse.com
This archive was generated by hypermail 2b30 : 12/07/00 PST