James Turner said: >Luis Pedro Passos Carvalho <lpcarvalho@SONAE.PT> writes: > [snip] >out. Suppose the decision was made that an array of rooms isn't the >best way to go. Right now, all the code that does > >for (tch = world[ch->in_room].pepople; tch; tch = tch->next_in_room) >... > >Would need overhauling. But if it had been done originally like: > >CharList *l; >for (l = chars_in_room(ch); l; l = l->next) { > blah(l->ch); > ... >} Personally i believe that it would be easier and in more accord to the present code: struct char_data *l; for (l= first_char_in_room(ch); l ; l=next_char_in_room(l)) { blah(l) ... } That way you don't need to allocate lists and free them afterwards. Basically you would only need a first_char_<criteria to meet> and a next_char_in_<criteria to meet> Similar to the way to run through the directory tree in MS-DOS (hey, it had nice things) >Or another way, > >Iterator i; > >for (i = chars_in_room_iterator(ch); i; i = next(i)) { > tch = iter_to_ch(i); > blah(tch); > ... >} A bit over the edge wouldn't you think? Hmmm... I think i'll start coding it, right after I code my ROOM_HUGE rooms. Talk of a major change in code! See ya! Luis Carvalho +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST