From: "nwhite" <nathanmwhite@EARTHLINK.NET> > hey hey anyone been succesful with doing a room clone code? I use the following code with Oasis OLC. I stripped out everything that I believe is specific to my MUD. Hopefully I didn't strip out too much. :-) I modified redit (and others) to support this syntax: redit <new vnum> like <existing vnum> This function is called in place of redit_setup_new() when the above command line is used: void redit_clone_existing(struct descriptor_data *d, int real_num) { struct room_data *room = &world[real_num]; CREATE(OLC_ROOM(d), struct room_data, 1); OLC_ROOM(d)->name = str_dup(room->name); OLC_ROOM(d)->description = str_dup(room->description); OLC_ROOM(d)->number = NOWHERE; OLC_ROOM(d)->room_flags = room->room_flags; OLC_ROOM(d)->sector_type = room->sector_type; /* * Extra descriptions, if necessary. */ if (room->ex_description) { struct extra_descr_data *tdesc, *temp, *temp2; CREATE(temp, struct extra_descr_data, 1); OLC_ROOM(d)->ex_description = temp; for (tdesc = room->ex_description; tdesc; tdesc = tdesc->next) { temp->keyword = str_dup(tdesc->keyword); temp->description = str_dup(tdesc->description); if (tdesc->next) { CREATE(temp2, struct extra_descr_data, 1); temp->next = temp2; temp = temp2; } else temp->next = NULL; } } redit_disp_menu(d); OLC_VAL(d) = TRUE; } I deliberately skip over all the exits, because 99% of the time it doesn't make sense to clone them. Mike -- +---------------------------------------------------------------+ | FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | | Archives: http://post.queensu.ca/listserv/wwwarch/circle.html | +---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/06/01 PST