On Mon, 9 Jul 2001, Peter Ajamian wrote: >George Greer wrote: > ><snip> > >I'd say that we should go with one of these two possibilities for act(): > >> act("$n says, '%s'", FALSE, ch, 0, 0, TO_ROOM, argument); >> >> act(FALSE, TO_ROOM, "$n says, '%s'", ch, argument); > >and not: > >> act(FALSE, ch, 0, 0, TO_ROOM, "$n says, '%s'", argument); Train of thought there. I thought it rather useless to keep the three arguments when they're used as *printf()-style variables anyway. >As a compromise a new actf() could be created in the secondary format >above. Doing this virtually eliminates the need to have variable-arg >functions for anything else (actf(FALSE, TO_CHAR, "...", ch) becomes >quite as usefull as send_to_char("...", ch)). act() does a lot of processing garbage we don't need 69.4% of the time. (Quick egrep+wc+bc calculation on bpl18.) >What you do then is depreciate usage of the old send_to_... and act() >functions in favor of the newer actf() and eventually can drop support >for them alltogether. Going that route I'd propose: actf(int target, int flags, const char *format, ...); flags := ( TO_SLEEP | TO_INVISIBLE ) target := ( TO_ROOM, TO_VICT, TO_NOTVICT, TO_CHAR, TO_OUTDOOR, TO_ALL ) Then we fix the apologized hack ("Warning: the following TO_SLEEP code is a hack"), get variable arguments, get rid of some (not all) loops over the world, and open the way for more flags. Due to various problems with the parameterization, I would recommend keeping send_to_char(). Where does the pointer of the person to send the message to go for a static string with actf? -- George Greer greerga@circlemud.org -- +---------------------------------------------------------------+ | 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