/* Copyright (C) 1991, Marcus J. Ranum. All rights reserved. */ #ifndef lint static char RCSid[] = "$Header: /usr/users/mjr/hacks/umud/CMD/RCS/say.c,v 1.1 91/07/04 17:33:27 mjr Rel $"; #endif /* configure all options BEFORE including system stuff. */ #include "config.h" #include "mud.h" #include "vars.h" /* TinyMUD-like "say" */ /* ARGSUSED */ cmd_say(argc,argv,who,aswho) int argc; char *argv[]; char *who; char *aswho; { char *un; char nx[MAXOID]; char *room; char *inroom; int ax; room = ut_loc(run_actor()); /* get list of who is in the room */ inroom = ut_getatt(room,0,typ_list,var_ply,(char *)0); if(inroom == (char *)0) return(1); /* set player's name */ un = ut_name(run_actor()); /* hack to handle empty statements */ if(argc == 1) argv[1] = ""; /* iterate across list of people in the room - excluding ourself */ while((inroom = lstnext(inroom,nx)) != (char *)0) { if(strcmp(nx,who)) { if(argc < 3) { say(nx,un," says, \"",argv[1],"\"\n",(char *)0); } else { say(nx,un," says, \"",(char *)0); for(ax = 1; ax < argc;) { say(nx,argv[ax],(char *)0); if(++ax < argc) say(nx," ",(char *)0); } say(nx,"\"\n",(char *)0); } } } un = run_actor(); /* now talk to ourself :) */ if(argc < 3) { say(un,"You say, \"",argv[1],"\"\n",(char *)0); } else { say(un,"You say, \"",(char *)0); for(ax = 1; ax < argc;) { say(un,argv[ax],(char *)0); if(++ax < argc) say(un," ",(char *)0); } say(un,"\"\n",(char *)0); } return(0); }