/* Copyright (C) 1991, Marcus J. Ranum. All rights reserved. */ #ifndef lint static char RCSid[] = "$Header: /home/mjr/hacks/umud/CMD/RCS/do.c,v 1.2 92/06/16 21:58:06 mjr Exp $"; #endif /* configure all options BEFORE including system stuff. */ #include "config.h" #include "mud.h" #include "vars.h" /* TinyMUD-like "emote" */ /* ARGSUSED */ cmd_do(argc,argv,who,aswho) int argc; char *argv[]; char *who; char *aswho; { char *uname; char *room; char *in; int ax; char nxtu[MAXOID]; room = ut_loc(run_actor()); in = ut_getatt(room,0,typ_list,var_ply,(char *)0); if(in == (char *)0) { /* We're not in a room, let's see if we're `in' a player. */ in = ut_getatt(room,0,typ_flag,var_isplay,(char *)0); if (in == (char *)0) { say(who,"You aren't anywhere. Sit still.\n",(char *)0); return(UERR_PERM); } /* We're 'inside' a player. */ uname = ut_name(run_actor()); /* Do at the player. */ say(room,uname,(char *)0); for(ax = 1; ax < argc; ax++) say(room," ",argv[ax],(char *)0); say(room,"\n",(char *)0); /* Do at us. */ in = run_actor(); say(in,uname,(char *)0); for(ax = 1; ax < argc; ax++) say(in," ",argv[ax],(char *)0); say(in,"\n",(char *)0); return(UERR_NONE); } uname = ut_name(run_actor()); while((in = lstnext(in,nxtu,sizeof(nxtu))) != (char *)0) { say(nxtu,uname,(char *)0); for(ax = 1; ax < argc; ax++) say(nxtu," ",argv[ax],(char *)0); say(nxtu,"\n",(char *)0); } return(UERR_NONE); }