// This is part of the TMI distribution mudlib.
// Please retain this header if you use this code.
// Written by Buddha (5-3-92)
// Updated by Alexus Mel Lynn (2-9-93) (Added exits as valid arguments)
#include <move.h>
#include <mudlib.h>
inherit DAEMON ;
void help() {
write("\tUsage:\tin <room> <command>\n" +
"Executes the command given in the room you have specified.\n" +
"If the room isn't there, or cannot be entered, then it won't work.\n");
}
int cmd_in(string str) {
string room, cmd;
mapping exits;
object prev, act_ob,env;
int s;
if (!str || sscanf(str, "%s %s", room, cmd) != 2) {
notify_fail("Usage:\tin <room|exit> <command>\n");
return 0;
}
env = environment(this_player());
act_ob = previous_object();
if (env)
exits = env->query("exits");
if(!mapp(exits) || member_array(room,keys(exits)) == -1) {
room = resolv_path((string)act_ob->query("cwd"), room);
if (!room || ((s = strlen(room)) >= 2 &&
file_size( (room[s-2..s-1] == ".c") ? room : room + ".c") <= 0))
return 0;
} else room = exits[room];
prev = environment(act_ob);
if(act_ob->move(room) == MOVE_OK) {
act_ob->force_me(cmd);
act_ob->move(prev);
return 1;
}
write("in: could not move to target.\n");
return 1;
}