/* Copyright (C) 1991, Marcus J. Ranum. All rights reserved. */ /* configure all options BEFORE including system stuff. */ #include "config.h" #include "mud.h" #include "vars.h" /* TinyMUD-like "emote" */ /* ARGSUSED */ int cmd_do (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); }