#include "path.h"
inherit "/std/room";
void setup() {
set_short( "'add_item' room telling about getting string arguments" );
set_light( 100 );
add_property( "determinate", "the " );
set_long( "This is the room telling about getting string arguments from a "
"command defined with add_item. Go east to see about getting "
"object arguments, west to see about integer arguments.\n"
"There is a large stone in the middle of the room. It looks as "
"if you can engrave your name onto it.\n");
add_item( "large stone",
({ "long", "It can be engraved.",
"engrave", ({ this_object(), "do_engrave",
"[the text] <string> [into] [the] <direct:object>" })
}) );
add_exit( "east", PATH +"args_object", "path");
add_exit( "west", PATH +"args_integer", "path");
add_exit( "start", MAIN, "path" );
add_exit( "exit", LEARNING +"search", "path" );
} /* setup() */
int do_engrave( string command, object *indir, string dir_match,
string indir_match, mixed *args, string pattern ) {
string mess;
tell_object( this_player(),
sprintf( "$I$2=do_engrave called:\ncommand=%O\nindir=%O\n"
"dir_match=%O\nindir_match=%O\nargs=%O\n"
"pattern=%O$I$0=\n",
command, indir, dir_match,
indir_match, args, pattern ) );
mess = "$N $V \""+ args[ 0 ] +"\" into "+ dir_match +".\n";
this_player()->add_succeeded_mess( previous_object(), mess, ({ }) );
return 1;
} /* do_engrave() */