// Petrarch
// Merentha Lib 1.0
// <call>
varargs int command(string input) {
mixed ret;
object ob;
string *args=0;
string obj, fun;
int i;
if(sscanf(input, "%s;%s", obj, fun)!=2) return notify_fail("Syntax: call object;function;args\n");
i=sizeof(args=explode(fun,";"));
if(obj=="me") ob=this_player();
if (!ob) ob=present(obj, environment(this_player()));
if (!ob) ob=find_player(player_name(obj));
if (!ob) ob=find_living(obj);
if (!ob) ob=find_object(obj);
if (!ob) return notify_fail("Could not find "+obj+"\n");
ret=call_other(ob, args);
message("command", input+" = %^BOLD%^"+identify(ret), this_player());
return 1;
}
string help() {
return "Syntax: call <object>;<function>;<args;args;args;...>\n\nCalls the function in the object with any number of arguments.\n\nExample: call me;query_race";
}